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("CNPJ inválido!");
			campo.value = "";
			campo.focus();
			return false;
		}
	}
}

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;		
}
