﻿function populateMakes(tp)
{
    if (tp == "N")
    {
        Carselect.Services.SearchLookupsService.GetNewMakes(onCompletedNewMakes, onFailed);
    }
    else
    {
        Carselect.Services.SearchLookupsService.GetUsedMakes(onCompletedUsedMakes, onFailed);
    }
}

function populateModels(makeName, tp)
{
    if (tp == "N")
    {
        Carselect.Services.SearchLookupsService.GetNewModels(makeName, onCompletedNewModels, onFailed);
    }
    else
    {
        Carselect.Services.SearchLookupsService.GetUsedModels(makeName, onCompletedUsedModels, onFailed);
    }
}

function populateQSNewFuelTypes()
{
    Carselect.Services.SearchLookupsService.GetNewFuelTypes(onCompletedQSNewFuelTypes, onFailed);
}

function populateNewQuickSearchPriceBands()
{
    Carselect.Services.SearchLookupsService.GetNewPriceBands(onCompletedQSNewPriceBands);
}

function setUpNewQuickSearch(showboth)
{
    var divWaitQS = $get('divWaitQS');
    showWaiting(divWaitQS);
    
    setSelectedType("N", showboth);
    populateMakes("N");
    populateQSNewFuelTypes();
    populateNewQuickSearchPriceBands();
}

function setUpUsedQuickSearch(showboth)
{
    var divWaitQS = $get('divWaitQS');
    showWaiting(divWaitQS);
    setSelectedType("U", showboth);
    populateMakes("U");
}

function onCompletedNewMakes(results)
{
    var sel = $get('selQuickSearchLookup1_new');
    displayLookup(results, sel, "All makes");
} 

function onCompletedUsedMakes(results)
{
    var sel = $get('selQuickSearchLookup1_used');
    displayLookup(results, sel, "All makes");
}

function onCompletedNewModels(results)
{
    var sel = $get('selQuickSearchLookup2_new');
    displayLookup(results, sel, "All models");
} 

function onCompletedQSNewFuelTypes(results)
{
    var sel = $get('selQuickSearchLookup4_new');
    displayLookup(results, sel, "Any fuel");
}

function onCompletedQSNewPriceBands(results)
{
    var sel = $get('selQuickSearchLookup3_new');
    for (i = 0; i<results.length; i++)
    {
        if (results[i].Value == 0)
        {
            addOptionSelected(sel, 'Any price band', results[i].Value);
        }
        else
        {
          addOptionSelected(sel, results[i].Name, results[i].Value);
        }
    }
}

function onCompletedUsedModels(results)
{
    var sel = $get('selQuickSearchLookup2_used');
    displayLookup(results, sel, "All models");
}

function populateQuickSearchLookup2_new(mkName)
{
    populateModels(mkName, "N");
}

function populateQuickSearchLookup2_used(mkName)
{
    populateModels(mkName, "U");
}

function setUsedCarSearchSelection(noSelection)
{            
    var make = $get('selQuickSearchLookup1_used');
    var model = $get('selQuickSearchLookup2_used');
    var uPrice = $get('selQuickSearchLookup3_used');
    var lPrice = $get('selQuickSearchLookup4_used');
    var selMake = make.options[make.selectedIndex].value;
    var selModel = model.options[model.selectedIndex].value;
    var selUPrice = parseInt(uPrice.options[uPrice.selectedIndex].value);
    var selLPrice = parseInt(lPrice.options[lPrice.selectedIndex].value);
    
    var noSel = noSelection == 'true' ? true : false;
    
    Carselect.Services.SearchLookupsService.SetUsedCarQuickSearchSelection(noSel, selMake, selModel, selUPrice, selLPrice, onCompletedSetUsedCarSearchSelection, onFailed);
}

function setNewCarSearchSelection(noSelection)
{
    var make = $get('selQuickSearchLookup1_new');
    var model = $get('selQuickSearchLookup2_new');
    var priceBand = $get('selQuickSearchLookup3_new');
    var fuel = $get('selQuickSearchLookup4_new');
    var selMake = make.options[make.selectedIndex].value;
    var selModel = model.options[model.selectedIndex].value;
    var selPriceBand = parseInt(priceBand.options[priceBand.selectedIndex].value);
    var selFuel = fuel.options[fuel.selectedIndex].value;
    
    var noSel = noSelection == 'true' ? true : false;
    
    Carselect.Services.SearchLookupsService.SetNewCarQuickSearchSelection(noSel, selMake, selModel, selPriceBand, selFuel, onCompletedSetNewCarSearchSelection, onFailed);
}

function onCompletedSetNewCarSearchSelection(results)
{
    document.location = String.format("{0}new/Search.aspx", applicationPath);
    var divWaitQS = $get('divWaitQS');
    hide(divWaitQS);
}

function onCompletedSetUsedCarSearchSelection(results)
{
    document.location = String.format("{0}used/Search.aspx", applicationPath);
    var divWaitQS = $get('divWaitQS');
    hide(divWaitQS);
}

function setSelectedType(tp, showboth)
{
    var divWaitQS = $get('divWaitQS');
    hide(divWaitQS);
    
    if (tp == "U")
    {
        $get('divQuickSearch').className = "quicksearchUsed"; 
        
        hide($get('newQuickSearch'));      
        show($get('usedQuickSearch'));
        
        $get('lnkAdvSearch').href = "javascript:setUsedCarSearchSelection('true')";
        $get('lnkAdvSearch2').href = "javascript:setUsedCarSearchSelection('false')";
        
        if (showboth)
        {
            show($get('h3QuickSearchUsedSelected'));
            hide($get('h3QuickSearchNewSelected'));
            hide($get('divQuickSearchTop'));
            show($get('divQuickSearchHead'));
        }
        else
        {
            hide($get('divQuickSearchHead'));
            show($get('divQuickSearchTop'));
        }
    }
    else
    {
        hide($get('h3QuickSearchUsedSelected'));
        show($get('h3QuickSearchNewSelected'));
        $get('divQuickSearch').className = "quicksearchNew";
        
        show($get('newQuickSearch'));      
        hide($get('usedQuickSearch'));
        
        $get('lnkAdvSearch').href = "javascript:setNewCarSearchSelection('true')";
        $get('lnkAdvSearch2').href = "javascript:setNewCarSearchSelection('false')";
        
        if (showboth)
        {
            hide($get('h3QuickSearchUsedSelected'));
            show($get('h3QuickSearchNewSelected'));
            hide($get('divQuickSearchTop'));
            show($get('divQuickSearchHead'));
        }
        else
        {
            hide($get('divQuickSearchHead'));
            show($get('divQuickSearchTop'));
        }
    }
}