var events = new Array;
var xmlHttp;
var thisDate = 1;							// Tracks current date being written in calendar
var wordMonth = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec");
var today = new Date();							// Date object to store the current date
var todaysDay = today.getDay() + 1;					// Stores the current day number 1-7
var todaysDate = today.getDate();					// Stores the current numeric date within the month
var todaysMonth = today.getUTCMonth() + 1;				// Stores the current month 1-12
var todaysYear = today.getFullYear();					// Stores the current year
if(!monthNum) var monthNum = todaysMonth;						// Tracks the current month being displayed
if(!yearNum) var yearNum = todaysYear;						// Tracks the current year being displayed
var firstDate = new Date(String(monthNum)+"/1/"+String(yearNum));	// Object Storing the first day of the current month
var firstDay = firstDate.getUTCDay();					// Tracks the day number 1-7 of the first day of the current month
var lastDate = new Date(String(monthNum+1)+"/0/"+String(yearNum));	// Tracks the last date of the current month
var numbDays = 0;
var calendarString = "";
var wordDays = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var stopshow=0;
var page;

function GetXmlHttpObject() { var xmlHttp=null; try { xmlHttp=new XMLHttpRequest(); } catch (e) { try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}} return xmlHttp; }

function parseXML() {
	xmlHttp = GetXmlHttpObject();
	var url = "/cal_xml.php?calendar="+calendar;
	xmlHttp.onreadystatechange=function() {
		if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
			var xmlDoc = xmlHttp.responseXML;
			if(xmlDoc) {
				var allEvents=xmlDoc.getElementsByTagName("event");
				for(var i=0; i<allEvents.length; i++) {
					var subEvents=allEvents[i].childNodes;
					var thisEvent = ["", allEvents[i].getElementsByTagName("month")[0].childNodes[0].nodeValue, allEvents[i].getElementsByTagName("day")[0].childNodes[0].nodeValue, allEvents[i].getElementsByTagName("year")[0].childNodes[0].nodeValue, allEvents[i].getElementsByTagName("id")[0].childNodes[0].nodeValue, allEvents[i].getElementsByTagName("title")[0].childNodes[0].nodeValue, allEvents[i].getElementsByTagName("description")[0].childNodes[0].nodeValue];
					events[i]=thisEvent;
					//newDate('return');
				}
			} 
			newDate('return');
		}
	}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function urlString(dir) {
	var m;
	var y;
	if(dir=="back") {
		m = monthNum-1;
		y = yearNum;
		if (m == 0) {
			m = 12;
			y = yearNum-1;
		}
	}
	else if (dir=="forward") {
		m = monthNum+1;
		y = yearNum;
		if (m == 13) {
			m = 1;
			y = yearNum+1;
		}
	}
	return "month="+m+"&year="+y;
	
}

function newDate(buttonpressed) {
	if (buttonpressed == "prevyr") yearNum--;
	else if (buttonpressed == "nextyr") yearNum++;
	else if (buttonpressed == "prevmo") monthNum--;
	else if (buttonpressed == "nextmo") monthNum++;
	
	if (monthNum == 0) {
		monthNum = 12;
		yearNum--;
	}
	else if (monthNum == 13) {
		monthNum = 1;
		yearNum++
	}

	lastDate = new Date(yearNum, monthNum, 0);
	numbDays = lastDate.getDate();
	firstDate = new Date(String(monthNum)+"/1/"+String(yearNum));
	firstDay = firstDate.getDay() + 1;
	makeCal();
	return;
}

function makeCal() {
	calendarString = '';
	var daycounter = 0;
	calendarString += '<table cellspacing="0" cellpadding="0" class="cal_table">';
	if(calendar=="community") page = "calendar.php";
	else page = calendar+".php";
	//HEADER
	//calendarString += '<tr><td align="center" class="cal_top" colspan="7">BROWSE EVENTS BY DATE</td></tr>';
	calendarString += '<tr>';
	//calendarString += '<td class="next-prev" align="right" valign="center"><a class="next-prev" href="javascript:void(0)" onClick="newDate(\'prevmo\')"><img src="/images/leftarrow.gif" width="15px" style="border:0" /></a></td>';
	calendarString += '<td class="underline-title" align="right" valign="middle"><a class="next-prev" href="'+page+'?'+urlString("back")+'"><img src="/images/leftarrow.gif" style="border:0" /></a></td>';
	calendarString += '<td class="underline-title" align="center" valign="middle" colspan="5">' + wordMonth[monthNum-1] + '&nbsp;&nbsp;' + yearNum + '</td>';
	//calendarString += '<td class="next-prev" align="left" valign="center" ><a class="next-prev" href="javascript:void(0)" onClick=\"newDate(\'nextmo\')\"><img src="/images/rightarrow.gif" width="15px" style="border:0" /></a></td>';
	calendarString += '<td class="underline-title" align="left" valign="middle" ><a class="next-prev" href="'+page+'?'+urlString("forward")+'"><img src="/images/rightarrow.gif" style="border:0" /></a></td>';
	calendarString += '</tr>';
	//END HEADER
	calendarString += '<tr class="day-letters"><td>S</td><td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td></tr>';
	//DAYS ROW
	calendarString += '<tr class="cal_days">';
    for(var i=0; i<wordDays.length; i++) {
		calendarString += '<td align="center" valign="center" class="cal_days">'+wordDays[i]+'</td>'; 
	}
	calendarString += '</tr>';
	//END DAYS ROW
	
	thisDate == 1;
	for (var i = 1; i <= 6; i++) {
		calendarString += '<tr>';
		for (var x = 1; x <= 7; x++) {
			daycounter = (thisDate - firstDay)+1;
			thisDate++;
			if(stopshow!==1) {
				style = '';
				if(x%7==0) style = ' style="border-right:0px !important;"';
				if ((daycounter > numbDays) || (daycounter < 1)) {
 					calendarString += '<td class="cal_dates_inactive"'+style+'>&nbsp;</td>'; 
					if((i*x)%7==0) { var stopshow=1; } 
				} else {
					if (eventCheck(daycounter,monthNum,yearNum,i,x)){
						calendarString += '<td align="center" class="cal_events"'+style+'><a href="'+page+'?day='+daycounter+'&month='+monthNum+'&year='+yearNum+'">' + daycounter + '</a></td>';
					} else {
					calendarString += '<td align="center" class="cal_dates" '+style+'>' + daycounter + '</td>';
					}
				}
			} 
			if(daycounter==numbDays && ((i*x)%7==0)) var stopshow=1;
		} 	
		calendarString += '</tr>';
	}
	calendarString += '</table>';
	var object=document.getElementById('calendar');
	object.innerHTML= calendarString;
	thisDate = 1;
}

function hideEvents() {
	var cal=document.getElementById('calendar');
	cal.innerHTML='';
}

function eventCheck(day,month,year,week,dayofweek) {
	var numevents = 0;
	for (var i = 0; i < events.length; i++) {
		if (events[i][0] == "W") {
			if ((events[i][2] == dayofweek)) numevents++;
		}
		else if (events[i][0] == "Y") {
			if ((events[i][2] == day) && (events[i][1] == month)) numevents++;
		}
		else if ((events[i][2] == day) && (events[i][1] == month) && (events[i][3] == year)) {
			numevents++;
		}
	}
	if (numevents == 0) return false;
	else return true;
}

/*function eventShow(day,month,year,week,dayofweek) {
	var theevent = "";
	var theevent2 = "";
	for (var i = 0; i < events.length; i++) {
		if ((events[i][2] == day) && (events[i][1] == month) && (events[i][3] == year)) {
			theevent = "<div class='cal_date'>" + wordMonth[month-1] + ' ' + day +', '+ year + "</div>" + '\n';
if(events[i][6].length>400) {
			theevent2 += "<div class='cal_title'><a class='cal_title' href='events.php?id="+events[i][4] +"'>"+ events[i][5].substring(0,40) +"... (more)</a></div>" + '\n';
			} else {
theevent2 += "<div class='cal_title'><a class='cal_title' href='events.php?id="+events[i][4] +"'>"+ events[i][5] +"</a></div>" + '\n';
			}			
		}
	}
	return overlib('<div id="balloon_div">'+theevent+theevent2+'</div> ', ABOVE, LEFT, STICKY, MOUSEOFF);
}
*/
document.observe("dom:loaded", function() {
  parseXML();
});
