function tornarOpaco(cur,which){
    strength=(which==0)?1:0.3;
    if (cur.style.MozOpacity)
        cur.style.MozOpacity=strength
    else if (cur.filters)
        cur.filters.alpha.opacity=strength*100;
}

function centralizarJanela(janela,largura,altura) {
    Esquerda = (screen.availWidth/2) - (largura/2);
    Topo = (screen.availHeight/2) - (altura/2);
    janela.moveTo(Esquerda-10,Topo-10);
}

function abrirJanela(endereco, largura, altura){		
    f = document.forms[0];
	
    var flagJanela = false;
	
    if ( flagJanela ) {
        janela.close();
    }
    janela = window.open(endereco,'','toolbar=no,location=no,directories=no,status=yes, menubar=no,scrollbars=yes, resizable=yes,dependent=yes,height='+altura+',width='+largura);
    centralizarJanela(janela,largura,altura);
    janela.focus();
    flagJanela = true;
}

//Elimina brancos no início e fim da String.
function trim(valor){
    return valor.replace(/^\s*/, "").replace(/\s*$/, "");
}

//Verifica se o valor de um campo é vazio
function isEmpty(s){	
    return ((trim(s) == null) || (trim(s).length == 0))
}

function isTeclaEspecial(tecla){
    var bValido = false;
    if(	(tecla == 8)  ||	//backspace
        (tecla == 39) ||	//right
        (tecla == 37) ||	//left
        (tecla == 36) ||	//home
        (tecla == 9)  ||	//tab
        (tecla == 13) ||	//enter
        (tecla == 35)){ 	//end
        bValido = true;
    }
    return bValido;
}

//Verifica se uma tecla digitado corresponde a um número
function isNumero(e){	
    var key;
    var keychar;
    if (window.event){
        key = window.event.keyCode;
    }else if (e){
        key = e.which;
    }else{
        return true;
    }
    keychar = String.fromCharCode(key);
    // teclas de controle
    if (isTeclaEspecial(key)==true){
        return true;
    // números
    }else if ((("0123456789").indexOf(keychar) > -1)){
        return true;
    }else{
        return false;
    }
}

//Formata um valor no formato 1.000,00
function formatarDinheiro(campo) {
    var numeroMascarado = '';
    campo.value = campo.value.replace(/[^\d]*/gi, '');
    j = 0;
    for (i=campo.value.length-1; i>=0; i--) {
        numeroMascarado = campo.value.charAt(i) + numeroMascarado;
        j++;
        if (j == 2) {
            numeroMascarado = ',' + numeroMascarado;
        }
        if (((j == 5) || (j == 8) || (j == 11)) && (i != 0)) {
            numeroMascarado = '.' + numeroMascarado;
        }
    }
    return numeroMascarado;
}

//Valida o código de uma OAB
function validaOAB(campo){
    if (isEmpty(campo.value)) return false;
    campo.value = campo.value.toUpperCase();
    if (campo.value.length < 3){
        alert("A OAB deve ser composta por duas letras e pelo menos um número.");
        campo.value = "";
        campo.focus();
        return false;
    }else {
        var estado = campo.value.substring(0,2);
        var digitos = campo.value.substring(2,campo.value.length);
        var regexEstado = /^(AC|AL|AP|AM|BA|CE|DF|ES|GO|MA|MT|MS|MG|PA|PB|PR|PE|PI|RJ|RN|RS|RO|RR|SC|SP|SE|TO|UF)$/;
        var regexDigitos = /^\d+$/;
        if ((!regexEstado.test(estado)) || (!regexDigitos.test(digitos))){
            alert("A OAB deve ser composta por duas letras e pelo menos um número.");
            campo.value = "";
            campo.focus();
            return false;
        }else{
            var oab = "000000"+digitos;
            campo.value = estado+oab.substring((oab.length-6),oab.length);
            return true;
        }
    } 
} 

function FormataData(src,event) {
    mask = "##/##/####";
    var i = src.value.length;
    var saida = mask.substring(0,1);
    var texto = mask.substring(i)
    if (texto.substring(0,1) != saida){
        src.value += texto.substring(0,1);
    }
}

//Formato MM/AAAA
function FormataDataBase(objeto,event) {
    var tecla;
    if (window.navigator.appName != "Netscape"){
        tecla = event.keyCode;
    }else{
        tecla = event.which;
    }
    if(isTeclaEspecial(tecla)){
        event.returnValue = true;
    }else if(isNumero(event)) {
        if (objeto.value.length >= 2){
            if (objeto.value.charAt(2)!="/"){
                objeto.value = objeto.value.substring(0,2) +"/"+ objeto.value.substring(2,objeto.value.length)
            }
        }
        event.returnValue = true;
    }else{
        event.returnValue = false;
    }
}

function data(campo){
    if(isEmpty(campo.value)) return true;
    reDate = /^(0?[1-9]|[12]\d|3[01])\/(0?[1-9]|1[0-2])\/(19|20)?\d{2}$/;
    retorno =  reDate.test(campo.value);
    if(!retorno){
        alert("Formato de data inválido!\nData Válida(dd/mm/aaaa)");
        campo.value = "";
        campo.focus();
    }
}

function dataBase(campo){
    if(isEmpty(campo.value)) return true;
    reDate = /^(0?[1-9]|1[0-2])\/(19|20)?\d{2}$/;
    retorno =  reDate.test(campo.value);
    if(!retorno){
        alert("Formato de data base inválido!\nData Base Válida(dd/mm/aaaa)");
        campo.value = "";
        campo.focus();
    }else{
        barras = campo.value.split("/");
        mes = barras[0];
        ano = barras[1];
        if(((mes < 07) && (ano <= 1994))||(ano<1994)){
            alert("A data-base informada ("+campo.value+") é incompatível com a moeda em vigor"+
                " (REAL). \nÉ necessário atualizar o cálculo com data igual ou posterior a "+
                " julho de 1994.");
            campo.value = "";
            campo.focus();
            return false;
        }
        dataAtual = new Date();
        mesAtual = dataAtual.getMonth()+1;
        anoAtual = dataAtual.getFullYear();
        if((mes > mesAtual) && (ano >= anoAtual)){
            alert("A data-base ("+campo.value+") não pode ser superior à data de hoje.");
            campo.value = "";
            campo.focus();
            return false;
        }
    }
}

function dataBaseCredito(campo){
    if(isEmpty(campo.value)) return true;
    reDate = /^(0?[1-9]|1[0-2])\/(19|20)?\d{2}$/;
    retorno =  reDate.test(campo.value);
    if(!retorno){
        alert("Formato de data base inválido!\nData Base Válida(dd/mm/aaaa)");
        campo.value = "";
        campo.focus();
    }else{
        barras = campo.value.split("/");
        mes = barras[0];
        ano = barras[1];
        dataAtual = new Date();
        mesAtual = dataAtual.getMonth()+1;
        anoAtual = dataAtual.getFullYear();
        if((mes > mesAtual) && (ano >= anoAtual)){
            alert("A data-base ("+campo.value+") não pode ser superior à data de hoje.");
            campo.value = "";
            campo.focus();
            return false;
        }
    }
}

//Verifica se o campo foi preenchido até o seu tamanho máximo
//se foi pula para o próximo campo
function testaCampo( e , len){	
    var campo = 0;
    if (e.value.length == len){
        for (i=0; i<document.forms[0].elements.length; i++){
            if (document.forms[0].elements[i].name == e.name){
                campo = i++;
                break;
            }
        }
        if(campo > 0){
            campo++;
            document.forms[0].elements[campo].focus();
        }
    }
}

function validaCNPJ_CPF(campo){
    
    if(isEmpty(campo.value)) return false;
    campo.value = trim(campo.value);
    if((campo.value.length != 11)&&(campo.value.length != 14)){
        alert("Preencha corretamente o campo CNPJ/CPF.");
        campo.value="";
        campo.focus();
        return false;
    }else if (campo.value.length == 11){
        return validaCPF(campo);
    }else if (campo.value.length == 14){
        if(!validaCNPJ(campo)){
            alert("CPF/CNPJ inválido!");
            campo.value = "";
            campo.focus();
            return false;
        }
    }
    return true;
}

function validaCNPJ(campo) {
    s = campo.value;
    var i;
    var c = s.substr(0,12);
    var dv = s.substr(12,2);
    var d1 = 0;
    for (i = 0; i < 12; i++){
        d1 += c.charAt(11-i)*(2+(i % 8));
    }
    if (d1 == 0) return false;
    d1 = 11 - (d1 % 11);
    if (d1 > 9) d1 = 0;
    if (dv.charAt(0) != d1){
        return false;
    }
    d1 *= 2;
    for (i = 0; i < 12; i++){
        d1 += c.charAt(11-i)*(2+((i+1) % 8));
    }
    d1 = 11 - (d1 % 11);
    if (d1 > 9) d1 = 0;
    if (dv.charAt(1) != d1){
        return false;
    }
    return true;
}
	
function validaCPF(campo) {
    cpf = campo.value;
    valor = true;
    erro = new String;
    var nonNumbers = /\D/;
    if (nonNumbers.test(cpf)) erro += "A verificacao de CPF suporta apenas números! \n\n";
    if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999"){
        erro += "Número de CPF inválido!"
    }
    var a = [];
    var b = new Number;
    var c = 11;
    for (i=0; i<11; i++){
        a[i] = cpf.charAt(i);
        if (i < 9) b += (a[i] *  --c);
    }
    if ((x = b % 11) < 2) {
        a[9] = 0
    } else {
        a[9] = 11-x
    }
    b = 0;
    c = 11;
    for (y=0; y<10; y++) b += (a[y] *  c--);
    if ((x = b % 11) < 2) {
        a[10] = 0;
    } else {
        a[10] = 11-x;
    }
    if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10])){
        erro +="Dígito verificador com problema!";
    }
    if (erro.length > 0){
        alert(erro);
        campo.value="";
        campo.focus();
        return false;
    }
    return true;
}

function visualizaProcesso(num_processo, origem){
    var f = document.forms[0];
    var flagVisualizaProcesso = false;

    if ( flagVisualizaProcesso ) {
        janelaVisualizaProcesso.close();
    }
	
    var processo = num_processo;
    if(processo.length < 10){
        processo = "000000"+processo;
        processo = processo.substring((processo.length-10),processo.length);
    }
    janelaVisualizaProcesso = window.open('http://www.trf4.gov.br/trf4/processos/acompanhamento/resultado_pesquisa_popup.php?txtValor='+processo+'&selOrigem='+origem+'&chkMostrarBaixados=S&selForma=NU', 'ConsultaProcessual','toolbar=no,location=no,directories=no,menubar=no,resizable=yes,status=no,scrollbars=yes,height=500,width=650, top=0, left=0');
    janelaVisualizaProcesso.focus();
    flagVisualizaProcesso = true;
}

function visualizaProcessoEletronico(num_processo){
    var f = document.forms[0];
    var flagVisualizaProcessoEletronico = false;

    if ( flagVisualizaProcessoEletronico ) {
        janelaVisualizaProcessoEletronico.close();
    }
	
    var processo = num_processo;
    janelaVisualizaProcessoEletronico = window.open('consulta_processo_eproc.php?num_processo='+processo+'', '','toolbar=no,location=no,directories=no,menubar=yes,resizable=yes,status=yes,scrollbars=yes,height=600,width=800, top=0, left=0');
    janelaVisualizaProcessoEletronico.focus();
    flagVisualizaProcessoEletronico = true;
}
