// 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 handleHttpResponseMake() 
		{ 
			if (http.readyState == 4) 
			{ 
				document.getElementById("year").style.cursor = "default";
				document.body.style.cursor = "default";
				results = http.responseText; 
				var cbo = document.getElementById("make");
				var lstMakes = results.split(",");
				setItemsCBO(cbo, lstMakes);
			} 
			else{
				document.getElementById("year").style.cursor = 'wait';
				document.body.style.cursor = "wait";
			}
	}
     function updateMake()
	 {	
	 	if(document.getElementById("partcolumntext")){
	  		document.getElementById("partcolumntext").value = "";
		}
		document.getElementById("search_results").innerHTML = "";
		
		var cbo3 = document.getElementById("make");
		removeAllItems(cbo3);
	  

	  	// clear year and engine boxes
		var cbo2 = document.getElementById("engine");
		removeAllItems(cbo2);
	  
		var cbo = document.getElementById("model");
		removeAllItems(cbo);
		
		var cboProd = document.getElementById("product");
		cboProd.selectedIndex = -1;

		var yearID = document.getElementById("year").value;
		//alert( yearID);
		//http.open("GET", "getMakes.php?yearID=" + yearID, true);
        http.open("GET", "../wclib/dispatch.php?function=getMakes&yearID=" + yearID, true);
		http.onreadystatechange = handleHttpResponseMake; 
		http.send(null);

	
      }
	  


		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(",");
				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(isSearchByYear)
	  {	
	  	if(document.getElementById("partcolumntext")){
	  			document.getElementById("partcolumntext").value = "";
		}
		document.getElementById("search_results").innerHTML = "";
		

	  	
	  	var cbo1 = document.getElementById("year");
		//removeAllItems(cbo1);
		var cbo2 = document.getElementById("engine");
		removeAllItems(cbo2);
	  
		var cbo = document.getElementById("model");
		removeAllItems(cbo);
		
		
		
		if(isSearchByYear == false)
		{
		      removeAllItems(cbo1);
		}
	
		
		var yearID = document.getElementById("year").value;
		var makeID = document.getElementById("make").value;
		
		
		
        var isCustom = "";
        if(makeID.indexOf(";") > -1) //support for custom.
        {
           var tab = makeID.split(";");
           makeID = tab[0];
           isCustom = tab[1];
        }
		
		
		var param = "function=getModels&makeID=" + makeID + "&yearID=" + yearID + "&isCustom=" + isCustom;
	
		//http.open("GET", "getModels.php?" + param, true);
        http.open("GET", "../wclib/dispatch.php?" + param, 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 isCustom = "";
        if(makeID.indexOf(";") > -1) //support for custom.
        {
           var tab = makeID.split(";");
           makeID = tab[0];
           isCustom = tab[1];
        }
		
		var param = "function=getYears&makeID=" + makeID + "&modelID=" + modelID + "&isCustom=" + isCustom;
		//alert(param);
		//http.open("GET", "getYears.php?" + param, true); 
		http.open("GET", "../wclib/dispatch.php?" + param, true);
		http.onreadystatechange = handleHttpResponseYear; 
		http.send(null);

      }  
	  
	  
	  //_______________________________________________________________
	  
	    
	  function searchPart_engine_or_text(isSearchByYear)
	  {
	  		var txtVal= "";
			if(document.getElementById("partcolumntext")){
				txtVal=  document.getElementById("partcolumntext").value;
			}
	  		if(txtVal !="")
			{
				searchPartsAlt(isSearchByYear);
			} 
			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 isCustom = "";
        if(makeID.indexOf(";") > -1) //support for custom.
        {
           var tab = makeID.split(";");
           makeID = tab[0];
           isCustom = tab[1];
        }
		
		var param = 
        "function=getEngines&makeID=" + makeID + "&modelID=" + modelID + "&yearID=" + yearID + "&isCustom=" + isCustom;
		//http.open("GET", "getEngines.php?" + param, true);
        http.open("GET", "../wclib/dispatch.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;
		//var categoryID = document.getElementById("category").value;
		var categoryID = "";
		if(document.getElementById("category") != null) //not supported everywhere
        {
		  categoryID = document.getElementById("category").value;
		}
		var lang = "";
		if(document.getElementById("lang") != null)
        { //not supported everywhere
		  lang = document.getElementById("lang").value;
		}
		
		var isCustom = "false";
        if(makeID.indexOf(";") > -1) //support for custom.
        {
           var tab = makeID.split(";");
           makeID = tab[0];
           isCustom = tab[1];
        }
		
		
		var param = "makeID=" + makeID + "&modelID=" + modelID + "&yearID=" + yearID + "&productID=" + productID + "&engineID=" + engineID + "&lang=" + lang  +"&categoryID=" + categoryID + "&isCustom=" + isCustom;
	
		http.open("GET", "getParts.php?" + param, true); 
		http.onreadystatechange = handleHttpResponseParts; 
		http.send(null);	
	  }
	  
	  //isSearchByYear param is true when the order search is:
	  // Y-M-M  otherwise is false (M-M-Y)
	  //Depending of the search mode, we remove either the years or the makes.
	 function searchPartsAlt(isSearchByYear)
	 {
	 	// clear other list boxes
	  	var cbo1 = document.getElementById("year");
		 
		
		var cbo3 = document.getElementById("make");
        
        
       	if(isSearchByYear == true)
        {
            cbo1.selectedIndex = -1;
            removeAllItems(cbo3);	
       	}
       	else
        {
            removeAllItems(cbo1); 
            cbo3.selectedIndex = -1;
        }
		
		
	  	var cbo2 = document.getElementById("model");
		removeAllItems(cbo2);
		
		var cbo4 = document.getElementById("engine");
		removeAllItems(cbo4);
	 
	 	var productID = document.getElementById("product").value;
		if(productID =="")
		{
			productID = "0";
		}
		
		//var colField = document.getElementById("partcolumn").value;
		var colField = "PartNumber";
		var colValue = document.getElementById("partcolumntext").value;
		colValue =  colValue.replace(/^\s+/g, '').replace(/\s+$/g, '');
	   
	    var lang = "";
	    if(document.getElementById("lang") != null)
	    {
		  lang = document.getElementById("lang").value;
		}
		
		var searchType = "PN";
		if(document.getElementById("searchtype") != null)
		{
		  for (var i=0; i < document.searchtype.group1.length; i++)
   		   {
   			  if (document.searchtype.group1[i].checked)
      		    {
      			   searchType = document.searchtype.group1[i].value;
      		    }
   		   }
   		}
	
		if(colField != "" && colValue != "")
		{
			var param = "productID=" + productID + "&field=" + colField + "&value=" +
             colValue + "&lang=" + lang +"&searchType=" + searchType;
  
			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 showImage(pic1, pic2, partnumber, pnNotes, inter)
	 {
	 	
	 	var url = "showPic.php?pic1=" + pic1 + "&pic2=" + pic2 + "&pn=" + partnumber + 
		 "&pnNotes=" + pnNotes + "&inter=" + inter;
		
	 	newwindow =
		  window.open(url,'name','fullscreen=yes,menubar=yes,location=no,resizable=yes,scrollbars=yes,status=no');
		if (window.focus) {newwindow.focus();}
	 }
	 
	   function showImagesPIES(concaPics, partnumber)
	 {
	 	var url = "showPic2.php?pics=" + concaPics + "&pn=" + partnumber;
		
	 	newwindow = window.open(url,'name','fullscreen=yes,menubar=yes,location=no,resizable=yes,scrollbars=yes,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();
	}
	
	//Now: it is specific for ADN. They have their cutom categories.
	function handleHttpResponseProd() 
		{ 
			if (http.readyState == 4) 
			{ 
				document.getElementById("category").style.cursor = "default";
				document.body.style.cursor = "default";
				results = http.responseText; 
				var cbo = document.getElementById("product");
				var lstProds = results.split("|");
				setItemsCBO(cbo, lstProds);
			} 
			else{
				document.getElementById("category").style.cursor = 'wait';
				document.body.style.cursor = "wait";
			}
		}
	
	 //Update the products list according to selected Category.
	  function updateProd() 
	  {	
	  	if(document.getElementById("partcolumntext")){
	  			document.getElementById("partcolumntext").value = "";
		}
		document.getElementById("search_results").innerHTML = "";
	  
		var cbo = document.getElementById("product");
		removeAllItems(cbo);
		

		var catID = document.getElementById("category").value;
	
		var param = "categoryID=" + catID;
		http.open("GET", "getProdsByCat.php?" + param, true); 
		http.onreadystatechange = handleHttpResponseProd; 
		http.send(null);
	
      }   
      
      function categoryClicked()
      {
      	updateProd();
      	//searchPart();
      }
	 
	 
