function ValidaEmail(valor) {
    var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    if (filter.test(valor))
        valido = true;
    else {
        valido = false;
    }
    return valido;
}
function Mascara(_RefObjeto, _Modelo) {

		var valorAtual = _RefObjeto.value;
    var valorNumerico = '';
    var nIndexModelo = 0;
    var nIndexString = 0;
    var valorFinal = '';
    var adicionarValor = true;


    // limpa a string valor atual para verificar
    // se todos os caracteres são números
    for (i = 0; i < _Modelo.length; i++) {
        if (_Modelo.substr(i, 1) != '#') {
            valorAtual = valorAtual.replace(_Modelo.substr(i, 1), '');
        } 
    }

    // verifica se todos os caracteres são números
    for (i = 0; i < valorAtual.length; i++) {
        if (!isNaN(parseFloat(valorAtual.substr(i, 1)))) {
            valorNumerico = valorNumerico + valorAtual.substr(i, 1);
        } 
    }

    // aplica a máscara ao campo informado usando
    // o modelo de máscara informado no script
    for (i = 0; i < _Modelo.length; i++) {

        if (_Modelo.substr(i, 1) == '#') {
            if (valorNumerico.substr(nIndexModelo, 1) != '') {
                valorFinal = valorFinal + valorNumerico.substr(nIndexModelo, 1);
                nIndexModelo++; nIndexString++;
            }
            else {
                adicionarValor = false;
            } 
        }

        else {
            if (adicionarValor && valorNumerico.substr(nIndexModelo, 1) != '') {
                valorFinal = valorFinal + _Modelo.substr(nIndexString, 1)
                nIndexString++;
            } 
        }
    }

    _RefObjeto.value = valorFinal

}
function ValidaNumero(valor) {
    chars = "0123456789,.";
    e = String.fromCharCode(window.event.keyCode);
    if (e == "") {
        if (valor.indexOf(e) == -1) {
            return;
        }
        window.event.keyCode = 0;
    }
    if (chars.indexOf(e) == -1) {
        window.event.keyCode = 0;
    }
}
function Verifica_CPF(str_CPF) {

    var CPF = str_CPF;

    CPF = CPF.replace(/[/]+/g, '');
    CPF = CPF.replace(/[.]+/g, '');
    CPF = CPF.replace(/[-]+/g, '');

    // Verifica se o campo é nulo
    if (CPF == '') {
        //alert('Este campo é de preenchimento obrigatório!');
        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];
    }

    // Verifica se os valores dos dígitos verificadores conferem
    DV = DIGITO[9] * 10 + DIGITO[10];
    if (DV != DV_INFORMADO) 
    {
        return false;
    }
    else 
    {

        if (
         CPF == "00000000000" ||
         CPF == "11111111111" ||
         CPF == "22222222222" ||
         CPF == "33333333333" ||
         CPF == "44444444444" ||
         CPF == "55555555555" ||
         CPF == "66666666666" ||
         CPF == "77777777777" ||
         CPF == "88888888888" ||
         CPF == "9999999999"
        ) 
        {
            return false;
        }
        else if ((CPF.length != 11)) {
            return false;
        }
        else 
        {
            return true;
        }
       
       
    }
}
function Verifica_CNPJ(cnpj)
{

    var cnpj_tratado = cnpj;

    cnpj_tratado = cnpj_tratado.replace(/[/]+/g, '');
    cnpj_tratado = cnpj_tratado.replace(/[.]+/g, '');
    cnpj_tratado = cnpj_tratado.replace(/[-]+/g, '');
    
    cnpj = cnpj_tratado

var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;
digitos_iguais = 1;
if (cnpj.length < 14 && cnpj.length < 15)
    return 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))
          return 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))
          return false;
    return true;
    }
else
    return false;
} 
function check_date(DATA) 
{
        var expReg = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[1-2][0-9]\d{2})$/;
        var msgErro = 'Formato inválido de data.';
        var vdt = new Date();
        var vdia = vdt.getDay();
        var vmes = vdt.getMonth();
        var vano = vdt.getYear();
        if ((DATA.match(expReg)) && (DATA!=''))
        {
            var dia = DATA.substring(0,2);
            var mes = DATA.substring(3,5);
            var ano = DATA.substring(6,10);
            if((mes==04 && dia > 30) || (mes==06 && dia > 30) || (mes==09 && dia > 30) || (mes==11 && dia > 30))
            {
                //alert("Dia incorreto !!! O mês especificado contém no máximo 30 dias.");
                return false;
            } 
            else
            { //1
                if(ano%4!=0 && mes==2 && dia>28)
                {
                    //alert("Data incorreta!! O mês especificado contém no máximo 28 dias.");
                    return false;
                } 
                else
                { //2
                    if(ano%4==0 && mes==2 && dia>29)
                    {
                        //alert("Data incorreta!! O mês especificado contém no máximo 29 dias.");
                        return false;
                    } 
                    else
                    { //3
                        //if (ano > vano) 
                        //{
                            //alert("Data incorreta!! Ano informado maior que ano atual.");
                            //return false;
                        //}
                        //else
                        //{ //4
                            //alert ("Data correta!");
                            return true;
                        //} //4-else
                    } //3-else
                }//2-else
            }//1-else 
        }
        else 
        { //5
            //alert(msgErro);
            return false;
        } //5-else
}

