//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){
       if (diferenciar('', getOrigem()) == "tribunalDeJustica"){
            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();
    mudarNumeracao();
    mudarFoco();
	aplicarMascara(getOrigem())
	document.loaded = true;
	mensagemExecucaoFiscal();
//	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";
              urlDotNet = "http://webserver2.tjrj.jus.br";
            }
	    else {
               urlDotNet = "http://hwebserver2.tjrj.jus.br";
               urlJava = "http://tjerj314.tjrj.jus.br";
	    }

		urlMumps = "http://intranet.tjrj.jus.br/scripts/weblink.mgw?";	
	}else{
            if(isPrd()) {
		urlJava = "http://srv85.tjrj.jus.br";
                urlDotNet = "http://webserver2.tjrj.jus.br";
            } 
            else
            {
               urlJava = "http://tjerj314.tjrj.jus.br";
               urlDotNet = "http://webserver2.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( caminhoSegundaInstancia(urlDotNet, urlMumps) );
	}
	// 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( urlDotNet + 
							  "/ejud_conselho/ConsultaProcesso.aspx?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,12-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';
}

function caminhoSegundaInstancia(urlDotNet, urlMumps){
    var processoLimpo = limparNumero(getNumeroProcesso());
    var segundoPedaco = getNumeroProcesso().split(".")[1];

    if (getNumeroProcesso().length == 13){
      if (segundoPedaco > 700000 && isProtocolo())
        return urlDotNet + "/ejud/ConsultarProtocolo.aspx?N=" + processoLimpo;
    }
    
    return urlMumps + "MGWLPN=DIGITAL1A&LAB=CONxWEB&PGM=WEBPCNU88&PORTAL=1&N=" + processoLimpo + "&protproc=" +  valorSelectMenu('form:selectOneRadio');
}
