function formataCPFCertificado(valor){
	valor = new String(valor);
	if(valor.length > 11){
		return valor;
	}
	while(valor.length < 11){
		valor = ""+"0"+valor;
	}
	return (valor.substring(0,3)+"."+valor.substring(3,6)+"."+valor.substring(6,9)+"-"+valor.substring(9,11));
}
function formataDataCertificado(valor){
	valor = new String(valor);
	tamanho = valor.length;
	if(valor.length != 8 && valor.length != 6){
		return valor;
	}
	if(valor.length == 6){
		valor = ""+valor.substring(0,4)+"19"+valor.substring(4,6);
	}
	return (valor.substring(0,2)+"/"+valor.substring(2,4)+"/"+valor.substring(4,8));
}

function mostraHint(event, msg) { 
    objBody = document.getElementsByTagName("BODY")[0];
    objDiv = document.createElement("DIV");
    objDiv.id = "hint";
    objDiv.className = "hint";
    objDiv.style.visibility = "visible";
    objDiv.style.left = (event.clientX + document.body.scrollLeft + 10) + "px";
    objDiv.style.top = event.clientY + document.body.scrollTop + "px";
    objBody.appendChild(objDiv);
    objText = document.createTextNode(msg);
    objDiv.appendChild(objText);
}

function escondeHint() {
    objLayer = document.getElementById("hint");
    if(objLayer != null)
        objLayer.parentNode.removeChild(objLayer);
}

function moveHint(event) {
    objHint = document.getElementById("hint");
    if(objHint != null){
        objHint.style.left = (event.clientX + document.body.scrollLeft + 10) + "px";
        objHint.style.top = event.clientY + document.body.scrollTop + "px";
    }
}

function buscaCep(campo, action) {
	var nuCep = campo.value;
	var nuCep2 = nuCep.substring(0, 5) + nuCep.substring(6, 9);
	url = action + nuCep2;
	document.getElementById("msgCEP").innerHTML = 'Aguarde... buscando endereço.';
	document.getElementById("iframeCEP").src = url;
}

/*function buscaPartePorCPF(campo) {
	var cpf = campo.value;
	url = 'searchPartePorCPF.do?cpf='+ cpf;
	document.getElementById("msgCPF").innerHTML = 'Aguarde... carregando pessoa física!';
	document.getElementById("iframeCPF").src = url;
}

function buscaPartePorCNPJ(campo) {
	var cnpj = campo.value;
	url = 'searchPartePorCNPJ.do?cnpj='+ cpf;
	document.getElementById("msgCNPJ").innerHTML = 'Aguarde... carregando pessoa jurídica!';
	document.getElementById("iframeCNPJ").src = url;
}*/

function buscaTipocartorio(cdForo,servico) {
    url = 'searchTipocartorio.do?cdForo='+cdForo+'&servico='+servico;
    var campoSel = document.getElementById("iframeTipocartorio");
    campoSel.src = url;
}

function gainFocus(elem){
	if(elem){
	  elem.focus();
	  elem.style.defaultBackgroundColor = elem.style.backgroundColor;
	  elem.style.backgroundColor = "infoBackground";
	}//if
}

function restoreFormation(elem){
	if(elem && elem.defaultBackgroundColor){
	  elem.style.backgroundColor = elem.style.defaultBackgroundColor;
	}//if
}

function validaFormDocumento(form) {
  docdig = document.getElementById('cdTipodocdigital');
  restoreFormation(docdig);
  if (docdig[docdig.selectedIndex].value == -1) {
    alert("O campo \"Tipo\" deve ser selecionado.");
    gainFocus(docdig);
    return false;
  }//if 
  var chkDividido = document.getElementById('chkDividido');
  var dividido = chkDividido.checked;
  inputs = document.getElementsByTagName("input");
  filecont = 1;
  ext = '';
  for (i = 0; i < inputs.length; i++) {
    if (inputs[i].type == 'file') {
      restoreFormation(inputs[i]);  
      nmExtArq = inputs[i].value.substr(inputs[i].value.lastIndexOf('.'));
      if (dividido){
        inputs[i].obrigatorio = (filecont == 1)?false:true;
        if(filecont > 1){
          if(filecont == 2){
	        ext = nmExtArq;
	      } else {
	        if (ext != nmExtArq) {
              if (nmExtArq != ''){
          	    alert("["+nmExtArq+"] Todos os arquivos devem possuir a mesma extensão. (Sequência "+(filecont -1)+" = '"+nmExtArq+"')");
              } else {
          	    alert("Informe um valor para o campo em foco");          
              }//if 
              gainFocus(inputs[i]);
              return false;
            }//if  
          }//if filecont == 2
        }//if filecont > 1
      } else {
        inputs[i].obrigatorio = (filecont == 1)?true:false;
          if(filecont == 1){
	        ext = nmExtArq;
          }//if filecont == 1 
      }//if dividido
      filecont++;
      //alert(inputs[i].name+" - "+inputs[i].obrigatorio);
    }//if file
  }//for
  return BENV_isCamposValidos(form);
}

function validaCertificado(umForm) {
	if (selectedValue(umForm['cert']) == 'undefined') {
		alert("Escolha um certificado!");
		return false;
	}
	return true;
}



function validaOAB(obj) {
	if(obj.value.length > 0) {
		var regex = new RegExp("(\\d{1,3}|\\d{1,3}\\.?\\d{3})(\\-[a-zA-Z])?(\\/[a-zA-Z]{2})");
		if(!regex.test(obj.value)) {
			alert('O número da OAB deve ser acompanhado de /UF ou -X/UF. Exemplos:  11.111/RS ou 111.111-E/SP.');
			obj.focus();
		} else {
			obj.value = obj.value.toUpperCase();
		}
	}
}

function alternaExibicao(elem) {
	if(elem.className == 'hidden') {
		elem.className = '';
	} else {
		elem.className = 'hidden';
	}
}

function pesquisaDadosEndereco(cdUsuario, nuSeqendereco) {
    url = 'enderecoEditar.do?entity.enderecoPK.usuario.usuarioPK.cdUsuario='+cdUsuario;
    url+= '&entity.enderecoPK.nuSeqendereco='+nuSeqendereco;
    // o terceiro parametro visa apenas permitir manter o combo selecionado na opcao correta
    url+= '&nuSeqEndereco='+nuSeqendereco
    if (nuSeqendereco != -1) {
		document.location.href = url;
	} else {
		clearForm(document.forms[0]);;
	}
}

function excluirEnderecoCorrente(cdUsuario, nuSeqendereco) {
    url = 'enderecoDeletar.do?entity.enderecoPK.usuario.usuarioPK.cdUsuario='+cdUsuario;
    url+= '&entity.enderecoPK.nuSeqendereco='+nuSeqendereco;
    // o terceiro parametro visa apenas permitir manter o combo selecionado na opcao correta
    url+= '&nuSeqEndereco='+nuSeqendereco
    if (nuSeqendereco != -1) {
		document.location.href = url;
	} 
}

function selectedValue(objArray) {
    if (!objArray.length) {
      if (objArray.checked) {
        return objArray.value;
      }
    } else {
	    for(i = 0; i < objArray.length; i++) {
	        if(objArray[i].checked) {
	            return objArray[i].value;
	        }
	    }
    }
    return 'undefined';
}

function clearForm(umForm) {
	tamanho = umForm.elements.length;
	for (i=0; i<tamanho; i++) {
		if (umForm.elements[i].name != 'pbEnviar' 
		 && umForm.elements[i].name != 'pbVoltar' 
		 && umForm.elements[i].name != 'pbNovo'
		 && umForm.elements[i].name != 'pbRemover') {
			umForm.elements[i].value = '';
		}
	}
}
//****************** INTIMACAO **************************************
function confHabilitDesabilit(campo){
  if(!campo.checked){
    if(!confirm('Deseja realmente desabilitar o serviço?'))
      return false;
  }else{
    if(!confirm('Deseja realmente habilitar o serviço?'))
      return false;
  }
  return true;
}



//****************** PETICIONEMENTO *********************************
function assinaArquivo(certID, signer, tamanhoMaximo, tamanhoMaximoPorArquivo, extensoes, form) {
	if (validaFormDocumento(form)) {
		var Center = "center=yes; ";
		var Help = "help=no ;";
		var Status = "status=no; ";
		var Resize = "resizable=no; ";
		var Height = "dialogHeight=" + 350 + "px; ";
		var Width = "dialogWidth=" + 740 + "px; ";
		var Left = "dialogLeft=" + 10 + "px; ";
		var Top = "dialogTop=" + 10 + "px; ";
		var ParamStr = Height + Width + Center + Help + Status + Resize;
		var resultado = -1;
        var retorno;
        if (certID == '') {
			/*
			retorno = window.showModalDialog("telaPopSelecionaCertificado.do", ParamStr, ParamStr);
            resultado = retorno.substring(0,retorno.indexOf('$'));
            if(resultado != -1) {
	            objBody = document.getElementsByTagName("BODY")[0];
	            objIF = document.createElement("IFRAME");
                objIF.style.visibility = "hidden";
	            objIF.src = 'petSelecionaCertificado.do?origem=pop&cert='+resultado+'&deCertificado='+retorno;
	            objBody.appendChild(objIF);
            }
			document.getElementById('idCertificado').value = resultado;
			*/
			alert("Sua sessão expirou. Reinicie o peticionamento.");
			return; 
			
		} else {
			var cert;
			for(i = 0; i < repositorio.getCountCertificados(); i++) {
        		if(repositorio.getCertificado(i).getIdCertificado() == certID){
        			resultado = i;
        			break;
        		}
        	} 
			
		}
		if(resultado != -1) {
			signer.configura(resultado, 'Selecione o certificado', tamanhoMaximo, tamanhoMaximoPorArquivo, extensoes);
			signer.validaFormulario();
		    if(signer.houveErro) {
	            alert(signer.lastMessage);
	            mostraConteudo();
	            return;
		    } 
			mostraProgresso();		
			signer.trataFormulario();
		    if(signer.houveErro) {
	            alert(signer.lastMessage);
	            mostraConteudo();
		    } 
		} else {
			alert("Erro ao carregar certificado. Insira seu certificado no computador e tente novamente.");
		}
	}
}

/*
function processeCert(quemChamou) {
    window.returnValue = - 1;
    var lista = document.getElementById("certs");
    linha =  "<table width=100% border=0 cellspacing=0 cellpadding=0><tr><td class=subTitulo >Selecione um Certificado Digital da lista abaixo</td></tr><tr><td>";
    linha += "<table width=100% border=0 cellspacing=0 cellpadding=0><tr><td width=2% class=spwCabecalhoGrid >&nbsp;</td><td width=39% class=spwCabecalhoGrid >Emitido para:</td><td width=39% class=spwCabecalhoGrid >Emitido por:</td><td width=15% class=spwCabecalhoGrid >V&aacute;lido at&eacute;:</td><td width=5% class=spwCabecalhoGrid >&nbsp;</td></tr>";
    repositorio.inicialize('MY', 0);
    var nenhumCertificado = true;
    for(i = 0; i < repositorio.getCountCertificados(); i++) {
        var cert = repositorio.getCertificado(i);
        var podeAssinar = false;
        var ehValido = false;
        var dtTermino = cert.getDataTermino();
        var dia = dtTermino.substring(0,2);
        var mes = dtTermino.substring(3,5);
        var ano = dtTermino.substring(6,10);
        var hora = dtTermino.substring(11,13);
        var min = dtTermino.substring(14,16); 
        var seg = dtTermino.substring(17,19);
        ehValido = ((new Date(ano,mes,dia,hora,min,seg)) - (new Date()) > 0);
        if (ehValido) {
	        for(j = 0; j < cert.getCountUsoChaves(); j++) {
	            if(cert.getUsoChaves(j) == 128) {
	                podeAssinar = true;
	                nenhumCertificado = false;
                    break;
	            }
	        }
	        if(podeAssinar) {
	        	var valorRetorno = cert.getIdCertificado() + '$' + cert.getAssuntoCN() + ' ('  + cert.getAssuntoE() + ') $ ' + cert.getEmissorCN() + ' - ' + cert.getEmissorOU() + ' $'+cert.getDataTermino();
	            linha += "<tr><td width=2% class=spwCelulaGrid ><input type=radio name=cert value=" + i + " onclick=\"window.returnValue = '" + valorRetorno + "'\" ></td><td width=39% class=spwCelulaGrid ><img src=\"/esaj/imagens/cert.png\" width=20 height=15 >&nbsp;" + cert.getAssuntoCN() + " (" + cert.getAssuntoE() + ")" + "</td><td width=39% class=spwCelulaGrid >" + cert.getEmissorCN() + " - " + cert.getEmissorOU() + "</td><td width=15% class=spwCelulaGrid >" + cert.getDataTermino() + 
	            "<input type='hidden' name='deCertificado' value='"+valorRetorno+"'></td><td width=5% class=spwCelulaGrid ><input type=button value=Exibir class=spwBotaoGrid onclick=mostraCert(" + i + ")></td></tr>";
	        }
        }
    }
    linha += "</table>";
    if(nenhumCertificado) {
       linha += "<tr><td class=spwCelulaGrid colspan='5' align='center'><br><font color='red' size=2>Nenhum certificado dispon?vel.</font><br>Para saber mais sobre Certificados Digitais e como obter um, <u><a href='#' onclick=\"window.open('telaAjudaPrerequisitos.do#4')\">clique aqui</a></u>.<br><br></td></tr>";
    }
  	linha+= "</td> </tr></table>";
    lista.innerHTML = linha;
}
*/
function carregueCertificado(certID) {
    //window.returnValue = - 1;
    repositorio.inicialize('MY', 0);
    var nenhumCertificado = true;
    for(i = 0; i < repositorio.getCountCertificados(); i++) {
        var cert = repositorio.getCertificado(i);
        var podeAssinar = false;
        var ehValido = false;
        var dtTermino = cert.getDataTermino();
        var dia = dtTermino.substring(0,2);
        var mes = dtTermino.substring(3,5);
        var ano = dtTermino.substring(6,10);
        var hora = dtTermino.substring(11,13);
        var min = dtTermino.substring(14,16); 
        var seg = dtTermino.substring(17,19);
        ehValido = ((new Date(ano,mes,dia,hora,min,seg)) - (new Date()) > 0);
        idCertificado = cert.getIdCertificado();
        if (ehValido && idCertificado == certID) {
        	nenhumCertificado = false;
        	for(j = 0; j < cert.getCountUsoChaves(); j++) {
	            if(cert.getUsoChaves(j) == 128) {
	                podeAssinar = true;
	                break;
	            }
	        }
	        if(podeAssinar) {
	        	//alert("Localizou certificado (valido) informado. CertID: "+idCertificado);
                var valorRetorno = idCertificado+ '$' + cert.getAssuntoCN() + ' ('  + cert.getAssuntoE() + ') $ ' + cert.getEmissorCN() + ' - ' + cert.getEmissorOU() + ' $'+cert.getDataTermino();
	            document.getElementById('cert').value=idCertificado; 
	            document.getElementById('deCertificado').value=valorRetorno;
	            break;
	            //alert("valor retorno: "+valorRetorno);
	        }else{
	        	alert("Seu certificado não permite assinatura de documentos.");
	        }
        }
    }
    if(nenhumCertificado) {
       document.getElementById('mensagem').style.display = 'none';
       document.getElementById('erro').style.display = 'block';
       document.getElementById('botaoCarregar').disabled = false;
       //alert("Nao achou certificado.");
       return;
    }
    //alert('Submetendo form...');
  	document.forms[0].submit();
}

function mostraCert(id) {
    var certificado = repositorio.getCertificado(id);
    certificado.mostrarCertificado();
}

function mostraProgresso() {
	div = document.getElementById('conteudo');
	div.style.display = 'none';
	div2 = document.getElementById('progresso');
	div2.style.display = 'block';
}

function mostraConteudo() {
	div = document.getElementById('conteudo');
	div.style.display = 'block';
	div2 = document.getElementById('progresso');
	div2.style.display = 'none';
}

//********************** CAIXA POSTAL ***************************
function inverteSelCheckbox(chkArray, idMarcaTodos) {
    if (chkArray.length) {
	    for(i = 0; i < chkArray.length; i++) {
			chkArray[i].checked = !chkArray[i].checked;
	    }
    } else {
        chkArray.checked = !chkArray.checked;
    }
    verificaTodosCheckbox(chkArray, idMarcaTodos);
}

function marcaTodosCheckbox(chkArray, checked) {
    if (chkArray.length) {
	    for(i = 0; i < chkArray.length; i++) {
	        chkArray[i].checked = checked;
	    }
    } else {
        chkArray.checked = checked;
    }
}

function pushMarcaTodosCheckbox(chkArray) {
	if(!chkArray) return;
    if (chkArray.length) {
	    for(i = 0; i < chkArray.length; i++) {
	        chkArray[i].checked = true;
	    }
    } else {
        chkArray.checked = true;
    }
}

function pushDesmarcaTodosCheckbox(chkArray) {
	if(!chkArray) return;
    if (chkArray.length) {
	    for(i = 0; i < chkArray.length; i++) {
	        chkArray[i].checked = false;
	    }
    } else {
        chkArray.checked = false;
    }
}

function pushConfirmaExclusao(chkArray){
	if(!chkArray || chkArray.length == 0){
		 alert('Não há processos marcados para serem excluídos.');
		 return false;
	}else{
		var marcado = false;
		if (chkArray.length) {
		    for(i = 0; i < chkArray.length; i++) {
		        if(chkArray[i].checked){
		        	marcado = true;
		        	break;
		        }
		    }
	    } else {
	        if(chkArray.checked){
	        	marcado = true;
	        }
	    }
	    if(!marcado){
	    	alert('Não há processos marcados para serem excluídos.');
		 	return false;
	    }
	}
    
	return confirm('Deseja realmente excluir os processos selecionados?');
}

function pushInverteSelCheckbox(chkArray) {
    if (chkArray.length) {
	    for(i = 0; i < chkArray.length; i++) {
			chkArray[i].checked = !chkArray[i].checked;
	    }
    } else {
        chkArray.checked = !chkArray.checked;
    }
}

function verificaTodosCheckbox(chkArray, idMarcaTodos) {
    var mtodos = document.getElementById(idMarcaTodos);
    var todos = true;
    if (chkArray.length) {
        for(i = 0; i < chkArray.length; i++) {
            if(!chkArray[i].checked) {
                todos = false;
                break;
            }
        }
    } else {
        todos = chkArray.checked;
    }
    mtodos.checked = todos;
}

function ajustaCPFCNPJ(valor) {
  var label = document.getElementById("labelCpfcnpj");
  var campoCPF = document.getElementById("CPF");
  var campoCNPJ = document.getElementById("CNPJ");
  if (valor == "F") {
    label.innerHTML = 'CPF';
    campoCPF.className = '';
    campoCPF.disabled = '';
    campoCPF.setAttribute('obrigatorio', 'true');
    campoCNPJ.className = 'hidden';
    campoCNPJ.disabled = 'true';
    campoCNPJ.setAttribute('obrigatorio', 'false');
    campoCNPJ.value = '';
    campoCPF.checked = 'true';
  } else if (valor == "J") {
    label.innerHTML = 'CNPJ';
    campoCPF.className = 'hidden';
    campoCPF.disabled = 'true';
    campoCPF.setAttribute('obrigatorio', 'false');
    campoCPF.value = '';
    campoCNPJ.className = '';
    campoCNPJ.disabled = '';  
    campoCNPJ.setAttribute('obrigatorio', 'true');
  } else {
    label.innerHTML = '';
    campoCPF.value = '';
    campoCNPJ.value = '';
  }
}

function popup(url, nome, params) {
	if (!nome) {
		nome = '';
	}
	if (!params) {
		params = 'location=no, toolbar=no, resizable=yes, width=795, height=560, scrollbars=yes';
	}
	window.open(url, nome, params);
	return false;
}

function marcaCheckBox(checkbox) {
	var checkbox = $(checkbox);
	var regExp = /\((\d+)-(\d+)-.*\)/;
	var result = regExp.exec(checkbox.name);
	var id = 'input.g' + result[1] + 'r' + result[2];
	var inputs = $$(id);
	inputs.each(function(elemento) {
		elemento.setAttribute('obrigatorio', checkbox.checked);
	});
	if (inputs.length > 0) {
		if (checkbox.checked == true) {
			inputs[0].focus();
		}
	}
}

function editaTexto(campo) {
	var campo = $(campo);
	var regExp = /\((\d+)-(\d+)-.*\)/;
	var result = regExp.exec(campo.name);
	var id = 'input.checkg' + result[1] + 'r' + result[2];
	var inputs = $$(id);
	inputs.each(function(elemento) {
		if ($F(campo) != null && $F(campo) != "") {
			elemento.checked = 'true';
		}
	});
}
