﻿//Initialize component
$().ready(function() {
    OnlineQuote.init();

});

OnlineQuote = {

    //initialize the component
    init: function() {
        OnlineQuote.setCalendars();
        OnlineQuote.setEventHandlers();
    },

    setEventHandlers: function() {
        $(".btnSubmitOQ").unbind().click(OnlineQuote.onClickSubmit);
        $(".btnCancelOQ").unbind().click(OnlineQuote.onClickCancel);
        $(".BtnFaite").unbind().click(OnlineQuote.onClickRecall);
        $(".btnBranchLocatorOQR").unbind().click(OnlineQuote.onClickBranchLocator);
    },

    onClickSubmit: function(e) {
        var nDepartment;

        //XITI Tagging Measurements
        xt_med('F', xtn2, 'bouton_calculer_devis&x1=' + $(".activity").val() + '&x2=' + $(".txtZipCodeOQ").val());
        xt_med('F', xtn2, 'bouton_devis_calculer');

        //Remove validation error messages
        if ($(".pnlValidationSummaryOQ").html() != "")
            $(".pnlValidationSummaryOQ").html("");

        if (OnlineQuote.validate()) {

            nDepartment = $(".txtZipCodeOQ").val();

            /*
            var res = WSK.ADom.ClientServices.Main.GetOnliQuoteResultControl(
            $(".activity").val(),
            nDepartment.substr(0, 2),
            $(".txtHoursNumber").val(),
            $(".vehicule_oui :input").attr("checked"));
            */
            var res = WSK.ADom.ClientServices.Main.GetOnliQuoteResultControl(
                                                $(".activity").val(),
                                                nDepartment.substr(0, 2),
                                                0,
                                                false);

            if (res.error == null) {
                $(".cotation_content").replaceWith(res.value);
                $(".lblPriceOQR").text($(".lblPriceHidden").text());
                $(".lblPriceHidden").text("");
                $(".lblPriceOQR2").text($(".lblPriceHidden2").text());
                $(".lblPriceHidden2").text("");
                $(".lblPriceInfoOQR").text($(".lblPriceHidden3").text());
                $(".lblPriceHidden3").text("");
                OnlineQuote.setEventHandlers();
                $(".cotation_top:hidden").slideDown("slow");
            } else {
                //Redirect to system error page
                //redirectToSystemErrorPage();
            }
            $("html:not(:animated),body:not(:animated)").animate({ scrollTop: $("div.cotation_content").offset().top }, 1100);
        }
        return false;
    },

    validate: function() {
        var result = true;
        var resultDate = true;

        //Common validations
        result = Validation.EmptyListValidating($(".ddlActivityOQ"), ErrorMessages.ACTIVITY_NOTSELECTED, $(".pnlValidationSummaryOQ"));
        /*
        result = Validation.isNotNullOrEmpty($(".date_debutOQ"), ErrorMessages.DATEDEBUT_EMPTY, $(".pnlValidationSummaryOQ"));
        if (result) {
        resultDate = Validation.isAFutureDate($(".date_debutOQ"), ErrorMessages.DATEDEBUT_INCORRECT, $(".pnlValidationSummaryOQ"));
        result = result & resultDate;
        }
        result = Validation.isNotNullOrEmpty($(".date_finOQ"), ErrorMessages.DATEFIN_EMPTY, $(".pnlValidationSummaryOQ"));
        if (result) {
        resultDate = resultDate & Validation.isAFutureDate($(".date_finOQ"), ErrorMessages.DATEFIN_INCORRECT, $(".pnlValidationSummaryOQ"));
        result = result & resultDate;
        }

        if ($(".date_debutOQ").val() != "" && $(".date_finOQ").val() != "" && resultDate == true)
        result = Validation.dateGreaterThan($(".date_debutOQ"), $(".date_finOQ"), ErrorMessages.DATEDEBUT_GREATER, $(".pnlValidationSummaryOQ"));
        result = Validation.isNotNullOrEmpty($(".txtHoursNumberOQ"), ErrorMessages.HOURSNUMBER_EMPTY, $(".pnlValidationSummaryOQ"));
        if (result) result = Validation.isNumeric($(".txtHoursNumberOQ"), ErrorMessages.HOURSNUMBER_INCORRECT, $(".pnlValidationSummaryOQ"));
        */
        result = Validation.isNotNullOrEmpty($(".txtZipCodeOQ"), ErrorMessages.ZIPCODE_EMPTY, $(".pnlValidationSummaryOQ"));
        if (result) result = Validation.isLengthEqualTo($(".txtZipCodeOQ"), 5, ErrorMessages.ZIPCODE_LENGTH, $(".pnlValidationSummaryOQ"));

        if ($(".pnlValidationSummaryOQ").val() != "") {
            var errorMessages = "";
            var htmlErrors;

            errorMessages = $(".pnlValidationSummaryOQ").val();
            htmlErrors = "<div>" + errorMessages + "</div>";
            if ($(".pnlValidationSummaryOQ").html() != "")
                $(".pnlValidationSummaryOQ").html("");
            $(".pnlValidationSummaryOQ").html(htmlErrors);
            $(".pnlValidationSummaryOQ").val("");
            result = false;
        } else {
            result = true;
        }
        return result;
    },

    onClickCancel: function() {
        //XITI Tagging Measurements
        xt_med('F', xtn2, 'bouton_devis_annuler');
    },

    onClickRecall: function(e) {
        //XITI Tagging Measurements
        xt_med('F', xtn2, 'lien_devis_faites_vous_rappeler');
        AutomaticRecall.ControlMode = AutomaticRecall.ControlModeType.OnlineQuote;
        AutomaticRecall.show();
        return false;
    },

    onClickBranchLocator: function() {
        var sUrl;

        //XITI Tagging Measurements
        xt_med('F', xtn2, 'lien_devis_trouver_agence');

        //Navigates to Branch Locator
        sUrl = WSK.ADom.ClientServices.Main.GetBranchLocatorURL();

        if (sUrl != null && sUrl.value != "") {
            location.href = 'http://' + location.host + sUrl.value;
        }
        return false;
    },

    // Calendar  -------------------------------------------------
    setCalendars: function() {

        if ($(".date_debut").size() != 0) {

            $(".date_debut").datepicker({
                dateFormat: 'dd/mm/yy',
                buttonImage: '/asset/images/pictos/picto_calendar.gif',
                buttonImageOnly: true,
                showOn: 'button',
                prevText: '&lt;',
                nextText: '&gt;',
                monthNames: ['Janvier', 'Fevrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Decembre']
            });

            $(".date_fin").datepicker({
                dateFormat: 'dd/mm/yy',
                buttonImage: '/asset/images/pictos/picto_calendar.gif',
                buttonImageOnly: true,
                showOn: 'button',
                prevText: '&lt;',
                nextText: '&gt;',
                monthNames: ['Janvier', 'Fevrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Decembre']
            });

            $('.date_debut').datepicker().focus(function() {
                $('#ui-datepicker-div').css('top', $(this).offset().top + $(this).height() - 14);
                $('#ui-datepicker-div').css('left', $(this).offset().left + $(this).width() + 29);
            });

            $('.date_fin').datepicker().focus(function() {
                $('#ui-datepicker-div').css('top', $(this).offset().top + $(this).height() - 14);
                $('#ui-datepicker-div').css('left', $(this).offset().left + $(this).width() + 29);
            });
        }
    }
};