String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g,'');
}

String.prototype.ltrim = function() {
    return this.replace(/^\s+/,'');
}

String.prototype.rtrim = function() {
    return this.replace(/\s+$/,'');
}
    
$(document).ready(function(){
	
	$("#selVaras").focus(function(){
		$("input[@name=cb]").attr("checked","");
	});
	
	// verificar se opções "Nome da Parte" ou "Nome do Advogado" estão selecionados
	if (($("input[@type='radio'][@name='tipoPesquisa'][@value='numprocesso']").attr("checked")) || ($("input[@type='radio'][@name='tipoPesquisa'][@value='numprotocolo']").attr("checked")))  {
		$("#divNomeexato").hide();
		$("input[@name=parametro]").unmask();
		//$("input[@name=parametro]").mask("99999999999999999999",{placeholder:" "});
	} else {
		$("#divNomeexato").show();
		$("input[@name=parametro]").unmask();
	}

	// mostrar divNomeexato
	function showNomeexato() {
		$("#divNomeexato").show();
	}
	
	// esconder divNomeexato
	function hideNomeexato() {
		$("#divNomeexato").hide();
	}
	
	// mostrar divVaras
	function showVaras0() {
		$("#divVaras0").show();
	}
	
	function showVaras1() {
		$("#divVaras1").show();
	}
	
	function showVaras2() {
		$("#divVaras2").show();
	}
	
	function showVaras3() {
		$("#divVaras3").show();
	}
	
	
	// esconder divVaras
	function hideVaras0() {
		$("#divVaras0").hide();
	}
	
	function hideVaras1() {
		$("#divVaras1").hide();
	}
	
	function hideVaras2() {
		$("#divVaras2").hide();
	}
	
	function hideVaras3() {
		$("#divVaras3").hide();
	}

	// configurar select do tipo de consulta
	$("#selVaras").change(function(){
		switch ($(this).attr("value")) {
			case "jecrm":	
					hideVaras1();
					hideVaras2();
					hideVaras3();
					showVaras0();
					
				break;
			case "jecrirm":
					hideVaras0();
					hideVaras2();
					hideVaras3();
					showVaras1();
					
				break;
			case "jeci":
					hideVaras0();
					hideVaras1();
					hideVaras3();
					showVaras2();
				break;
			case "jecrii":
					hideVaras0();
					hideVaras1();
					hideVaras2();
					showVaras3();
				break;
		}
	});
	
	
	$("input[@type='radio'][@name='tipoPesquisa']").each(function(){
		switch ($(this).attr("value")) {
			case "numprocesso":
				$(this).click(function(){
					hideNomeexato();
					$("input[@name=parametro]").unmask();
					//$("input[@name=parametro]").mask("99999999999999999999",{placeholder:" "});
					$("input[@name=parametro]").focus();
				}); 
				break;
			case "parte":
			case "advogado":
				$(this).click(function(){
					showNomeexato();
					$("input[@name=parametro]").unmask();
					$("input[@name=parametro]").focus();
				});
				break;
		}
	});
	
	function tirarAcentos(texto) {
		var acento = "áÁéÉíÍóÓúÚàÀèÈìÌòÒùÙâÂêÊîÎôÔûÛäÄëËïÏöÖüÜãÃõÕçÇñÑ";
 		var normal = "aAeEiIoOuUaAeEiIoOuUaAeEiIoOuUaAeEiIoOuUaAoOcCnN";

		var retorno = texto;
		for(i=0;i<acento.length;i++)
			retorno = retorno.replace(acento.substr(i,1),normal.substr(i,1));
		return retorno;
	}

	// validação para nome da parte ou do advogado
	function validaNome(campo) {
	
        if (campo.attr("value")==null) {
            alert("Por Favor, digite um nome antes de realizar a consulta!");
            campo.focus();
            return false;
   	    }
		
		campo.attr("value",tirarAcentos(campo.attr("value")));

        if (campo.attr("value").length == 0) {
            alert("Por Favor, digite o nome antes de realizar a consulta!");
            campo.focus();
            return false;
   	    }
			
		if (campo.attr("value").indexOf(" ") == -1) {
            alert("Esta consulta requer um nome e no mínimo um sobrenome!");
   	        campo.focus();
       	    return false;
       	}
			
        if (campo.attr("value").substring(0,1) == " ") {
			alert("Nome inválido! O nome não deve começar com espaços em branco!");
           	campo.focus();
           	return false;
       	}
			
       	if (campo.attr("value").indexOf("  ") != -1) {
            alert("Nome inválido! O nome não deve conter dois ou mais espaços em branco entre cada palavra!");
   	        campo.focus();
       	    return false;
       	}

       	if (campo.attr("value").substring(campo.attr("value").length-1) == " ") {
            alert("Nome inválido! O nome não deve terminar com espaços em branco!");
            campo.focus();
           	return false;
       	}

       	return true;
	}
	
	//Valida Caracteres 
	function soPalavras(evt) {
      if (document.all) { // IE
	  	var key = event.keyCode;
	  } else { // Firefox
	  	var key = evt.charCode;
	  }
	  //var chr = String.fromCharCode(evt); // pegando a tecla digitada
	  // Se o código for menor que 20 é porque deve ser caracteres de controle
      // ex.: <ENTER>, <TAB>, <BACKSPACE> portanto devemos permitir
      // as teclas numéricas vão de 48 a 57
      if ((key<20) || ((key >64) && (key<91) && (key>96) && (key<123))) {
	  	return true;
	  }
      alert("Não são aceitos caracteres especiais. Digite apenas letras.");
	  return false;
	}
		
	// chamada ajax do formulário
	$("#formJuizadosEspeciais").submit(function(){
	      var inputs = [];
          var parametro = $("input[@name=parametro]");
          var isNumprocesso = $("input[@type='radio'][@name='tipoPesquisa'][@value='numprocesso']").attr("checked");
          var isNumprotocolo = $("input[@type='radio'][@name='tipoPesquisa'][@value='numprotocolo']").attr("checked"); 
          var testaCheckBox = 0;
                  
          if (isNumprocesso==null)
          	isNumprocesso=false;
          
          // verifica se foi digitado um número de processo
          if (isNumprocesso) {
          	texto = parametro.attr("value");
          	if ((texto==null) || (texto.trim()=="")) {
	          	alert('Informe o número do processo');
    	      	parametro.focus();
        	  	return false;
          	} else if ((texto.trim().length!=20)&&(texto.trim().length!=12)) {
	          	alert('Informe um número de processo válido (12 ou 20 dígitos)');
    	      	parametro.focus();
        	  	return false;
          	}
          }
          
          // verifica se foi digitado um número de processo
          if ((!isNumprocesso) &&(!isNumprotocolo)) {
          	if (!validaNome(parametro))
          		return false;
          }
          
          //Protocolo
           if (isNumprotocolo==null)
          	isNumprotocolo=false;
          
          // verifica se foi digitado um número de processo
          if (isNumprotocolo) {
          	texto = parametro.attr("value");
          	if ((texto==null) || (texto.trim()=="")) {
	          	alert('Informe o número do protocolo');
    	      	parametro.focus();
        	  	return false;
          	} else if (texto.trim().length!=13) {
	          	alert('Informe um número de protocolo válido (13 dígitos)');
    	      	parametro.focus();
        	  	return false;
          	}
          }
 
          
          $(":input", $(this)).each(function() {
	          if ($(this).attr("value") != null) {
	          	  if (($(this).attr("name")=="tipoPesquisa")) {
	          	  	if ($(this).attr("checked")) {
			          inputs.push($(this).attr("name") + '=' + escape($(this).attr("value")));
			        }
			  	  } else if (($(this).attr("name")=="nomeexato")) {
	          	  	if ($(this).attr("checked")) {
			          inputs.push($(this).attr("name") + '=1');
			        } else {
			          inputs.push($(this).attr("name") + '=0');
			        }
			      } else if (($(this).attr("name")=="cb")) {
	          	  	if ($(this).attr("checked")) {
			          inputs.push($(this).attr("name") + '=' + escape($(this).attr("value")));
			          testaCheckBox = testaCheckBox+1;
			        }
			      }else {
			          inputs.push($(this).attr("name") + '=' + escape($(this).attr("value")));
			      }
		      }
          });
          
          if (testaCheckBox == 0){
          	alert("Você precisa selecionar pelo menos 1 (um) Juizado.");
          	return false;
          }

          $.ajax({
			type: "POST",
			url: $(this).attr("action"),
			dataType: "html",
			data: inputs.join('&'),
			success: function(msg){
						$("#loading").hide();
						hideVaras0();
						hideVaras1();
						hideVaras2();
						hideVaras3();
						$("#selVaras").attr("value", "#");
						$("#resultado").html(msg);
						if ($("#tabela")!=null) {
							$("#tabela").tablesorter({sortList: [[0,0]], widthFixed: false, widgets: ['zebra']});
							$("#tabela").tablesorterPager({container: $(".pager"), positionFixed: false});
						}						
						$(".pagesize").change(function(){
							$(".pagesize").attr("value", $(this).attr("value"));
						});
						$("#resultado").show();
						setAjaxLinks();
					 },
			beforeSend: function(){
							$("#resultado").hide();
							$("#loading").show();
						}			
		  });
		
		return false;
	});

	// seta todos os links com chamadas ajax
	function setAjaxLinks() {
		$("#menuLinks > a").each(function(i){
			if ($(this).attr("name")!="linkAcordaos")
				$(this).click(chamaPagina);	
		});
		$("a.linkProcesso").each(function(i){
			$(this).click(chamaPagina);	
		});
	}

	// chamada ajax dos links
	function chamaPagina(){
          $.ajax({
			type: "GET",
			url: $(this).attr("href"),
			dataType: "html",
			success: function(msg){
						$("#loading").hide();
						$("#resultado").html(msg);
						if ($("#tabela")!=null) {
							$("#tabela").tablesorter({sortList: [[0,0]], widthFixed: false, widgets: ['zebra']});
							$("#tabela").tablesorterPager({container: $(".pager"), positionFixed: false});
						}				
						$(".pagesize").change(function(){
							$(".pagesize").attr("value", $(this).attr("value"));
						});
						$("#resultado").show();
						setAjaxLinks();
					 },
			beforeSend: function(){
							$("#loading").show();
						}			
		});
		
		return false;
	}; 	
	
	$("input[@name=parametro]").focus();
});

	
