function AJAXInteraction(url, callback){
        var req = init();
        req.onreadystatechange = processRequest;

        function init(){
                if(window.XMLHttpRequest){
                        return new XMLHttpRequest();
		}
		else if(window.ActiveXObject){
			return new ActiveXObject("Microsoft.XMLHTTP");
		}
	}

	function processRequest(){
		//readyState of 4 signifies request is complete
		if(req.readyState == 4){
			//status of 200 signifies successful HTTP call
			if(req.status == 200){
				if(callback) callback(req.responseXML);
			}
			else{
				if(document.searchMMYC.autoModel.length <= 0){ 
					/*if(document.searchMMYC.autoYear.value != "#"){
						openMenu('modelMessage');
					}*/
				}
				else{
					if(document.searchMMYC.autoModel.value != ""){
					  var isPitstop = false;
					  for(i = 0; i < document.searchMMYC.search.length; i++){
					    if(document.searchMMYC.search[i].checked){
					      if(document.searchMMYC.search[i].value == "pitstop"){
						isPitstop = true;
					      }
					      break;
					    }
					  }
						if(isPitstop){
		  				  var make = document.searchMMYC.autoMake.value;
		  				  var model = document.searchMMYC.autoModel.value;
		  				  var year = document.searchMMYC.autoYear.value;
		  				  var mmyc = document.searchMMYC.autoModClar.value;
		  				  var redirectString = "http://www.wheelrack.com/upgrade_garage/WheelSearch.jsp?partner=mitsubishi&autoMake=" + make + "&autoModel=" + model + "&autoYear=" + year + "&autoModClar=" + mmyc + "&search=wheel";
						  setTimeout('location=\'/logout.jsp\'', 2000);
						  window.open(redirectString, '', 'toolbar=yes, location=yes,menubar=yes,resizable=yes,scrollbars=yes');
						}else{
						  document.searchMMYC.submit();
						  openMenu('loadingMsg');
						}
					}
				}
			}
		}
	}

	this.doGet=function(){
		req.open("GET", url, true);
		req.send(null);
	}
}

function populateAutoYears(){
  if(document.searchMMYC.autoMake.value != "#"){
  	var targetMake = document.searchMMYC.autoMake.value;
		var url = "/ValidationServlet?autoMake=" + targetMake + "&autoYearsNeeded=true";
		var ajax = new AJAXInteraction(url, yearCallback);
		ajax.doGet();
	}
}

function populateAutoModels(){
	if(document.searchMMYC.autoYear.value != "" &&
	   document.searchMMYC.autoMake.value != ""){
		var targetYear = document.searchMMYC.autoYear.value;
		var targetMake = document.searchMMYC.autoMake.value;
		var search = "";
		var searchDefined = false;
		for(i = 0; i < document.searchMMYC.search.length; i++){
			if(document.searchMMYC.search[i].checked){
				searchDefined = true;
				if(document.searchMMYC.search[i].value == "pitstop"){
					search = "wheel";
				}else{
					search = document.searchMMYC.search[i].value;
				}
				break;
			}
		}
		if(document.searchMMYC.search && !document.searchMMYC.search.length
		   && searchDefined == false){
			searchDefined = true;
			if(document.searchMMYC.search.value == "pitstop"){
				search = "wheel";
			}else{
				search = document.searchMMYC.search.value;
			}
		}
		var url = "/ValidationServlet?autoYear=" + targetYear + "&autoMake=" + targetMake;
		if(searchDefined){
			url = url + "&search=" + search;
		}
		var ajax = new AJAXInteraction(url, validateCallback);
		ajax.doGet();
	}
}

function populateModClar(){
	if(document.searchMMYC.autoYear.value != "" &&
	   document.searchMMYC.autoMake.value != "" &&
	   document.searchMMYC.autoModel.value != ""){
		var targetYear = document.searchMMYC.autoYear.value;
		var targetMake = document.searchMMYC.autoMake.value;
		var targetModel = document.searchMMYC.autoModel.value;
		var searchDefined = false;
		var search = "";
		for(i = 0; i < document.searchMMYC.search.length; ++i){
			if(document.searchMMYC.search[i].checked){
				searchDefined = true;
				search = document.searchMMYC.search[i].value;
				break;
			}
		}
		if(document.searchMMYC.search && !document.searchMMYC.search.length
		   && searchDefined == false){
			searchDefined = true;
			search = document.searchMMYC.search.value;
		}
		var url = "/ValidationServlet?autoYear=" + targetYear + "&autoMake=" + targetMake + "&autoModel=" + targetModel;
		if(searchDefined){
			url = url + "&search=" + search;
		}
		var ajax = new AJAXInteraction(url, clarCallback);
		ajax.doGet();
	}
}

function deleteAutoYears(){
  if(document.searchMMYC.autoYear.options != null){
		while(document.searchMMYC.autoYear.options.length > 0){
	  	deleteIndex = document.searchMMYC.autoYear.options.length - 1;
		  document.searchMMYC.autoYear.options[deleteIndex] = null;
		}
	document.searchMMYC.autoYear.style.display="none";
  }
}

function deleteAutoModels(){
	if(document.searchMMYC.autoModel.options != null){
		while(document.searchMMYC.autoModel.options.length > 0){
			deleteIndex = document.searchMMYC.autoModel.options.length - 1;
			document.searchMMYC.autoModel.options[deleteIndex] = null;
		}
	}	
	closeMenu('loadingMsg');
	closeMenu('autoModelSelect');
	deleteAutoModClar();
}

function deleteAutoModClar(){
	if(document.searchMMYC.autoModClar.options != null){
		while(document.searchMMYC.autoModClar.options.length > 0){
			deleteIndex = document.searchMMYC.autoModClar.options.length - 1;
			document.searchMMYC.autoModClar.options[deleteIndex] = null;
		}
	}
	closeMenu('autoModClarSelect');
	//closeMenu('addtlInfo');
	closeMenu('loadingMsg');
}

function yearCallback(responseXML){
  if(responseXML){
  	var years = responseXML.getElementsByTagName("years")[0];

		if(years.childNodes.length > 0){
			var num = 0;

			myOption = new Option();
			if(document.searchMMYC.langType != null && document.searchMMYC.langType.value == "spanish"){
		  	myOption.text = "Escoja el a" + String.fromCharCode(241) + "o";
			}else{
		  	myOption.text = "Select Year";
			}
		  myOption.value = "#";
		  document.searchMMYC.autoYear.options[0] = myOption;
		  for(loop = 0; loop < years.childNodes.length; loop++){
		 		var autoYear = years.getElementsByTagName("year")[loop];

				myOption = new Option();

		    myOption.text = autoYear.childNodes[0].nodeValue;
		    myOption.value = autoYear.childNodes[0].nodeValue;

				/*if(document.searchMMYC.autoYear.selectedIndex > 0){
        	insertIndex = document.searchMMYC.autoYear.selectedIndex;
			  }
			  else{
			    insertIndex = document.searchMMYC.autoYear.options.length;
			  }*/

        document.searchMMYC.autoYear.options[loop+1] = myOption;
     }
		 //document.searchMMYC.autoYear.style.visibility="visible";
		 document.searchMMYC.autoYear.style.display="inline";
		}
	}
}

function validateCallback(responseXML){
	if(responseXML){
		var models = responseXML.getElementsByTagName("models")[0];
		if(models.childNodes.length > 0){
			var num = 0;

			myOption = new Option();
			myOption.text = "Select Model";
			myOption.value = "";
			document.searchMMYC.autoModel.options[0] = myOption;
			for(loop = 0; loop < models.childNodes.length; loop++){
				var autoModel = models.getElementsByTagName("model")[loop];

				myOption = new Option();

				myOption.text = autoModel.childNodes[0].nodeValue;
				myOption.value = autoModel.childNodes[0].nodeValue;
			
				if(document.searchMMYC.autoModel.selectedIndex > 0){
					insertIndex = document.searchMMYC.autoModel.selectedIndex;
				}
				else{
					insertIndex = document.searchMMYC.autoModel.options.length;
				}

				document.searchMMYC.autoModel.options[insertIndex] = myOption;
			}
			openMenu('autoModelSelect');
		//	openMenu('message');
		//	closeMenu('noModels');
		}
	}
}

function clarCallback(responseXML){
	if(responseXML){
		var clarifiers = responseXML.getElementsByTagName("clarifiers")[0];
		if(clarifiers.childNodes.length > 0){
			var num = 0;

			myOption = new Option();
			myOption.text = "Additional Model Info";
			myOption.value = "";
			document.searchMMYC.autoModClar.options[0] = myOption;
			for(loop = 0; loop < clarifiers.childNodes.length; loop++){
				var modelClar = clarifiers.getElementsByTagName("clar")[loop];

				myOption = new Option();

				myOption.text = modelClar.childNodes[0].nodeValue;
				myOption.value = modelClar.childNodes[0].nodeValue;

				if(document.searchMMYC.autoModClar.selectedIndex > 0){
					insertIndex = document.searchMMYC.autoModClar.selectedIndex;
				}
				else{
					insertIndex = document.searchMMYC.autoModClar.options.length;
				}

				document.searchMMYC.autoModClar.options[insertIndex] = myOption;
			}
			openMenu('autoModClarSelect');
			//document.getElementById('addtlInfo').style.display="inline";
		}
	}
}

/*function setAutoModel(){
	if(document.svy.autoModel.value != ""){
		document.svy.autoModel.value = document.svy.autoModel.value;
	}
	else if(document.svy.autoModelEntry.value != "" ||
		document.svy.autoModelEntry2.value == "Enter Model"){
			document.svy.autoModel.value = document.svy.autoModelEntry.value;
	}
	else if(document.svy.autoModelEntry2.value != "Enter Model" && 
		document.svy.autoModelEntry.value == ""){
			document.svy.autoModel.value = document.svy.autoModelEntry2.value;
	}
	return true;
}*/
	


function openMenu(obj){
	var el = document.getElementById(obj);
	el.style.display="block";
	/*if(obj == "animatedWheel1" || obj == "animatedWheel2" || obj == "animatedWheel3"){
		var browser=navigator.appName;
		if(browser == "Microsoft Internet Explorer"){
		document.getElementById(obj).src = "/images/wheels/misc/loading_ani.gif";
		}
	}*/
}

function closeMenu(obj){
	var el = document.getElementById(obj);
	el.style.display = "none";
}

function clearField(obj){
	if(document.getElementById(obj).value != "Enter Model"){
		document.getElementById(obj).value = "";
	}
}
function checkBeforeSubmit(){
	if(document.searchMMYC.autoModClar.value != ""){
		var isPitstop = false;
		for(i = 0; i < document.searchMMYC.search.length; i++){
		  if(document.searchMMYC.search[i].checked){
		    if(document.searchMMYC.search[i].value == "pitstop"){
		      isPitstop = true;
		    }
		    break;
		  }
		}
		if(isPitstop){
		  var make = document.searchMMYC.autoMake.value;
		  var model = document.searchMMYC.autoModel.value;
		  var year = document.searchMMYC.autoYear.value;
		  var mmyc = document.searchMMYC.autoModClar.value;
		  var redirectString = "http://www.wheelrack.com/upgrade_garage/WheelSearch.jsp?partner=mitsubishi&autoMake=" + make + "&autoModel=" + model + "&autoYear=" + year + "&autoModClar=" + mmyc + "&search=wheel";
		  setTimeout('location=\'/logout.jsp\'', 2000);
		  window.open(redirectString, '', 'toolbar=yes, location=yes,menubar=yes,resizable=yes,scrollbars=yes');
		}else{
		  document.searchMMYC.submit();
		  openMenu('loadingMsg');
		}
	}
}
