function getModelList() {
	var sel = document.getElementById("makeId");
	var val = sel.options[sel.selectedIndex].value;
	if(val != 0) {
   		var url = "ajax.php?call=getModelList&id=" + val;

		if (typeof XMLHttpRequest != "undefined") {
		    req = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
		    req = new ActiveXObject("Microsoft.XMLHTTP");
		}
		req.open("GET", url, true);
		req.onreadystatechange = modelListCallback;
		req.send(null);
	} else {
		document.getElementById("modelTR").style.display = "none";
		document.getElementById("engineTR").style.display = "none";
		document.getElementById("transTR").style.display = "none";
		document.getElementById("buildTR").style.display = "none";		
	}   
}

function modelListCallback() {
    if (req.readyState == 4) {
       	document.getElementById("modelTR").style.display = "";
       	document.getElementById("modelTD").innerHTML = req.responseText;
		document.getElementById("engineTR").style.display = "none";
		document.getElementById("transTR").style.display = "none";
		document.getElementById("buildTR").style.display = "none";	       	
    }
}

function getEngineList() {
	var modelSel = document.getElementById("modelId");
	var modelVal = modelSel.options[modelSel.selectedIndex].value;
	if(modelVal != 0) {
   		var url = "ajax.php?call=getEngineList&modelId=" + modelVal;

		if (typeof XMLHttpRequest != "undefined") {
		    req = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
		    req = new ActiveXObject("Microsoft.XMLHTTP");
		}
		req.open("GET", url, true);
		req.onreadystatechange = engineListCallback;
		req.send(null);
	} else {
		document.getElementById("engineTR").style.display = "none";
		document.getElementById("transTR").style.display = "none";
		document.getElementById("buildTR").style.display = "none";
	}   
}

function engineListCallback() {
    if (req.readyState == 4) {
       	document.getElementById("engineTR").style.display = "";
       	document.getElementById("engineTD").innerHTML = req.responseText;
		document.getElementById("transTR").style.display = "";
		document.getElementById("buildTR").style.display = "";       	
    }
}

function processDealer(id,call) {
	if(id != "" && call != "") {
   		var url = "ajax/dealer.php?id=" + id + "&call=" + call;
		if (typeof XMLHttpRequest != "undefined") {
		    req = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
		    req = new ActiveXObject("Microsoft.XMLHTTP");
		}
		req.open("GET", url, true);
		req.onreadystatechange = dealerCallback;
		req.send(null);
	}	
}

function dealerCallback() {
	if (req.readyState==4 || req.readyState=="complete") { 
		xml = req.responseXML;
		if(xml.getElementsByTagName("error")[0] != "") {
			d = xml.getElementsByTagName("dealer")[0];
			document.getElementById("dealerId").value = d.getAttribute("id");
			document.getElementById("name").value = d.getAttribute("name");
			document.getElementById("contact").value = getValue(d.getElementsByTagName("contact")[0].firstChild);
			document.getElementById("phone").value = getValue(d.getElementsByTagName("phone")[0].firstChild);
			document.getElementById("fax").value = getValue(d.getElementsByTagName("fax")[0].firstChild);
			document.getElementById("email").value = getValue(d.getElementsByTagName("email")[0].firstChild);
			document.getElementById("url").value = getValue(d.getElementsByTagName("url")[0].firstChild);
			add = d.getElementsByTagName("address")[0];
			document.getElementById("address1").value = getValue(add.getElementsByTagName("address1")[0].firstChild);
			document.getElementById("address2").value = getValue(add.getElementsByTagName("address2")[0].firstChild);
			document.getElementById("city").value = getValue(add.getElementsByTagName("city")[0].firstChild);
			document.getElementById("state").value = getValue(add.getElementsByTagName("state")[0].firstChild);
			document.getElementById("zip").value = getValue(add.getElementsByTagName("zip")[0].firstChild);
			document.getElementById("country").value = getValue(add.getElementsByTagName("country")[0].firstChild);
			
			//these values are all inverted to change how the sort occurs in the query.
			document.getElementById("tribuy").checked = getValue(d.getElementsByTagName("tribuy")[0].firstChild) == 0 ? true : false;
			document.getElementById("tires_size").checked = getValue(d.getElementsByTagName("tiresize")[0].firstChild) == 0 ? true : false;
			document.getElementById("install").checked = getValue(d.getElementsByTagName("install")[0].firstChild) == 0 ? true : false;
			
			document.getElementById("active").checked = getValue(d.getElementsByTagName("active")[0].firstChild) == 1 ? true : false;
			
			for(i = 0; i < document.getElementById("status").options.length; i++) {
				if(document.getElementById("status").options[i].value == getValue(d.getElementsByTagName("status")[0].firstChild))
					document.getElementById("status").options[i].selected = true;
			}
			document.getElementById("submit").value = "Update Dealer";
		} else {
			document.getElementById("message").innerHTML = xmlDoc.getElementsByTagName("error")[0].nodeValue;
		}
	}
}

function getLatLon() {
	var add = document.getElementById("address1").value;
	var city = document.getElementById("city").value;
	var state = document.getElementById("state").value;
	var zip = document.getElementById("zip").value;
	if(add != "" && city != "" && state != "" && zip != "") {
   		var url = "ajax/dealer.php?call=latlon&add=" + add + "&city=" + city +"&state=" + state + "&zip=" + zip;

		if (typeof XMLHttpRequest != "undefined") {
		    req = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
		    req = new ActiveXObject("Microsoft.XMLHTTP");
		}
		req.open("GET", url, true);
		req.onreadystatechange = latLonCallback;
		req.send(null);
	} else {
		alert("Address values not provided.");
	}   
}

function latLonCallback() {
	if (req.readyState==4 || req.readyState=="complete") { 
		xml = req.responseXML;
		if(xml.getElementsByTagName("error")[0] == null) {
			d = xml.getElementsByTagName("coordinates")[0];
			document.getElementById("latitude").value = d.getElementsByTagName("lat")[0].childNodes[0].nodeValue;
			document.getElementById("longitude").value = d.getElementsByTagName("lon")[0].childNodes[0].nodeValue;
			alert("Coordinates found!");
		} else {
			alert("Unable to retrieve address coordinates.");
		}
	}	
}

function getValue(node) {
	if(node == null)
		return "";
	else 
		return node.nodeValue;
}