function loadXML(xml) {
	var xmlDoc;
	if (window.ActiveXObject) {
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async = false;
		xmlDoc.loadXML(xml);
		return xmlDoc;
	} else if (document.implementation && document.implementation.createDocument) {
		var parser = new DOMParser();
		xmlDoc = parser.parseFromString(xml, "text/xml");
		return xmlDoc;
	} else {
		return null;
	}
}

var events;
var dow = 0;
var old_text = "";

function initEvents(request) {
	var doc = loadXML(request.responseText);
	var allEvents = doc.getElementsByTagName("event");
	events = new Array(allEvents.length);
	for (var i=0; i<allEvents.length; i++) {
		var event = allEvents[i];
		events[i] = new Array(7);
		var dateElm = event.getElementsByTagName("date").item(0);
		events[i][0] = dateElm.firstChild.nodeValue;
		var descriptionElm = event.getElementsByTagName("description").item(0);
		events[i][1] = descriptionElm.firstChild.nodeValue;
		var startElm = event.getElementsByTagName("start").item(0);
		events[i][2] = startElm.firstChild.nodeValue;
		var durationElm = event.getElementsByTagName("duration").item(0);
		events[i][3] = durationElm.firstChild.nodeValue;
		var imgElm = event.getElementsByTagName("image").item(0);
		events[i][4] = imgElm.firstChild.nodeValue;
		var titleElm = event.getElementsByTagName("title").item(0);
		events[i][5] = titleElm.firstChild.nodeValue;
		var idElm = event.getElementsByTagName("id").item(0);
		events[i][6] = idElm.firstChild.nodeValue;
	}
	old_text = $("box").innerHTML;
	$("box").innerHTML = old_text;
	updateCalendar();
}

function dateClicked(passed_date)
{
	// Fill in event information for day
	var text = "<a href='javascript: back();'>Back</a><div style='background-color: #A61800; padding: 2px; color: #FFD16C; width: 450px'>Information about " + months[current_month] + " " + day(passed_date) + ", " + current_year + "</div>";
	date.setDate(day(passed_date));
	date.setMonth(current_month);
	date.setFullYear(current_year);
	var found_one = false;
	for (var i=0; i<events.length; i++) {
		var testDate = new Date(events[i][0]);
		if ((date.getDate() == testDate.getDate()) && (date.getMonth() == testDate.getMonth()) && (date.getFullYear() == testDate.getFullYear())) {
			text += "<div style='width: 450px; padding-left: 20px; font-weight: bold'>" + events[i][5] + "</div>";
			text += "<div style='width: 450px; padding-left: 20px; padding-bottom: 4px; font-size: 10px; color: #C85200'>Start Time: " + events[i][2] + " with a duration of " + events[i][3] + "</div>";
			text += "<div style='width: 450px; padding-left: 20px; padding-bottom: 4px; border-bottom: 4px #A61800 double'>Description: " + events[i][1] + "</div>";
			if ("0" != events[i][4]) { 
				text += "<img src='" + events[i][4] + "' border=0 /><br>";
			}
			found_one = true;
		}
	}
	if (found_one) {
		$("box").innerHTML = text;
	}
}

function eventClicked(passed_id)
{
	id = passed_id + '';
	var text = "<a href='javascript: back();'>Back</a><div style='background-color: #A61800; padding: 2px; color: #FFD16C; width: 450px'>Information about ";
	for (var i=0; i<events.length; i++) {
		if (events[i][6] == id) {
			text += events[i][5] + "</div>";
			text += "<div style='width: 450px; padding-left: 20px; font-weight: bold'>" + events[i][5] + "</div>";
			text += "<div style='width: 450px; padding-left: 20px; padding-bottom: 4px; font-size: 10px; color: #C85200'>Start Time: " + events[i][2] + " with a duration of " + events[i][3] + "</div>";
			text += "<div style='width: 450px; padding-left: 20px; padding-bottom: 4px; border-bottom: 4px #A61800 double'>Description: " + events[i][1] + "</div>";
			if ("0" != events[i][4]) { 
				text += "<img src='" + events[i][4] + "' border=0 /><br>";
			}
		}
	}
	
	// Update area
	$("box").innerHTML = text;
}

function back()
{
	$("box").innerHTML = old_text;
}

function day(passed_date)
{
	return(passed_date-dow)+1;
}

var months = new Array(12);
months[0] = "January";
months[1] = "Febuary";
months[2] = "March";
months[3] = "April";
months[4] = "May";
months[5] = "June";
months[6] = "July";
months[7] = "August";
months[8] = "September";
months[9] = "October";
months[10] = "November";
months[11] = "December";

var date = new Date();
var current_month = date.getMonth();
var current_year = date.getFullYear();

function initCalendar()
{
	ajaxEvents();
}

function nextMonth()
{
	current_month++;
	if (current_month>11) {
		current_month = 0;
		current_year++;
	}
	updateCalendar();
}

function prevMonth()
{
	current_month--;
	if (current_month<0) {
		current_month = 11;
		current_year--;
	}
	updateCalendar();
}

function updateCalendar()
{
	var month_tag = $("month");
	month_tag.innerHTML = months[current_month] + " " + current_year;
	
	// clear calendar
	for(var i=1; i<43; i++) {
		var day = $("calendar" + i);
		day.innerHTML = "";
	}
	//debugger;
	// set date to first of current_month
	date.setDate(1);
	date.setMonth(current_month);
	date.setFullYear(current_year);
	var current = date.getDay();
	dow = current;
	if (dow == 0) {
		dow = 7;
		current = 7;
	}
	
	while (date.getMonth() == current_month) {
		var day = $("calendar" + current);
		
		// Check to see if this day has an event
		var found_event = false;
		for (var i=0; i<events.length; i++) {
			var testDate = new Date(events[i][0]);
			if ((date.getDate() == testDate.getDate()) && (date.getMonth() == testDate.getMonth()) && (date.getFullYear() == testDate.getFullYear())) {
				found_event = true;
			}
		}
		if (found_event) {
			day.innerHTML = "<span style='color: #FF0000; background-color: #FFD16C; padding-left: 2px; padding-right: 2px'>" + date.getDate() + "</font>";
		} else {
			day.innerHTML = date.getDate();
		}
		date.setDate(date.getDate()+1);
		current++;
	}
}

function ajaxEvents() {
	var ajax = new Ajax.Request("eventsdata.php?month=" + (current_month+1) + "&year=" + current_year, 
								{ method: 'get', 
								  parameters: "",
								  onComplete: initEvents
								});
}
