//variï¿½veis globais
//id da input text o nï¿½mero
var idNumero = "txtNumero";
var selOrigem = 'selOrigem'

function isPrd(){
  var patt= new RegExp("www|intranet|internet|srv85|webserver|seguro");
  var str=document.location.href;
  return patt.test(str);
}
   /*
**************************************
* Query Function v1.0                *
* Autor: Carlos R. L. Rodrigues      *
**************************************
*/
function Query(s){
	if(!(s = s || location.search)) return null;
	var v, f, i, a = {}, r = /\+/g, u = unescape;
	if(s = s.split("?")[1])
		for(i = (s = s.split("&")).length; i;)
			(v = u((f = s[--i].split("="))[1].replace(r, " ")), a[f[0]] !== undefined)
			&& (a[f[0]] instanceof Array ? a[f[0]] : a[f[0]] = [a[f[0]]]).push(v)
			|| (a[f[0]] = v);

	return a;
}

function alterarVep(){
       if (document.getElementById("selOrigem")[5].selected == true){
            document.getElementById("opcaoVep").style.display = "block";
        }
		else{
            document.getElementById("opcaoVep").style.display = "none";
        }
	}
function alterarTJ(){
       if (document.getElementById("selOrigem")[1].selected == true){
            document.getElementById("opcaoSegundaInstancia").style.display = "block";
        }
		else{
            document.getElementById("opcaoSegundaInstancia").style.display = "none";
        }
}

function mudarFoco(){
    if(isEscolhidaNumeracaoUnica())
      document.getElementById(idTxtNumeracaoUnicaParte1).focus();
    else   
      document.getElementById(idNumero).focus();
    
}
function setarOrigem(){
	var parameter = Query();
	var origem = getCookieOrigem();
	removerOrigem();
	if(origem != null ){
		document.getElementById("selOrigem").value = origem;
	}
	else{
		if ( parameter != null){
			if (parameter.sel_origem != null){
				document.getElementById("selOrigem").value = parameter.sel_origem;
			}
			else if (parameter.origem != null)
			{
				document.getElementById("selOrigem").value = parameter.origem;			
			}
		}// fim do if
	}
}
function verificarLoad(){
	setarOrigem();
    alterarTJ();
    alterarVep();
    mudarFoco();
	aplicarMascara(getOrigem())
	document.loaded = true;
	mensagemExecucaoFiscal();
        mudarNumeracao();
//	carregarValidadores();
	
}
function alterar(origem){
	aplicarMascara(origem); 
	mudarFoco();
	setNumeroProcesso("")
	alterarVep();
    alterarTJ();
    document.getElementById('form').validadorMestre.mensageiro.limparMensagens();
}

// JavaScript Document
/*******************************************************************************
Retorna o valor de um radio passando o id como parï¿½metro
*******************************************************************************/
function valorSelectMenu(id){
    var valor;
    opcoes = document.getElementById(id).getElementsByTagName('input')
    for(i=0;i<opcoes.length;i++){
        if (opcoes[i].checked){
            valor = opcoes[i].value;
            break;
        } // fim do if
    } // fim do for
    return valor;
}

/**
 *  retorna o tipo de consuta para a consulta de segunda instï¿½ncia ï¿½ por processo ou nï¿½mero de protocolo
 */
function isProtocolo(){
	if (valorSelectMenu("form:selectOneRadio1") == '2')
		return true;
	else
		return false;
}
/**
 * seta o nï¿½mero do processo
 */
function setNumeroProcesso(valor){
	document.getElementById(idNumero).value = valor;
}
/**
 * Retorna qual ï¿½ a origem
 */
function getOrigem(){
	return document.getElementById(selOrigem).value;
}

function getNumeroUnicoProcesso(){
   return    document.getElementById(idTxtNumeracaoUnicaParte1).value + '.8.19.'+ document.getElementById(idTxtNumeracaoUnicaParte2).value

}

/**
 * Retorna O nï¿½mero do input nï¿½mero
 */
function getNumeroProcesso(){
	return document.getElementById(idNumero).value;
}

/**
 * Retorna O nï¿½mero do protocolo para consulta VEP
 */
function getNumeroProtocolo(){
	return document.getElementById("form:nprotocolo").value;
}
/**
 * Retorna O nï¿½mero do Protocolo para cosulta VEP
 */
function getId(){
	return document.getElementById("form:id").value;
}
/**
 * Verifica o tipo de consulta para consulta VEP
 */
function getTipoConsultaVEP(){
	return valorSelectMenu("form:tipoConsulta");
}

/**
 * Limpa o nï¿½mero deixando somente nï¿½meros vï¿½lidos
 */
function limparNumero(antigoNumero) {
	var buffer = null;
	var caracteresValidos = 
		"0123456789abcdefghijklmnopqrstuvxzABCDEFGHIJKLMNOPQRSTUXZ";
	var novoNumero = "";
	var tamanho = antigoNumero.length;

	for (i = 0; i < tamanho; i++) {
		buffer = antigoNumero.substring(i, i + 1);
		if ((caracteresValidos.lastIndexOf(buffer)) != -1) {
			novoNumero = novoNumero + buffer;
		}
	}
	return novoNumero;
}

/*function diferenciaOrigemPrimeira(numero) {
	var comarca;

	var comarca = numero.substring(4, 7);
	if ((comarca >= 800) && (comarca < 900)) {
		return "juizado";
	} else if (comarca == 700){
		return "conselhoRecursal"
	}
		return "primeiraInstancia";

	return null;
} 
Comentado a pedido do Renato Warwar em 25/03/2008 as 10:34.
*/

function diferenciaOrigemPrimeira(numero) {
	var comarca;
	var comarca = numero.substring(4, 7);
	if (comarca == 700){
		return "conselhoRecursal"
	}
	return "primeiraInstancia";
}
	
function diferenciar(numero, origem) {
	if (origem == "1")
		return diferenciaOrigemPrimeira(numero);

	else if (origem == "3")
		return "TAC";

	else if (origem == "4")
		return "TACRIM";

	else if (origem == "5")
		return "precatoriosJudiciais";

	else if (origem == "6")
		return "VEP";

	else if (origem == "7")
		return "conselhoDaMagistratura";

	else if (origem == "8")
		return "execucaoFiscalEstado";

	else if (origem == "2")
		return "tribunalDeJustica";

	return null;
}
function submeter(url){
	document.getElementById("form").setAttribute("action", url);
//	document.getElementById("form").submit();
}

function consultaAction(){
	condicao = true;
	if (document.loaded == null){		
		window.setTimeout("consultaAction()", 100);
		window.status = ("Carregando Página")
		return;
	}
	window.status = ("")
        if(isEscolhidaNumeracaoUnica()){
            consultaNumeracaoUnica();
        }
        else{
          consultaNumeracaoAntiga();
        }
      return condicao;
	
}

function consultaNumeracaoUnica(){
	
  var PAGINA_PESQUISA = '/numeracaoUnica/faces/index.jsp?numProcesso=';
  var urlJava;
  
  	if(isPrd())
          urlJava = "http://srv85.tjrj.jus.br";
        else
                urlJava  = "http://tjerj314.tjrj.jus.br";
          
  
  
  
  submeter( urlJava + PAGINA_PESQUISA + getNumeroUnicoProcesso());	
  
  
}
function consultaNumeracaoAntiga(){
	autoCompletar();
	num = getNumeroProcesso();
	or = getOrigem()
        
        var CONSULTANUMEROJAVA;
	if(isPrd())
                   CONSULTANUMEROJAVA= "/consultaProcessoWebV2/consultaProc.do?v=2&FLAGNOME=&back=1&tipoConsulta=publica&numProcesso=";
        else
          CONSULTANUMEROJAVA  = "/consultaProcessoWebH/consultaProc.do?v=2&FLAGNOME=&back=1&tipoConsulta=publica&numProcesso=";
          

	 

	var numero = num;
	var origem = or;
	var resultado;
	var urlMumps;
	var urlJava;
	
	
	if(isIntranet()){

            if(isPrd())
              urlJava = "http://srv85.tjrj.jus.br";
            else
               urlJava = "http://tjerj314.tjrj.jus.br";
	

		urlMumps = "http://intranet.tjrj.jus.br/scripts/weblink.mgw?";	
	}else{
            if(isPrd())
		urlJava = "http://srv85.tjrj.jus.br";
            else
               urlJava = "http://tjerj314.tjrj.jus.br";

		urlMumps = "http://www.tjrj.jus.br/scripts/weblink.mgw?";	
	}
	
	
	numero = limparNumero(numero);
	resultado = diferenciar(numero,origem);
	
	// consulta primeira instï¿½ncia        
	if (resultado == "primeiraInstancia") {
		numero = formataNumero(numero);
		submeter(urlJava +   CONSULTANUMEROJAVA + numero);
	}
	// consulta segunda instï¿½ncia
	else if (resultado =="tribunalDeJustica") {
		submeter( urlMumps + 
							  "MGWLPN=DIGITAL1A&LAB=CONxWEB&PGM=WEBPCNU88&PORTAL=1&N=" + 
							  numero + "&protproc=" + 
							  valorSelectMenu('form:selectOneRadio'));
	}
	// consulta juizado
	else if (resultado == "juizado") {
		submeter( caminhoJuizado(urlMumps,urlJava,CONSULTANUMEROJAVA));
	}
	// consulta conselho recursal
	else if( resultado == 'conselhoRecursal'){		
		submeter( urlJava + "/consultaConselho/consultaProcesso.do?txtNumero=" + limparNumero(getNumeroProcesso()));		
	}
	// consulta VEP
	else if (resultado=="VEP") {
		if (!(numero=="")) {
			submeter( urlJava + 
					"/consultaVepWeb/resultConsPublica.do?FLAGNOME=&back=1&tipoConsulta=publica&txtProc=" + 
					numero);
		} else if (!(getNumeroProtocolo()) == "") {
			submeter(urlJava + 
					"/consultaVepWeb/resultConsPublica.do?FLAGNOME=&back=1&tipoConsulta=publica&txtProt=" + 
					limparNumero(getNumeroProtocolo()));
		} else if (!(getId() == "")) {

			if (getTipoConsultaVEP() == "ifp") {
				submeter( urlJava + 
						"/consultaVepWeb/resultConsPublica.do?FLAGNOME=&back=1&tipoConsulta=publica&txtRg=" + 
						limparNumero(getId() )+ 
				"&tpCons=rg");
			} else if (getTipoConsultaVEP() == "numero") {
				submeter( urlJava + 
						"/consultaVepWeb/resultConsPublica.do?FLAGNOME=&back=1&tipoConsulta=publica&txtRg=" + 
						limparNumero(getId() )+ 
				"&tpCons=vep");
			}
		}

	}
	//consulta Alï¿½ada Cï¿½vel
	else if (resultado == "TAC") {
		submeter( urlMumps + 
							  "MGWLPN=DIGITAL1A&LAB=CONxWEB&PGM=WEBPCNU88xAC1&PORTAL=1&N=" + 
							  numero + "&tipoConsulta=publica&back=1");
	}
	// consulta Alï¿½ada Criminal
	else if (resultado == "TACRIM") {
		submeter( urlMumps + 
							  "MGWLPN=DIGITAL1A&LAB=CONxWEB&PGM=WEBPCNU88xTACRI&PORTAL=1&N=" + 
							  numero + "&tipoConsulta=publica&back=1");
	}
	// Consulta Conselho da Magistratura
	else if (resultado == "conselhoDaMagistratura") {
		submeter( urlMumps + 
							  "MGWLPN=DIGITAL1A&LAB=CONxWEB&PGM=WEBPCNU08xTJ3&PORTAL=1&N=" + 
							  numero);
	}
	// consulta Precatï¿½rios
	else if (resultado == "precatoriosJudiciais") {
		var expressao;
		padrao = "(^[0-9]{9})$";
		var oREGEXP = new RegExp(padrao);
                
		if (oREGEXP.test(numero)) {
			numero = 
					numero.substring(0, 4) + "0" + numero.substring(4);
			submeter(urlJava + 
								  "/consultaPrecatoriosJudiciais/consultaPrecatorioAntigo.do?FLAGNOME=&back=1&tipoConsulta=publica&strProcesso=" + 
								  numero);
		} else {
			submeter( urlJava + 
								  "/consultaPrecatoriosJudiciais/consultaPrecatorio.do?strTipoConsulta=N&strOrigemConsulta=numero&strProcesso=" + 
								  numero + "&strTipoConsulta='N'");
		}
	}
	// consulta Execuï¿½ï¿½o Fiscal
	if (resultado == "execucaoFiscalEstado") {
		document.getElementById('N').removeAttribute('disabled');
		document.getElementById('N').setAttribute('value',numero);
		submeter ("http://sabia.proderj.rj.gov.br/ixpress/cda/cdarj/cda2.dml");
	}	
	else
		document.getElementById('N').setAttribute('disabled',true);
	
}/***********************************************************************************
 * formata o nï¿½mero para primeira Instï¿½ncia caso o processo tenha um processo
 * em apenso 
 * @param {numero do processo a ser formatado} numero
 * return nï¿½mero formatado
 */

function formataNumero(numero) {
    if (numero.length > 14) {
        if ( isNumeric(numero.substring(14) )) {
            var n0;
            var n1;
			var secundarioNumero = parseInt(numero.substring(14));
			var secundario;
            numero = numero.substring(0, 14);

            n0 = secundarioNumero - 1;
            n1 = parseInt(n0 / 26);
            if (n1 > 0) {
				secundario = String.fromCharCode(64 + n1);
                secundario +=String.fromCharCode(65 + (n0 % 26));
            } else {
                secundario = String.fromCharCode(65 + n0);
            }
            numero += secundario;
        }
    }
    numero = 
            numero.substring(0, 4) + "." + numero.substring(4, 7) + "." + numero.substring(7, 
                                                                                            13) + 
            "-" + numero.substring(13);
    numero = numero.toUpperCase();
    return numero;
}
/**
 * Testa se o parï¿½metro informado contem somente nï¿½meros
 * @param String sText
 */
function isNumeric(sText)

{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;


   for (i = 0; i < sText.length && IsNumber == true; i++)
      {
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1)
         {
         IsNumber = false;
         }
      }
   return IsNumber;
  
   }
/* funï¿½ï¿½o que inseri um caracter numa determinada posiï¿½ï¿½o
 * caracter: 	caracter que serï¿½ inserido
 * posicao: 	posicao em que serï¿½ inserido o caracter
 * texto: 		texto em que serï¿½ inserido o caracter
 * quantidade: 	quantidade de vezes em que o caracter serï¿½ inserido
 * 				(opcional, default=1)
 * return: 		texto com os caracteres inseridos
 */
function inserirCaracter (caracter,posicao, texto, quantidade){  
		if (posicao >= texto.length) 
			return texto;
		if (quantidade == null)
			quantidade = 1;
		else if(quantidade < 1)
			return texto;
        var tamanho = texto.length;   
        var novoTexto;   
        function f (n,t){
			v = t;
			for (i = 1 ;i < n ; i++)
				v+=t;
			return v
		}
        novoTexto = texto.substring(0, posicao)+
					f(quantidade,caracter) + 
					texto.substring (posicao)
        return novoTexto;   
}

/**
 * auto completa os nï¿½meros do processo
 */
function autoCompletar() {
	var alterado = false;
	var origem = getOrigem();
	var  numero = limparNumero(getNumeroProcesso());
	var tamanho;
	// auto completa os anos abreviados com dois dï¿½gitos para quatro dï¿½gitos
	if(getOrigem() != '8'){
		if  (numero.charAt(0) == '0'){
			alterado = true;		
			 numero = inserirCaracter("20",0,numero);
		} else if ( (numero.substring(0,2) != '19') && (numero.substring(0,2) != '20') ){
			 alterado = true;
			 numero = inserirCaracter("19",0,numero);
		} 
	}
	tamanho = numero.length;
	function segundaInstancia(){		
			alterado = true;
			if (tamanho >= 5)
				numero = inserirCaracter("0",7,numero,12-(tamanho));
            numero = this.inserirCaracter(".",4,numero);   
            numero = this.inserirCaracter(".",8,numero);   
		
	}
	switch(origem){
		case "1" :
				alterado = true;
				if (tamanho >= 9)
					numero = inserirCaracter("0",7,numero,(14-(tamanho)));
                numero = this.inserirCaracter(".",4,numero);   
                numero = this.inserirCaracter(".",8,numero);   
                numero = this.inserirCaracter("-",15,numero);                              
                numero = this.inserirCaracter(" ",17,numero);  
			
			break;
		case "2" :
			if (!isProtocolo()){
				segundaInstancia();
			}
			else if ( isProtocolo()) {
					alterado = true;
					if (tamanho >= 5)
						numero = inserirCaracter("0",4,numero,10-tamanho);
	                numero = this.inserirCaracter(".",4,numero);   					
			}				
			break;
		case "3" :
			segundaInstancia();
			break;
		case "4" :
			segundaInstancia();
			break;
			//precatï¿½rio
		case "5" :			
				alterado = true;
				if(tamanho >=4)
					numero = inserirCaracter("0",4,numero,9-tamanho);
				numero = inserirCaracter(".",4,numero);   
				numero = inserirCaracter("-",10,numero);   
			
			break;
		case "7" :
			segundaInstancia();
			break;
	}
	if (alterado)
		setNumeroProcesso(numero);
}

function mensagemExecucaoFiscal(){
	if(getOrigem() == '8')
		document.getElementById('mensagemExecucao').style.display = 'block';
	else
		document.getElementById('mensagemExecucao').style.display = 'none';
}