/*============================================================*/
/*	-------------- AJAX --------------------------------------
/*	removeAllOptions(field)
/*		- Remove all options within the search results box
/*
/*	createXMLHttpRequest()
/*	handleStateChange()
/*		- Needed for AJAX calls
/*
/*	startNameSearch(searchName,len)
/*		- Called when any characters are placed
/*		into the Name field
/*
/*
/*	startSchoolSearch(schoolName,len,loc)
/*		- Called when there is a change in the dropdown
/*		of school level + school name
/*
/*	nameOutput(detailsArray)
/*	schoolOutput(detailsArray)
/*		- Places returned data into the search results box
/*
/*============================================================*/
var xmlHttp;
var requestType = "";

// Function to remove all options
function removeAllOptions(field) {
	var i = 0;
	var optionNum = field.options.length;
	for (i = 0; i <= optionNum; i++)  {
		field.options[0] = null;
	}
	document.getElementById("searchResults").options[0] = new Option('No Results','');
	document.results.gotourl.disabled = true;
}

// Create the XMLhttpRequest
function createXMLHttpRequest() {
	var arrow = document.getElementById("loadArrow"); // Variable for arrow animation
	arrow.style.visibility = "visible"; // Make arrow animation visible
    if (window.ActiveXObject) {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    } 
    else if (window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();
    }
}

// Start Name Search  
function startNameSearch(searchName,len) {
	if (len <= 2) {
	    removeAllOptions(document.getElementById("searchResults"));
	}
	
	if (len > 2) {
	    searchName = escape(searchName);
	    createXMLHttpRequest();
	    requestType = "searchName";
		
	    var url = "searchMy-ajax.phtml?searchName="+searchName;
	    xmlHttp.onreadystatechange = handleStateChange;
	    xmlHttp.open("GET", url, true);
	    xmlHttp.send(null);
	}
}

// Start School Search
function startSchoolSearch(loc) {
	removeAllOptions(document.getElementById("searchResults"));
	loc = escape(loc);
    createXMLHttpRequest();
	requestType = "searchSchool";
    
    var url = "searchMy-ajax.phtml?searchLoc="+loc;
    xmlHttp.onreadystatechange = handleStateChange;
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
}
    
function handleStateChange() {
    if(xmlHttp.readyState == 4) {
		if(xmlHttp.status == 200) {	
            var xmlDoc = xmlHttp.responseXML;
		    var sitesNode = xmlDoc.getElementsByTagName("sites")[0];
		    var detailsArray = sitesNode.getElementsByTagName("details");

			if (requestType == "searchName") { nameOutput(detailsArray); }
			else if (requestType == "searchSchool") { schoolOutput(detailsArray) };
        }
    }
}

function nameOutput(detailsArray) {
	removeAllOptions(document.getElementById("searchResults"));
    var currentDetails = null;
	var currentNode = null;
    var out = "";
	//NEW
	var currentValue;
	var currentTitle;
	
	if (document.searchName.name.value.length == "0") { removeAllOptions(document.getElementById("searchResults")); }
	else {
		for(var i = 0; i < detailsArray.length; i++) {
			currentDetails = detailsArray[i];
	
			var fullname = currentDetails.getElementsByTagName("fullname")[0].childNodes[0].nodeValue;
			var sitetitle = currentDetails.getElementsByTagName("sitetitle")[0].childNodes[0].nodeValue;
			var siteid = currentDetails.getElementsByTagName("siteid")[0].childNodes[0].nodeValue;
			var trackid = currentDetails.getElementsByTagName("trackid")[0].childNodes[0].nodeValue;
			
			siteid = siteid.replace("'","%27"); // Replace
			fullname = fullname.replace("&#241;","%F1"); // Replace with ntilde escape character
			fullname = unescape(fullname); // Unescape to display ntilde
			
			currentValue = "classes.phtml?site_id="+siteid+"&tracking_id="+trackid;
			currentTitle = fullname+" - " +sitetitle;
			document.results.searchResults.options[i] = new Option(currentTitle,currentValue);
	
			}
		
		if (document.searchName.name.value.length > 0) {
			//document.getElementById("searchResults").innerHTML = out;
			document.results.gotourl.disabled = false;
			}
	}
	var arrow = document.getElementById("loadArrow"); // Variable for arrow animation
	arrow.style.visibility = "hidden"; // Hide arrow animation
}

function schoolOutput(detailsArray) {
	removeAllOptions(document.getElementById("searchResults"));
    var currentDetails = null;
	var currentNode = null;
    var out = "";
	//NEW
	var currentValue;
	var currentTitle;
	
	// Display if there are no sites found
	if (detailsArray.length == 0) {
		document.results.searchResults.options[0] = new Option("There are currently no sites for this school","");
	}
	else {
		for(var i = 0; i < detailsArray.length; i++) {
			currentDetails = detailsArray[i];
			
			var fullname = currentDetails.getElementsByTagName("fullname")[0].childNodes[0].nodeValue;
			var sitetitle = currentDetails.getElementsByTagName("sitetitle")[0].childNodes[0].nodeValue;
			var siteid = currentDetails.getElementsByTagName("siteid")[0].childNodes[0].nodeValue;
			var trackid = currentDetails.getElementsByTagName("trackid")[0].childNodes[0].nodeValue; // WORKING, identical to above
			siteid = siteid.replace("'","%27"); // Replace
			fullname = fullname.replace("&#241;","%F1"); // Replace with ntilde escape character
			fullname = unescape(fullname); // Unescape to display ntilde
			
			currentValue = "classes.phtml?site_id="+siteid+"&tracking_id="+trackid;
			currentTitle = fullname+" - " +sitetitle;
			document.results.searchResults.options[i] = new Option(currentTitle,currentValue);
			
			}
	}
			
	if (detailsArray.length > "0") {
		document.results.gotourl.disabled = false;
		}
	
	if (detailsArray.length == 0) { 
		document.results.gotourl.disabled = true;
		}
	var arrow = document.getElementById("loadArrow"); // Variable for arrow animation
	arrow.style.visibility = "hidden"; // Hide arrow animation
}