﻿function ApenasNumeros(caracter) {
    var nTecla = 0;
    if (document.all) {
        nTecla = caracter.keyCode;
    } else {
        nTecla = caracter.which;
    }
    if ((nTecla > 47 && nTecla < 58)
  || nTecla == 8 || nTecla == 127
  || nTecla == 0 || nTecla == 9  // 0 == Tab
  || nTecla == 13) { // 13 == Enter
        return true;
    } else {
        return false;
    }
}
function validaCPF(source, clientside_arguments) {
    var cpf = clientside_arguments.Value.replace(/\D/g, "");
    clientside_arguments.IsValid = true;
  
    if (cpf.length != 11 ||
            cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" ||
            cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" ||
            cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" ||
            cpf == "99999999999"
            || cpf == "00000000191" || cpf == "12345678909" || cpf == "01234567890")
        clientside_arguments.IsValid = false;
    add = 0;
    for (i = 0; i < 9; i++)
        add += parseInt(cpf.charAt(i)) * (10 - i);
    rev = 11 - (add % 11);
    if (rev == 10 || rev == 11)
        rev = 0;
    if (rev != parseInt(cpf.charAt(9)))
        clientside_arguments.IsValid = false;
    add = 0;
    for (i = 0; i < 10; i++)
        add += parseInt(cpf.charAt(i)) * (11 - i);
    rev = 11 - (add % 11);
    if (rev == 10 || rev == 11)
        rev = 0;
    if (rev != parseInt(cpf.charAt(10)))
        clientside_arguments.IsValid = false;


}

function validaCNPJ(source, clientside_arguments) {
    var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;
    var cnpj = clientside_arguments.Value.replace(/\D/g, "");
    clientside_arguments.IsValid = true;
    if (cnpj.length != 14 ||
            cnpj == "00000000000000" || cnpj == "11111111111111" || cnpj == "22222222222222" ||
            cnpj == "33333333333333" || cnpj == "44444444444444" || cnpj == "55555555555555" ||
            cnpj == "66666666666666" || cnpj == "77777777777777" || cnpj == "88888888888888" ||
            cnpj == "99999999999999"
            || cnpj == "00000000000191" || cnpj == "12345678909123" || cnpj == "01234567890123")
        clientside_arguments.IsValid = false;
    
    digitos_iguais = 1;
    if (cnpj.length < 14 && cnpj.length < 15)
        clientside_arguments.IsValid = false;
    for (i = 0; i < cnpj.length - 1; i++)
        if (cnpj.charAt(i) != cnpj.charAt(i + 1)) {
        digitos_iguais = 0;
        break;
    }
    if (!digitos_iguais) {
        tamanho = cnpj.length - 2
        numeros = cnpj.substring(0, tamanho);
        digitos = cnpj.substring(tamanho);
        soma = 0;
        pos = tamanho - 7;
        for (i = tamanho; i >= 1; i--) {
            soma += numeros.charAt(tamanho - i) * pos--;
            if (pos < 2)
                pos = 9;
        }
        resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
        if (resultado != digitos.charAt(0))
            clientside_arguments.IsValid = false;
        tamanho = tamanho + 1;
        numeros = cnpj.substring(0, tamanho);
        soma = 0;
        pos = tamanho - 7;
        for (i = tamanho; i >= 1; i--) {
            soma += numeros.charAt(tamanho - i) * pos--;
            if (pos < 2)
                pos = 9;
        }
        resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
        if (resultado != digitos.charAt(1))
            clientside_arguments.IsValid = false;
        
    }
    else
        return false;
}



//envento onkeyup
function maskCPF(CPF) {
    var evt = window.event;
    if (ApenasNumeros(evt)) {
        kcode = evt.keyCode;
        if (kcode == 8) return;

        CPF.value = CPF.value.replace(/\D/g, "");
        CPF.value = CPF.value.replace(/^(\d{3})(\d+)/g, "$1.$2");
        CPF.value = CPF.value.replace(/^(\d{3}\.\d{3})(\d+)/g, "$1.$2");
        CPF.value = CPF.value.replace(/^(\d{3}\.\d{3}\.\d{3})(\d+)/g, "$1-$2");
        CPF.value = CPF.value.replace(/^(\d{3}\.\d{3}\.\d{3}-\d{2})(\d*)/g, "$1");
    }
    else
    {return false;}
}

function maskCNPJ(CNPJ) {
    var evt = window.event;
     if (ApenasNumeros(evt)) {
    kcode = evt.keyCode;
    if (kcode == 8) return;
        CNPJ.value = CNPJ.value.replace(/\D/g, "");
        CNPJ.value = CNPJ.value.replace(/^(\d{2})(\d+)/g, "$1.$2");
        CNPJ.value = CNPJ.value.replace(/^(\d{2}\.\d{3})(\d+)/g, "$1.$2");
        CNPJ.value = CNPJ.value.replace(/^(\d{2}\.\d{3}\.\d{3})(\d+)/g, "$1/$2");
        CNPJ.value = CNPJ.value.replace(/^(\d{2}\.\d{3}\.\d{3}\/\d{4})(\d+)/g, "$1-$2");
        CNPJ.value = CNPJ.value.replace(/^(\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2})(\d*)/g, "$1");
    }
    else
    { return false; }

}
function maskTelefone(Telefone) {
    var evt = window.event;
    if (ApenasNumeros(evt)) {
        kcode = evt.keyCode;
        if (kcode == 8) return;

        Telefone.value = Telefone.value.replace(/\D/g, "");
        Telefone.value = Telefone.value.replace(/^(\d{4})(\d+)/g, "$1-$2")
    }
    else 
    {return false;}
}

function maskTelefoneComDDD(Telefone) {
    var evt = window.event;
    if (ApenasNumeros(evt)) {
        kcode = evt.keyCode;
        if (kcode == 10) return;

        Telefone.value = Telefone.value.replace(/\D/g, "");
        Telefone.value = Telefone.value.replace(/^(\d{4})(\d+)/g, "$1-$2")
    }
    else
    { return false; }
}

// evento onblur
function formataCPF(CPF) {
    with (CPF) {
        value = value.substr(0, 3) + '.' +
                                value.substr(3, 3) + '.' +
                                value.substr(6, 3) + '-' +
                                value.substr(9, 2);
    }
}
function retiraFormatacao(CPF) {
    with (CPF) {
        value = value.replace(".", "");
        value = value.replace(".", "");
        value = value.replace("-", "");
        value = value.replace("/", "");
    }
}

