﻿var inscr = {
    init: function() {
        inscr.inicializaCampos();

        if ($.browser.mozilla) {
            $("#txtEndereco").width(257);
            $("#txtCnpj").width(221);
            $("#txtNumeroConta").width(251);
        }

        jQuery.validator.addMethod("msgErro", function(value, element, param) {
            return (value.toLowerCase().indexOf("preencha o") >= 0) ? false : true;
        }, "");

        jQuery.validator.addMethod("NumeroConta", function(value, element, param) {
            return !$("#chkConta").attr("checked") || ($("#chkConta").attr("checked") && $("#txtNumeroConta").val() != "Se sim, qual?" && value != "") ? true : false;
        }, "");

        jQuery.validator.addMethod("requiredEstado", function(value, element, param) {
            return element.selectedIndex > 0;
        }, "");

        $("#frmInscricao").validate({
            rules: {
                txtNome: {
                    required: true,
                    notEqual: "nome",
                    msgErro: true
                },
                txtEmpresa: {
                    required: true,
                    notEqual: "nome da empresa",
                    msgErro: true
                },
                txtEmail: {
                    required: true,
                    notEqual: "e-mail",
                    msgErro: true
                },
                txtEndereco: {
                    required: true,
                    notEqual: "endereço",
                    msgErro: true
                },
                ddlEstado: {
                    requiredEstado: true
                },
                txtCidade: {
                    required: true,
                    notEqual: "cidade",
                    msgErro: true
                },
                txtTelefone: {
                    required: true,
                    notEqual: "telefone",
                    msgErro: true
                },
                txtCnpj: {
                    required: true,
                    notEqual: "CNPJ",
                    cnpj: true
                },
                txtNumeroConta: {
                    NumeroConta: true
                }
            },
            messages: {
                txtNome: {
                    required: "Preencha o \"nome\".",
                    notEqual: "Preencha o \"nome\".",
                    msgErro: "Preencha o \"nome\"."
                },
                txtEmpresa: {
                    required: "Preencha o \"nome da empresa\".",
                    notEqual: "Preencha o \"nome da empresa\".",
                    msgErro: "Preencha o \"nome da empresa\"."
                },
                txtEmail: {
                    required: "Preencha o \"e-mail\".",
                    notEqual: "Preencha o \"e-mail\".",
                    msgErro: "Preencha o \"e-mail\"."
                },
                txtEndereco: {
                    required: "Preencha o \"endereço\".",
                    notEqual: "Preencha o \"endereço\".",
                    msgErro: "Preencha o \"endereço\"."
                },
                ddlEstado: {
                    requiredEstado: "Preencha o \"nome da empresa\"."
                },
                txtCidade: {
                    required: "Preencha a \"cidade\".",
                    notEqual: "Preencha a \"cidade\".",
                    msgErro: "Preencha a \"cidade\"."
                },
                txtTelefone: {
                    required: "Preencha o \"telefone\".",
                    notEqual: "Preencha o \"telefone\".",
                    msgErro: "Preencha o \"telefone\"."
                },
                txtCnpj: {
                    required: "Preencha o \"CNPJ\".",
                    notEqual: "Preencha o \"CNPJ\".",
                    msgErro: "Preencha o \"CNPJ\".",
                    cnpj: "CNPJ inválido."
                },
                txtNumeroConta: {
                    NumeroConta: "Preencha o \"Número da conta FedEx\"."
                }
            },
            errorPlacement: inscr.ErrorPlacement,
            invalidHandler: inscr.ErroForm,
            submitHandler: inscr.EnviarForm,
            focusInvalid: false,
            onfocusout: false,
            onkeyup: false,
            onclick: false
        });
    },

    inicializaCampos: function() {
        $("#txtNome").bind("focus", { valor: "nome" }, inscr.Focus);
        $("#txtNome").bind("blur", { valor: "nome" }, inscr.Blur);

        $("#txtEmpresa").bind("focus", { valor: "nome da empresa" }, inscr.Focus);
        $("#txtEmpresa").bind("blur", { valor: "nome da empresa" }, inscr.Blur);

        $("#txtEmail").bind("focus", { valor: "e-mail" }, inscr.Focus);
        $("#txtEmail").bind("blur", { valor: "e-mail" }, inscr.Blur);

        $("#txtEndereco").bind("focus", { valor: "endereço" }, inscr.Focus);
        $("#txtEndereco").bind("blur", { valor: "endereço" }, inscr.Blur);

        $("#txtCidade").bind("focus", { valor: "cidade" }, inscr.Focus);
        $("#txtCidade").bind("blur", { valor: "cidade" }, inscr.Blur);

        $("#txtTelefone").bind("focus", { valor: "telefone" }, inscr.Focus);
        $("#txtTelefone").bind("blur", { valor: "telefone" }, inscr.Blur);

        $("#txtCnpj").bind("focus", { valor: "CNPJ" }, inscr.Focus);
        $("#txtCnpj").bind("blur", { valor: "CNPJ" }, inscr.Blur);

        $("#txtNumeroConta").bind("focus", { valor: "Se sim, qual?" }, inscr.Focus);
        $("#txtNumeroConta").bind("blur", { valor: "Se sim, qual?" }, inscr.Blur);
    },

    Focus: function(evt) {
        var elm = $(evt.target);
        var valor = evt.data.valor;

        if (elm.val() == valor || /^preencha [oa]/i.test(elm.val()))
            elm.val("")
    },

    Blur: function(evt) {
        var elm = $(evt.target);
        var valor = evt.data.valor;

        if (elm.val() == "")
            elm.val(valor)
    },

    ErrorPlacement: function(error, element) {
        if (element.get(0).tagName.toLowerCase() != "select") {
            element.val(error.html());
        }
    },

    ErroForm: function() {
        $("span#mensagem").css("display", "inline");
    },

    EnviarForm: function() {
        $("span#mensagem").css("display", "none");
        var msgAguarde = $(document.createElement("span")).attr("id", "msg_aguarde").html("Aguarde...");
        $("form").css("display", "none").before(msgAguarde);

        var dados = {
            acao: "i",
            Nome: $("#txtNome").val(),
            Empresa: $("#txtEmpresa").val(),
            Email: $("#txtEmail").val(),
            Endereco: $("#txtEndereco").val(),
            UF: $("#ddlEstado").val(),
            Cidade: $("#txtCidade").val(),
            Telefone: $("#txtTelefone").val(),
            Cnpj: $("#txtCnpj").val().replace(/\D/g, ""),
            PossuiContaFedEx: $("#chkConta").attr("checked") ? "1" : "0",
            NumeroContaFedEx: $("#txtNumeroConta").val() == "Se sim, qual?" ? "" : $("#txtNumeroConta").val()
        }

        $.post("_services/Inscricao.aspx", dados, inscr.CallBackEnviarForm);
    },

    CallBackEnviarForm: function(xml) {
        $("#msg_aguarde").remove();
        $("form").css("display", "none");
        $("div#feedback").css("display", "inline");
        $("p.aproveite").css("visibility", "hidden");
        $("p.seminario").css("visibility", "hidden");
        pageTracker._trackPageview('/Inscricao.aspx');
    },

    Voltar: function() {
        $("#msg_aguarde").remove();
        $("form").css("display", "inline");
        $("div#feedback").css("display", "none");
        $("p.aproveite").css("visibility", "visible");
        $("p.seminario").css("visibility", "visible");
        $("form").css("display", "inline");
        $("#frmInscricao").get(0).reset();
    }

}

$(document).ready(inscr.init);