﻿
var hdnCollapseField;

function CollapsePanel(name)
{
    var url = document.getElementById("hdnUrl").value;
    var obj = document.getElementById(name);
    var objImg = document.getElementById("img_" + name.replace("obj", ""));
    
    if(obj.style.display == "")
    {
        obj.style.display = "none";        
        objImg.src = url + "web/images/main_compare/section_closed.gif";
        UpdateSettings(name, false);
    }
    
    else
    {
        obj.style.display = "";        
        objImg.src = url + "web/images/main_compare/section_open.gif";
        UpdateSettings(name, true);
    }
}


function UpdateSettings(name, add)
{
    var objHdn = document.getElementById(hdnCollapseField);
    
    if(add)
    {      
        if(objHdn.value.indexOf(name) == -1)  
            objHdn.value = name + "," + objHdn.value;
        
    }
    else
    {
        if(objHdn.value.indexOf(name) != -1)  
            objHdn.value = objHdn.value.replace(name + ",", "");        
    }
    
    var obj = document.getElementById("objExpand");
    if(objHdn.value.length != 0)
    {
        var arr = objHdn.value.substring(0, objHdn.value.length -1);
        arr = arr.split(",");              
        
        if(arr.length == 8)
        {
            obj.innerHTML = "Collapse All";
            blnExpand = false;
        }        
    }
    else 
    {
        obj.innerHTML = "Expand All";
        blnExpand = true;
    }
}

function DefaultSettings()
{
    if(objName == "" || objName == null)
        objName = "objEngine";
        
    var obj = document.getElementById("objExpand");
    
    var objArray = new Array(  
                            'objEngine',                          
                            'objFuel',
                            'objExterior',
                            'objInterior',
                            'objPayload',
                            'objSteering',
                            'objAntiTheft'
                            );
    
    for(var i=0; i<objArray.length; i++)
    {
        if(objName == objArray[i])
            Collapse(objName);
        else
            Expand(objArray[i]);
    }
}

function DoExpandOrCollapse()
{
    var obj = document.getElementById("objExpand");
    var objArray = new Array(
                            'objPricing',
                            'objIncentiveRebate',
                            'objPicture',
                            'objEngine',
                            'objFuel',
                            'objExterior',
                            'objInterior',
                            'objPayload',
                            'objSteering',
                            'objAntiTheft'
                            );
    
    var blnExpand = false;
        
    if(obj.innerHTML == "Expand All")
    {
        obj.innerHTML = "Collapse All";
        blnExpand = false;
    }
    
    else
    {
        obj.innerHTML = "Expand All";
        blnExpand = true;
    }
    
    for(var i=0; i<objArray.length; i++)
    {
        if(blnExpand)
            Expand(objArray[i]);
        else
            Collapse(objArray[i]);
    }
}


function Collapse(name)
{
    var url = document.getElementById("hdnUrl").value;
    var obj = document.getElementById(name);
    var objImg = document.getElementById("img_" + name.replace("obj", ""));
    obj.style.display = "";
    objImg.src = url + "web/images/main_compare/section_open.gif";
     UpdateSettings(name, true);
}


function Expand(name)
{
    var url = document.getElementById("hdnUrl").value;
    var obj = document.getElementById(name);
    var objImg = document.getElementById("img_" + name.replace("obj", ""));     
    obj.style.display = "none";        
    objImg.src = url + "web/images/main_compare/section_closed.gif"; 
    UpdateSettings(name, false);
}


function ResetExpandOrCollapseDefalut(hndField)
{
    hdnCollapseField = hndField;
    var obj = document.getElementById(hdnCollapseField);
    var ids = obj.value;
    obj.value = "";
    
    if(ids.indexOf(",") != -1)
        ids = ids.substring(0, ids.length -1);
        
    //alert(ids);
    
    if(ids == "")
        return;
        
    var arr = ids.split(",");
    
    for(var i=0; i<arr.length; i++)
    {
        Collapse(arr[i]);
    }
}

////////////////////////////////////////////////////////////


var controlNumber;

function YearChanged(controlName, ctrlNo)
{    
    var objYear = document.getElementById(controlName);
    controlNumber = ctrlNo;    
    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(makeControl, ctrlNo)
{    
    controlNumber = ctrlNo;    
    ResetDropDowns("MAKE");
    var sMake = document.getElementById(makeControl).value;
    var objYear = document.getElementById(document.getElementById("hdnYear" + controlNumber).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(modelControl, ctrlNo)
{    
    controlNumber = ctrlNo;
    ResetDropDowns("MODEL");
    var sModel = document.getElementById(modelControl).value;
    var objYear = document.getElementById(document.getElementById("hdnYear" + controlNumber).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 TrimChanged(trimControl, ctrNo)
{
    var objTrim1 = document.getElementById(document.getElementById("hdnTrim1").value);
    var objTrim2 = document.getElementById(document.getElementById("hdnTrim2").value);
    var objTrim3 = document.getElementById(document.getElementById("hdnTrim3").value);
    
    var ajaxUrl = document.getElementById("hdnUrl").value;
    ajaxUrl = ajaxUrl + "web/ajax/CompareableCarSelector.Ajax.aspx?from=save&c1=" + objTrim1.value +
    "&c2=" + objTrim2.value + "&c3=" + objTrim3.value;
    
    var browser = document.getElementById("hdnBrowser").value;
    CallMyServer(ajaxUrl, Redirect, browser);

}

function YearChangedSync(controlName, ctrlNo)
{    
   var objYear = document.getElementById(controlName);
    controlNumber = ctrlNo;    
    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;
    CallServerSync(ajaxUrl, browser);    
}

function MakeChangedSync(makeControl, ctrlNo)
{    
    controlNumber = ctrlNo;    
    ResetDropDowns("MAKE");
    var sMake = document.getElementById(makeControl).value;
    var objYear = document.getElementById(document.getElementById("hdnYear" + controlNumber).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;
    CallServerSync(ajaxUrl, browser);    
}

function ModelChangedSync(modelControl, ctrlNo)
{    
    controlNumber = ctrlNo;
    ResetDropDowns("MODEL");
    var sModel = document.getElementById(modelControl).value;
    var objYear = document.getElementById(document.getElementById("hdnYear" + controlNumber).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;
    CallServerSync(ajaxUrl, browser);    
}

function ResetDropDowns(name)
{
    var objMake = document.getElementById(document.getElementById("hdnMake" + controlNumber).value);
    var objModel = document.getElementById(document.getElementById("hdnModel" + controlNumber).value);
    var objTrim = document.getElementById(document.getElementById("hdnTrim" + controlNumber).value);
    
    if(name == "YEAR")
    {
        EnableControl(objMake, false);
        EnableControl(objModel, false);
        EnableControl(objTrim, false);
    }
    
    else if(name == "MAKE")
    {
        EnableControl(objModel, false);
        EnableControl(objTrim, false);
    }
    
    else if(name == "MODEL")
    {
        EnableControl(objTrim, false);
    }
}

function EnableControl(control, enable)
{    
    //control.disabled = !enable;            
    control.options.length = 0;
    
    var text = "--Select--";
    if(control.id.indexOf("ddlMake") != -1)
        text = "-- Select Make --";
        
    else if(control.id.indexOf("ddlModel") != -1)
        text = "-- Select Model --";
        
    else if(control.id.indexOf("ddlTrim") != -1)
        text = "-- Select Trim --";
        
    control.options.add(new Option(text, ""));
}



function CallMyServer(url, functionName, browser)
{   
    var httpRequest = false;
    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 = function() { functionName(httpRequest); };
	    if(browser == "IE")
	        httpRequest.open('POST', url, true);
	    else 
	        httpRequest.open('GET', url, true);
		   
		
	    httpRequest.send(null);
	    ShowLoading();	    
}

function CallServerSync(url, 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; 
	    } 	   		    
        	    
	    if(browser == "IE")
	        httpRequest.open('POST', url, false);
	    else 
	        httpRequest.open('GET', url, false);
		   
		
	    httpRequest.send(null);	 
	    ShowLoading();
}

function FillMakeDropDown(httpRequest)
{
    if (httpRequest.readyState == 4) 
    { 
	    if (httpRequest.status == 200)
	    {
	        HideLoading();
	        var text = httpRequest.responseText;
	        var objMake = document.getElementById(document.getElementById("hdnMake" + controlNumber).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(httpRequest)
{
    if (httpRequest.readyState == 4) 
    { 
	    if (httpRequest.status == 200)
	    {
	        HideLoading();
	        var text = httpRequest.responseText;
	        var objModel = document.getElementById(document.getElementById("hdnModel" + controlNumber).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(httpRequest)
{
    if (httpRequest.readyState == 4) 
    { 
	    if (httpRequest.status == 200)
	    {
	        HideLoading();
	        
	        var text = httpRequest.responseText;	        
	        var objTrim = document.getElementById(document.getElementById("hdnTrim" + controlNumber).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()
{
    for(var i=1; i<=3; i++)
    { 
        this.controlNumber = i;
        var carId = document.getElementById("hdnCarId" + i).value;
        
        if(carId != null && carId != "" && carId != "0")
        {
        
            var ajaxUrl = document.getElementById("hdnUrl").value;
            ajaxUrl = ajaxUrl + "web/ajax/CompareableCarSelector.Ajax.aspx?from=trim&carId=" + carId;
            
            var browser = document.getElementById("hdnBrowser").value;
            CallServerSync(ajaxUrl,  browser);    
            BottomupFillUpResponse();
        }
    }
}

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" + controlNumber).value);
	        var objModel = document.getElementById(document.getElementById("hdnModel" + controlNumber).value);
	        var objMake = document.getElementById(document.getElementById("hdnMake" + controlNumber).value);
	        var objYear = document.getElementById(document.getElementById("hdnYear" + controlNumber).value);
	        var objCarId = document.getElementById("hdnCarId" + controlNumber);
	        
	        objYear.value = year;	        
	        YearChangedSync(objYear.id, controlNumber);
	        FillMakeDropDown(httpRequest);
	        
	        objMake.value = makeId;
	        MakeChangedSync(objMake.id, controlNumber);
	        FillModelDropDown(httpRequest);
	        
	        objModel.value = modelId;
	        ModelChangedSync(objModel.id, controlNumber);
	        
	        FillTrimDropDown(httpRequest);	        
	        objTrim.value = objCarId.value;
	    }
	}
}

function Redirect()
{   
   var xml = "<data>";
   
    for(var i=1; i<=3; i++)
    {        
        var objModel = document.getElementById(document.getElementById("hdnModel" + i).value);
        var objMake = document.getElementById(document.getElementById("hdnMake" + i).value);
        var objYear = document.getElementById(document.getElementById("hdnYear" + i).value);
        
        if(objMake.selectedIndex != -1 && objYear.selectedIndex != -1 && objModel.selectedIndex != -1)
        {
            if(objMake.value != "" && objModel.value != "" && objYear.value != "")
            {                
                xml += "<car><year>" + objYear.options[objYear.selectedIndex].text + "</year><make>" + objMake.options[objMake.selectedIndex].text + "</make><model>" + objModel.options[objModel.selectedIndex].text + "</model></car>";               
            }
        }
    }
    
    xml += "</data>";
    
    var browser = document.getElementById("hdnBrowser").value;   
    var url = document.getElementById("hdnUrl").value + "web/ajax/CompareResults.Ajax.aspx?url=" + xml;
    CallMyServer(url, ReturnUrl, browser);
}


function ReturnUrl(httpRequest)
{
    if (httpRequest.readyState == 4) 
    { 
	    if (httpRequest.status == 200)
	    {
	       HideLoading();
	       
	       if(httpRequest.responseText != "")
	        window.location.href = httpRequest.responseText;
	    }
	}
}

/////////////////////////////////////////////////////////////////

function ShowLoading()
{
    var obj = document.getElementById("showLoading");
    obj.style.display = "";
}

function HideLoading()
{
    var obj = document.getElementById("showLoading");
    obj.style.display = "none";
}

function ShowLoading2()
{
    var obj = document.getElementById("showLoading2");
    obj.style.display = "";
}

function HideLoading2()
{
    var obj = document.getElementById("showLoading2");
    obj.style.display = "none";
}

function ReplaceMainImage(control, src, hdnControl, hdnControlValue)
{
    //setTimeout(ShowLoading2, 100);
    
    var imageControl = document.getElementById(control);
    var hdnCntl = document.getElementById(hdnControl);
    
    if(null != imageControl)
    {
        imageControl.src = src;
    }
    
    if(null != hdnCntl)
    {
      hdnCntl.value = hdnControlValue; 
    }
            
    EnforcePause();    
    //setTimeout(HideLoading2, 3000);
    
    return false;
}

function ReplaceMainImageWithLarge(control, src, control2, src2, control3, src3, hdnControl, hdnControlValue)
{
    //setTimeout(ShowLoading2, 100);
    
    var imageControl = document.getElementById(control);
    var imageControl2 = document.getElementById(control2);
    var imageControl3 = document.getElementById(control3);
    var hdnCntl = document.getElementById(hdnControl);
    
    if(null != imageControl)
    {
        imageControl.src = src;
    }
    if(null != imageControl2)
    {
        imageControl2.src = src2;
    }
    if(null != imageControl3)
    {
        imageControl3.src = src3;
    }
    
    if(null != hdnCntl)
    {
      hdnCntl.value = hdnControlValue; 
    }
            
    EnforcePause();    
    //setTimeout(HideLoading2, 3000);
    
    return false;
}