$(document).ready(function () {
    SendRepresentante.init();
});

var SendRepresentante = {
    init: function () {
        SendRepresentante.configs();
        SendRepresentante.enviar();
        SendRepresentante.loadCidades();
        SendRepresentante.confirmEmails();
    },
    configs: function () {
        $('.telefone').inputmask('+55 (99) 9999-9999[9]');
        $(".cnpj").inputmask('99.999.999/9999-99');
    },
    enviar: function () {
        $("#frmRepresentante").on("submit", function (e) {
            e.preventDefault();
            var $formContato = $(this);
            var $msgSucesso = $("#frmRepresentante .msg-form.msg-sucesso");
            var $msgErro = $("#frmRepresentante .msg-form.msg-erro");
            var $btnForm = $("#frmRepresentante .btn-form");

            $msgSucesso.html("");
            $msgErro.html("");
            $btnForm.attr("disabled", true).html("ENVIANDO...");

            $.ajax({
                data: new FormData(e.target),
                type: 'post',
                dataType: 'json',
                url: '/data/form',
                processData: false,
                contentType: false,
            })
                    .done(function (data) {
                        console.log(data);

                        if (data.errorCode === 0) {
                            $formContato[0].reset();
                            $msgSucesso.html("Mensagem enviada com sucesso");
                            $msgErro.html("");

                        } else {
                            $msgSucesso.html("");
                            $msgErro.html("Falha ao enviar:" + data.errorMsg);
                        }

                        $btnForm.attr("disabled", false).html("ENVIAR <i class='icon-enviar icon-white'></i>");
                    })
                    .fail(function (data) {
                        $msgSucesso.html("");
                        $msgErro.html("Falha ao enviar:" + data.errorMsg);

                        $btnForm.attr("disabled", false).html("ENVIAR <i class='icon-enviar icon-white'></i>");
                    })
                    ;
        });
    },
    loadCidades: function () {
        $("#frmRepresentante .frm-input .estado").on("change", function () {
            var $t = $(this);
            var uf = $t.val();
            var $cidades = $("#frmRepresentante .frm-input .cidade");
            var $msgErro;
            var stCidades = "";

            $.ajax({
                data: {
                    uf: uf
                },
                type: 'post',
                url: '/data/cidade/load',
            })
                    .done(function (data) {
                        if (data.errorCode === 0) {
                            var cidades = data.data;
                            stCidades = "<option value=''>Selecione...</option>";

                            for (var i in cidades) {
                                var item = cidades[i];
                                stCidades += "<option value ='" + item['cdCidade'] + "'>" + item['stCidade'] + "</option>";
                            }

                            $cidades.html(stCidades);

                        } else {
                            $msgErro.html("Falha ao carregar:" + data.errorMsg);
                        }

                    })
                    .fail(function (data) {
                        $msgErro.html("Falha ao carregar:" + data.errorMsg);
                    });
        });
    },
    confirmEmails: function () {
        $('.cp-email').off("keyup").on("keyup", function (e) {
            SendRepresentante.validaEmails();
        });

        $('.cp-confirmar').off("keyup").on("keyup", function (e) {
            SendRepresentante.validaEmails();
        });
    },
    validaEmails: function () {
        var $cpEmail = $(".cp-email");
        var $cpConfirmar = $(".cp-confirmar");
        var $btnForm = $("#frmRepresentante .btn-form");
        var $msgValidacao = $(".msg-validacao");

        if ($cpEmail.val() != $cpConfirmar.val()) {
            $btnForm.attr("disabled", true);
            $msgValidacao.fadeIn();

        } else {
            $btnForm.attr("disabled", false);
            $msgValidacao.fadeOut();
        }
    }
}
