if (Prototype && Scriptaculous) {
	if (typeof(net) == "undefined") var net = {};
	if (typeof(net.rescuemission) == "undefined") net.rescuemission = {};
	
	Object.extend(net.rescuemission, {
		Calendar: {
			init: function() {
				if (Object.isUndefined(net.rescuemission.index)) { this.embedded = false; } else { this.embedded = true; }
				
				$(document.body).addClassName('js');
				
				this.events.init();
				
				if (!this.embedded && Prototype.Browser.IE) this.simulateMinHeight();
			},
			simulateMinHeight: function() {
				var tableCells = $$('.calendar tbody td');
				
				var minHeight = tableCells[0].getStyle('min-height');
				
				if (isNaN(minHeight * 1) && Object.isString(minHeight)) minHeight = minHeight.slice(0, -2);
				
				tableCells.each(function(element) {
					var height = element.getHeight();
					
					if (isNaN(minHeight * 1) && Object.isString(height)) height = height.slice(0, -2);
					
					if (element.getHeight() < minHeight) element.setStyle({ height: minHeight + 'px' });
				});
			},
			events: {
				events: undefined,
				eventsDetails: undefined,
				eventHandleEventClick: undefined,
				init: function() {
					this.eventHandleEventClick = this.handleEventClick.bindAsEventListener(this);
					
					if (net.rescuemission.Calendar.embedded) { // To fix repeating noise. -AS 091028
						this.hideRepetitiveEvents();
					}
					
					this.gatherEvents();
				},
				gatherEvents: function() {
					if (!net.rescuemission.Calendar.embedded) {
						this.events = $$('.calendar .events > li a');
					} else {
						this.events = $$('#events a.more-info, #events .vevent > h3');
					}
					
					this.events.invoke('observe', 'click', this.eventHandleEventClick);
					
					if (!net.rescuemission.Calendar.embedded) {
						this.eventsDetails = $$('.calendar .events-detail');
					} else {
						this.eventsDetails = $$('#events .events-detail');
					}
					
					this.eventsDetails.each(function(element) {
						var close = $(Builder.node('img', { src: 'http://rescuemission.net//images/lightbox/closelabel.gif', alt: 'close', className: 'events-detail-close' }));
						close.observe('click', this.eventHandleEventClick);
						element.appendChild(close);
						
						element.setStyle({ marginTop: (-(element.getHeight() / 2) - 19) + 'px' });
						
						element.hide();
					}.bind(this));
				},
				handleEventClick: function(event) {
					this.eventsDetails.invoke('hide');
					
					if (!event.element().hasClassName('events-detail-close')) {event.element().next('.events-detail').show();}
				},
				hideRepetitiveEvents: function() {
					this.events = $$('#events .vevent');
					
					this.events.each(function(event, index) {
						var id = event.identify();
						
						if (event.previous(".vevent[id|=" + id.substring(0, id.indexOf('-')) + "]")) {event.remove();}
					});
				}
			}
		}
	});
	
	net.rescuemission.Calendar.init();
}