// 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");

}



var theDate = new Date();

var 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){

				var exmlDoc = oXHRe.responseXML;

				parseMBA(exmlDoc, dowhat);

			}

		}

		oXHRe.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" );

		oXHRe.send(null);		

	}

}



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';

	}

	if (sch == "other") {sel = ' selected="selected"';} else {sel = '';}	

	optionStr += '<option value="other"' + sel + '>Other</option>';

	document.getElementById('schoolselect').innerHTML = '<select name="school" onchange="if (this.value.length > 1){window.location=\'events.html?school=\' + this.value + \'\';} else {window.location=\'events.html\'}"><option value="">select your school...</option>' + optionStr + '</select>';

	var allOpts = null, qq = null, grabbedStr = null, optStr = null;

}



function parseMBA(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;

		thisAudience = eventsNode[e].getElementsByTagName("audience")[0];

		audienceObj = new Object();

		audienceObj.name = getVal(thisAudience);

		audienceObj.year = getAttr(thisAudience, "yr");

		eventObj.audience = audienceObj;

		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])

		eventObj.deadline = getVal(eventsNode[e].getElementsByTagName("deadline")[0])	

		if (eventObj.deadline.length == 0) {eventObj.deadline = eventObj.enddate;}

		if (eventObj.deadline.length == 0) {eventObj.deadline = eventObj.startdate;}

		allLinks = new Array();

		linksNode = eventsNode[e].getElementsByTagName("link");

		for (i=0;i< linksNode.length;i++){

			linkObj = new Object();

			linkObj.src = getVal(linksNode[i].getElementsByTagName("source")[0]);	

			linkObj.word = getVal(linksNode[i].getElementsByTagName("linkword")[0]);	

			if (linkObj.word != ''){allLinks.push(linkObj)};

		}

		eventObj.links = allLinks;

		events.push(eventObj)

	}

	eval(func);

	eventObj = null;

	audienceObj = null;

	schoolObj = null;

}



function makeLinkList(){

	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('|');

		optionStr += '<li><a href="/careers/student_center/mba/events.html?school=' + qq[1] + '">' + qq[0] + '</a></li>\n';

	}

	document.getElementById('mbaLinkList').innerHTML = '<ul style="margin-top:10px;">' + optionStr + '</ul>';

	var allOpts = null, qq = null, grabbedStr = null, optStr = null;



}



function showschool(parm){

	



	

	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.deadline = events[k].deadline;			

			myevent.time = events[k].time;

			myevent.audience = new Object();

			myevent.audience.year = events[k].audience.year

			myevent.audience.name = events[k].audience.name

			myevent.links = new Array();

			for (u = 0;u<events[k].links.length;u++){

				thisLink = new Object();

				thisLink.src = events[k].links[u].src;

				thisLink.word = events[k].links[u].word;				

				myevent.links.push(thisLink);

			}

			for (x=0;x<allOpts.length;x++){

// sort our results by audience year

				if (parseInt(myevent.audience.year) > parseInt(allOpts[x].audience.year) || (parseInt(myevent.audience.year) == parseInt(allOpts[x].audience.year) && compareDates(myevent.startdate, allOpts[x].startdate) == -1)){

					allOpts.splice(x,0,myevent);

					break;

				}

			}

			if (x == allOpts.length){

				allOpts.push(myevent);	

			}

		}

	}		

	var thisyear = 0

	var hasLink = false;

	

	var ae = document.getElementById("allevents");

	var r = '<table cellpadding="2" cellspacing="2" class="eventTable"><tr><th colspan="4">	<div id="schoolselect"> </div>  </th></tr>';



	

	for(e=0;e<allOpts.length;e++){

		if (allOpts[e].audience.year != thisyear){r+= '<tr><td colspan="4" class="schname"><strong>' + allOpts[e].audience.name + '</strong></td></tr>'; thisyear = allOpts[e].audience.year}

		var thedates = euFormat(allOpts[e].startdate)

		if (allOpts[e].enddate.length > 1){thedates += '-' + euFormat(allOpts[e].enddate);}  

		if (compareDates(todayIs, allOpts[e].startdate) > 0) {

			rowclass=' style="color:#999;"';

			upcomingEvent = false;

		} else {

			rowclass='';

			upcomingEvent = true;

		}

		r += '<tr' + rowclass + '><td>' + allOpts[e].name

		oneWeek = new Date(allOpts[e].deadline);

		oneWeek.setDate(oneWeek.getDate()+7);

		oneWeek = (oneWeek.getMonth()+1) + '/' + oneWeek.getDate() + '/' + oneWeek.getFullYear();

		var tsrc = '';

		var tword = '';

		var hasDeadline = false;

		if (allOpts[e].links.length > 0){

			r+= '<ul>';

			for (y = 0; y< allOpts[e].links.length; y++){

				tsrc = allOpts[e].links[y].src;

				tword = allOpts[e].links[y].word;

				hasDeadline = allOpts[e].deadline.length >0?true:false;

				r+= '<li>' 

				hasLink = tsrc.length > 0?true:false;

				if (isvaliddate(todayIs) && isvaliddate(oneWeek)){

					if (compareDates(oneWeek, todayIs) != 1) {

						hasLink = false;

					}	

				}

				r+= hasLink?'<a href="' + tsrc + '">':'';

				r+= tword;

				r+= hasLink?'</a>':'';

				r+='</li>'	

			}

			r+= '</ul>';

		}

		if (isvaliddate(todayIs) && isvaliddate(oneWeek) && hasDeadline && upcomingEvent){

			if (compareDates(oneWeek, todayIs) == 1) {

				r+= '<em>Deadline to submit resumes: ' + euFormat(allOpts[e].deadline) + '</em>';

			} else {

				r+= '<em>Deadline to submit resumes has passed (' + euFormat(allOpts[e].deadline) + ')</em>';

			}

		}		

		r+= '</td><td>' + thedates + '</td><td>' + allOpts[e].time + '</td><td>' + allOpts[e].location + '</td></tr>'

	}

	document.getElementById('allevents').innerHTML = 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;}



   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;

}



function pushDeadline(parm){

		

}


function euFormat(parm){

	var months = ["January","February","March","April","May","June","July","August","September","October","November","December"];

	d = parm;
	if(isvaliddate(parm)){
		
		d = d.split("/");
		d = d[1] + "&nbsp;" + months[parseInt(d[0]-=1,10)] + "&nbsp;" + d[2];
	}

	return d;

}



function isvaliddate (parm){

	var datereg = /^\d{1,2}\/\d{1,2}\/\d{2,4}$/;

	return datereg.test(parm)

}
