// 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 && oXHRe.status == 200){
				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 = allOpts[e].startdate
		if (allOpts[e].enddate.length > 1){thedates += '-' + 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: ' + allOpts[e].deadline + '</em>';
			} else {
				r+= '<em>Deadline to submit resumes has passed (' + 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 isvaliddate (parm){
	var datereg = /^\d{1,2}\/\d{1,2}\/\d{2,4}$/;
	return datereg.test(parm)
}