// JavaScript Document


//Thanks to www.webpasties.com for this source code.
function getHTTPObject() {

  var xmlhttp;

  /*@cc_on

  @if (@_jscript_version >= 5)

    try {

      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

    } catch (e) {

      try {

        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

      } catch (E) {

        xmlhttp = false;

      }

    }

  @else

  xmlhttp = false;

  @end @*/

  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {

    try {

      xmlhttp = new XMLHttpRequest();

    } catch (e) {

      xmlhttp = false;

    }

  }

  return xmlhttp;

}

var http = getHTTPObject(); // We create the HTTP Object

	//function setWaitCursor(widget){
	//alert('' + widget);
		//document.body.style.cursor = 'wait';
		//document.getElementById("make").style.cursor = 'wait'; //test
	//	widget.style.cursor = 'wait';
		//for(var i=0; i<1000000; i++){
		//	var toto = "toto" + "toto";
		//}		
	//}
	//function setDefaultCursor(widget){
	//alert('' + widget.style.cursor);
		//document.body.style.cursor = 'default';
		//document.getElementById("make").style.cursor = 'default'; //test
	//	widget.style.cursor = 'default';
	//}

	function changeStatus(){ //test
		window.status= ( "Waiting response from server...");
	}
//_______________________________________________________________________

		function handleHttpResponseModel() 
		{ 
			if (http.readyState == 4) 
			{ 
				document.getElementById("make").style.cursor = "default";
				document.body.style.cursor = "default";
				results = http.responseText; 
				var cbo = document.getElementById("model");
				var lstModels = results.split(",");
				setItemsCBO(cbo, lstModels);
			} 
			else{
				document.getElementById("make").style.cursor = 'wait';
				document.body.style.cursor = "wait";
			}
		}
	  //Update the model list according to selected make.
	  function updateModel() 
	  {	
	  	document.getElementById("partcolumntext").value = "";
		document.getElementById("search_results").innerHTML = "";
		

	  	// clear year and engine boxes
	  	var cbo1 = document.getElementById("year");
		removeAllItems(cbo1);
		var cbo2 = document.getElementById("engine");
		removeAllItems(cbo2);
	  
		var cbo = document.getElementById("model");
		removeAllItems(cbo);
		
		var makeID = document.getElementById("make").value;
		http.open("GET", "getModels.php?makeID=" + makeID, true);
		http.onreadystatechange = handleHttpResponseModel; 
		http.send(null);

	
      }   
	  
	  //_________________________________________________________________________________
	  
	  function handleHttpResponseYear() 
		{ 
			if (http.readyState == 4) 
			{ 
				document.getElementById("model").style.cursor = 'default';
				document.body.style.cursor = "default";
				results = http.responseText; 
		
				var cbo = document.getElementById("year");
				var lstYears = results.split(",");
				setItemsCBO(cbo, lstYears);
			} 
			else{
				document.getElementById("model").style.cursor = 'wait';
				document.body.style.cursor = "wait";
			}
		}
	  //Update the model list according to selected make.
	  function updateYear() 
	  { 
	  	//alert('');//test
		var cbo = document.getElementById("year");
		removeAllItems(cbo);
		var cbo2 = document.getElementById("engine");
		removeAllItems(cbo2);
		
		var makeID = document.getElementById("make").value;
		var modelID = document.getElementById("model").value;
		
		var param = "makeID=" + makeID + "&modelID=" + modelID;
		http.open("GET", "getYears.php?" + param, true); 
		http.onreadystatechange = handleHttpResponseYear; 
		http.send(null);
		
      }  
	  
	  
	  //_______________________________________________________________
	  
	    
	  function searchPart_engine_or_text()
	  {
	  		var txtVal= document.getElementById("partcolumntext").value;
	  		if(txtVal !="")
			{
				searchPartsAlt();
			} 
			else
			{
	  			searchPartFromEng();
			}	
	  }
	  
	  
	  function searchPartFromEng()
	  {
	  	if( document.getElementById("product").value != ""){
					searchPart();
		}	
	  }
	  
	  function handleHttpResponseEngine() 
		{ 
			if (http.readyState == 4) 
			{ 
				document.getElementById("year").style.cursor = 'default';
				document.body.style.cursor = "default";
				results = http.responseText; 
				//alert('result=' + results);//test
				if(results != "")
				{
					var cbo = document.getElementById("engine");
					var lstEngines = results.split(",");
					setItemsCBO(cbo, lstEngines);
				}
				if( document.getElementById("product").value != ""){
					searchPart();
				}
			} 
			else{
					document.getElementById("year").style.cursor = 'wait';
					document.body.style.cursor = "wait";
				}
		}
	  //Update the engine list according to selected year.
	  function updateEngine() 
	  {
	  	//alert('');//test
		var cbo = document.getElementById("engine");
		removeAllItems(cbo);
		
		var makeID = document.getElementById("make").value;
		var modelID = document.getElementById("model").value;
		var yearID = document.getElementById("year").value;
		
		var param = "makeID=" + makeID + "&modelID=" + modelID + "&yearID=" + yearID;
		http.open("GET", "getEngines.php?" + param, true); 
		http.onreadystatechange = handleHttpResponseEngine; 
		http.send(null);
		
		//case when product was already selected
		//if( document.getElementById("product").value != ""){
		//		searchPart();
		//}
		
     }  
	  
	  //_________________________________________________________________
	  
	   function handleHttpResponseParts() 
		{ 
			if (http.readyState == 4) 
			{ 
				document.getElementById("product").style.cursor = 'default';
				document.body.style.cursor = 'default';
				results = http.responseText; 
				//alert('result=' + results);//test
				if(results != "")
				{
					document.getElementById("search_results").innerHTML = results;
				}
			} 
			else{
				document.getElementById("product").style.cursor = 'wait';
				document.body.style.cursor = 'wait';
			}
		} 	
	  function searchPart()
	  {
	 	var makeID = document.getElementById("make").value;
		var modelID = document.getElementById("model").value;
		var yearID = document.getElementById("year").value;
		var engineID = document.getElementById("engine").value;
		var productID = document.getElementById("product").value;
		
		//if(makeID != "" && modelID != "" && yearID != "" && productID != "")
		
		var param = "makeID=" + makeID + "&modelID=" + modelID + "&yearID=" + yearID + "&productID=" + productID + "&engineID=" + engineID;
		http.open("GET", "getParts.php?" + param, true); 
		http.onreadystatechange = handleHttpResponseParts; 
		http.send(null);	
	  }
	  
	 function searchPartsAlt()
	 {
	 	// clear other list boxes
	  	var cbo1 = document.getElementById("make");
		cbo1.selectedIndex = -1;
	  	var cbo2 = document.getElementById("model");
		removeAllItems(cbo2);
	  	var cbo3 = document.getElementById("year");
		removeAllItems(cbo3);
		var cbo4 = document.getElementById("engine");
		removeAllItems(cbo4);
	 
	 	var productID = document.getElementById("product").value;
		
		
		//var colField = document.getElementById("partcolumn").value;
		var colField = "PartNumber";
		var colValue = document.getElementById("partcolumntext").value;
		colValue =  colValue.replace(/^\s+/g, '').replace(/\s+$/g, '');
	
		if(productID !="" && colField != "" && colValue != "")
		{
			var param = "productID=" + productID + "&field=" + colField + "&value=" + colValue;
			http.open("GET", "getParts.php?" + param, true); 
			http.onreadystatechange = handleHttpResponseParts; 
			http.send(null);
		}
		
		if(productID != "")
		{}
		else
		{
			alert("Please select a product line.");
		}
	 }
	 
	 function test(){
	 	var cbo = document.getElementById("make");
		removeAllItems(cbo);	
	 }
	 
	 
	  
	  
	 function removeAllItems(cbo)
	 {
		for(var x=cbo.options.length-1; x>=0; x--)
		{
			cbo.options[x] = null;	
		}
	 }
	 
	 function showImage(pic1, pic2, partnumber)
	 {
	 	var url = "showPic.php?pic1=" + pic1 + "&pic2=" + pic2 + "&pn=" + partnumber;
		
	 	newwindow = window.open(url,'name','fullscreen=yes,menubar=yes,location=no,resizable=yes,scrollbars=no,status=no');
		if (window.focus) {newwindow.focus();}
	 }
	 
	 function setItemsCBO(cbo, arr) //test
	{
		for(var i=0; i<arr.length; i++)
		{
			sva = arr[i].split(":");
			var op = new Option(sva[1], sva[0]);
			cbo.options[i] = op;
		//	op.onclick = "alert('jkk');";
			//cbo.options[i] = new Option(sva[1], sva[0]);
		}
	}
	
	function setSessionVars()
	{
		alert('');
	  var url = "session.php";
	  http.open("POST", url, true);				
	  http.send();
	}
	 
	 

