String.prototype.endsWith = function(suffix) {
    if (this.length < suffix.length)
        return false;
    return this.lastIndexOf(suffix) === this.length - suffix.length;
};

function GetXMLDoc(filename) {
	try {
		if (window.XMLHttpRequest) {
			// code for IE7+, Firefox, Chrome, Opera, Safari
			xmlhttp = new XMLHttpRequest();
		}
		else {
			// code for IE6, IE5
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}

		xmlhttp.open("GET", filename, false);
		xmlhttp.send();
		xmlDoc = xmlhttp.responseXML; 
		
		return xmlDoc;
	}
	catch (err) {
		return null;
	}
}

function GetXMLItem(item, itemName)
{
	try {
		return item.getElementsByTagName(itemName)[0].childNodes[0].nodeValue;
	}
	catch (err) {
		return "";
	}
}

function ShowEvents(filename) {
	try {
		var events = GetXMLDoc(filename).getElementsByTagName("event");

		document.write('<div class="sideBox"><h3>News / Events</h3><div class="contents">');
		for (var i = 0; i < events.length; i++) { 
			document.write('<div>');
			document.write('<span class="title">' + GetXMLItem(events[i], "title") + '</span><br />');
			document.write('<span class="date">' + GetXMLItem(events[i], "date") + '</span><br />');
			document.write('<span class="desc">' + GetXMLItem(events[i], "desc") + '</span>');
			document.write('</div>');
			if (i < (events.length - 1))
				document.write('<hr>');
		}
		document.write('</div></div>');
	}
	catch (err) {
	}
}

function ShowMenu(filename) {
	try {
		var menuItems = GetXMLDoc(filename).getElementsByTagName("item");
		for (var i = 0; i < menuItems.length; i++) { 
			var title = GetXMLItem(menuItems[i], "title");
			var tooltip = GetXMLItem(menuItems[i], "tooltip");
			var url = GetXMLItem(menuItems[i], "url");
			var newWindow = GetXMLItem(menuItems[i], "newwindow");

			if (filename.toString().substr(0, 2) == "..")
			    url = "../" + url;
			
			var attr = '';
			if (tooltip != '')
				attr += ' title="' + tooltip + '"';
			else
				attr += ' title="' + title + '"';
			
			var fileType = '';
			if (url.endsWith('.html') || url.endsWith('.htm') || url.endsWith('/'))
				fileType = '';
			else if (url.endsWith('.pdf')) 
				fileType = 'pdf';
			else
				fileType = 'file';

			var cssClass = '';
			if (fileType != '')
				cssClass = ' class="' + fileType + '"';

			//if (fileType == 'pdf' || GetXMLItem(menuItems[i], "newwindow") == 'true')
			if (newWindow == 'true')
				attr += ' target="_blank"';

			document.write('<li' + cssClass + '><a href="' + url + '"' + attr + '>' + title + '</a></li>');
		}
	}
	catch (err) {
	}
}

function ShowFaculty(filename)
{
	try {
	    var faculty = GetXMLDoc(filename).getElementsByTagName("person");

		document.write('<table cellpadding="0" cellspacing="0" border="0">');
		document.write('<tr><th>Name</th><th>Department</th><th class="center">Email</th><th class="center">Website</th></tr>');
		for (var i = 0; i < faculty.length; i++) { 
			var email = GetXMLItem(faculty[i], "email");
			var web = GetXMLItem(faculty[i], "web");

			if (i % 2 == 0)
				document.write('<tr class="alt">');
			else
				document.write('<tr>');

			document.write('<td>' + GetXMLItem(faculty[i], "name") + '</td>');
			document.write('<td>' + GetXMLItem(faculty[i], "dept") + '</td>');

			if (email != "")
				document.write('<td class="center"><a href="mailto:' + email + '">Email</a></td>');
			else
				document.write('<td></td>');

			if (web != "")
				document.write('<td class="center"><a href="' + web + '" target="_blank">Website</a></td>');
			else
				document.write('<td></td>');
			
			document.write('</tr>');
		}
		document.write('</table>');
	}
	catch (err) {
	}
}

function ShowStaff(filename)
{
	try {
	    var staff = GetXMLDoc(filename).getElementsByTagName("person");

		document.write('<table cellpadding="0" cellspacing="0" border="0">');
		document.write('<tr><th>Name</th><th>Position</th></tr>');
		for (var i = 0; i < staff.length; i++) { 
			if (i % 2 == 0)
				document.write('<tr class="alt">');
			else
				document.write('<tr>');

			document.write('<td>' + GetXMLItem(staff[i], "name") + '</td>');
			document.write('<td>' + GetXMLItem(staff[i], "position") + '</td>');
			document.write('</tr>');
		}
		document.write('</table>');
	}
	catch (err) {
	}
}

function ShowCambridge(filename) {
	try {
	    var menuItems = GetXMLDoc(filename).getElementsByTagName("item");

		document.write('<div class="fileList"><ul>');
		for (var i = 0; i < menuItems.length; i++) { 
			var title = GetXMLItem(menuItems[i], "title");
			var tooltip = GetXMLItem(menuItems[i], "tooltip");
			var url = GetXMLItem(menuItems[i], "url");
			var newWindow = GetXMLItem(menuItems[i], "newwindow");
			
			var attr = '';
			if (tooltip != '')
				attr += ' title="' + tooltip + '"';
			else
				attr += ' title="' + title + '"';
			
			var fileType = '';
			if (url.endsWith('.pdf')) 
				fileType = 'pdf';
			else if (url.endsWith('.jpg') || url.endsWith('.gif') || url.endsWith('.png')) 
				fileType = 'form';
			else
				fileType = 'web';

			var cssClass = '';
			if (fileType != '')
				cssClass = ' class="' + fileType + '"';

			if (newWindow == 'true')
				attr += ' target="_blank"';

			document.write('<li' + cssClass + '><a href="' + url + '"' + attr + '>' + title + '</a></li>');

		}
		document.write('</ul></div>');
	}
	catch (err) {
	}
}

function ShowCurrentYear() {
    var d = new Date();
    document.write(d.getFullYear());
}

function ShowBoard(filename) {
    try {
        var items = GetXMLDoc(filename).getElementsByTagName("item");

        document.write('<div class="noticeBoard"><ul>');
        for (var i = 0; i < items.length; i++) {
            var url = GetXMLItem(items[i], "url");

            document.write('<li>');
            document.write(GetXMLItem(items[i], "desc"));
            if (url != '')
                document.write(" - <a href='" + url + "'>Click Here</a>");
            document.write('</li>');
        }
        document.write('</ul></div>');
    }
    catch (err) {
    }
}

function getQuerystring(key, valueIfNull) {
    if (valueIfNull == null) valueIfNull = "";
    key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
    var qs = regex.exec(window.location.href);
    if (qs == null)
        return valueIfNull;
    else
        return qs[1];
}
