// 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(allOpts[x].startdate, myevent.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;

}
