//©2007 The University of the Holy Land, all rights reserved.
var memberListXML, memberListXSL, memberList, memberFormat;
var queryString = new Array;
var docAnchor = window.location.hash.substring(1,window.location.hash.length);

function setUp() {
	/*if (testXML()) {
		document.getElementById("content").innerHTML = "<div align='center' class='big'>Loading and processing data...<\/div>"
	}*/
	queryString = getQueryString(); // To try a query string, append this to the URL (careful, values are case sensitive): ?name=WilliamBroughton&category=Faculty
	memberListXML = loadXMLDoc("personnel.xml");
	memberListXSL = loadXMLDoc("personnel.xsl");
	switch (BrowserDetect.browser) {
		case 'Explorer':
			try {
				memberListXML.onreadystatechange = setUp2();
				memberListXSL.onreadystatechange = setUp2();
			} catch(msie_error) {
				memberListXML.onreadystatechange = setUp2;
				memberListXSL.onreadystatechange = setUp2;
			}
			break;
		default:
			memberListXML.onreadystatechange = setUp2;
			memberListXSL.onreadystatechange = setUp2;
	}
}

function setUp2() {
	if (memberListXML.readyState == 4 && memberListXSL.readyState == 4) {
		memberList = memberListXML.responseXML;
		memberFormat = memberListXSL.responseXML;
		if (docAnchor) {
			setRoleData(docAnchor);
		} else if(queryString['name']) {
			setPersonnelData(queryString['name'])
		} else if(queryString['category']) {
			setRoleData(queryString['category']);
		} else {
			document.getElementById("content").innerHTML = xsltProcess(memberList, memberFormat);
		}
	}
}

function setPersonnelData(targetId) {
	var entryList = memberList.getElementsByTagName('entry');
	var personnelNode;
	for (var entryCount = 0; entryCount < entryList.length; entryCount++) {
		if (targetId == entryList[entryCount].getElementsByTagName('id')[0].firstChild.nodeValue) {
			personnelNode = entryList[entryCount];
		}
	}
	document.getElementById("content").innerHTML = xsltProcess(personnelNode, memberFormat);
	scrollTo(0,0);
}

function setRoleData(targetRole) {
	var xmlContext = new ExprContext(memberList);
	xmlContext.setVariable("target_role", new StringValue(targetRole));
	var result = domCreateDocumentFragment(new XDocument);
	xsltProcessContext(xmlContext, memberFormat, result);
	document.getElementById("content").innerHTML = xmlText(result);
	scrollTo(0,0);
}

function categoryChange() {
	var targetRole = document.getElementById('catSelect').value;
	if (!memberListXML) {
		window.location.hash = targetRole;
	} else {
		if (targetRole != "all") {
			setRoleData(targetRole);
		} else {
			document.getElementById("content").innerHTML = xsltProcess(memberList, memberFormat);
		}
	}
}