﻿// Javascript Document
//adiciona mascara de cnpj
function MascaraCNPJ(cnpj) {
    if (mascaraInteiro(cnpj) == false) {
        event.returnValue = false;
    }
    return formataCampo(cnpj, '00.000.000/0000-00', event);
}

//adiciona mascara de cep
function MascaraCep(cep) {
    if (mascaraInteiro(cep) == false) {
        event.returnValue = false;
    }
    return formataCampo(cep, '00.000-000', event);
}

//adiciona mascara de data
function MascaraData(data) {
    if (mascaraInteiro(data) == false) {
        event.returnValue = false;
    }
    return formataCampo(data, '00/00/0000', event);
}

//adiciona mascara ao telefone
function MascaraTelefone(tel) {
    if (mascaraInteiro(tel) == false) {
        event.returnValue = false;
    }
    return formataCampo(tel, '(00) 0000-0000', event);
}

//adiciona mascara ao CPF
function MascaraCPF(cpf) {
    if (mascaraInteiro(cpf) == false) {
        event.returnValue = false;
    }
    return formataCampo(cpf, '000.000.000-00', event);
}

//valida telefone
function ValidaTelefone(tel) {
    exp = /\(\d{2}\)\ \d{4}\-\d{4}/
    if (!exp.test(tel.value))
        alert('Numero de Telefone Invalido!');
}

//valida CEP
function ValidaCep(cep) {
    exp = /\d{2}\.\d{3}\-\d{3}/
    if (!exp.test(cep.value))
        alert('Numero de Cep Invalido!');
}

//valida data
function ValidaData(data) {
    exp = /\d{2}\/\d{2}\/\d{4}/
    if (!exp.test(data.value))
        alert('Data Invalida!');
}

//valida o CPF digitado
function ValidarCPF(Objcpf) {
    var cpf = Objcpf.value;
    exp = /\.|\-/g
    cpf = cpf.toString().replace(exp, "");
    var digitoDigitado = eval(cpf.charAt(9) + cpf.charAt(10));
    var soma1 = 0, soma2 = 0;
    var vlr = 11;

    for (i = 0; i < 9; i++) {
        soma1 += eval(cpf.charAt(i) * (vlr - 1));
        soma2 += eval(cpf.charAt(i) * vlr);
        vlr--;
    }
    soma1 = (((soma1 * 10) % 11) == 10 ? 0 : ((soma1 * 10) % 11));
    soma2 = (((soma2 + (2 * soma1)) * 10) % 11);

    var digitoGerado = (soma1 * 10) + soma2;
    if (cpf.length > 0) {
        if (digitoGerado != digitoDigitado)
            alert('CPF Invalido!');
        Objcpf.focus();
    }
}

//valida numero inteiro com mascara
function mascaraInteiro() {
    if (event.keyCode < 48 || event.keyCode > 57) {
        event.returnValue = false;
        return false;
    }
    return true;
}

//valida o CNPJ digitado
function ValidarCNPJ(ObjCnpj) {
    var cnpj = ObjCnpj.value;
    var valida = new Array(6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2);
    var dig1 = new Number;
    var dig2 = new Number;

    exp = /\.|\-|\//g
    cnpj = cnpj.toString().replace(exp, "");
    var digito = new Number(eval(cnpj.charAt(12) + cnpj.charAt(13)));

    for (i = 0; i < valida.length; i++) {
        dig1 += (i > 0 ? (cnpj.charAt(i - 1) * valida[i]) : 0);
        dig2 += cnpj.charAt(i) * valida[i];
    }
    dig1 = (((dig1 % 11) < 2) ? 0 : (11 - (dig1 % 11)));
    dig2 = (((dig2 % 11) < 2) ? 0 : (11 - (dig2 % 11)));

    if (cnpj.length > 0) {
        if (((dig1 * 10) + dig2) != digito)
            alert('CNPJ Invalido!');
        ObjCnpj.focus();
    }
}

//formata de forma generica os campos
function formataCampo(campo, Mascara, evento) {
    var boleanoMascara;

    var Digitato = evento.keyCode;
    exp = /\-|\.|\/|\(|\)| /g
    campoSoNumeros = campo.value.toString().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) == "/"))
            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;
    }
}


function formataValorMonetario(campooriginal, decimais) {
    var posicaoPontoDecimal;
    var campo = '';
    var resultado = '';
    var pos, sep, dec;

    //Retira possiveis separadores de milhar
    for (pos = 0; pos < campooriginal.value.length; pos++) {
        if (campooriginal.value.charAt(pos) != '.')
            campo = campo + campooriginal.value.charAt(pos);
    }

    //Formata valor monetário com decimais
    posicaoPontoDecimal = campo.indexOf(',');
    if (posicaoPontoDecimal != -1) {
        sep = 0;
        for (pos = posicaoPontoDecimal - 1; pos >= 0; pos--) {
            sep++;
            if (sep > 3) {
                resultado = '.' + resultado;
                sep = 1;
            }

            resultado = campo.charAt(pos) + resultado;
        }

        // Trata parte decimal
        if (parseInt(decimais) > 0) {
            resultado = resultado + ',';

            pos = posicaoPontoDecimal + 1;
            for (dec = 1; dec <= parseInt(decimais); dec++) {
                if (pos < campo.length) {
                    resultado = resultado + campo.charAt(pos);
                    pos++;
                }
                else
                    resultado = resultado + '0';
            }

        } // trata decimais
    }
    // Trata valor monetário sem decimais
    else {
        sep = 0;
        for (pos = campo.length - 1; pos >= 0; pos--) {
            sep++;
            if (sep > 3) {
                resultado = '.' + resultado;
                sep = 1;
            }
            resultado = campo.charAt(pos) + resultado;
        }
        // Trata parte decimal
        if (parseInt(decimais) > 0) {
            resultado = resultado + ',';
            for (dec = 1; dec <= parseInt(decimais); dec++) {
                resultado = resultado + '0';
            }
        } // trata decimais
    }
    campooriginal.value = resultado;
}

function validarData(campo) {
    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.';
    if ((campo.value.match(expReg)) || (campo.value == '')) {
        //alert('Data válida'); 
    } else {
        alert(msgErro);
        campo.focus();
    }
}

function FormataValor(campo, tammax, teclapres) {

    //uso:

    //<input type="Text" name="fat_vr_bruto" maxlength="17" onKeyDown="FormataValor(this,17,event)">

    var tecla = teclapres.keyCode;

    vr = campo.value;

    vr = vr.replace("/", "");

    vr = vr.replace("/", "");

    vr = vr.replace(",", "");

    vr = vr.replace(".", "");

    vr = vr.replace(".", "");

    vr = vr.replace(".", "");

    vr = vr.replace(".", "");

    tam = vr.length;

    if (tam < tammax && tecla != 8) { tam = vr.length + 1; }

    if (tecla == 8) { tam = tam - 1; }


    if (tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105) {

        if (tam <= 2) {

            campo.value = vr;
        }

        if ((tam > 2) && (tam <= 5)) {

            campo.value = vr.substr(0, tam - 2) + ',' + vr.substr(tam - 2, tam);
        }

        if ((tam >= 6) && (tam <= 8)) {

            campo.value = vr.substr(0, tam - 5) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
        }

        if ((tam >= 9) && (tam <= 11)) {

            campo.value = vr.substr(0, tam - 8) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
        }

        if ((tam >= 12) && (tam <= 14)) {

            campo.value = vr.substr(0, tam - 11) + '.' + vr.substr(tam - 11, 3) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
        }

        if ((tam >= 15) && (tam <= 17)) {

            campo.value = vr.substr(0, tam - 14) + '.' + vr.substr(tam - 14, 3) + '.' + vr.substr(tam - 11, 3) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
        }

        if ((tam >= 18) && (tam <= 20)) {

            campo.value = vr.substr(0, tam - 17) + '.' + vr.substr(tam - 17, 3) + '.' + vr.substr(tam - 14, 3) + '.' + vr.substr(tam - 11, 3) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, tam) + ',' + vr.substr(tam - 2, tam);
        }

    }

}
function AbreJanela(pagina, largura, altura) {

    w = screen.width;
    h = screen.height;

    meio_w = w / 2;
    meio_h = h / 2;

    altura2 = altura / 2;
    largura2 = largura / 2;
    meio1 = meio_h - altura2;
    meio2 = meio_w - largura2;

    //abre a nova janela, já com a sua devida posição
    window.open(pagina, '', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,height=' + altura + ', width=' + largura + ', top=' + meio1 + ', left=' + meio2 + '');
}
function AbreJanelaScroll(pagina, largura, altura) {

    w = screen.width;
    h = screen.height;

    meio_w = w / 2;
    meio_h = h / 2;

    altura2 = altura / 2;
    largura2 = largura / 2;
    meio1 = meio_h - altura2;
    meio2 = meio_w - largura2;

    //abre a nova janela, já com a sua devida posição
    window.open(pagina, '', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=no,height=' + altura + ', width=' + largura + ', top=' + meio1 + ', left=' + meio2 + '');
}
function showFoto(src) {
    var a_false = document.createElement("A");
    a_false.rel = "lightbox";
    a_false.href = src;
    tb_init(a_false);
    a_false = null;
}
