// NOTE: This include is used by both NewCars.aspx and UsedCars.aspx.

var g_typeid;
var g_typedesc;

function pageLoad()
{
    // Add handlers to map the enter key for the "Enter Zip Box".
    // This only exists to trap the enter key on Opera/Safari/Chrome and prevent
    // the page from posting back and breaking.
    $addHandler(txtZipUsedNewId, 'keypress', CheckKey);
}

var g_modelDesc;
function fnSearchModel(modelDesc, makeId)
{
    g_makeid = makeId;
    g_modelDesc = modelDesc;
    
    if (ValidateZip(txtZipUsedNewId.value))
    {
        fnSearchModelExec(txtZipUsedNewId.value);
    }
    else
    {
        zipPromptVar.Open(modelDesc, fnSearchModelExec);
    }
    return false;
}

function fnSearchModelExec(sZip)
{
    makeLF.ReplaceToken("xZIPx", sZip);
    makeLF.ReplaceToken("xMAKEIDx", g_makeid);
    makeLF.ReplaceToken("xMAKEDESCx", document.getElementById(makeNameSpanId).innerHTML); 
    makeLF.ReplaceToken("xMODELx", g_modelDesc); 

    fnNavToSearchResults(makeLF.FinalizeUrl());
}

function fnSearchByType(typeid, typedesc)
{
    g_typeid = typeid;
    g_typedesc = typedesc;

    if (ValidateZip(txtZipUsedNewId.value))
    {
        fnSearchTypeExec(txtZipUsedNewId.value);
    }
    else
    {
        zipPromptVar.Open(typedesc, fnSearchTypeExec);
    }
    return false;
}

function fnSearchTypeExec(sZip)
{
    txtZipUsedNewId.value = sZip;
    typeLF.ReplaceToken("xZIPx", sZip);
    typeLF.ReplaceToken("xTYPEIDx", g_typeid)
    typeLF.ReplaceToken("xTYPEDESCx", g_typedesc)

    fnNavToSearchResults(typeLF.FinalizeUrl());
}

var g_makeid;
var g_makedesc;
function fnSearchByMake(makeid, makedesc)
{
    g_makeid = makeid;
    g_makedesc = makedesc;

    if (ValidateZip(txtZipUsedNewId.value))
    {
        fnSearchMakeExec(txtZipUsedNewId.value);
    }
    else
    {
        zipPromptVar.Open("", fnSearchMakeExec);
    }
    return false;
}

function fnSearchMakeExec(sZip)
{
    txtZipUsedNewId.value = sZip;
    makeLF.ReplaceToken("xZIPx", sZip);
    makeLF.ReplaceToken("xMAKEIDx", g_makeid)
    makeLF.ReplaceToken("xMAKEDESCx", g_makedesc)

    fnNavToSearchResults(makeLF.FinalizeUrl());
}

function fnSearchGreen()
{
    if (ValidateZip(txtZipUsedNewId.value))
    {
        fnSearchGreenExec(txtZipUsedNewId.value);
    }
    else
    {
        zipPromptVar.Open("Green", fnSearchGreenExec);
    }
    return false;
}

function fnSearchGreenExec(sZip)
{
    txtZipUsedNewId.value = sZip;
    greenLF.ReplaceToken("xZIPx", sZip);

    fnNavToSearchResults(greenLF.FinalizeUrl());
}

var selectedMakeID;

function showModels(makeID, makeName)
{
    selectedMakeID = makeID;
    document.getElementById(makeNameSpanId).innerHTML = makeName;
    document.getElementById(makeViewId).style.display = "none";
    document.getElementById(modelViewId).style.display = "";
    ShowNoModelImage();
    document.getElementById(modelImageDescId).innerHTML = "";
    addCssClass(document.getElementById(modelListDivId), "hide");
    removeCssClass(document.getElementById(modelProgressId), "hide");
    ShowModelList(makeID);
    adjustNewUsedHeight();
}

function showMakes()
{
    document.getElementById(makeViewId).style.display = "";
    document.getElementById(modelViewId).style.display = "none";
    fixIEHeight();
    adjustNewUsedHeight();
}

function showAdvancedSearchNew()
{
    showAdvancedSearchWithDefaults(selectedMakeID, "New");
}

var g_count = 0;
function ShowModelList(id)
{
    Reynolds.CL.Web.WebServices.VehicleFunctions.GetModelUL(id, WSKey, ShowModelListSuccess, ShowModelListFailure, g_count);
}

function ShowModelListSuccess(result, eventArgs)
{
    document.getElementById(modelListDivId).innerHTML = result; 
    addCssClass(document.getElementById(modelProgressId), "hide");
    removeCssClass(document.getElementById(modelListDivId), "hide");
    SelectFirstModel();
    if ($get('hiddenIE6'))
    {
        supersleight.limitTo('modelImageDiv');
        supersleight.run();
    }
    adjustNewUsedHeight();
    fixIEHeight();
}
     
function SelectFirstModel()
{
    var listDiv = document.getElementById(modelListDivId);
    var firstUL = listDiv.childNodes[0];
    var firstLI = firstUL.getElementsByTagName('LI')[0];
    var anchor = firstLI.getElementsByTagName('A')[0];
    if (anchor == null) return;
    
    anchor.onmouseover();
}

function ShowModelListFailure(err)
{
    document.getElementById(modelListDivId).innerHTML = err; 
    fixPNG();
}

function ModelMouseOver(modelDesc, photo)
{
    var imageDescObj = document.getElementById(modelImageDescId);
    if (imageDescObj.innerHTML == modelDesc) return;
    imageDescObj.innerHTML = modelDesc;
    
    if (photo.length == 0)
    {
        ShowNoModelImage();
    }
    else
    { 
        $get(modelPhotoRefId).src = photo;
    }
    
    if ($get('hiddenIE6'))
    {
        supersleight.limitTo('modelImageDiv');
        supersleight.run();
    }
    
    adjustNewUsedHeight();
    fixIEHeight();
}

function ShowNoModelImage()
{
    var imgObject = document.getElementById(modelPhotoRefId);

    var tempImageName = noImageVar + 'noPhoto_175_110.';
    if($get('hiddenIE6'))
    {
        tempImageName += 'jpg';
    }
    else
    {
        tempImageName += 'png';
    }
    imgObject.src = tempImageName;
}

function searchModelsFromImage()
{
    fnSearchModel(document.getElementById(modelImageDescId).innerHTML, selectedMakeID);
}

function CheckKey(evt)
{
    // evt is a Sys.UI.DomEvent object
 
    if (mapKeyToAction(evt))
    {
        setFixValidation();
        return false;
    }
}

function adjustNewUsedHeight() //makes the right and left sides equal height on the New and Used pages
 {
    if ($get('newUsedLeftSide') && $get('findDealerToolsFix') && $get('newUsedBrowseMake'))
    {
        scrollReset = 'no';
        if ($get('dealerList') && $get('scrollbar') && $get('outerDiv') && $get('track') && $get('findDealerListLeft') && $get('findDealerListRight'))
        {
            scrollReset = 'yes';
            sc1 = $get('dealerList');
            sc2 = $get('scrollbar');
            sc3 = $get('outerDiv');
            sc4 = $get('track');
            sc5 = $get('findDealerListLeft');
            sc6 = $get('findDealerListRight');
            
            sc1.style.height="300px";
            sc2.style.height="300px";
            sc3.style.height="300px";
            sc4.style.height="270px";
            sc5.style.height="300px";
            sc6.style.height="300px";
        }
        el0 = $get('newUsedLeftSide');
        el1 = $get('newUsedBrowseMake');
        el2 = $get('findDealerToolsFix');
        if($get('hiddenIE6'))
        {
            el0.style.height="auto";
            el1.style.height="auto";
            el2.style.height="auto";
        }
        el0.style.minHeight="1px";
        el1.style.minHeight="1px";
        el2.style.minHeight="1px";
        leftH = el0.offsetHeight;
        rightH = el2.offsetHeight;
        rightH = rightH + 11 + 10;
        
        if ($get('dealerList').className == 'show')
        {
            if (leftH > rightH)
            {
                if (scrollReset == 'yes')
                {
                    myDiff = leftH - rightH;
                    sc1.style.height=myDiff + 300 + "px";
                    sc2.style.height=myDiff + 300 + "px";
                    sc3.style.height=myDiff + 300 + "px";
                    sc4.style.height=myDiff + 270 + "px";
                    sc5.style.height=myDiff + 300 + "px";
                    sc6.style.height=myDiff + 300 + "px";
                    
                    if (typeof loadInitScroll=="function")
                    {
                        loadInitScroll()
                    }
                }
                else
                {
                    if($get('hiddenIE6'))
                    {
                        el2.style.height=leftH - 11 + 'px';
                    }
                    else
                    {
                        el2.style.minHeight=leftH - 11 + 'px';
                    }
                }
            }
            if (rightH > leftH)
            {
                if($get('hiddenIE6'))
                {
                    el1.style.height=(rightH - el0.offsetHeight + el1.offsetHeight - 10) + 'px';
                }
                else
                {
                    el1.style.minHeight=(rightH - el0.offsetHeight + el1.offsetHeight - 10) + 'px';
                }
            }
        }
    }
 }