﻿

function MascaraCustom(renda, formato, e) {
    if (MascaraInteiro(e) == false) {
        if (window.event)
            e.returnValue = false; //IE
        else
            e.preventDefault(); //FF
    }
    return formataCampo(renda, formato, e);
}


function MascaraRenda(renda, e) {
    if (MascaraInteiro(e) == false) {
        if (window.event)
            e.returnValue = false; //IE
        else
            e.preventDefault(); //FF
    }
    return formataCampo(renda, '000.000', e);
}


function MascaraTelefone(telefone, e) {
    if (MascaraInteiro(e) == false) {
        if (window.event)
            e.returnValue = false; //IE
        else
            e.preventDefault(); //FF
    }
    return formataCampo(telefone, '0000-0000', e);
}

function MascaraTelefoneDDD(telefone, e) {
    if (MascaraInteiro(e) == false) {
        if (window.event)
            e.returnValue = false; //IE
        else
            e.preventDefault(); //FF
    }
    return formataCampo(telefone, '(00) 0000-0000', e);
}


function MascaraCpf(cpf, e) {
    //emitirMensagem('oi');
    if (!MascaraInteiro(e)) {
        if (window.event)
            e.returnValue = false; //IE
        else
            e.preventDefault(); //FF
    }

    return formataCampo(cpf, '000.000.000-00', e);
}

function MascaraCNPJ(cnpj, e) {

    if (!MascaraInteiro(e)) {
        if (window.event)
            e.returnValue = false; //IE
        else
            e.preventDefault(); //FF
    }

    return formataCampo(cnpj, '00.000.000/0000-00', e);
}

//valida numero inteiro com mascara
function MascaraInteiro(e) {

    var key_code = e.keyCode ? e.keyCode : e.which;

    // Habilita teclas <DEL>, <TAB>, <ENTER>, <ESC> e <BACKSPACE>
    if (key_code == 8 || key_code == 9 || key_code == 13 || key_code == 27 || key_code == 46) {
        return true;
    }

    // Habilita teclas <HOME>, <END>, mais as quatros setas de navegação (cima, baixo, direta, esquerda)
    else if ((key_code >= 35) && (key_code <= 40) && (key_code != 39)) {
        return true
    }

    // Habilita números de 0 a 9
    else if ((key_code >= 48) && (key_code <= 57)) {
        return true
    }
    else {
        if (window.event)
            e.returnValue = false; //IE
        else
            e.preventDefault(); //FF
        return false;
    }

}


//valida RG. Permite nº e X
function MascaraRG(e) {

    var key_code = e.keyCode ? e.keyCode : e.which;

    // Habilita teclas <DEL>, <TAB>, <ENTER>, <ESC> e <BACKSPACE>
    if (key_code == 8 || key_code == 9 || key_code == 13 || key_code == 27) {
        return true;
    }

    // Habilita teclas <HOME>, <END>, mais as quatros setas de navegação (cima, baixo, direta, esquerda)
    else if ((key_code >= 35) && (key_code <= 40) && (key_code != 39)) {
        return true
    }

    // Habilita números de 0 a 9 e X
    else if (((key_code >= 48) && (key_code <= 57)) || (key_code == 88) || (key_code == 120)) {
        return true
    }
    else {
        if (window.event)
            e.returnValue = false; //IE
        else
            e.preventDefault(); //FF
        return false;
    }

}

function PularCampo(campos, e) {
    var auxCampo;
    var whichCode = (e.keyCode) ? e.keyCode : e.which;
    // Habilita teclas <DEL>, <TAB>, <ENTER>, <ESC>, <BACKSPACE>, <HOME>, <END>, mais as quatros setas de navegação (cima, baixo, direta, esquerda
    if (whichCode == 8 || whichCode == 9 || whichCode == 13 || whichCode == 16 || whichCode == 27 || whichCode == 46 || (whichCode >= 35 && whichCode <= 40)) {
        return true;
    }

    if (campos.value.length == campos.maxLength) {
        for (var i = 0; i < campos.form.length; i++) {
            //alert(campos.form[(i + 1)].name != null);
            if (auxCampo != campos)
                auxCampo = campos.form[i];

            if (auxCampo == campos && campos.form[(i + 1)] && campos.form[(i + 1)].type != "hidden" && campos.form[(i + 1)].name != null) {
                campos.form[(i + 1)].focus(); break;
            }
        }
    }
}

//formata de forma generica os campos
function formataCampo(campo, Mascara, evento) {
    var boleanoMascara;

    var Digitato = evento.keyCode;
    exp = /\-|\.|\/|\(|\)|\,|\:| /g

    campoSoNumeros = campo.value.toString().replace(getSelText(), "");


    campoSoNumeros = campoSoNumeros.replace(exp, "");

    var posicaoCampo = 0;
    var NovoValorCampo = "";
    var TamanhoMascara = campoSoNumeros.length;

    if (Digitato != 8) { // backspace
        for (i = 0; i <= TamanhoMascara; i++) {
            boleanoMascara = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".") || (Mascara.charAt(i) == ",")
                                || (Mascara.charAt(i) == "/") || (Mascara.charAt(i) == ":"))
            boleanoMascara = boleanoMascara || ((Mascara.charAt(i) == "(")
                                || (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " "))
            if (boleanoMascara) {
                NovoValorCampo += Mascara.charAt(i);
                TamanhoMascara++;
            } else {
                NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);
                posicaoCampo++;
            }
        }
        campo.value = NovoValorCampo;
        return true;
    } else {
        return true;
    }
}

//Validação de CEP
//adiciona mascara de cep
function MascaraCep(cep, e) {

    if (MascaraInteiro(e) == false) {
        if (window.event)
            e.returnValue = false; //IE
        else
            e.preventDefault(); //FF

    }

    return formataCampo(cep, '00000-000', e);
}

function MascaraHora(hora, e) {

    if (MascaraInteiro(e) == false) {
        if (window.event)
            e.returnValue = false; //IE
        else
            e.preventDefault(); //FF

    }

    return formataCampo(hora, '00:00', e);
}

//Validação de CEP
//adiciona mascara de cep
function MascaraData(data, e) {
    if (MascaraInteiro(e) == false) {
        if (window.event)
            e.returnValue = false; //IE
        else
            e.preventDefault(); //FF
    }

    return formataCampo(data, '00/00/0000', e);
}


function ValidarCpf(sender, args) {

    var CPF = args.Value;
    CPF = CPF.replace('.', '').replace('.', '').replace('-', '');
    if (CPF == "11111111111"
                || CPF == "00000000000"
                || CPF == "33333333333"
                || CPF == "44444444444"
                || CPF == "55555555555"
                || CPF == "66666666666"
                || CPF == "77777777777"
                || CPF == "88888888888"
                || CPF == "99999999999"
) {
        args.IsValid = false;
        return false;
    }


    // Aqui começa a checagem do CPF
    var POSICAO, I, SOMA, DV, DV_INFORMADO;
    var DIGITO = new Array(10);
    DV_INFORMADO = CPF.substr(9, 2); // Retira os dois últimos dígitos do número informado

    // Desemembra o número do CPF na array DIGITO
    for (I = 0; I <= 8; I++) {
        DIGITO[I] = CPF.substr(I, 1);
    }

    // Calcula o valor do 10º dígito da verificação
    POSICAO = 10;
    SOMA = 0;
    for (I = 0; I <= 8; I++) {
        SOMA = SOMA + DIGITO[I] * POSICAO;
        POSICAO = POSICAO - 1;
    }
    DIGITO[9] = SOMA % 11;
    if (DIGITO[9] < 2) {
        DIGITO[9] = 0;
    }
    else {
        DIGITO[9] = 11 - DIGITO[9];
    }

    // Calcula o valor do 11º dígito da verificação
    POSICAO = 11;
    SOMA = 0;
    for (I = 0; I <= 9; I++) {
        SOMA = SOMA + DIGITO[I] * POSICAO;
        POSICAO = POSICAO - 1;
    }
    DIGITO[10] = SOMA % 11;
    if (DIGITO[10] < 2) {
        DIGITO[10] = 0;
    }
    else {
        DIGITO[10] = 11 - DIGITO[10];
    }

    var retorno = false;
    // Verifica se os valores dos dígitos verificadores conferem
    DV = DIGITO[9] * 10 + DIGITO[10];
    if (DV != DV_INFORMADO) {
        args.IsValid = false;
    }
    else
        args.IsValid = true;
}

function ValidarCep(sender, args) {
    var regular = "^\\d{5}-\\d{3}$";
    var exp = new RegExp(regular);

    var v = args.Value.toString();
    if (v.match(exp)) {
        args.IsValid = true;
    }
    else {
        args.IsValid = false;
    }

}

function ValidarEmail(sender, args) {
    var regular = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i
    var exp = new RegExp(regular);

    var v = args.Value.toString();
    if (v.match(exp)) {
        args.IsValid = true;
    }
    else {
        args.IsValid = false;
    }

}

function ValidarTelefone(sender, args) {
    var regular = "^\\d{4}-\\d{4}$";
    var exp = new RegExp(regular);

    var v = args.Value.toString();
    if (v.match(exp)) {
        args.IsValid = true;
    }
    else {
        args.IsValid = false;
    }

}


function ValidarTelefoneDDD(sender, args) {
    var regular = "^\\(\\d{2}\\)\\s\\d{4}-\\d{4}$";
    var exp = new RegExp(regular);

    var v = args.Value.toString();
    if (v.match(exp)) {
        args.IsValid = true;
    }
    else {
        args.IsValid = false;
    }

}

function getSelText() {
    var txt = '';
    if (window.getSelection) {
        txt = window.getSelection();
    }
    else if (document.getSelection) // FireFox
    {
        txt = document.getSelection();
    }
    else if (document.selection)  // IE 6/7
    {
        txt = document.selection.createRange().text;
    }

    return txt;


}


function mascara_global(mascara, valor) {


    if (mascara == '###.###.###-##|##.###.###/####-##') {
        if (valor.length > 14) {
            return mascara_global('##.###.###/####-##', valor);
        } else {
            return mascara_global('###.###.###-##', valor);
        }
    }

    tvalor = "";
    ret = "";
    caracter = "#";
    separador = "|";
    mascara_utilizar = "";
    valor = removeEspacos(valor);
    if (valor == "") return valor;
    temp = mascara.split(separador);
    dif = 1000;

    valorm = valor;
    //tirando mascara do valor já existente
    for (i = 0; i < valor.length; i++) {
        if (!isNaN(valor.substr(i, 1))) {
            tvalor = tvalor + valor.substr(i, 1);
        }
    }
    valor = tvalor;

    //formatar mascara dinamica
    for (i = 0; i < temp.length; i++) {
        mult = "";
        validar = 0;
        for (j = 0; j < temp[i].length; j++) {
            if (temp[i].substr(j, 1) == "]") {
                temp[i] = temp[i].substr(j + 1);
                break;
            }
            if (validar == 1) mult = mult + temp[i].substr(j, 1);
            if (temp[i].substr(j, 1) == "[") validar = 1;
        }
        for (j = 0; j < valor.length; j++) {
            temp[i] = mult + temp[i];
        }
    }

    //verificar qual mascara utilizar
    if (temp.length == 1) {
        mascara_utilizar = temp[0];
        mascara_limpa = "";
        for (j = 0; j < mascara_utilizar.length; j++) {
            if (mascara_utilizar.substr(j, 1) == caracter) {
                mascara_limpa = mascara_limpa + caracter;
            }
        }
        tam = mascara_limpa.length;
    } else {
        //limpar caracteres diferente do caracter da máscara
        for (i = 0; i < temp.length; i++) {
            mascara_limpa = "";
            for (j = 0; j < temp[i].length; j++) {
                if (temp[i].substr(j, 1) == caracter) {
                    mascara_limpa = mascara_limpa + caracter;
                }
            }
            if (valor.length > mascara_limpa.length) {
                if (dif > (valor.length - mascara_limpa.length)) {
                    dif = valor.length - mascara_limpa.length;
                    mascara_utilizar = temp[i];
                    tam = mascara_limpa.length;
                }
            } else if (valor.length < mascara_limpa.length) {
                if (dif > (mascara_limpa.length - valor.length)) {
                    dif = mascara_limpa.length - valor.length;
                    mascara_utilizar = temp[i];
                    tam = mascara_limpa.length;
                }
            } else {
                mascara_utilizar = temp[i];
                tam = mascara_limpa.length;
                break;
            }
        }
    }

    //validar tamanho da mascara de acordo com o tamanho do valor
    if (valor.length > tam) {
        valor = valor.substr(0, tam);
    } else if (valor.length < tam) {
        masct = "";
        j = valor.length;
        for (i = mascara_utilizar.length - 1; i >= 0; i--) {
            if (j == 0) break;
            if (mascara_utilizar.substr(i, 1) == caracter) {
                j--;
            }
            masct = mascara_utilizar.substr(i, 1) + masct;
        }
        mascara_utilizar = masct;
    }

    //mascarar
    j = mascara_utilizar.length - 1;
    for (i = valor.length - 1; i >= 0; i--) {
        if (mascara_utilizar.substr(j, 1) != caracter) {
            ret = mascara_utilizar.substr(j, 1) + ret;
            j--;
        }
        ret = valor.substr(i, 1) + ret;
        j--;
    }
    return ret;
}

function MaxChar(obj, maxChar, e) {

    if (obj.value.length == maxChar) {
        if (window.event)
            e.returnValue = false; //IE
        else
            e.preventDefault(); //FF
    } else if (obj.value.length > maxChar) {
        obj.value = obj.value.substring(0, maxChar);
    }

    return true;
}

function LeftChar(obj, maxChar, idSpan) {
    if (idSpan != '') {
        var span = document.getElementById(idSpan);
        span.innerHTML = maxChar - obj.value.length;
    }


}




function MascaraDecimal(dec, e) {

    if (MascaraInteiro(e) == false) {
        if (window.event)
            e.returnValue = false; //IE
        else
            e.preventDefault(); //FF

    }

    dec.value = mascara_global('[###.]###,##', dec.value);
}


function removeEspacos(valor) {
    var valorSemEspacos = "";

    var tamanho = valor.length;
    for (i = 0; i < 30; i++) {
        if (valor.substr(i, 1) == " ") {
        } else {
            valorSemEspacos = valorSemEspacos + valor.substr(i, 1);
        }
    }
    return valorSemEspacos;
}

function ValidarHora(sender, args) {
    var s = args.Value;

    var tempo = s.split(':');

    var hora = tempo[0];
    var minuto = tempo[1];

    if (hora > 23 || hora < 0) {
        args.IsValid = false;
        return false
    }
    if (minuto > 59 || minuto < 0) {
        args.IsValid = false;
        return false
    }

    args.IsValid = true;
    return true;
}

function ValidarCNPJ(sender, args) {
    var s = args.Value;
    s = s.replace(/\D/g, '');
    //campo.value = FCNPJ(s);
    var varFirstChr = s.charAt(0);
    var naoIguais = false;
    var vlMult, vlControle, s1, s2 = "";
    var i, j, vlDgito, vlSoma = 0;
    for (var i = 0; i <= 13; i++) {
        var c = s.charAt(i);
        if (!(c >= "0") && (c <= "9")) { return false; }
        if (c != varFirstChr) { naoIguais = true; }
    }
    if (!naoIguais) { return false; }
    s1 = s.substring(0, 12);
    s2 = s.substring(12, 15);
    vlMult = "543298765432";
    vlControle = "";
    for (j = 1; j < 3; j++) {
        vlSoma = 0;
        for (i = 0; i < 12; i++)
        { vlSoma += eval(s1.charAt(i)) * eval(vlMult.charAt(i)); }
        if (j == 2) { vlSoma += (2 * vlDgito); }
        vlDgito = ((vlSoma * 10) % 11);
        if (vlDgito == 10) { vlDgito = 0; }
        vlControle = vlControle + vlDgito;
        vlMult = "654329876543";
    }
    if (vlControle != s2) {
        args.IsValid = false;
        return false
    }
    else {
        args.IsValid = true;
        return true
    }
}


if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();