﻿var objXMLHTTP;
var strAjaxURL;
var xmlDoc;


function GetAjaxModels(type, value) {
			
    createXMLHTTPObject();
                
    if (objXMLHTTP != null) {

        var yearDropdown = document.getElementById('year');
        var makeDropdown = document.getElementById('make');
        var modelDropdown = document.getElementById('model');
        var make = makeDropdown.value;
    	var model = modelDropdown.value;
        var disableYear = true;
    	
        var loading = document.createElement('option');
        loading.text = 'Loading...';
        loading.value = '';
       
        switch (type) {
    	
            case 'Model': 
    	    
                modelDropdown.disabled = true;
                yearDropdown.disabled = true;
                var options = modelDropdown.options;
                for (var i = 0; i < options.length; i++) { modelDropdown.remove(i); }
                options.add(loading, 0); 
                strAjaxURL = "/im/AjaxPage.aspx?action=getmodels&make=" + make;
                
                break;
    	
            case 'Year': 
    	    
                yearDropdown.disabled = true;
                var options = yearDropdown.options;
                for (var i = 0; i < options.length; i++) { yearDropdown.remove(i); }
                options.add(loading, 0); 
                strAjaxURL = "/im/AjaxPage.aspx?Action=getyears&make=" + make + "&model=" + model;
                disableYear = false;
                
                break;
            
        }
        
        if (document.all) objXMLHTTP.open("Post", strAjaxURL, true); else objXMLHTTP.open("Get", strAjaxURL, true);
        
    }
    
    objXMLHTTP.onreadystatechange = function() { if (objXMLHTTP.readyState == 4) { initializeXMLDOC(); bindModels(type, value); } }
    objXMLHTTP.send(null);
    
    modelDropdown.disabled = false;
    yearDropdown.disabled = disableYear;
    
}


function createXMLHTTPObject() {

    try {
    
        if(document.all) {
        
            objXMLHTTP = new ActiveXObject("MSXML2.XMLHTTP");
            if(objXMLHTTP == null) objXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
            
        } else {  
        
            objXMLHTTP = new XMLHttpRequest();
            
        }		
        
    } catch(er3) {
    
        alert("XmlHttp not found.");
        
    }
    
}


function initializeXMLDOC() {
		
    try { 
    
        if(document.implementation && document.implementation.createdocument) {
        
            xmlDoc = new document.implementation.createDocument("","",null); 

        } else if ( window.ActiveXObject) {

            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.loadXML(objXMLHTTP.responseText);	

        } else {

            var parser = new DOMParser();
            xmlDoc = parser.parseFromString(objXMLHTTP.responseText, "text/xml");

        }
        
    }  catch(err) {
    
        alert(err);
        
    }
						
}


function bindModels(type, value) { 

	var strSubDropdown;
	var strMainDropDown; 
	var tag1;
	var tag2;
	var typeDisplay;
	
	if (type == "Model") {
	
		strSubDropdown = document.getElementById('model');
		strMainDropDown = document.getElementById('make'); 
		tag1 = "Name";
		tag2 = "Name";
		typeDisplay = "Model";
		
	} else if (type == "Year") {
	
	    strSubDropdown = document.getElementById('year');
		strMainDropDown = document.getElementById('model');
		tag1 = "Name";
		tag2 = "Name";
		typeDisplay = "Year";
		
	}
		
	while (strSubDropdown.options.length > 0 ) {strSubDropdown.remove(strSubDropdown.options[0]);}
	 
	var optionTemp = document.createElement('option');
	optionTemp.text  = "Select " + typeDisplay;
	optionTemp.value = -1;
	strSubDropdown.options.add(optionTemp, 0);
		
	if( strMainDropDown != -1) {

	    var x = xmlDoc.getElementsByTagName(tag1);
		var y = xmlDoc.getElementsByTagName(tag2);

	    if (x.length > 0) {   
	    
	        var j = 2;
		    for (var i = 0; i < x.length; i++) {
		    
			    var optionTemp = document.createElement('option');
				var strName = x[i].childNodes[0].nodeValue;

				if (x[i] != null) optionTemp.text = x[i].childNodes[0].nodeValue;
				if (y[i] != null) {
				
				    optionTemp.value = y[i].childNodes[0].nodeValue;
				    if (optionTemp.value == value.split(",")[0]) optionTemp.selected = true;
				    
				} else {
				
				    optionTemp.value = 0;
				    
				}
						
				strSubDropdown.options.add(optionTemp, j);
				j = j + 1;
											
			}
			
			if (type == 'Model' && strSubDropdown.value != -1) GetAjaxModels('Year', value.split(",")[1]);
			
        }
			
		return;
		
	}
	
}


function GetValue(key) {

    var value = '';
    var queryString = window.location.search;
    queryString = queryString.substring(1, queryString.length);
    
    var pairs = queryString.split("&");
    for (i = 0; i < pairs.length; i++) {
    
        var pair = pairs[i].split("=");
        if (pair[0] == key) {
        
            value = pair[1];
            break;
        
        }
    
    }

    return value;
    
}
