// /javascript/ajaxNavigation.js
//-----------------------------
window.dhtmlHistory.create();
var recallHistory = function(category, historyData) {
	url = "database-application.php?";
	if (category) { 
		//do something;
		var doAction = "search";
		var pathArray = category.split("/");
		if(pathArray[1].substr(0,3) == "sn="){
			var serialNumber = pathArray[1].substr(3)
			url = url + "sn=" + serialNumber;
			doAction = "";
		}
		else{
			url = url + "category=" + pathArray[1];
		}
		if (pathArray[2]){
			url = url + "&make=" + pathArray[2];
			doAction = "search2";
		}
		if (pathArray[3]){
			url = url + "&class=" + pathArray[3];
			doAction = "search2";
		}
		if (pathArray[4]){
			url = url + "&year=" + pathArray[4];
			doAction = "search2";
		}
		url = url + "&doAction=" + doAction;
	}
	else{
		url = "database-application.php";
	}
	//alert (url);
	getResponse(url);
}
//-----------------------------
window.onload = function() {
	dhtmlHistory.initialize();
	dhtmlHistory.addListener(recallHistory);
	var category=window.location.href.split("/#/");
	category[1] = category[1].replace("/", "");
	var sn;
	if (category[1].indexOf('sn=') != -1){
		sn = category[1].substring(category[1].indexOf("sn=")+3);
		getResponse('database-application.php?sn=' + sn);
	}
	else{
		getResponse('database-application.php?category=' + category[1] + '&doAction=search');
	}
	setStatus('sn:' + sn + ' - " + category[1]:' + category[1]);
}
//-----------------------------
function replaceHtml(el, html) {
	var oldEl = typeof el === "string" ? document.getElementById(el) : el;
	/*@cc_on // Pure innerHTML is slightly faster in IE
	oldEl.innerHTML = html;
	return oldEl;
	@*/
	var newEl = oldEl.cloneNode(false);
	newEl.innerHTML = html;
	oldEl.parentNode.replaceChild(newEl, oldEl);
	/* Since we just removed the old element from the DOM, return a reference
	to the new element, which can be used to restore variable references. */
	return newEl;
}
//-----------------------------
function stateChanged() {
	idToChange = responseDivHolder; 
	if(!idToChange){ idToChange = "content"; }
	//	alert ("id to change: " + idToChange);
	if (xmlHttp.readyState==4) {
		if (!document.getElementById(responseDivHolder)) {
			responseTextHolder = xmlHttp.responseText;
			hideDiv('timer');
		}
		replaceHtml(idToChange,xmlHttp.responseText)
		hideDiv('timer');
	}
	else {
		showDiv('timer');
		//alert ("ready state:" + xmlHttp.readyState);
	}
}
//-----------------------------
function getResponse(url,divForResponse){
	responseDivHolder = divForResponse;
	xmlHttp = GetXMLHttpObject()
	if (xmlHttp == null) {
		alert ("Browser does not support HTTP request")
		return
	}
	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url, true)
	xmlHttp.send(null)
}
//-----------------------------
function GetXMLHttpObject(){
	var objXMLHttp = null
	if (window.XMLHttpRequest) {
		objXMLHttp = new XMLHttpRequest(); //Mozilla
	}
	else if  (window.ActiveXObject) {
		objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); //Explorer
	}
	return objXMLHttp
}
//-----------------------------
function submitQueryToServer(theFormId,theBaseURL,divForResponse) {
	// build query string
	theForm = document.getElementById(theFormId);
	queryString = '';
	for (i=0; i < theForm.elements.length; i++) {
		element = theForm.elements[i];
		if (element.name){
			if (element.type == 'radio' || element.type == 'checkbox'){
				if (element.checked == true){
					queryString += element.name + '=' + element.value + "&";
				}
			}
			else{
				element.value = element.value.replace(/\n/g,'%%');
				queryString += element.name + '=' + element.value + "&";
			}
		}
	}
	getResponse(theBaseURL + '?' + queryString,divForResponse);
	window.location.href = "#saved"; // don't put a slash after the # or it will try to load 'saved'. This just creates a history response if we press back.
}
