// JavaScript Document

var xmlHttp;
var selectedYear;
var selectedMake;
var selectedModel;
var userAction;

function GetXmlHttpObject() {
	xmlHttp = null;
	try{
		// Firefox, Opera 8.0+, Safari
  		xmlHttp=new XMLHttpRequest();
	} catch (e){
		// Internet Explorer
  		try{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

function getXmlData (id, dependentIds, requiredParams, action) {
	
	xmlHttp = GetXmlHttpObject();
	if(xmlHttp == null) {
		alert("Your browser does not support AJAX");
		return;
	}
	
	var userAction = "";
	var savedPageName = "";
	var installbaseId = "";
	
	var elementId = document.getElementById(id);
	if (elementId) {
		userAction = userAction + elementId.name + "=" + elementId.value.split("~")[0];
		
		if (requiredParams != "") {
			reqParamsArr = requiredParams.split("|");
			for (var i=0 ; i < reqParamsArr.length ; i++) {
				reqParamName = document.getElementById(reqParamsArr[i]).name;
				reqParamValue = document.getElementById(reqParamsArr[i]).value.split("~")[0];;
				userAction = userAction + "&" + reqParamName + "=" + reqParamValue;
			}
		}
	}
	
	userAction = userAction + "&elementName="+elementId.name + "&reqParams=" +
		requiredParams + "&dependentIds="+dependentIds;

	if (document.getElementById("vehicleType")) {
		userAction = userAction + "&vehicleType="+document.getElementById("vehicleType").value;
	}
	
	var url = action + "?" + userAction;
	
	xmlHttp.open("GET",url,true);
	xmlHttp.onreadystatechange = function() { stateChanged(dependentIds); };
	xmlHttp.send(null);
	
}

function stateChanged(childIds) {
	
	if (xmlHttp.readyState == 4) {
		var responseData = xmlHttp.responseXML;
		var childIdsArr = childIds.split("|");
		for (var i = 0 ; i < childIdsArr.length ; i++) {
			
			var elementName = childIdsArr[i];
			
			var childTag = responseData.getElementsByTagName(elementName);
			
			if (childTag[0] != null) {
				if (childTag[0].attributes.getNamedItem("disabled")) {
					document.getElementById(elementName).setAttribute('disabled', 'disabled');
				} else {
					document.getElementById(elementName).removeAttribute('disabled');
				}
				
				var childTagValues = childTag[0].getElementsByTagName("values");
				
				if (childTagValues[0] != null && childTagValues[0] != undefined) {
					var allValues = childTagValues[0].childNodes;
					document.getElementById(childIdsArr[i]).options.length = 0;
					
					for (var j = 0 ; j < allValues.length ; j++) {
						var optionName = allValues[j].firstChild.nodeValue;
						var optionValue = allValues[j].attributes.getNamedItem("value").value;
						
						document.getElementById(elementName).options[j] = new Option(optionName, optionValue);
						
						if (allValues[j].attributes.getNamedItem("selected")) {
							document.getElementById(elementName).options[j].selected = "selected";
						}
					}
				}
			}
		}
    }
}

function setDependentItemIds(depeleNameVals) {
	var eleNameValArr = depeleNameVals.split("-");
	
	for (var i = 0 ; i < eleNameValArr.length ; i++) {
		var elementName = eleNameValArr[i].split("|")[0];
		var elementId = eleNameValArr[i].split("|")[1];
		
		var elementValue = document.getElementById(elementName).value;
		if(elementValue.indexOf("~") != -1) {
			document.getElementById(elementId).value = elementValue.split("~")[1];
		}
	}
}

function setId(elementName, elementId) {
	var elementValue = document.getElementById(elementName).value;
	if(elementValue.indexOf("~") != -1) {
		document.getElementById(elementId).value = elementValue.split("~")[1];
	}
}

function getXmlDataOnChange(newused){
	xmlHttp = GetXmlHttpObject();
	if(xmlHttp == null) {
		alert("Your browser does not support AJAX");
		return;
	}

	if(document.getElementById(newused+'year')){
		userAction = "&userAction=GET_YEAR&newUsed="+newused;
		name = 'year';
	}

	else if(document.getElementById(newused+'make')){
		userAction = "&userAction=GET_MAKE&newUsed="+newused;
		name = 'make';
	}

	var url = "ajax.do?"+userAction;
	//alert(url);
	xmlHttp.open("GET",url,true);
	xmlHttp.onreadystatechange = function() { stateChanged(newused+name); };
	xmlHttp.send(null);
}

function getReviewXmlData(name,id){

	xmlHttp = GetXmlHttpObject();
	if(xmlHttp == null){
		alert("Your browser does not support AJAX");
		return;
	}
	var itemValue = document.getElementById(id).value;
	var url = "userAction=GET_REVIEW_DATA?ajaxData.do&fieldName="+name+"&itemValue="+itemValue+"&selectedItem="+id;

	alert(url);
	xmlHttp.open("GET",url,true);
	xmlHttp.onreadystatechange = function() { stateChanged(name); };
	xmlHttp.send(null);
}

function cacheDomain(domainname) {
	xmlHttp = GetXmlHttpObject();
	if(xmlHttp == null){
		alert("Your browser does not support AJAX");
		return;
	}
	var url = "ajax.do?userAction=CACHE_DOMAIN&domainName="+domainname;

	xmlHttp.open("GET",url,true);
	xmlHttp.onreadystatechange = function() { stateDomainChange(); };
	xmlHttp.send(null);

}

function stateDomainChange() {
  if(xmlHttp.readyState == 4) {
     var responseData = xmlHttp.responseXML;
  }
}