﻿/* Copyright © Website Engineers Limited */

/* Car Search */

var cId = "#ctl00_Content_";

jQuery(document).ready(

    function() {

        $(".Dealers").hide();
        $(".DealersShow").click(
            function() {
                if ($(".Dealers").is(":visible")) {
                    $(".Dealers").hide("fast");
                    $(".DealersShow").html("<p><img src=/images/car_search/listing/dealer/arrow_down.gif /> click here to open Dealer Directory</p>")
                }
                else {
                    $(".Dealers").show("fast");
                    $(".DealersShow").html("<p><img src=/images/car_search/listing/dealer/arrow_up.gif /> click here to close Dealer Directory</p>")
                }
            }
        );

        $("#Tabs").tabs({ fx: { opacity: 'toggle' } });

        $(".AdvancedSearch").hide();
        $(".AdvancedToggle,.AdvancedClose").click(
            function() {
                if ($(".AdvancedSearch").is(":visible")) {
                    $(".AdvancedSearch").hide("fast");
                    $(".AdvancedToggle").html("<img src=/images/car_search/advanced/arrow_down.gif /> click here to open Advanced Search")
                }
                else {
                    $(".AdvancedSearch").show("fast");
                    $(".AdvancedToggle").html("<img src=/images/car_search/advanced/arrow_up.gif /> click here to close Advanced Search")
                }
            }
        );

        $(".MonthlyFrom,.MonthlyTo").click(
            function() {
                if ($(this).val().indexOf("monthly") != -1) {
                    $(this).val("£")
                }
            }
        );
        function AddPerMonth(CssID) {
            if ($(CssID).val().indexOf("p") == -1) {
                $(CssID).val($(CssID).val() + " per month");
                $(CssID).val($(CssID).val().replace("  ", " "))
            }
        }
        $(".MonthlyFrom,.MonthlyTo").blur(
            function() {
                AddPerMonth($(this))
            }
        );
        $(".PriceFrom,.PriceTo").click(
            function() {
                if ($(this).val().indexOf("price") != -1)
                    $(this).val("£")
            }
        );

        function clearDropDown(dropDown) {
            dropDown = cId + dropDown;
            $(dropDown).empty();
            $(dropDown).append('<option value="Please select">Loading...</option>');
        }
        function hydrateDropDown(data, statusText, dropDown, selectedValue) {
            dropDown = cId + dropDown;
            $(dropDown).empty();
            $(dropDown).append('<option value="">' + dropDown.replace(cId, "").toLowerCase() + ' (all)</option>');
            $('Selector', data).each(
                function(i) {
                    if (($(this).find("Value").text() == selectedValue) && (selectedValue != "")) {
                        $(dropDown).append('<option value="' + $(this).find("Value").text() + '" selected="selected">' + $(this).find("Text").text() + '</option>')
                    }
                    else {
                        $(dropDown).append('<option value="' + $(this).find("Value").text() + '">' + $(this).find("Text").text() + '</option>')
                    }
                }
            )
        }
        function getParams(dropDown) {
            var params = "";
            switch (dropDown.replace(cId, "")) {
                case "Make":
                    params = "Make=" + $(cId + "Make").val();
                    params += "&Model=";
                    params += "&BodyType=";
                    params += "&EngineSize=";
                    params += "&Transmission=";
                    params += "&FuelType=";
                    break;
                case "Model":
                    params = "Make=" + $(cId + "Make").val();
                    params += "&Model=" + $(cId + "Model").val();
                    params += "&BodyType=";
                    params += "&EngineSize=";
                    params += "&Transmission=";
                    params += "&FuelType=";
                    break;
                case "BodyType":
                    params = "Make=" + $(cId + "Make").val();
                    params += "&Model=" + $(cId + "Model").val();
                    params += "&BodyType=" + $(cId + "BodyType").val();
                    params += "&EngineSize=";
                    params += "&Transmission=";
                    params += "&FuelType=";
                    break;
                case "EngineSize":
                    params = "Make=" + $(cId + "Make").val();
                    params += "&Model=" + $(cId + "Model").val();
                    params += "&BodyType=" + $(cId + "BodyType").val();
                    params += "&EngineSize=" + $(cId + "EngineSize").val();
                    params += "&Transmission=";
                    params += "&FuelType=";
                    break;
                case "Transmission":
                    params = "Make=" + $(cId + "Make").val();
                    params += "&Model=" + $(cId + "Model").val();
                    params += "&BodyType=" + $(cId + "BodyType").val();
                    params += "&EngineSize=" + $(cId + "EngineSize").val();
                    params += "&Transmission=" + $(cId + "Transmission").val();
                    params += "&FuelType=";
                    break;
                default:
                    params = "Start=" + $(dropDown).attr("selectedIndex");
                    break;
            }
            return params
        }
        function ajaxDropDown(dropDown, dropDownIndex) {
            var selectedValue = $(cId + dropDown + " option:selected").val();
            clearDropDown(dropDown);
            $.ajax(
                    {
                        type: "POST",
                        url: "/advanced_search_service.asmx/" + dropDown,
                        data: getParams(cId + dropDownIndex),
                        dataType: "xml",
                        success: function(data, statusText) { hydrateDropDown(data, statusText, dropDown, selectedValue) },
                        error: ajaxFailed
                    }
                )
        }

        $(cId + "Make").change(
            function() {
                ajaxDropDown("Model", "Make");
                ajaxDropDown("BodyType", "Make");
                ajaxDropDown("EngineSize", "Make");
                ajaxDropDown("Transmission", "Make");
                ajaxDropDown("FuelType", "Make")
            }
        );
        $(cId + "Model").change(
            function() {
                ajaxDropDown("BodyType", "Model");
                ajaxDropDown("EngineSize", "Model");
                ajaxDropDown("Transmission", "Model");
                ajaxDropDown("FuelType", "Model")
            }
        );
        $(cId + "BodyType").change(
            function() {
                ajaxDropDown("EngineSize", "BodyType");
                ajaxDropDown("Transmission", "BodyType");
                ajaxDropDown("FuelType", "BodyType")
            }
        );
        $(cId + "EngineSize").change(
            function() {
                ajaxDropDown("Transmission", "EngineSize");
                ajaxDropDown("FuelType", "EngineSize")
            }
        );
        $(cId + "Transmission").change(
            function() {
                ajaxDropDown("FuelType", "Transmission")
            }
        );

        $(cId + "MileageFrom").change(
            function() {
                ajaxDropDown("MileageTo", "MileageFrom")
            }
        );
        $(cId + "InsuranceFrom").change(
            function() {
                ajaxDropDown("InsuranceTo", "InsuranceFrom")
            }
        );
        $(cId + "Co2From").change(
            function() {
                ajaxDropDown("Co2To", "Co2From")
            }
        );
        $(cId + "AgeFrom").change(
            function() {
                ajaxDropDown("AgeTo", "AgeFrom")
            }
        );

    }

);

function ajaxFailed(result) {
    alert("Error: " + result)
}
                  
/* End */