﻿function populateAdvancedMakes()
{
    Carselect.Services.SearchLookupsService.GetUsedMakes(onCompletedAdvancedUsedMakes);
}

function populateAdvancedModels(makeName)
{
    Carselect.Services.SearchLookupsService.GetUsedModels(makeName, onCompletedAdvancedUsedModels);
}

function populateAdvancedTransmissionTypes()
{
    Carselect.Services.SearchLookupsService.GetUsedTransmissionTypes(onCompletedUsedTransmissionTypes);
}

function populateAdvancedFuelTypes()
{
    Carselect.Services.SearchLookupsService.GetUsedFuelTypes(onCompletedUsedFuelTypes);
}

function populateAdvancedBodyStyles()
{
    Carselect.Services.SearchLookupsService.GetUsedBodyStyles(onCompletedUsedBodyStyles);
}

function populateAdvancedColours()
{
    Carselect.Services.SearchLookupsService.GetUsedColours(onCompletedUsedColours);
}

function setUpUsedAdvancedSearch()
{
    $get('chIncSold').checked = incSold;
    
    populateAdvancedMakes();
    populateAdvancedModels(make);
    populateAdvancedTransmissionTypes();
    populateAdvancedFuelTypes();
    populateAdvancedBodyStyles(); 
    populateAdvancedColours();
}


function onCompletedAdvancedUsedMakes(results)
{
    var sel = $get('selAdvancedSearchLookup1');
    displayLookupSelected(results, sel, "", make);
} 

function onCompletedAdvancedUsedModels(results)
{
    var sel = $get('selAdvancedSearchLookup2');
    displayLookupSelected(results, sel, "", model);
}

function onCompletedUsedFuelTypes(results)
{
    var sel = $get('selAdvancedSearchLookup5');
    displayLookupSelected(results, sel, "", fuelType);
} 

function onCompletedUsedTransmissionTypes(results)
{
    var sel = $get('selAdvancedSearchLookup6');
    displayLookupSelected(results, sel, "", transmission);
}

function onCompletedUsedColours(results)
{
    var sel = $get('selAdvancedSearchLookup7');
    displayLookupSelected(results, sel, "", colour);
}

function onCompletedUsedBodyStyles(results)
{
    var sel = $get('selAdvancedSearchLookup8');
    displayLookupSelected(results, sel, "", bodyStyle);
}

function populateAdvancedSearchLookup2(mkName)
{
    populateAdvancedModels(mkName);
}

var make = "";
var model = "";
var upperPrice = '0';
var lowerPrice = '0';
var fuelType = "";
var transmission = "";
var colour = "";
var bodyStyle = "";
var quickSearch = false;
var incSold = true;
    
var currentSort;
var currentDirection;
var numOnPage;

function checkSearchCriteria()
{
    var x = document.getElementById("selAdvancedSearchLookup1");
    make = x.options[x.options.selectedIndex].value;

    x = document.getElementById("selAdvancedSearchLookup2");
    model = x.options[x.options.selectedIndex].value;
    
    x = document.getElementById("selAdvancedSearchLookup3");
    lowerPrice = parseInt(x.options[x.options.selectedIndex].value);
    
    x = document.getElementById("selAdvancedSearchLookup4");
    upperPrice = parseInt(x.options[x.options.selectedIndex].value);

    x = document.getElementById("selAdvancedSearchLookup5");
    fuelType = x.options[x.options.selectedIndex].value;
                
    x = document.getElementById("selAdvancedSearchLookup6");
    transmission = x.options[x.options.selectedIndex].value;
    
    x = document.getElementById("selAdvancedSearchLookup7");
    colour = x.options[x.options.selectedIndex].value;
                
    x = document.getElementById("selAdvancedSearchLookup8");
    bodyStyle = x.options[x.options.selectedIndex].value;
    
    x = document.getElementById("chIncSold");
    incSold = x.checked;
}

function doSearch()
{
    currentSort = "Saving";
    currentDirection = -1;
    
    if (!quickSearch)
        checkSearchCriteria(); 
        
    var divWait = $get('divWait');
    showWaiting(divWait); 
    
    var txtRefNo = $get('txtRefNo');
    if (txtRefNo.value == "")
        populateUsedCarSearchResults(make, model, parseInt(upperPrice), parseInt(lowerPrice), fuelType, transmission, colour, bodyStyle, incSold, 1);
    else
    {
        if (!checknumber(txtRefNo.value.trim()))
            alert("Please provide a valid reference number");
        else
            document.location.href = String.format("/used/cars/AnyMake/AnyModel/{0}.aspx", txtRefNo.value.trim());
    }
}

function populateUsedCarSearchResults(make, model, upperPrice, lowerPrice, fuelType, transmission, colour, bodyStyle, incSold, currentPage)
{
    Carselect.Services.CarService.GetUsedCarSearchResults(make, model, parseInt(upperPrice), parseInt(lowerPrice), fuelType, transmission, colour, bodyStyle, incSold, currentPage, currentSort, currentDirection, numOnPage, onCompletedGetUsedCarSearchResults);
}

function onCompletedGetUsedCarSearchResults(results)
{
    var divVariants = $get('divVariants');
    var tblVariants = $get('tblVariants');
    var divMoreCars  = $get('divMoreCars');
    var lnkMoreCars  = $get('lnkMoreCars');
    var divCarManufacturers = $get('divCarManufacturers');
    
    show(divVariants);
    hide(divCarManufacturers);
    
    var divWait = $get('divWait');
    hide(divWait);
    
    populateUsedCarsTable(results, divVariants, tblVariants, divMoreCars, lnkMoreCars);
}



function getMoreCars(nextPage)
{
    checkSearchCriteria();
    
    var divWait = $get('divWait');
    showWaiting(divWait);
    
    populateUsedCarSearchResults(make, model, parseInt(upperPrice), parseInt(lowerPrice), fuelType, transmission, colour, bodyStyle, incSold, nextPage);
}

function changeCurrentSort(sort)
{
    if (currentSort != sort)
        currentDirection = 1;
    else
        currentDirection = (currentDirection == 1) ? -1 : 1;
    currentSort = sort;
        
    var divWait = $get('divWait');
    showWaiting(divWait);
    
    populateUsedCarSearchResults(make, model, parseInt(upperPrice), parseInt(lowerPrice), fuelType, transmission, colour, bodyStyle, incSold, 1);
}
