﻿$(document).ready(function() {
    $("input[rel='cpf']").blur(function() {
        $.ajax({
              type: "POST",
              url: window.location.pathname + "/ValidarCPF",
              data: "{cpf: " + $(this).val() + "}",
              contentType: "application/json; charset=utf-8",
              dataType: "json",
              success: function(result) {
                    var txt = $("input[rel='cpf']");
                    if (result.d == true) {
                        $(".painel_avisos").hide();
                        var cpf = txt[0].value.replace(/[\_\. -\/]/g, ''); //Limpar pontuação
                        $get('ctl00_cphIphone_txtCPF').value = cpf;
                    } else {
                        erroDadosInvalidos("CPF não localizado.");
                        txt.focus();
                        txt.select();
                    }
              }
          });
    });
    setMask("cpf", "999.999.999-99", /\./g, "11");
    setMask("data", "99/99/9999", /[/]/g, "8");
    setMask("cel", "9999-9999", "-", "8");
    setMask("ddd", "99", "", "2");
});

function setMask(rel, mask, replace, maxlength) {
    $("input[rel=" + rel + "]")
        .blur(function() {
            $(this)
                .removeAttr("maxlength")
                .setMask(mask);
            if (rel == 'data') {
                formatarData($(this));
                $get('ctl00_cphIphone_txtDataNascimento').value = this.value;
            }
        })
        .focus(function() {
            if (rel == 'cpf') {
                $(this).val($(this).val().replace("-", ""))
            }
            $(this)
                .val($(this).val().replace(replace, ""))
                .unsetMask()
                .attr("maxlength", maxlength)
                .numeric();
        });
}

function formatarData(txt) {
     var dataAtual = new Date();
     
     var strData = dataAtual.getDay() + "/" + dataAtual.getMonth() + "/" + dataAtual.getFullYear();
     var data = txt.val();
    txt.val(definirMascaraData(data, strData));
}

  function definirMascaraData(data, dataAtual) {
            if (data.match("\\d{1,2}(/)*(\\d{1,2})*(/)*(\\d{1,})*")) {
                arr = dataAtual.split('/');
                dia = arr[0];
                mes = arr[1];
                ano = arr[2];

                arr = data.split('/');
                if (arr.length == 1) {
                    if (arr[0].length != 0) {
                        if (arr[0].length <= 2)
                            dia = arr[0];
                        else {
                            if (arr[0].length <= 4) {
                                dia = arr[0].substring(0, 2);
                                mes = arr[0].substring(2);
                            }
                            else {
                                dia = arr[0].substring(0, 2);
                                mes = arr[0].substring(2, 4);
                                ano = arr[0].substring(4);
                            }
                        }
                    }
                }
                else {
                    if (arr.length == 2) {
                        if (arr[0].length != 0)
                            dia = arr[0];
                        if (arr[1].length != 0)
                            mes = arr[1];
                    }
                    else {
                        if (arr[0].length != 0)
                            dia = arr[0];
                        if (arr[1].length != 0)
                            mes = arr[1];
                        if (arr[2].length != 0)
                            ano = arr[2];
                    }
                }

                if (dia.length < 2)
                    dia = '0' + dia;
                else
                    dia = dia.substring(0, 2);

                if (mes.length < 2)
                    mes = '0' + mes;
                else
                    mes = mes.substring(0, 2);

                if (ano.length < 4) {
                    if (ano > 30 && ano < 99)
                        ano = "1900".substring(0, 4 - ano.length) + ano;
                    else
                        ano = "2000".substring(0, 4 - ano.length) + ano;
                }
                else
                    ano = ano.substring(0, 4);

                data = dia + '/' + mes + '/' + ano;
            }
            return data;
        }


function erroDadosInvalidos(msg) {
    var painel = $(".painel_avisos");
    painel
        .html("<h1><img alt='' src='img/ico_avisos_16x16.png' /> AVISOS</h1>")
        .css("display", "block");
    painel.append(
        $("<ul />").html(
            $("<li />").html(msg)
        )
    );
}

function validarTamanhoDDD(sender, args) {
    var valor = args.Value;
    if (valor.length == 2) {
        args.IsValid = true;
    } else {
        args.IsValid = false;
        return;
    }
}

function validarCampoCpf(sender, args) {
    var valor = args.Value;
    if (validarCpf(valor)) {
        args.IsValid = true;
    } else {
    args.IsValid = false;
    return;
    }
}

function validarCpf(cpf) {
    cpf = cpf.replace(/[\_\. -\/]/g, ''); //Limpar pontuação

    if (cpf.length != 11)
        return (cpf.length == 0);
    //Evita formato inválido (ex: 11111111111)
    var formato = false;
    for (var i = 1; i < cpf.length; i++) {
        if (cpf.charAt(0) != cpf.charAt(i)) {
            formato = true;
            break;
        }
    }
    if (!formato)
        return false;
    //Calculo valida CPF
    var soma1 = 0;
    var soma2 = 0;
    for (var i = 0; i < 9; i++) {
        var dig_cpf = cpf.substr(i, 1);
        soma1 += (+dig_cpf) * (10 - i);
        soma2 += (+dig_cpf) * (11 - i);
    }
    var dv1 = (11 - (soma1 % 11));
    dv1 = dv1 >= 10 ? 0 : dv1;
    soma2 = soma2 + (dv1 * 2);
    var dv2 = (11 - (soma2 % 11));
    dv2 = dv2 >= 10 ? 0 : dv2;
    var dv = cpf.substr(9, 2);
    return dv == (dv1.toString() + dv2.toString());
}

function txtDDDIphone_OnBlur(){
    $get('ctl00_cphIphone_txtDDD').value = $get('txtDDDIphone').value;
}

function txtCelularIphone_OnBlur(){
    $get('ctl00_cphIphone_txtCelular').value = $get('txtCelularIphone').value;
}
