// Stable Version 1.0 DO NOT TOUCH!
// alot of forms use this file if you change it you could break all the other forms that use this.
// AJAX Javascript STUFF here BELOW.
    var DEBUG = "0";
    var makeMeHorny = 'Select a Make';
    var makeMeAll = 'Select a Series';
    var makeMeSeries = 'Select a Series';
    var makeSelectOne = 'Select One';
    var FormType = "search";
    var GLOBAL_MAKE_SERIES_MODEL = true;
    var requestOBJ;
    var isIE = false;
    var serverName = location.hostname;
   // alert(serverName);
    //var SearchForm = "AdvSearchForm";
    // check if form type is set:
    // Form can be a select or search
    if (FormType == "search" || FormType == "select" || FormType == "basic" || FormType == "advSearch"){
        if (DEBUG == "1"){
            alert(FormType);
        }
        FormType = FormType;
    }else{
        FormType = "search";
    }
    //check for IE
    if (window.ActiveXObject){isIE = true;} 
    //list all props of a object
    function ListObjectPropsCT(obj){vResult = '';for (var i in obj){vResult = vResult + i + "=" + obj[i]+"<br>";}return vResult;}	
    //outputs messageToShow on layer with the ID debugmessagelayer
    function DebugCT(messageToShow){document.getElementById('debugmessagelayer').innerHTML = messageToShow +'.'+document.getElementById('debugmessagelayer').innerHTML;}


    //Loads an XML document from an URL
    function loadXMLDocCT(url) {
        document.getElementById('loadingSpan').className  = 'loading...';
        // branch for native XMLHttpRequest object
        if(window.XMLHttpRequest) {
            try {
    			requestOBJ = new XMLHttpRequest();
            } catch(e) {
    			requestOBJ = false;
            }
        } else if(window.ActiveXObject) {
            try {
            //  Try for Mac PC's
            	requestOBJ = new ActiveXObject("Msxml2.XMLHTTP");
          	} catch(e) {
            	try {
              		requestOBJ = new ActiveXObject("Microsoft.XMLHTTP");
            	} catch(e) {
              		requestOBJ = false;
            	}
    		}
        }
        if(requestOBJ) {
    		requestOBJ.onreadystatechange = processReqChangeCT;
    		requestOBJ.open("GET", url, true);
    		requestOBJ.send("");
    	}else{
            alert("You need upgrade your Browser please for AJAX functions. Try Firefox.");
        }
    }

	//this function handles all XML feedback from the server
    function processReqChangeCT() {
        if (requestOBJ.readyState == 4) //4 = we are in the buzz
        {
            if (requestOBJ.status == 200) //200 = all is loaded and ready! 
            {
                //get the XML document tree
                response  = requestOBJ.responseXML.documentElement;
				methodToCall = response.getElementsByTagName('method')[0].firstChild.data;
                sFormName  = response.getElementsByTagName('sFormName')[0].firstChild.data;
                frm        = "parent.document."+sFormName
                if (DEBUG == "1"){
                    alert("processReqChangeCT: "+ methodToCall+" - "+ sFormName);
                }
                // Load Types of Series Vehicles for that selected make.
                if(methodToCall == "loadTypes"){
                    var methodParam;
                    tempFieldName = eval(frm+".ipkVehicleTypeID");
                    for (i=0;i<tempFieldName.length;i++) {
            			tempFieldName.options[i]=null
            		}
                    tempFieldName.options.length = 0;
                    var tempOption = new Option(makeSelectOne, 0);
					tempFieldName.options[0] = tempOption;
					for (var loop = 0; loop < response.getElementsByTagName('result').length; loop++){
                        itemNum = loop + 1;
						if(response.getElementsByTagName('ipkVehicleModelID')[loop].firstChild.nodeValue != ""){
							methodParam = ""+response.getElementsByTagName('ipkVehicleModelID')[loop].firstChild.nodeValue +" - "+response.getElementsByTagName('sVehicleModelName')[loop].firstChild.nodeValue+"";
                            var tempOption = new Option(response.getElementsByTagName('sVehicleModelName')[loop].firstChild.nodeValue, response.getElementsByTagName('ipkVehicleModelID')[loop].firstChild.nodeValue);
					        tempFieldName.options[itemNum] = tempOption;
						}
					}
                }
                
				// Load SERIES of vehicle makes.
				if (methodToCall == "loadSeries"){
					var methodParam;
                    if (DEBUG == "1"){
                        alert("loadSeries: "+ frm);
                    }
                    tempFieldName = eval(frm+".ipkVehicleSeriesID");
                    for (i=0;i<tempFieldName.length;i++) {
            			tempFieldName.options[i]=null
            		}
                    tempFieldName.options.length = 0;
                    // option ONE : show all in drop down.
                    var tempOption = new Option(makeMeAll, 0);
					tempFieldName.options[0] = tempOption;
					for (var loop = 0; loop < response.getElementsByTagName('result').length; loop++){
                        itemNum = loop + 1;
						if(response.getElementsByTagName('ipkVehicleSeriesID')[loop].firstChild.nodeValue != ""){
                            // option TWO show the model types for the first series returned.
                            //if (loop == 0){ // load the first selected results model types now.
                                //theField = eval("frm.ifkGoToWebsiteID");
    	                        //theField.value = response.getElementsByTagName('ifkGoToWebsiteID')[loop].firstChild.nodeValue;
                                //theField2 = eval("frm.sWebsiteUrl");
    	                        //theField2.value = response.getElementsByTagName('sWebsiteUrl')[loop].firstChild.nodeValue;
                                //carType = getRadioValueCT(document.AdvSearchForm.carType);
                                //loadXMLTypesCT(response.getElementsByTagName('ipkVehicleSeriesID')[loop].firstChild.nodeValue ,carType); 
                            //}
							methodParam = ""+response.getElementsByTagName('ipkVehicleSeriesID')[loop].firstChild.nodeValue +" - "+response.getElementsByTagName('sVehicleSeriesName')[loop].firstChild.nodeValue+"";
                            var tempOption = new Option(response.getElementsByTagName('sVehicleSeriesName')[loop].firstChild.nodeValue, response.getElementsByTagName('ipkVehicleSeriesID')[loop].firstChild.nodeValue);
					        tempFieldName.options[itemNum] = tempOption;
						}
					}
				}
				
                // LOAD VEHICLE MAKES.
                if(methodToCall == "loadMakes"){
                    var methodParam;
                    tempFieldName = eval(frm+".ipkVehicleMakeID");
                    for (i=0;i<tempFieldName.length;i++) {
            			tempFieldName.options[i]=null
            		}
                    tempFieldName.options.length = 0;
                    var tempOption = new Option(makeMeHorny, 0);
					tempFieldName.options[0] = tempOption;
					for (var loop = 0; loop < response.getElementsByTagName('result').length; loop++){
                        itemNum = loop + 1;
						if(response.getElementsByTagName('ipkVehicleMakeID')[loop].firstChild.nodeValue != ""){
							methodParam = ""+response.getElementsByTagName('ipkVehicleMakeID')[loop].firstChild.nodeValue +" - "+response.getElementsByTagName('sVehicleMakeName')[loop].firstChild.nodeValue+"";
                            var tempOption = new Option(response.getElementsByTagName('sVehicleMakeName')[loop].firstChild.nodeValue, response.getElementsByTagName('ipkVehicleMakeID')[loop].firstChild.nodeValue);
					        tempFieldName.options[itemNum] = tempOption;
                            //alert("test");
                            //tempFieldName.options[itemNum].selected = true;
						}
					}
				}
                
				if (loop < 1){
					alert("No Data Found!");
					methodParam = "No Data Found!";
				}
				methodParam = methodParam & "!";
                document.getElementById('loadingSpan').className  = 'hidden';
            } else {
                alert("Error retrieving the XML data");
                DebugCT("There was a problem retrieving the XML data (Refrech your browser):\n" + requestOBJ.statusText);
            }
        }
    }
    function ClearSelect(formItem,itemValue){
        tempFieldName = eval(formItem);
        for (i=0;i<tempFieldName.length;i++) {
			tempFieldName.options[i]=null
		}
        tempFieldName.options.length = 0;
        var tempOption = new Option(itemValue, 0);
        tempFieldName.options[0] = tempOption;
    }
    
    function loadXMLMakesCT(lookup, sFormName, FormType, WebsiteID){
        // TO DO : clear the other drop downs before loading makes.
        if (DEBUG == "1"){
            alert("loadXMLMakesCT:"+lookup+ ", "+sFormName+", "+FormType);
        }
        // NEED TO ADD CARTYPE custom and All.
        if (lookup != ''){
            //do an XML request for data!
            if (DEBUG == "1"){
                alert("loadXMLMakesCT: "+serverName+" - "+ lookup +" - "+ sFormName +" - "+ FormType +"-"+ WebsiteID+".");
            }
            if (serverName == "cac"){
                url = 'http://cac/websites/_Aidan/CMS/includes/vehiclePopDrops_xml.asp?getmakes=true&type=' + lookup +'&websiteid='+ WebsiteID+'&sFormName='+sFormName;
            }else if(serverName == "192.168.1.23"){
                url = 'http://192.168.1.23/websites/eliance_clients/CMS/includes/vehiclePopDrops_xml.asp?getmakes=true&type=' + lookup +'&websiteid='+ WebsiteID+'&sFormName='+sFormName;
            }else{
                url = 'http://'+serverName+'/includes/vehiclePopDrops_xml.asp?getmakes=true&type=' + lookup +'&websiteid='+ WebsiteID+'&sFormName='+sFormName;
            }
            if (DEBUG == "1"){
                alert(url);
            }
            loadXMLDocCT(url);
        }
    }

    function loadXMLSeriesCT(lookup, carType, sFormName, FormType, WebsiteID){
        // TO DO : clear the other drop downs before loading makes.
        //carType = getRadioValueCT(carType);
        if (lookup != ''){
            //do an XML request for data!
            if (DEBUG == "1"){
               alert("loadXMLSeriesCT: "+serverName+"-"+ lookup+"-"+ carType+"-"+ sFormName+"-"+ FormType+"-"+WebsiteID+".");
            }
            if (serverName == "cac"){
                url = 'http://cac/websites/_Aidan/CMS/includes/vehiclePopDrops_xml.asp?getseries=true&type='+ carType +'&lookup=' + lookup +'&websiteid='+ WebsiteID+'&sFormName='+sFormName;
            }else if(serverName == "192.168.1.23"){
                url = 'http://192.168.1.23/websites/eliance_clients/CMS/includes/vehiclePopDrops_xml.asp?getseries=true&type='+ carType +'&lookup=' + lookup +'&websiteid='+ WebsiteID+'&sFormName='+sFormName;
            }else{
                url = 'http://'+serverName+'/includes/vehiclePopDrops_xml.asp?getseries=true&type='+ carType +'&lookup=' + lookup +'&websiteid='+ WebsiteID+'&sFormName='+sFormName;
            }
            if (DEBUG == "1"){
                alert(url);
            }
			loadXMLDocCT(url);
        }
    }
    
    function loadXMLTypesCT(lookup, carType, WebsiteID){
        //ClearSelect(document.AdvSearchForm.ipkVehicleTypeID,'Select a Model');
        if (DEBUG == "1"){
            alert("loadXMLTypesCT: "+serverName+"-"+lookup+"-"+carType+"-"+WebsiteID+".");
        }
        //carType = getRadioValueCT(carType);
        if (lookup != ''){
            //do an XML request for data!
            if (serverName == "cac"){
                url = 'http://cac/websites/_Aidan/CMS/includes/vehiclePopDrops_xml.asp?gettypes=true&type='+ carType +'&lookup=' + lookup +'&websiteid='+ WebsiteID+'&sFormName='+sFormName;
            }else if(serverName == "192.168.1.23"){
                url = 'http://192.168.1.23/websites/eliance_clients/CMS/includes/vehiclePopDrops_xml.asp?gettypes=true&type='+ carType +'&lookup=' + lookup +'&websiteid='+ WebsiteID+'&sFormName='+sFormName;
            }else{
                url = 'http://'+serverName+'/includes/vehiclePopDrops_xml.asp?gettypes=true&type='+ carType +'&lookup=' + lookup +'&websiteid='+ WebsiteID+'&sFormName='+sFormName;
            }
            if (DEBUG == "1"){
                alert(url);
            }
			loadXMLDocCT(url);
        }
    }

function getRadioValueCT(radioButtonOrGroup) {
    var buttonsLength = radioButtonOrGroup.length;
    if (buttonsLength) { 
        for (var b = 0; b < buttonsLength; b++)
        if (radioButtonOrGroup[b].checked)
        return radioButtonOrGroup[b].value;
    }
    else if (radioButtonOrGroup.checked)
        return radioButtonOrGroup.value;
    return null;
}