﻿

function YearChanged(objYear)
{
    ResetDropDowns("YEAR");
    var sYear = objYear.value;
    var ajaxUrl = document.getElementById("hdnUrl").value;
    ajaxUrl = ajaxUrl + "web/ajax/CompareableCarSelector.Ajax.aspx?from=year&year=" + sYear;
    
    var browser = document.getElementById("hdnBrowser").value;
    CallMyServer(ajaxUrl, FillMakeDropDown, browser);
    
}

function MakeChanged(objMake)
{
    ResetDropDowns("MAKE");
    var sMake = objMake.value;
    var objYear = document.getElementById(document.getElementById("hdnYear").value);
    var sYear = objYear.value;
    
    var ajaxUrl = document.getElementById("hdnUrl").value;
    ajaxUrl = ajaxUrl + "web/ajax/CompareableCarSelector.Ajax.aspx?from=make&makeId=" + sMake + "&year=" + sYear;
    
    var browser = document.getElementById("hdnBrowser").value;
    CallMyServer(ajaxUrl, FillModelDropDown, browser);
}

function ModelChanged(objModel)
{
    ResetDropDowns("MODEL");
    var sModel = objModel.value;    
    var objYear = document.getElementById(document.getElementById("hdnYear").value);
    var sYear = objYear.value;
    
    var ajaxUrl = document.getElementById("hdnUrl").value;
    ajaxUrl = ajaxUrl + "web/ajax/CompareableCarSelector.Ajax.aspx?from=model&modelId=" + sModel + "&year=" + sYear;
    
    var browser = document.getElementById("hdnBrowser").value;
    CallMyServer(ajaxUrl, FillTrimDropDown, browser);    
}

function YearChangedAsync(objYear)
{
    ResetDropDowns("YEAR");
    var sYear = objYear.value;
    var ajaxUrl = document.getElementById("hdnUrl").value;
    ajaxUrl = ajaxUrl + "web/ajax/CompareableCarSelector.Ajax.aspx?from=year&year=" + sYear;
    
    var browser = document.getElementById("hdnBrowser").value;
    CallMyServer(ajaxUrl, FillMakeDropDown, browser);    
}

function MakeChangedAsync(objMake)
{
    ResetDropDowns("MAKE");
    var sMake = objMake.value;  
    var objYear = document.getElementById(document.getElementById("hdnYear").value);
    var sYear = objYear.value;
     
    var ajaxUrl = document.getElementById("hdnUrl").value;
    ajaxUrl = ajaxUrl + "web/ajax/CompareableCarSelector.Ajax.aspx?from=make&makeId=" + sMake + "&year=" + sYear;
    
    var browser = document.getElementById("hdnBrowser").value;
    CallMyServer(ajaxUrl, FillModelDropDown, browser);    
}

function ModelChangedAsync(objModel)
{
    ResetDropDowns("MODEL");
    var sModel = objModel.value;    
    var objYear = document.getElementById(document.getElementById("hdnYear").value);
    var sYear = objYear.value;
    
    var ajaxUrl = document.getElementById("hdnUrl").value;
    ajaxUrl = ajaxUrl + "web/ajax/CompareableCarSelector.Ajax.aspx?from=model&modelId=" + sModel + "&year=" + sYear;
    
    var browser = document.getElementById("hdnBrowser").value;
    CallMyServer(ajaxUrl, FillTrimDropDown, browser);    
}

function ResetDropDowns(name)
{
    var objMake = document.getElementById(document.getElementById("hdnMake").value);
    var objModel = document.getElementById(document.getElementById("hdnModel").value);
    var objTrim = document.getElementById(document.getElementById("hdnTrim").value);
}

function EnableControl(control, enable)
{    
    control.disabled = !enable;            
    control.options.length = 0;
    
    var text = "--Select--";
    if(control.id.indexOf(document.getElementById("hdnMake").value) != -1)
        text = "-- Select Make --";
        
    else if(control.id.indexOf(document.getElementById("hdnModel").value) != -1)
        text = "-- Select Model --";
        
    else if(control.id.indexOf(document.getElementById("hdnTrim").value) != -1)
        text = "-- Select Trim --";
        
    control.options.add(new Option(text, ""));
}

var httpRequest = false;

function CallMyServer(url, functionName, browser)
{   
    
    if (window.XMLHttpRequest) 
    {	    
	    httpRequest = new XMLHttpRequest(); 
	    if (httpRequest.overrideMimeType) 
	    { 
		    httpRequest.overrideMimeType('text/xml');     		
	    } 
		
    } 
    else if (window.ActiveXObject) 
    { 
	    // IE 
    try 
    { 
	    httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } 
    catch (e) 
    { 
    try 
    { 
	    httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    catch (e) 
    {} 
    } 
    } 
	    if (!httpRequest) 
	    { 
		    //return false; 
	    } 	   		    
        
	    httpRequest.onreadystatechange = functionName;
	    if(browser == "IE")
	        httpRequest.open('POST', url, true);
	    else 
	        httpRequest.open('GET', url, true);
		   
		
	    httpRequest.send(null);	    
	    
	    ShowLoading();
}

function CallServerSync(url, functionName, browser)
{
	if (window.XMLHttpRequest) 
	{
		httpRequest = new XMLHttpRequest();
		
		if (httpRequest.overrideMimeType)
		{
			httpRequest.overrideMimeType('text/xml');
		}
	}
	else if (window.ActiveXObject)
	{
		// IE 
	    try 
	    { 
		    httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
	    } 
	    catch (e) 
	    { 
	        try 
	        { 
		        httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
	        } 
	        catch (e) 
	        {} 
	    }
	}					    
	
	if(browser == "IE")
	    httpRequest.open('POST', url, true);
	else
	    httpRequest.open('GET', url, true);
	    
	httpRequest.send(null);
}


function FillMakeDropDown()
{
    if (httpRequest.readyState == 4) 
    { 
	    if (httpRequest.status == 200)
	    {
	        HideLoading();
	        var text = httpRequest.responseText;	        
	        var objMake = document.getElementById(document.getElementById("hdnMake").value);
            objMake.disabled = false;
            
            objMake.options.length = 0;
            objMake.options.add(new Option("--Select Make--", ""));
            
            if(text != null && text != "")
            {
                var arr = text.split("|");                
                for(var i=0; i<arr.length; i++)
                {
                    var splitArr = arr[i].split("@");
                    objMake.options.add(new Option(splitArr[1], splitArr[0]));        
                }
            }   		 
	    }
    }
}

function FillModelDropDown()
{
    if (httpRequest.readyState == 4) 
    { 
	    if (httpRequest.status == 200)
	    {
	        HideLoading();
	        var text = httpRequest.responseText;
	        var objModel = document.getElementById(document.getElementById("hdnModel").value);
            objModel.disabled = false;
            
            objModel.options.length = 0;
            objModel.options.add(new Option("--Select Model--", ""));
            
            if(text != null && text != "")
            {
                var arr = text.split("|");                
                for(var i=0; i<arr.length; i++)
                {
                    var splitArr = arr[i].split("@");
                    objModel.options.add(new Option(splitArr[1], splitArr[0]));        
                }
            }   		 
	    }
    }
}

function FillTrimDropDown()
{
    if (httpRequest.readyState == 4) 
    { 
	    if (httpRequest.status == 200)
	    {
	        HideLoading();
	        var text = httpRequest.responseText;
	        var objTrim = document.getElementById(document.getElementById("hdnTrim").value);
            objTrim.disabled = false;
            
            objTrim.options.length = 0;
            objTrim.options.add(new Option("--Select Trim--", ""));
            
            if(text != null && text != "")
            {
                var arr = text.split("|");                
                for(var i=0; i<arr.length; i++)
                {
                    var splitArr = arr[i].split("@");
                    objTrim.options.add(new Option(splitArr[1], splitArr[0]));        
                }
            }   		 
	    }
    }
}

function BottomupFillUp(carId)
{
    if(carId == null || carId == "" || carId == "0")
        return;
        
    var ajaxUrl = document.getElementById("hdnUrl").value;
    ajaxUrl = ajaxUrl + "web/ajax/CompareableCarSelector.Ajax.aspx?from=trim&carId=" + carId;
    
    var browser = document.getElementById("hdnBrowser").value;
    CallMyServer(ajaxUrl, BottomupFillUpResponse, browser);    
}

function BottomupFillUpResponse()
{
    if (httpRequest.readyState == 4) 
    { 
	    if (httpRequest.status == 200)
	    {	        
	        HideLoading();
	        var text = httpRequest.responseText;	        
	        var arr = text.split('@');	       
	        var year = arr[0];
	        var makeId = arr[1];
	        var make = arr[2];
	        var modelId= arr[3];
	        var model = arr[4];
	        var trim = arr[5];
	        
	        var objTrim = document.getElementById(document.getElementById("hdnTrim").value);
	        var objModel = document.getElementById(document.getElementById("hdnModel").value);
	        var objMake = document.getElementById(document.getElementById("hdnMake").value);
	        var objYear = document.getElementById(document.getElementById("hdnYear").value);
	        var objCarId = document.getElementById("hdnCarId");
	        
	        objYear.value = year;	        
	        YearChangedAsync(objYear);
	        FillMakeDropDown();
	        
	        objMake.value = makeId;
	        MakeChangedAsync(objMake);
	        FillModelDropDown();
	        
	        objModel.value = modelId;
	        ModelChangedAsync(objModel);
	        FillTrimDropDown();	        
	        objTrim.value = objCarId.value;
	    }
	}
}

function Redirect()
{
    var objTrim = document.getElementById(document.getElementById("hdnTrim").value);
    var objModel = document.getElementById(document.getElementById("hdnModel").value);
    var objMake = document.getElementById(document.getElementById("hdnMake").value);
    var objYear = document.getElementById(document.getElementById("hdnYear").value); 
    var ajaxUrl = document.getElementById("hdnUrl").value;
     
    if(objYear.value == "")
    {
        alert("Please select a year.");
    }    
    else if(objMake.value == "" )
    {
        alert("Please select a make");
    }    
    else if(objModel.value == "" )
    {
        alert("Please select a model");
    }    
    else if(objTrim.value == "" )
    {
        alert("Please select a trim");
    }
    else
    {
        var url = document.getElementById("hdnUrl").value;
        url =  url + "web/ajax/RequestUrl.aspx?req_compareable_page=1&year=" + objYear.options[objYear.selectedIndex].text + "&make=" + objMake.options[objMake.selectedIndex].text + "&model=" + objModel.options[objModel.selectedIndex].text;
        var response = DoSyncCall(url);
        
        if(response.responseText != "")
            window.location = response.responseText;
    }
}

/////////////////////////////////////////////////////////////////

function ShowLoading()
{
    var obj = document.getElementById("showLoading");
    obj.style.display = "";
}

function HideLoading()
{
    var obj = document.getElementById("showLoading");
    obj.style.display = "none";
}