// JavaScript Document
var oXHRe = false;
var reqsourcee = '';

if (window.XMLHttpRequest){
	oXHRe = new XMLHttpRequest();
	if (oXHRe.overrideMimeType) {
		oXHRe.overrideMimeType('text/xml');
	}
} else if (window.ActiveXObject) {
	oXHRe = new ActiveXObject("Microsoft.XMLHTTP");
}

theDate = new Date();
todayIs = (theDate.getMonth()+1) + '/' + theDate.getDate() + '/' + theDate.getFullYear();

function grabEventData(reqsourcee, dowhat){
	if (oXHRe){
		oXHRe.open("GET", reqsourcee, true);
		oXHRe.onreadystatechange = function(){
			if (oXHRe.readyState == 4 && oXHRe.status == 200){
				var exmlDoc = oXHRe.responseXML;
				parseIt(exmlDoc, dowhat);
			}
		}
		oXHRe.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" );
		oXHRe.send(null);		
	}
}

function parseIt(exmlDoc,func){

	events = new Array();

	eventsNode = exmlDoc.getElementsByTagName("event");
	for (e=0; e < eventsNode.length; e++){
		eventObj = new Object();
		thisSchool = eventsNode[e].getElementsByTagName("school")[0]
		schoolObj = new Object();
		schoolObj.name = getVal(thisSchool);
		schoolObj.abbr = getAttr(thisSchool, "abbr");
		schoolObj.region = getAttr(thisSchool, "region");
		schoolObj.city = getAttr(thisSchool, "city");
		schoolObj.state = getAttr(thisSchool, "state");
		eventObj.school = schoolObj;
		eventObj.name = getVal(eventsNode[e].getElementsByTagName("name")[0])		
		eventObj.location = getVal(eventsNode[e].getElementsByTagName("location")[0])		
		eventObj.startdate = getVal(eventsNode[e].getElementsByTagName("startdate")[0])		
		eventObj.enddate = getVal(eventsNode[e].getElementsByTagName("enddate")[0])		
		eventObj.time = getVal(eventsNode[e].getElementsByTagName("time")[0])
		events.push(eventObj)
	}
	eval(func);
}

function popSchoolDropdown(){
	
	var grabbedStr = '';
	var optionStr = '';
	allOpts = new Array;
	for(k=0;k<events.length;k++){
		if (grabbedStr.indexOf('|' + events[k].school.abbr +'|') == -1){
			for (x=0;x<allOpts.length;x++){
				if (events[k].school.name +'|'+events[k].school.abbr < allOpts[x]){
					allOpts.splice(x,0,events[k].school.name +'|'+events[k].school.abbr);
					break;
				}
			}
			if (x == allOpts.length){
				allOpts.push(events[k].school.name +'|'+events[k].school.abbr);	
			}
			grabbedStr += '|' + events[k].school.abbr + '|';
		}
	}	
	for(o = 0; o< allOpts.length;o++){
		var qq = allOpts[o].split('|');
		if (sch == qq[1]) {sel = ' selected="selected"';} else {sel = '';}
		optionStr += '<option value="' + qq[1] + '"' + sel + '>' + qq[0] + '</option>\n';
	}
	document.getElementById('schoolselect').innerHTML = '<select name="school" onchange="if (this.value.length > 1){window.location=\'events.html?school=\' + this.value + \'\';}"><option value="">select your school...</option>' + optionStr + '</select>';
	var allOpts = null, qq = null, grabbedStr = null, optStr = null;
}

function showschool(parm){
	//var r = '<table cellpadding="0" cellspacing="0" class="eventTable">'
	
	var r = "";
	var m = 0 // a counter of the number of records we have
	var allOpts = new Array();
	for(k=0;k<events.length;k++){
		if (events[k].school.abbr == parm){
			myevent = new Object();	
			myevent.school = events[k].school.name;
			myevent.startdate = events[k].startdate;
			myevent.name = events[k].name;
			myevent.enddate = events[k].enddate;
			myevent.location = events[k].location;
			myevent.time = events[k].time;
			for (x=0;x<allOpts.length;x++){
// sort our results by date
				if (compareDates(myevent.startdate, allOpts[x].startdate) == -1){
					allOpts.splice(x,0,myevent);
					break;
				}
			}
			if (x == allOpts.length){
				allOpts.push(myevent);	
			}
		}
	}		
	var theschool = parm;
	for(e=0;e<allOpts.length;e++){
		if (m == 0){theschool = allOpts[e].school;}
		m++;
		var thedates = allOpts[e].startdate
		if (allOpts[e].enddate.length > 1){thedates += '-' + allOpts[e].enddate;}
		if (compareDates(todayIs, allOpts[e].startdate) > 0) {rowclass=' style="color:#999;"';} else {rowclass='';}
		r = '<tr' + rowclass + '><td>' + allOpts[e].name+'</td><td>' + thedates + '&nbsp;</td><td>' + allOpts[e].time + '&nbsp;</td><td>' + allOpts[e].location + '&nbsp;</td></tr>' + r;
	}
	document.getElementById('allevents').innerHTML = '<table cellpadding="0" cellspacing="0" class="eventTable"><tr><th colspan="4"><div id="schoolselect"></div></th></tr>' + r + '</table>';
	var allOpts = null, r = null, myevent = null;
	popSchoolDropdown();
}

function compareDates (value1, value2) {
   var date1, date2;
   var month1, month2;
   var year1, year2;

   month1 = parseInt(value1.substring (0, value1.indexOf ("/")));
   date1 = parseInt(value1.substring (value1.indexOf ("/")+1, value1.lastIndexOf ("/")));
   year1 = parseInt(value1.substring (value1.lastIndexOf ("/")+1, value1.length));
   if (year1.length < 4) {year1+= 2000;}

   month2 = parseInt(value2.substring (0, value2.indexOf ("/")));
   date2 = parseInt(value2.substring (value2.indexOf ("/")+1, value2.lastIndexOf ("/")));
   year2 = parseInt(value2.substring (value2.lastIndexOf ("/")+1, value2.length));
   if (year2.length < 4) {year2+= 2000;}
   
//   alert(month1 + '/' + date1 + '/' + year1 + ' :: ' + month2 + '/' + date2 + '/' + year2)

   if (year1 > year2) return 1;
   else if (year1 < year2) return -1;
   else if (month1 > month2) return 1;
   else if (month1 < month2) return -1;
   else if (date1 > date2) return 1;
   else if (date1 < date2) return -1;
   else return 0;
}