var Calendar = {

init: function(data) {
	Calendar.events = data;	
	Calendar.events.keys().each(function(day) {
		if (day != "Today") {
			var day_li = document.createElement("li");
			var hA = document.createElement("a");
			hA.href = "#";
			hA.onclick = function() { Calendar.switchdays(day); return false; }
			hA.innerHTML = day;
			day_li.appendChild(hA);
			$('calendarDaylist').appendChild(day_li);
		}
	});
},

switchdays: function(day) {
	var day_list = $('calendarDaylist').childNodes;
	for (i=0;i<day_list.length;i++) {
		var day_li = day_list[i];
		if	(day_li.tagName == "LI") {
			if (day_li.firstChild.innerHTML == day) {
				day_li.className = day_li.className + " active";
				
				var new_dayContent = document.createElement("div");
				new_dayContent.id = "calendarDayContent";
				
				var ndc_dl = document.createElement("dl");
				eval("Calendar.events."+day).each(function(event, i) {
					var dt = document.createElement("dt");
					startTime = new Date(); startTime.setTime(event.startTime * 1000);
					if (startTime.strftime('%I.%M%p') != '00.00am') dt.innerHTML = startTime.strftime('%I.%M%p');
					ndc_dl.appendChild(dt);
					
					var dd = document.createElement("dd");
					var a = document.createElement("a");
					a.onclick = function() { Calendar.showEvent(day, i); return false; }
					a.innerHTML = event.title;
					dd.appendChild(a);
					ndc_dl.appendChild(dd);	
				});
				if (ndc_dl.childNodes.length) {
					new_dayContent.appendChild(ndc_dl);
				} else {
					noEventsDiv = document.createElement("p");
					noEventsDiv.innerHTML = "No scheduled events for this day.";
					new_dayContent.appendChild(noEventsDiv);
				}
				$('calendar').replaceChild(new_dayContent, $('calendarDayContent'));
			} else {
				day_li.className = day_li.className.replace(/\s*active\s*/, '');
			}
		}
	}	
},

showEvent: function(day, i) {
	hEventDetails = document.createElement("div");
	hEventDetails.id = "calendarEventDetails";
	var event = eval("Calendar.events."+day+"["+i+"]");
	if (event) {
		hTitle = document.createElement("h4");
		hTitle.innerHTML = event.title;
		hEventDetails.appendChild(hTitle);
		
		hTime = document.createElement("p");
		hTime.className = "time";
		startTime = new Date(); startTime.setTime(event.startTime * 1000);
        hTime.innerHTML = startTime.strftime('%a, %I.%M%p till');
		if (event.endTime) {
			endTime = new Date(); endTime.setTime(event.endTime * 1000);
			hTime.innerHTML += " - "+ endTime.strftime('%I.%M%p');
		} else {
			hTime.innerHTML += " (all day)";
		}
		hEventDetails.appendChild(hTime);
		
		if (event.description) {
			hDescription = document.createElement("p");
			hDescription.innerHTML = event.description;
			hEventDetails.appendChild(hDescription);
		}
		
		if (event.staff) {
			hStaff = document.createElement("p");
			hStaff.className = "staff";
			hStaff.innerHTML = "<strong>Staff:</strong> "+ event.staff;
			hEventDetails.appendChild(hStaff);
		}
		
		if (event.location) {
			hLocation = document.createElement("p");
			hLocation.className = "location";
			hLocation.innerHTML = event.location;
			hEventDetails.appendChild(hLocation);
		}
		
		hExport = document.createElement("p");
		hExport.className = "export";
		hExport.innerHTML = "<a href='"+ rootPath +"calendar/ical/(id)/"+ event.id +"'><img src='"+ calendarIcon +"' /> Add to calendar</a>";
		hEventDetails.appendChild(hExport);
	}
	
	$('calendar').replaceChild(hEventDetails, $('calendarEventDetails'));
} 
	
};

