var sVehicleLookupURI = null;
var sSortPriceDescURI = null;
var sSortNewestURI = null;

// Function to get makes based on type

$(function() 
{
    $('select#fVehicleType').change(
    function()
    {        
        $.getJSON(sVehicleLookupURI, {id: $(this).val()}, 
                function(j){
                    oMake = document.getElementById('fVehicleMake');

                    oMake.options.length = 0;

                    oMake.options[0] = new Option('Any', '');

                    for( var i=0; i < j.length; i++)
                    {
                        oMake.options[i+1] = new Option(j[i].name, j[i].id);
                    }
                    
                    oModel = document.getElementById('fVehicleModel');

                    oModel.options.length = 0;

                    oModel.options[0] = new Option('Any', '');
                    
                  } 
                 )
    }
    )
})

// Function to get models based on make

$(function() 
{
    $('select#fVehicleMake').change(function()
    {
        
        oModel = document.getElementById('fVehicleModel');

        oModel.options.length = 0;

        oModel.options[0] = new Option('Any', '');
                    
        if ($(this).val() != '')
        {
            $.getJSON(sVehicleLookupURI, {id: $(this).val()}, 
                    function(j){
                    
                        oModel = document.getElementById('fVehicleModel');

                        // If we only get one element back, and it is set to "any" - don't bother populating
                        if ( j.length == 1 && j[0].name == 'Any' )
                        {
                            return;
                        }
                    
                        for( var i=0; i < j.length; i++)
                        {
                            oModel.options[i+1] = new Option(j[i].name, j[i].id);
                        }

                    } 
                    )
        }
    }
    )
})

// Function to refresh page when sort order is changed

$(function()
{
    $('select#fCurrentOrderBy').change(function()
    {
        if ($(this).val() == 'price_desc')
        {
            window.location = sSortPriceDescURI.replace(/&amp;/g, '&');
        }
        else if ($(this).val() == 'newest')
        {
            window.location = sSortNewestURI.replace(/&amp;/g, '&');
        }
        else if ($(this).val() == 'price_asc')
        {
            window.location = sSortPriceAscURI.replace(/&amp;/g, '&');
        }
    }
    )
})

// Function to select all attributes
// http://abeautifulsite.net/notebook.php?article=50

$(function()
{
    $("A[href='#select_all']").click(function()
    {
        $("#" + $(this).attr('rel') + " INPUT[type='checkbox']").attr('checked', true);
    }
    )
})

// Function to clear all attributes

$(function()
{
    $("A[href='#clear_all']").click(function()
    {
        $("#" + $(this).attr('rel') + " INPUT[type='checkbox']").attr('checked', false);
    }
    )
})

// Function to reset all selections

$(function()
{
    $("input#reset_form").click(function()
    {
        oTypes = document.getElementById('fVehicleType');
        oTypes.options[0].selected = true;

        oMake = document.getElementById('fVehicleMake');
        oMake.options.length = 0;
        oMake.options[0] = new Option('Any', '');

        if (oTypes.options[0].value != '')
        {
            $.getJSON(sVehicleLookupURI, {id: oTypes.options[0].value}, 
                    function(j){
                    
                        oMake = document.getElementById('fVehicleMake');

                        // If we only get one element back, and it is set to "any" - don't bother populating
                        if ( j.length == 1 && j[0].name == 'Any' )
                        {
                            return;
                        }
                    
                        for( var i=0; i < j.length; i++)
                        {
                            oMake.options[i+1] = new Option(j[i].name, j[i].id);
                        }

                    } 
                    )
        }

        oModel = document.getElementById('fVehicleModel');
        oModel.options.length = 0;
        oModel.options[0] = new Option('Any', '');

        oMaxPrice = document.getElementById('fMaxPrice');
        oMaxPrice.options[0].selected = true;

        oMinPrice = document.getElementById('fMinPrice');
        oMinPrice.options[0].selected = true;

        oRegion = document.getElementById('fRegionId');
        oRegion.options[0].selected = true;

        oOrderBy = document.getElementById('fOrderBy');
        oOrderBy.options[0].selected = true;

        oYear = document.getElementById('fYear');
        oYear.value = '';

        oKilometres = document.getElementById('fKilometres');
        oKilometres.value = '';

        $("#search_features INPUT[type='checkbox']").attr('checked', false);

        $("#fPrivateOnly").attr('checked', false);

        $("#fPicsOnly").attr('checked', false);

    })
})
