var aRet, sMethod, sReturn

var initQS = false

var qs = document.location.toString().toQueryParams()
if (qs && qs.selValMakes && qs.selValMakes.length) initQS = true


function init() {
	xmlcallback = procResponse
	//xmlhttpadd("servermethods.asp?method=reviews.getmakes")
	xmlhttpadd("/servermethods.asp?method=values.getmakes")
}

function procResponse() {
	aRet = xmlhttp.responseText.split("|!|"); sMethod = aRet[0]; sReturn = aRet[1]

	switch(sMethod) {
		case "reviews.getmakes"		:	popSelect($("selRevMakes"),sReturn.split("|"));									
										break
		case "values.getmakes"		:	popSelect($("selValMakes"),sReturn.split("|"));

										if (initQS && qs.selValMakes) {
											for (i=0;i<$("selValMakes").options.length;i++) {
												if ($("selValMakes").options[i].value == qs.selValMakes) { $("selValMakes").options[i].selected = true }
											}
											if ($F("selValMakes")) xmlhttpadd('/servermethods.asp?method=values.getmodels&p0=' + $F("selValMakes"))
										}

										break
		case "values.getmodels"		:	$("selValModels").options.length = 1;
										$("selValDerivs").options.length = 1;
										popSelect($("selValModels"),sReturn.split("|"));

										if (initQS && qs.selValModels) {
											for (i=0;i<$("selValModels").options.length;i++) {
												if ($("selValModels").options[i].value == qs.selValModels) { $("selValModels").options[i].selected = true }
											}
											if ($F("selValModels")) xmlhttpadd('/servermethods.asp?method=values.getderivs&p0=' + $F("selValMakes") + "&p1=" + $F("selValModels"))
										}

										break
		case "values.getderivs"		:	$("selValDerivs").options.length = 1;
										popSelect($("selValDerivs"),sReturn.split("|"));

										if (initQS && qs.selValModels) {
											for (i=0;i<$("selValDerivs").options.length;i++) {
												if ($("selValDerivs").options[i].value == qs.selValDerivs) { $("selValDerivs").options[i].selected = true }
											}
											if ($F("selValMakes") && $F("selValModels") && $F("selValDerivs")) {
												xmlhttpadd('/servermethods.asp?method=values.getvalues&p0=' + $('selValMakes').value + '&p1=' + $('selValModels').value + '&p2=' + $("selValDerivs").value)
											}
										}
										
										break
		case "values.getvalues"		:	popValues(sReturn);
										if ($F("selValMakes") && $F("selValModels") && $F("selValDerivs")) {
											xmlhttpadd('/servermethods.asp?method=reviews.checkreview&p0=' + $('selValMakes').value + '&p1=' + $('selValModels').value + '&p2=' + $("selValDerivs").value)
										}
										break
		case "reviews.checkreview"	:	if (sReturn == 1) { fillLink(true) } else { fillLink(false) }; break
		
		case "misc.repayments"		:	if(sReturn == "nan"){flashBorder($('txtGIncome'));$('repaymentCell').innerHTML = "";}
										else{$('repaymentCell').innerHTML = sReturn;};break;

		case "echo"					:	alert(sReturn); break
		case "error"				:	alert("Sorry we currently have no information for this make"); break
		default						:	alert("method " + sMethod + " client handler not found")
	}
}

function fillLink(bLink) {
	if (bLink) {
		window.eMakeID = $('selValMakes').value
		window.eModelID = $('selValModels').value
		$("tbVals").style.cursor = "pointer"
		for (i=0;i<$("tbVals").childNodes.length;i++) {
			var oNode = $("tbVals").childNodes[i]
			if (oNode.nodeName == "TR") {
				for (x=0;x<oNode.childNodes.length;x++) {
					oNode.childNodes[x].style.textDecoration = "underline"
					oNode.childNodes[x].style.color = "#dc008d"
					oNode.childNodes[x].title = "Click for a review"
				}
			}
		}
		$("tbVals").onclick = function() { document.location = "review.html?makeid=" + window.eMakeID + "&modelid=" + window.eModelID }
	} else {
		$("tbVals").style.cursor = ""
		$("tbVals").onclick = ""
	}
}

function popValues(sVals) {
	var oTBody = document.createElement("TBODY")
	aYrs = sVals.split("|")
	if ($('tblVals')) {
		for (i=0;i<aYrs.length;i++) {
			if (aYrs[i].length > 0) {
				var aVals = aYrs[i].split("$$")
				var oTR = document.createElement("TR")
				for (x=0;x<aVals.length;x++) {
					if (aVals[x].length > 0) {
						var oTD = document.createElement("TD")
						oTD.innerHTML = aVals[x]
						oTD.style.textAlign = "center"
						oTR.appendChild(oTD)
					}
				}
				if (i % 2 == 1) { oTR.style.backgroundColor = "#F1F1F1"; }
				oTBody.appendChild(oTR)
			}
		}
	}
	if (oTBody.childNodes.length > 0) {
		if ($("tbVals")) {
			for (i=0;i<$("tbVals").childNodes.length;i++) {	$("tbVals").removeChild($("tbVals").childNodes[i]) }
			for (i=0;i<$("tblVals").childNodes.length;i++) {
				if ($("tblVals").childNodes[i].id == "tbVals") {
					$("tblVals").removeChild($("tblVals").childNodes[i])
				}
			}
		}
		oTBody.id = "tbVals"
		$('tblVals').appendChild(oTBody)
	}
}
