/* Minification failed. Returning unminified contents.
(1,4): run-time error CSS1031: Expected selector, found '('
(1,4): run-time error CSS1025: Expected comma or open brace, found '('
(2,4): run-time error CSS1031: Expected selector, found '('
(2,4): run-time error CSS1025: Expected comma or open brace, found '('
(3,4): run-time error CSS1031: Expected selector, found '('
(3,4): run-time error CSS1025: Expected comma or open brace, found '('
(5,1): run-time error CSS1019: Unexpected token, found '$'
(5,2): run-time error CSS1019: Unexpected token, found '('
(5,11): run-time error CSS1031: Expected selector, found ')'
(5,11): run-time error CSS1025: Expected comma or open brace, found ')'
(9,2): run-time error CSS1019: Unexpected token, found ')'
(11,37): run-time error CSS1031: Expected selector, found '='
(11,37): run-time error CSS1025: Expected comma or open brace, found '='
 */
if (typeof brasilbybus == "undefined") { var brasilbybus = new Object(); }
if (typeof brasilbybus.portal == "undefined") { brasilbybus.portal = new Object(); }
if (typeof brasilbybus.portal.main == "undefined") { brasilbybus.portal.main = new Object(); }

$(document).ready(function () {
    brasilbybus.portal.main.finalizacao.load();
    if (typeof $("#orderNumber").val() != "undefined") {
    }
});

brasilbybus.portal.main.finalizacao = {
    load: function () {
        $('.rate-item').on('mouseout', brasilbybus.portal.main.finalizacao.resetStars)
            .delegate('.rate', 'click', brasilbybus.portal.main.finalizacao.saveRate)
            .delegate('.rate', 'mouseover', brasilbybus.portal.main.finalizacao.paintStars);

        $("#petAnjo-banner").click(brasilbybus.portal.main.finalizacao.clickBanner);

        $('.choose-reason-container').delegate('.choose-reason', 'click', brasilbybus.portal.main.finalizacao.saveReason);

        $('#send-comment').click(brasilbybus.portal.main.finalizacao.saveComment);
        $('#send-suggest').click(brasilbybus.portal.main.finalizacao.sendSuggest);
        $('#btnReenviarVoucher').click(brasilbybus.portal.main.finalizacao.resendVoucher);
        $('#btnConfirmarReenvioDoVoucher').removeAttr('onclick');
        $('#btnConfirmarReenvioDoVoucher').click(brasilbybus.portal.main.finalizacao.confirmResendVoucher);
        $('#btnAcompanharPedido').click(brasilbybus.portal.main.finalizacao.redirecToOrderDetails);
        $('#search-return-trip').click(brasilbybus.portal.main.finalizacao.searchReturnTrip);

        $('#erroNoEnvio').hide();
        $('#voucherEnviado').hide();
        $('#formEnviarVoucher').show();

        $('#return-trip-date').setMask({ mask: '99/99/9999', autoTab: false })
            .datetimepicker({
                pickTime: false,
                useCurrent: false,
                minDate: moment($('#js-arrival-date').val(), dataFormat),
                maxDate: moment().add(180, 'd'),
                language: culturaAplicada
            });
    },

    pageRedirect: function (uri) {
        window.location.href = uri;
    },

    redirecToOrderDetails: function () {
        var btn = $('#btnAcompanharPedido');
        btn.button('loading');

        var orderNumber = $('#orderNumber').val();
        $.post(GerarUrl('/Payment/RedirectToOrderDetails'), { order: orderNumber }, brasilbybus.portal.main.finalizacao.afterRedirectToOrderDetails, 'json');
    },

    afterRedirectToOrderDetails: function (retorno) {
        if (retorno.sucesso) {
            window.location.href = retorno.url;
        } else {
            $('#btnAcompanharPedido').button('reset');
            $('#messageError', '#genericMessageModal').html(retorno.mensagem);
            $('#genericMessageModal').modal({ backdrop: 'static' });
        }
    },


    clickBanner: function () {
        var banner = $("#petAnjo-banner");
        var data = {
            Order: banner.data("order"),
            Url: banner.data("url"),
            Campanha: banner.data("campanha"),
        }

        $.post(GerarUrl('/Payment/BannerClick'), data, null, 'json');

        return true;
    },

    resendVoucher: function () {
        $('#erroNoEnvio').hide();
        $('#voucherEnviado').hide();
        $('#formEnviarVoucher').show();
        $('#modalReenviarVoucher').modal({ backdrop: 'static' });
    },

    confirmResendVoucher: function () {
        var btn = $('#btnConfirmarReenvioDoVoucher');
        btn.button('loading');

        $('#erroNoEnvio').hide();
        $('#voucherEnviado').hide();

        var orderNumber = $('#orderNumber').val();
        var emailCliente = $('#campoEmailCliente').val();
        if (!emailCliente)
            emailCliente = $('#resendVoucherEmailCliente').val();
        $.post(GerarUrl('/Tickets/ResendVoucher'), { orderNumber: orderNumber, customerEmail: emailCliente }, brasilbybus.portal.main.finalizacao.afterResendVoucher, 'json');
    },

    afterResendVoucher: function (retorno) {
        var btn = $('#btnConfirmarReenvioDoVoucher');
        btn.button('reset');

        if (retorno.sucesso) {
            $('#erroNoEnvio').text("").hide();
            $('#voucherEnviado').show();
        } else {
            $('#voucherEnviado').hide();
            $('#erroNoEnvio').text(retorno.mensagem).show();
        }
    },

    printVoucher: function (url) {
        var config = "height=740,width=800,scrollTo,resizable=1,scrollbars=1,location=0";
        window.open(url, 'Imprima seu Voucher', config);
    },

    printBankSlip: function (url) {
        var config = "height=740,width=800,scrollTo,resizable=1,scrollbars=1,location=0";
        window.open(url, 'Imprima seu Boleto', config);
    },

    sendComment: function () {
        var data = {
            comment: $('#comments-field').val()
        };
    },

    resetStars: function () {
        var $container = $(this).closest('.rate-item'),
                 $rate = $container.data('rate') - 1;

        $container.find('.fa').removeClass('fa-star').addClass('fa-star-o')
                  .each(function (i) {
                      if (i <= $rate) {
                          $(this).removeClass('fa-star-o').addClass('fa-star');
                      }
                  });
    },

    paintStars: function () {
        var $container = $(this).closest('.rate-item'),
                $index = $(this).index();

        $container.find('.fa').removeClass('fa-star').addClass('fa-star-o')
                  .each(function (i) {
                      if (i <= $index) {
                          $(this).removeClass('fa-star-o').addClass('fa-star');
                      }
                  });
    },

    saveRate: function () {
        var selected = $(this);

        var $container = selected.closest('.rate-item'),
                  data = {
                      Rate: $(this).index() + 1,
                      Topic: { Id: $container.data('id') },
                      idOrder: +$('#orderNumber').val()
                  };

        $container.data('rate', data.Rate)
                  .addClass('rated')
                  .find('.fa').removeClass('fa-star').addClass('fa-star-o')
                  .each(function (i) {
                      if (i <= (data.Rate - 1)) {
                          $(this).removeClass('fa-star-o').addClass('fa-star');
                      }
                  });

        $container.find('.rate-thanks').fadeIn('fast', function () {
            var $this = $(this);

            setTimeout(function () {
                $this.fadeOut('fast');
            }, 3000);
        });

        $.post(GerarUrl('/Rating/SaveRate'), data);
    },

    saveComment: function () {
        var data = {
            idOrder: +$('#orderNumber').val(),
            Text: $.trim($('#comments-field').val())
        };

        if (data.Text) {
            $('#div-comments').addClass('bus-loading').find('#fields').hide();

            $.post(GerarUrl('/Comment/SaveComment'), data, brasilbybus.portal.main.finalizacao.afterSaveComment);
        }
    },

    afterSaveComment: function (json) {
        $('#div-comments').removeClass('bus-loading');

        if (json.sucesso) {
            $('#div-comments').find('.row').addClass('alert alert-success').html(json.mensagem);
        } else {
            $('#div-comments').find('#fields').show();
            $('#messageError', '#genericMessageModal').html(json.mensagem);
            $('#genericMessageModal').modal({ backdrop: 'static' });
        }
    },

    saveReason: function () {
        $(this).addClass('reason-check').prop('disabled', true);

        var data = {
            TripReasonName: { Id: $(this).data('id') },
            IdOrder: +$('#orderNumber').val()
        };

        $.post('/TripReason/SaveReason', data);
    },

    sendSuggest: function () {
        var regex = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
             data = {
                 FriendEmail: $.trim($('#email-suggested-friend').val()),
                 Name: $.trim($('#sugestao-nome').val()),
                 Description: $.trim($('#sugestao-mensagem').val())
             };

        if (data.FriendEmail && regex.test(data.FriendEmail)) {
            $('#send-suggest').button('loading');

            $.post(userInfo.redirect('/Rating/SendFriendSuggestion'), data, brasilbybus.portal.main.finalizacao.afterSendSuggest);
        }
    },

    afterSendSuggest: function () {
        $('#modal-sugestao').modal('hide');
        $('#send-suggest').button('reset');
        $('#email-suggested-friend').val('');
    },

    searchReturnTrip: function () {
        $('#campo-origem').val($('.js-campo-origem').val());
        $('#codigo-origem').val($('.js-codigo-origem').val());

        $('#campo-destino').val($('.js-campo-destino').val());
        $('#codigo-destino').val($('.js-codigo-destino').val());

        $('#campo-ida').val($('#return-trip-date').val());

        $('#procurar').click();
    }
};
