﻿var VehicleTypeString = 'Used';
var defaultMakeText = 'Select Brand (0)';
var defaultRangeText = 'Select Model (0)';
var defaultToPriceText = 'Select To Price';
var CheckChangeCount = 0;
// debugger
$(function () {
 
    $("select[id$='cboMake']").bind("change", function () {
       //debugger
        if (!BuildVehicleTypeString()) {
            return;
        }

         
     var Make = $(this).val();
        if (Make != '') {
            ReadRanges_Zeda(Make, '');
        }
    });

    $("input[id$='chkUsed']").bind("click", function () {
    
        if (!BuildVehicleTypeString()) {
            return;
        }
        
        CheckChangeCount = 0;

        $("input[id$='chkUsed']").attr('disabled', 'disabled');
      
        var MakeToRemember = $("select[id$='cboMake'] :selected").val();
        var RangeToRemember = $("select[id$='cboRange'] :selected").val();

        ReadMakes_Zeda(MakeToRemember);
        ReadRanges_Zeda(MakeToRemember, RangeToRemember);
    });
    $("select[id$='cboFromPrice']").bind("change", function () {

        var FromPrice = $("select[id$='cboFromPrice'] :selected").val();
        if (FromPrice != 'ALL') {
            $("select[id$='cboToPrice']>option").remove();
            $("select[id$='cboToPrice']").attr('disabled', 'disabled');
            $("select[id$='cboToPrice']").get(0).options[0] = new Option(defaultToPriceText, "-1");

            $.ajax({
                type: "GET",
                url: "/AjaxWCFHelper.svc/ReadToPrice/" + FromPrice,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    $("select[id$='cboToPrice']>option").remove();
                    for (var i = 0; i <= response.length - 1; i++) {
                        $("select[id$='cboToPrice']").append($('<option></option>').val(response[i].Key).html(response[i].Value));
                    }

                    $("select[id$='cboToPrice']").removeAttr('disabled');
                },
                error: function (response) {
                    if (response.length != 0)
                        alert(response.status + ' ' + response.responseText);
                },
                beforeSend: AjaxStart($("select[id$='cboFromPrice']")),
                complete: AjaxComplete
            });
        }
        else {
            $("select[id$='cboToPrice']>option").remove();
            $("select[id$='cboToPrice']").get(0).options[0] = new Option(defaultToPriceText, "-1");
        }
    });
    function ReadMakes_Zeda(MakeToRemember) {
        var makeCbo = $("select[id$='cboMake']");

        $("select[id$='cboMake']>option").remove();
        makeCbo.attr('disabled', 'disabled');
        makeCbo.get(0).options[0] = new Option(defaultMakeText, "-1");

        $.ajax({
            type: "GET",
            url: "/AjaxWCFHelper.svc/ReadMakes_Zeda/" + VehicleTypeString,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (response) {
                $("select[id$='cboMake']>option").remove();
                for (var i = 0; i <= response.length - 1; i++) {
                    makeCbo.append($('<option></option>').val(response[i].Key).html(response[i].Value));
                }

                if (MakeToRemember != '')
                    $("select[id$='cboMake']>option[value='" + MakeToRemember + "']").attr("selected", true);

                makeCbo.removeAttr('disabled');

                CheckChangeCount++;
                if (CheckChangeCount == 2) {
                    $("input[id$='chkUsed']").removeAttr('disabled');
                    CheckChangeCount = 0;
                }
            },
            error: function (response) {
                if (response.length != 0)
                    alert(response.status + ' ' + response.responseText);
            },
            beforeSend: AjaxStart(makeCbo),
            complete: AjaxComplete
        });
    }
    function ReadRanges_Zeda(Make, RangeToRemember) {
        var rangeCbo = $("select[id$='cboRange']");

        $("select[id$='cboRange']>option").remove();
        rangeCbo.attr('disabled', 'disabled');
        rangeCbo.get(0).options[0] = new Option("Loading Models...", "-1");

        $.ajax({
            type: "GET",
            url: "/AjaxWCFHelper.svc/ReadRanges_Zeda/" + VehicleTypeString + "/" + Make,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (response) {
                $("select[id$='cboRange']>option").remove();
                for (var i = 0; i <= response.length - 1; i++) {
                    rangeCbo.append($('<option></option>').val(response[i].Key).html(response[i].Value));
                }

                if (RangeToRemember != '')
                    $("select[id$='cboRange']>option[value='" + RangeToRemember + "']").attr("selected", true);

                rangeCbo.removeAttr('disabled');

                CheckChangeCount++;
                if (CheckChangeCount == 2) {
                    $("input[id$='chkNew'],input[id$='chkUsed'],input[id$='chkDemo']").removeAttr('disabled');
                    CheckChangeCount = 0;
                }
            },
            error: function (response) {
                if (response.length != 0)
                    alert(response.status + ' ' + response.responseText);
            },
            beforeSend: AjaxStart(rangeCbo),
            complete: AjaxComplete
        });
    }
   
    function BuildVehicleTypeString() {
        VehicleTypeString = 'Used';
        var NoTypeCount = 1;

        if (NoTypeCount == 0) {
            $("select[id$='cboMake']>option").remove();
            $("select[id$='cboMake']").get(0).options[0] = new Option(defaultMakeText, "-1");

            $("select[id$='cboRange']>option").remove();
            $("select[id$='cboRange']").get(0).options[0] = new Option(defaultRangeText, "-1");

            $("a[id$='hlSearch']").attr('disabled', 'disabled');

            return false;
        }
        else {
            $("a[id$='hlSearch']").removeAttr('disabled');
            VehicleTypeString = VehicleTypeString;
            return true;
        }
    }

    $("a[id$='hlSearch']").bind("click", function () {
        var NavUrl = "/Cars/";

        if (!BuildVehicleTypeString()) {
            NavUrl += 'Used';
        }
        else {
            NavUrl += VehicleTypeString;
        }

        if ($("select[id$='cboMake']").attr("selectedIndex") > 0)
            NavUrl += '/' + $("select[id$='cboMake'] :selected").val();
        else
            NavUrl += '/All';

        if ($("select[id$='cboRange']").attr("selectedIndex") > 0)
            NavUrl += '/' + $("select[id$='cboRange'] :selected").val().replace('/', '#');
        else
            NavUrl += '/All';

        //From Year, To Year
        NavUrl += '/Any/Any';

        if ($("select[id$='cboFromPrice']").attr("selectedIndex") > 0)
            NavUrl += '/' + $("select[id$='cboFromPrice'] :selected").val();
        else
            NavUrl += '/Any';

        if ($("select[id$='cboToPrice']").attr("selectedIndex") > 0)
            NavUrl += '/' + $("select[id$='cboToPrice'] :selected").val();
        else
            NavUrl += '/Any';

        // for region
        if ($("select[id$='cboRegion']").attr("selectedIndex") > 0)
            NavUrl += '/' + $("select[id$='cboRegion'] :selected").val();
        else
            NavUrl += '/Any';


        $(this).attr('href', NavUrl);        
    });

    //This is for when somebody hovers over a dropdown menu item and if the resolution is very small it will scroll into view
    $(".linkopacity").hover(function () {
        if ($(window).height() <= 422 && $("html,body").scrollTop() <= 50) {
            $("html,body").animate({ scrollTop: 100 }, 500);
        }
    }, function () { });


    function AjaxComplete() {
        $("a[id$='hlSearch']").removeAttr('disabled');
        $(".AjaxLoadingBackground2").fadeOut(1000);
    }
    function AjaxStart(loadTarget) {
        if (loadTarget != null) {
            $("a[id$='hlSearch']").attr('disabled', 'disabled');
            $(".AjaxLoadingBackground2").css({ top: loadTarget.offset().top, left: loadTarget.offset().left }).fadeIn(200);
        }
    }

}); 
