




function verificaNUP(){
	try{
		var isNUP = $('checkNUP').checked;
		var lab = $('labelRegNUP');
		var fieldRegNUP = $('fieldRegNUP');
		var fieldHiddenRegNUP = $('fieldHiddenRegNUP');
		if(isNUP){
			lab.innerHTML = "Nº Único (NUP)";
			fieldHiddenRegNUP.value = 'nup'+fieldRegNUP.value;
		}else{
			lab.innerHTML = "Registro";
			fieldHiddenRegNUP.value = fieldRegNUP.value;
		}
		//alert("isNUP>"+isNUP+" fieldHiddenRegNUP>"+fieldHiddenRegNUP.value);
		return true;
	}catch(err){
		alert('Erro ao validar parâmetro de busca Registro/NUP: '+err);
		return false;
	}
}






var win;
var TELASCOMUNS = ",8,35,36,37,38,39,40,46,96,97,98,99,100,101,102,103,104,105,"	//Código das tecla especiais (ex: backspace, delete)
// Funcao para bloquear letras.

	function  bloqueiaLetra(event) {
    	var sMask = "0123456789";
    	var KeyTyped = String.fromCharCode(getKeyCode(event));
    	var targ = getTarget(event);
	    keyCount = targ.value.length;
    	keyCode = getKeyCode(event);
    	if(bloqueiaCaracteresEspeciais(event)) {
			if (keyCode < 15) {
			   	return true;
			} else if (sMask.indexOf(KeyTyped.toString()) == -1) {
				return false;
			}
		}else {
			return false;
		}
 	}
function f_ValidaNumerico(event)     {
    // Permite Numeros
    return f_ValidaRegEx(event, /[0-9]/);
}

/* Usada no onKeyPress do campo, limita os caracteres a uma RegEx
* exemplo para aceitar apenas número:
* <input type=text name="teste" onkeydPress="f_ValidaRegEx(event,/(0-9)/)">
*/
function f_ValidaRegEx(event,illegalChars) {

    //Se for IE pega valor da tecla
	if (document.all) {
		var code = event.keyCode;
    //Se Não for IE valida teclas de controle
	}else{
		var code = event.which;
		var ctrcode = event.keyCode;
        if (code==0 || code==8 || code==13) {
			//Se pressionou teclas de controle Aceita e volta TRUE
            if ("8;13;35;36;37;39;46".indexOf(ctrcode)!=-1) {
                return true;
            }
        }
	}

    // current pressed key
    var pressedKey = String.fromCharCode(code).toLowerCase();
    if (!illegalChars.test(pressedKey)) {
		event.cancelBubble = true;
        if (document.all) {
	        event.returnValue = false;
        }else{
	        event.preventDefault();
        }
		return false;
    }
	return true;
}

function f_ValidaAlfa(event)     {
    // Permite Letras e espaço
    return f_ValidaRegEx(event, /[ a-záéíóúàâêôãõç]/);
	}
	
function f_ValidaAlfaNumerico(event)     {
    // Permite Letras, espaço e números
    return f_ValidaRegEx(event, /[ a-záéíóúàâêôãõç0-9]/);
}
/*
 * Bloqueia entradas não numéricas
 * Exemplo: onkeydown="bloqueiaEntradasNaoNumericas();"
 */
function bloqueiaEntradasNaoNumericas() {
	var k = event.keyCode;
	var shift = window.event.shiftKey;
	var numeroDoTecladoNumerico = (k >= 96 && k <= 105);
	var numeroDoTecladoNormal = (k >= 48 && k <= 57);
	// outrasTeclas = delete(46) backspace(8) tab(9) home/pageUp/pageDown/setas (33-40)
	var outrasTeclas = (k == 46 || k == 8 || k == 9 || (k >= 33 && k <= 40));
	if (!(numeroDoTecladoNumerico || numeroDoTecladoNormal || outrasTeclas) || shift) {
		event.keyCode=0;
		event.returnValue=false;
	}
}

function f_bloqueiaEnter(evt,proximoElemento){
   evt = (evt)? evt:event;
   var charCode =(evt.charCode) ? evt.charCode: ((evt.which) ? evt:evt.keyCode);
   if (charCode ==  13 || charCode==3){
        document.forms[0].elements[proximoElemento].focus();    
        return false;
   }
   else{
        return true;
   }
}

function f_bloqueiaColar(evt)
{
}

// Funcao para bloquear caracteres especiais.

	function  bloqueiaCaracteresEspeciais(event) {
    	var sMask = "!@#$%&*{[}]<>|()_+=?/;:.,\\?????";
    	var KeyTyped = String.fromCharCode(getKeyCode(event));
    	var targ = getTarget(event);
	    keyCount = targ.value.length;
    	keyCode = getKeyCode(event);
    	if(getKeyCode(event) == 163 || getKeyCode(event) == 162 || 
    		getKeyCode(event) == 172 || getKeyCode(event) == 167) {
    			return false;
    	}
		if (sMask.indexOf(KeyTyped.toString()) == -1) {
			return true;
		}else {
			return false;
		}
 	}
 	
// Valida??o de Data

 	function verifica_data (valor) { 

		var vDia, vMes, vAno, vNDia, vNMes, vNAno, vNData;
	
		if (valor.length==0){return true;}		
		if (valor.length<10){return false;}
		if (valor.charAt(2) != "/" || valor.charAt(5) != "/"){
			return false;
		}
		vDia = valor.substr(0,2);
		vMes = valor.substr(3,2);
		vAno = valor.substr(6,4);
		vDia = parseInt(vDia, 10);
		vMes = parseInt(vMes, 10);
		vAno = parseInt(vAno, 10);
	
		vNData = new Date()
		vNData.setFullYear(vAno,vMes-1,vDia);
		vNDia = vNData.getDate();
		vNMes = vNData.getMonth()+1;
		vNAno = vNData.getFullYear();
		vNDia = parseInt(vNDia, 10);
		vNMes = parseInt(vNMes, 10);
		vNAno = parseInt(vNAno, 10);				
		return ((vDia==vNDia) && (vMes==vNMes) && (vAno==vNAno));
	} 
 	
// Valida??o de Hora

	function verifica_hora(hora){ 
		bHoraValida = true;
		if (hora != ""){
			if (hora.length < 5){
				bHoraValida = false;
			}
			hora = hora.split(":");
			if (hora[0] > 23 || hora[1] > 59){
				bHoraValida = false;
			}
		}
		return bHoraValida;
	} 
 	
// M?scara de N?mero de Controle de Mudan?a ("99999/aaaa")

	function mascaraControleMudanca(ConteudoCampo){
		if (((event.keyCode) > 47) && ((event.keyCode) < 58))
		  {
		   NumDig = ConteudoCampo.value;
		   TamDig = NumDig.length;
		   if (TamDig == 5)
		      ConteudoCampo.value = NumDig.substr(0,5)+"/";
		   return(true);}
		else return(false)
	}
	
	/**
	* M?scara do n?mero do incidente (aaaa/99999)
	*
	*/
	function mascaraNumeroIncidente(campo, evento) {
		
		var codigo = getCodigo(evento);
		
		if (codigo != 8 && (codigo > 47 || codigo > 56)){
				NumDig = campo.value;
		  	 TamDig = NumDig.length;
		  	 if (TamDig == 5)		   	 
		     	 campo.value = NumDig.substr(0,4)+"/";
		  	 return(true);}
			else return(false)		
	}
	
	
	/**
	* verificar se o browser ? o Iexplorer.
	*/
	function ehInternetExplorer() {
		return navigator.userAgent.indexOf("MSIE")!=-1;
	}
	
	
	/**
 	* Retorna o c?digo da ?ltima tecla digitada
 	*/
	function getCodigo(evento) {
		var codigo = null;
			
		if (ehInternetExplorer()){
			codigo = evento.keyCode;	
		} else {
			codigo = evento.which;
		}
			
		return codigo;
			
	} 

	function abrirNovaJanela(url, width, height, scrollbars) {
		var horizontal = window.screen.availWidth;
		var vertical = window.screen.availHeight;
		var comprimento = 690;
		var altura = 350;
		var scroll = 'yes';
		
		if (scrollbars != null)
			scroll = scrollbars;
		
		if(width != null && height != null) {
			comprimento = width;
			altura = height;
		}

		if (win != null)
			win.close();

		horizontal = Math.round((horizontal - comprimento) / 2);
		vertical = Math.round((vertical - altura) / 2);
		win = window.open(url,'',"resizable=no, scrollbars=" + scroll + ",width="+ comprimento + ",height=" + altura +",top=" + vertical + ",left=" + horizontal);
	}

	// Fun??o.....: limitarTextarea
	// Objetivo...: Limitar a quantidade de caracteres digitados em um campo do tipo textarea
	// Entrada....: oObjeto -> O pr?prio campo textarea a ser controlado
	//				iQtdLetra -> A quantidade m?xima de caracteres do campo
	// Exemplo....: onkeyup="limitarTextarea(this, 255);"
	function limitarTextarea(oObjeto, iQtdLetra) {
	    var iQtdLetrasObj = oObjeto.value.length;
	 	if (iQtdLetrasObj >= iQtdLetra)	{
			oObjeto.value = oObjeto.value.substr(0, iQtdLetra);
		}
	}

	// Fun??o.....: isVazio
	// Objetivo...: Verificar se o valor passado ? vazio, ou s? tem espa?os em branco.
	// Entrada....: sString  <- String a ser analisada
	// Exemplo....: alert(isVazio(" "));
	function isVazio(sString)
	{
		var regEspaco = /\s/g;
		sString = sString.replace(regEspaco, "");
		return (sString == "");
	} 
 
	// Fun??o.....: existeElementoSelecionado
	// Objetivo...: Verificar se existe algum elemento selecionado em uma lista de checkbox ou radiobutton.
	// Entrada....: objeto - Objeto do formulario que representa o array de checkbox ou radiobutton.
	// Retorno....: true - se existir algum elemento selecionado.
	// Exemplo....: if (existeElementoSelecionado(document.manterDemandaForm.codigoDependencia))
	// Autor......: Gustavo Rocha
	function existeElementoSelecionado(objeto) {
		if (objeto) {
			if (objeto.length == null) {
				if (objeto.checked) {				
					return true;
				}
			} else {
				for (var i = 0; i < objeto.length; i++) {			
					if (objeto[i].checked) {				
						return true;
					}
				}					
			}			
		}
		return false;
	}

	function getDescricaoElementoSelecionadoCombo(obj) {
		return obj.options[obj.selectedIndex].text;
	}

	function colocarFocoNoElemento(objArray) {
		if (objArray) {
			if (objArray.length == null) {
				objArray.focus();
			} else {
				objArray[0].focus();
			}
		}
	}

	function isRadioButtonSelecionado(radio){
		// Se existe
		if (radio != undefined) {
			// Existe so um
			if (radio.length == undefined) {
				return radio.checked;
			} else {
				for (var i = 0; i < radio.length; i++) {
					if (radio[i].checked) {
						return true;
					}
				}
			}
		}
		return false;
	}

	// Fun??o.....: compararDatas
	// Objetivo...: Verifica se a data incial e menor ou igual a data final.
	// Entrada....: oData1 - Data inicial
	//				oData2 - Data final
	// Retorno....: boleano true ou false
	function compararDatas(oData1, oData2){
	
		if (oData1 != '' && oData2 != ''){	
			var vDia = oData1.substr(0,2);
			var vMes = oData1.substr(3,2);
			var vAno = oData1.substr(6,4);
			vDia = parseInt(vDia, 10);
			vMes = parseInt(vMes, 10);
			vAno = parseInt(vAno, 10);
										
			var vNData1 = new Date();
			vNData1.setFullYear(vAno,vMes-1, vDia)
			
			var vDia = oData2.substr(0,2);
			var vMes = oData2.substr(3,2);
			var vAno = oData2.substr(6,4);
			vDia = parseInt(vDia, 10);
			vMes = parseInt(vMes, 10);
			vAno = parseInt(vAno, 10);

			var vNData2 = new Date();
			vNData2.setFullYear(vAno,vMes-1, vDia)
				
			if (vNData1 <= vNData2){				
				return true;
			}
		}
		return false;
	}					
	
	// Função.....: compararHoras
	// Objetivo...: Verifica se a hora incial e menor ou igual a hora final.
	// Entrada....: hora1 - Hora inicial
	//				hora2 - Hora final
	// Retorno....: boleano true ou false
	function compararHoras(hora1, hora2){
		if (isHoraValida(hora1) && isHoraValida(hora2)){	
			var horaInicial = hora1.split(":");
			var horaFinal = hora2.split(":");
			
			if (horaInicial[0] <= horaFinal[0] && horaInicial[1] <= horaFinal[1]){
				return true;
			}
		}
		return false;
	}	
	
	// Função.....: isHoraValida
	// Objetivo...: Verifica se a hora digitada ? Valida
	// Entrada....: hora	<- Hora a ser validada.
	// Exemplo....: if (!isHoraValida("18:00")) alert("Hora inv?lida");
	function isHoraValida(hora){
		bHoraValida = true;
		if (hora != ""){
			if (hora.length != 5){
				bHoraValida = false;
			}
			hora = hora.split(":");
			if (hora[0] > 23 || hora[1] > 59){
				bHoraValida = false;
			}
		}
		return bHoraValida;
	}
	
	function getDataAtualFormatada() {
		var dataAtual = new Date();
		return dataAtual.getDate() + "/" + completarComZerosEsquerda(dataAtual.getMonth() + 1, 2) + "/" + dataAtual.getFullYear();
	}
	
	function getHoraAtualFormatada() {
		var horaAtual = new Date();
		return horaAtual.getHours() + ":" + horaAtual.getMinutes();
	}
	
	// Funçao.....: completarComZerosEsquerda
	// Objetivo...:	Completar com zeros a esquerda de uma string num?rica.
	// Entrada....: sString		<- Valor a ser formatado
	//				iQtdCasas	<- N?mero que a string completa deve conter
	// Exemplo....:	alert(completarComZerosEsquerda(22,4));
	//				ou
	//				alert(completarComZerosEsquerda("22",4));
	function completarComZerosEsquerda(sString, iQtdCasas) {
		sString = sString.toString();
		while (sString.length < iQtdCasas) {
			sString = "0" + sString;
		}
		return sString;
	}

	// Funçao.....: verificaDigitosZero
	// Objetivo...:	Verifica se um número digitado é igual a zero ou válido.
	// Entrada....: código		<- Valor a ser válido
	// Autor....:	Elton Clay de Oliveira Luciano
	function verificaDigitosZero(codigo){
		var numero = "";
		var ano = "";
		if(codigo != ""){
			ano  = parseInt(codigo.substring(0,4));
			numero = codigo.substring(5,codigo.length);
			if (ano != 0) {
				if(ano > 1900 && numero > 0){
					return true;
				}else{
					return false;
				}
			}else{
				return false;
			}
		}else{
			return true;
		}
	}
	
	//Função......: procurarArquivos
	//Objetivo....: Abre a tela de busca de arquivos.
	//Entrada.....: inputFile  <- campo do tipo inputFile
    //                            o campo deve seguir o padrão abaixo
    //                            <input type="file" name="browse" style="display:none;">
	//              nomeCampo  <- nome do campo que vai receber o caminho do arquivo
	//Autor.......: Fernando Gom da Silva
	function procurarArquivos(inputFile, nomeCampo){
		inputFile.click();
		document.forms[0][nomeCampo].value = inputFile.value;
	}

	//Função......: invalidarControlesForm
	//Objetivo....: Desabilitar todos os campos da tela, com exceção de hidden's e do nome do campo passado como parâmetro.
	//Entrada.....: nomeDoDiv <- nome do div que vai bloquear o acesso a tela.
	//Autor.......: Fernando Gom da Silva
	function invalidarControlesForm(nomeDoDiv) {
		/*for(i = 0; i < document.forms[0].elements.length; i++){
			if(document.forms[0].elements[i].type == 'submit'
			    	|| document.forms[0].elements[i].type == 'button')
				document.forms[0].elements[i].disabled=true;
			else{
				if((document.forms[0].elements[i].type != 'hidden')
					&& document.forms[0].elements[i].value == ''){
					document.forms[0].elements[i].disabled=true;
				}
			}
		}
		*/
		document.getElementById(nomeDoDiv).style.width='1000px';
		document.getElementById(nomeDoDiv).style.height='1000px';
	}
	
	function verificaTeclado(event){ 
		var pressedKey = String.fromCharCode(event.keyCode).toLowerCase();
  		if (event.ctrlKey && (pressedKey == "c" || pressedKey == "v")) {
    	// disable key press porcessing
		if (document.all) {
			event.returnValue = false;
		}else{
			event.preventDefault();
		}
  	}
  		if (event.shiftKey && (event.keyCode == 45)) {
    		// disable key press porcessing
			if (document.all) {
    			event.returnValue = false;
			}else{
				event.preventDefault();
			}
  		}
	}

	
	//#########################################################
	// IN?CIO MASCARA
	//#########################################################
	// Fun??o.....: f_MascaraData
	// Objetivo...: Permitir que a m?scara de data seja aplicada durante a digita??o.
	// Entrada....: evento: event do html
	//				objeto: objeto (this)
	// Exemplo....: onKeyPress="return f_MascaraData(event, this);"
	//				onKeyUp="return f_MascaraData(event, this);"
	//				? fundamental aplicar o script nos dois eventos.
	// Autor......: Adriano Pamplona
	// Scripts....:	f_KeyData, f_Replace, f_Mascara
	function f_MascaraData(evento, objeto){
		if (f_KeyNumero(evento, objeto) == false){
			return false;
		}
	
		var pattern = "##/##/####";
		var valor = objeto.value;
		
		if (valor.length >= pattern.length){
			if (f_KeyEspecial(evento)){
				return true;
			}		
			return false;
		}
		
		valor = f_Replace(valor, "/", "");
		valor = f_Mascara(valor, pattern, null);
		objeto.value = valor;
	}
	
	// Função.....: f_KeyNumero
	// Objetivo...: Permitir digitar somente caracteres numéricos em um campo
	// Entrada....: Nenhuma. O parâmetro é extraído do evento.
	// Exemplo....: onKeyPress="f_KeyNumero(event)"
	// Autor......: Adriano Pamplona
	function f_KeyNumero(evento){
		var letra = f_GetLetra(evento, false);
		if (letra == 0){
			return true;
		}
		
		if (evento.type == "keyup"){
			if (TELASCOMUNS.indexOf(letra) != -1){
				return true;
			}
		}
			
		return ((letra >= 48 && letra <= 57));
	}
	//########################################################### 
	
	//########################################################### 
	// Função.....: f_GetLetra
	// Objetivo...: retorna o código ou a letra do evento
	// Entrada....: evento = event
	//				retornaChar
	//					true => letra (Ex: a)
	//					false => código (Ex: 97)		
	// Autor......: Adriano Pamplona
	function f_GetLetra(evento, retornaChar){
		var letra = null;
		
		if (document.all != null){
			letra = evento.keyCode;	
		} else {
			letra = evento.charCode;
		}
		
		if (retornaChar == true){
			letra = String.fromCharCode(letra);
		}
		
		return letra;
	}
	
	// Função.....: f_Replace
	// Objetivo...: Altera a string passando a string que será alterada e o novo valor
	// Entrada....: string: String original
	// Entrada....: localizar: String que será localizada na String original
	// Entrada....: alterar: String substituta
	// Exemplo....: f_Replace("abcd", "c", "C")
	// Autor......: Adriano Pamplona
	function f_Replace(string, localizar, alterar){
		if (string == "" || string == null){
			return string;
		}
		
		localizar = new RegExp(localizar, "g");
		return string.replace(localizar, alterar);	
	}
	
	// Função.....: f_Mascara
	// Objetivo...: Efetua a mascara na string baseada em um pattern
	// Entrada....: valor: String que será mascarada
	//				pattern: pattern que será aplicado na formatação
	//				completarCom: valor que será utilizado no resto da mascara,
	//				caso a string que será mascarada não possua quantidade suficiente
	//				de caracteres
	// Exemplo....: f_Mascara("23101978", "##/##/####", null) => 23/10/1978
	//				f_Mascara("15", "##:##", "0") => "15:00"
	// Autor......: Adriano Pamplona
	function f_Mascara(valor, pattern, completarCom){
		var marcador = "#";
		var retorno = "";
		
		if (valor == ""){
			return retorno;
		}
		
		var indiceValor = 0;
		for (var indice = 0; indice < pattern.length; indice++){
			if (pattern.charAt(indice) != marcador){
				retorno += pattern.charAt(indice);
				continue;
			}
			
			retorno += valor.charAt(indiceValor);
			indiceValor++;
			
			if (indiceValor == (valor.length)){
				if (completarCom != null){
					valor += completarCom
				} else {
					break;
				}
			}
		}
		
		return retorno;
	}
	
	  
	// Função.....: f_KeyEspecial
	// Objetivo...: Retorna true se a tecla pressionada for especial (backspace, delete)
	// Entrada....: evento: event do html
	// Exemplo....: f_KeyEspecial(event
	// Autor......: Adriano Pamplona
	function f_KeyEspecial(evento){
		var letra = f_GetLetra(evento, false);
		if (letra == 0){
			return true;
		}
		
		letra = ","+ letra +",";
		return (TELASCOMUNS.indexOf(letra) != -1);
	}
	
	function examinaData(dia,mes,ano)
		{
			
			var Data = new Date();			//Data atual
			var anoHoje = Data.getYear();	//Ano atual
	
			//O if abaixo conserta um problema que dá em alguns compiladores da Netscape
			//onde o ano 2000 retorna como 100 e não 2000 (Bug do ano 2000!)
			if (parseFloat(anoHoje) < 2000)
			{
				anoHoje = parseFloat(anoHoje) + 1900;
			}
			var v_dia;
			var v_mes;
			var v_ano;
			v_dia = dia;
			v_mes = mes;
			v_ano = ano;
	
	
			tamanho_v_dia = v_dia.length;
			teste_ponto = "false";
	
			if (tamanho_v_dia != 2) return false;
	
	
			if (isNaN(v_dia)) //valor digitado não é numérico
			{
				return false;
			}
			else //valor digitado é um numérico válido
			{
	
				for (k = 0; k < tamanho_v_dia; k++)
				{if ((v_dia.charAt(k) == '.') || (v_dia.charAt(k) == '-') || (v_dia.charAt(k) == '+'))
					{
						teste_ponto = "true"; /*existe caracter ponto*/
					}
				}
	
				if (teste_ponto == "true") //encontrou caracter ponto(numero real)
				{
					return false;
				}
	
			}
	
	
	
			tamanho_v_mes = v_mes.length;
			teste_ponto = "false";
	
			if (tamanho_v_mes != 2) return false;
	
	
			if (isNaN(v_mes)) //valor digitado não é numérico
			{
				return false;
			}
			else //valor digitado é um numérico válido
			{
	
				for (k = 0; k < tamanho_v_mes; k++)
				{if ((v_mes.charAt(k) == '.') || (v_mes.charAt(k) == '-') || (v_mes.charAt(k) == '+'))
					{
						teste_ponto = "true"; /*existe caracter ponto*/
					}
				}
	
				if (teste_ponto == "true") //encontrou caracter ponto(numero real)
				{
					return false;
				}
	
			}
	
	
	
			tamanho_v_ano = v_ano.length;
			teste_ponto = "false";
	
			if (tamanho_v_ano != 4) return false;
	
	
			if (isNaN(v_ano)) //valor digitado não é numérico
			{
				return false;
			}
			else //valor digitado é um numérico válido
			{
	
				for (k = 0; k < tamanho_v_ano; k++)
				{if ((v_ano.charAt(k) == '.') || (v_ano.charAt(k) == '-') || (v_ano.charAt(k) == '+'))
					{
						teste_ponto = "true"; /*existe caracter ponto*/
					}
				}
	
				if (teste_ponto == "true") //encontrou caracter ponto(numero real)
				{
					return false;
				}
	
			}
	
	
	/*Alterado para permitir qualquer ano
			if (((parseFloat(v_ano) < 1964) || (parseFloat(v_ano) > parseFloat(anoHoje))) && (v_ano.length != 0))
			{
				return(false);
			}
	*/
			if (parseFloat(v_ano) < 1900)
			{
				return(false);
			}
	
			if (v_dia > 31 || v_dia < 1)
			{
				return(false);
			}
	
			if (v_mes > 12 || v_mes < 1)
			{
				return(false);
			}
	
			if (v_dia == "31")
			{
				if ((v_mes == "04") || (v_mes == "06") || (v_mes == "09") || (v_mes == "11"))
				{
					return(false);
				}
			}
	
	
			if (v_mes == "02")
			{
				if (!(v_ano%4))
				{
					if (v_dia > 29)
					{
						return(false);
					}
				}
				else if (v_dia > 28)
				{
					return(false);
				}
			}
	
			//o -if- abaixo testa se algum campo foi preenchido e outro deixado em branco deixando a data incompleta
	
			if (((v_dia != "") || (v_mes != "") || (v_ano != "")) && ((v_dia == "") || (v_mes == "") || (v_ano == "")))
			{
				return(false);
			}
	
			return(true);
		}

	function validaData(data)
	{
		if (data == ""){
		   return true;
		}
		
		var dia = "";
		var mes = "";
		var ano = "";
		if(data.indexOf("/") > 0)
		{
			dia = data.substring(0,data.indexOf("/"));
			data = data.substring(data.indexOf("/")+1);
		}
		else
			return false;
		if(data.indexOf("/") > 0)
		{
			mes = data.substring(0,data.indexOf("/"));
			ano = data.substring(data.indexOf("/")+1);
		}
		else
			return false;
		return examinaData(dia,mes,ano);

	}
	
	/**
	*Valida a data inicial e a final.
	*/
	function valida_DataInicialFinal(valueStart, valueEnd, fieldStart) { 
		var dateStart = toDate(valueStart); 
	    var dateEnd = toDate(valueEnd); 
	
	        dateStart.setHours(0); 
	        dateStart.setMinutes(0); 
	        dateStart.setSeconds(0); 
	        dateEnd.setHours(0); 
	        dateEnd.setMinutes(0); 
	        dateEnd.setSeconds(0); 
	
	        if ( dateStart.getTime() > dateEnd.getTime() ) { 
	        	alert("Data Final menor que a Data Inicial."); 
	            document.forms[0].elements[fieldStart].focus()
	            document.forms[0].elements[fieldStart].select(); 
	            return false; 
	    	} 
		return true; 
	} 
	
	/** 
    * Converte uma data no formato dd/MM/yyyy para um objeto Date 
    */ 
	function toDate(txtDate) { 
    	var changeFormatDate = txtDate.substring(3, 5) 
        		+ "/" + txtDate.substring(0, 2) 
                + "/" + txtDate.substring(6, 10); 
        return new Date(changeFormatDate); 
    }
    
    // Fun??o.....: f_MascaraCep
// Objetivo...: Mascara de CEP.
// Entrada....: evento: event do html
//				objeto: objeto (this)
// Exemplo....: onKeyPress="return f_MascaraCep(event, this);"
//				onKeyUp="return f_MascaraCep(event, this);"
//				? fundamental aplicar o script nos dois eventos.
// Autor......: Adriano Pamplona
// Scripts....:	f_KeyNumero, f_Replace, f_RetiraStringChar
function f_MascaraCep(evento, objeto){
	if (f_KeyNumero(evento, objeto) == false){
		return false;
	}

	var pattern = "##.###-###";
	var valor = objeto.value;
	
	if (valor.length >= pattern.length){
		if (f_KeyEspecial(evento)){
			return true;
		}	
		return false;
	}
	
	valor = f_Replace(valor, "[.-]", "");
	valor = f_Mascara(valor, pattern, null);
	objeto.value = valor;
}
// Fun??o.....: f_MascaraCpf
// Objetivo...: Permitir que a m?scara de cpf seja aplicada durante a digita??o.
// Entrada....: evento: event do html
//				objeto: objeto (this)
// Exemplo....: onKeyPress="return f_MascaraCpf(event, this);"
//				onKeyUp="return f_MascaraCpf(event, this);"
//				? fundamental aplicar o script nos dois eventos.
// Autor......: Adriano Pamplona
// Scripts....:	f_KeyData, f_Replace, f_Mascara
function f_MascaraCpf(evento, objeto){
	if (f_KeyNumero(evento, objeto) == false){
		return false;
	}

	var pattern = "###.###.###-##";
	var valor = objeto.value;
	
	if (valor.length >= pattern.length){
		if (f_KeyEspecial(evento)){
			return true;
		}		
		return false;
	}
	
	valor = f_Replace(valor, "[.-]", "");
	valor = f_Mascara(valor, pattern, null);
	objeto.value = valor;
}
// Função.....: f_Mascara
// Objetivo...: Efetua a mascara na string baseada em um pattern
// Entrada....: valor: String que será mascarada
//				pattern: pattern que será aplicado na formatação
//				completarCom: valor que será utilizado no resto da mascara,
//				caso a string que será mascarada não possua quantidade suficiente
//				de caracteres
// Exemplo....: f_Mascara("23101978", "##/##/####", null) => 23/10/1978
//				f_Mascara("15", "##:##", "0") => "15:00"
// Autor......: Adriano Pamplona
function f_Mascara(valor, pattern, completarCom){
	var marcador = "#";
	var retorno = "";
	
	if (valor == ""){
		return retorno;
	}
	
	var indiceValor = 0;
	for (var indice = 0; indice < pattern.length; indice++){
		if (pattern.charAt(indice) != marcador){
			retorno += pattern.charAt(indice);
			continue;
		}
		
		retorno += valor.charAt(indiceValor);
		indiceValor++;
		
		if (indiceValor == (valor.length)){
			if (completarCom != null){
				valor += completarCom
			} else {
				break;
			}
		}
	}
	
	return retorno;
}

// Função.....: f_Replace
// Objetivo...: Altera a string passando a string que será alterada e o novo valor
// Entrada....: string: String original
// Entrada....: localizar: String que será localizada na String original
// Entrada....: alterar: String substituta
// Exemplo....: f_Replace("abcd", "c", "C")
// Autor......: Adriano Pamplona
function f_Replace(string, localizar, alterar){
	if (string == "" || string == null){
		return string;
	}
	
	localizar = new RegExp(localizar, "g");
	return string.replace(localizar, alterar);	
}

/*
* Usada no onKeyPress do campo, limita OS CARACTERES a uma RegEx
* exemplo para aceitar apenas número:
* <input type=text name="teste" onkeydPress="f_ValidaRegEx(event,/(0-9)/)">
*/
function f_ValidaRegEx(event,illegalChars) {

    //Se for IE pega valor da tecla
	if (document.all) {
		var code = event.keyCode;
    //Se Não for IE valida teclas de controle
	}else{
		var code = event.which;
		var ctrcode = event.keyCode;
        if (code==0 || code==8 || code==13) {
			//Se pressionou teclas de controle Aceita e volta TRUE
            if ("8;13;35;36;37;39;46".indexOf(ctrcode)!=-1) {
                return true;
            }
        }
	}

    // current pressed key
    var pressedKey = String.fromCharCode(code).toLowerCase();
    if (!illegalChars.test(pressedKey)) {
		event.cancelBubble = true;
        if (document.all) {
	        event.returnValue = false;
        }else{
	        event.preventDefault();
        }
		return false;
    }
	return true;
}



/*
* Usada no onKeyPress do campo, limita O TEXTO a uma RegEx
* exemplo para aceitar apenas número:
* <input type=text name="teste" onkeydPress="f_ValidaRegEx(event,/(0-9)/)">
*/
function f_ValidaRegEx2(event,illegalChars,pTxt) {

    //Se for IE pega valor da tecla
	if (document.all) {
		var code = event.keyCode;
    //Se Não for IE valida teclas de controle
	}else{
		var code = event.which;
		var ctrcode = event.keyCode;
        if (code==0 || code==8 || code==13) {
			//Se pressionou teclas de controle Aceita e volta TRUE
            if ("8;13;35;36;37;39;46".indexOf(ctrcode)!=-1) {
                return true;
            }
        }
	}

    // current pressed key
    var pressedKey = String.fromCharCode(code).toLowerCase();
	if (pTxt) {
		pressedKey = pTxt.toLowerCase() + pressedKey;
	}
    if (!illegalChars.test(pressedKey)) {
		event.cancelBubble = true;
        if (document.all) {
	        event.returnValue = false;
        }else{
	        event.preventDefault();
        }
		return false;
    }
	return true;
}

function fOabKeyPress(event,pObj) {
    return f_ValidaRegEx2(event, /(^\d{1,6}[a-zA-Z]?$)|(^\D$)/, pObj.value);
}

function fOab(pObj) {
	if(pObj.value != ""){
		//Verifica se a máscara do campo está OK
		if (!f_TesteRegex(pObj.value, /(^\d{1,6}[a-zA-Z]?$)/)) {
			alert('OAB - Formatação Inválida !');
			pObj.focus();
			return;
		}
		//Verifica sem tem letra no código
		if (f_TesteRegex(pObj.value,/\D/)) {
			pObj.value = Right("00000" + pObj.value,7).toUpperCase();
		}else{
			pObj.value = Right("00000" + pObj.value,6).toUpperCase();;
		}
	}
}

function f_TesteRegex(pTxt, pRegex){
    return pRegex.test(pTxt);
}


function Left(str, n){
	if (n <= 0){
	    return "";
	}else if (n > String(str).length){
	    return str;
	}else{
	    return String(str).substring(0,n);
	}
}

function Right(str, n){
    if (n <= 0){
       return "";
    }else if (n > String(str).length){
       return str;
    }else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}


function checkEmail(emailStr) {
   if (emailStr.length == 0) {
       return true;
   }
   var emailPat=/^(.+)@(.+)$/;
   var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
   var validChars="\[^\\s" + specialChars + "\]";
   var quotedUser="(\"[^\"]*\")";
   var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
   var atom=validChars + '+';
   var word="(" + atom + "|" + quotedUser + ")";
   var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
   var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
   var matchArray=emailStr.match(emailPat);
   if (matchArray == null) {
       return false;
   }
   var user=matchArray[1];
   var domain=matchArray[2];
   if (user.match(userPat) == null) {
       return false;
   }
   var IPArray = domain.match(ipDomainPat);
   if (IPArray != null) {
       for (var i = 1; i <= 4; i++) {
          if (IPArray[i] > 255) {
             return false;
          }
       }
       return true;
   }
   var domainArray=domain.match(domainPat);
   if (domainArray == null) {
       return false;
   }
   var atomPat=new RegExp(atom,"g");
   var domArr=domain.match(atomPat);
   var len=domArr.length;
   if ((domArr[domArr.length-1].length < 2) ||
       (domArr[domArr.length-1].length > 3)) {
       return false;
   }
   if (len < 2) {
       return false;
   }
   return true;
}

function checkCEP(cepStr){
	if(cepStr != ""){
		return f_TesteRegex(cepStr, /(^\d\d[.]\d\d\d[-]\d\d\d$)/);
 	}
 	return true;
}

function processo(registro){
	var url = "http://www.stj.gov.br/webstj/processo/justica/jurisprudencia.asp?chkordem=DESC&chkMorto=MORTO&valor=" +registro;
	window.open(url,"","resizable=yes, scrollbars=yes, width=968px ,height=650px, top=25px,left=15px");
}

function fNumReg(pObj) {
		var pNum, ano, num;
		pNum= pObj.value;
		if(pNum == '')
			return true;
		if (isNaN(pNum))	
		{
			alert("Entre apenas com algarismos para Número do Registro");
			return false;
		}
		if (pNum.length < 3)
		{
			alert("O Número do Registro deve conter 12 algarismos.");
			return false;
		}
		ano = pNum.substr(0,2);
		if (ano != "19" && ano != "20")
		{
			if (ano < "40")
			{
				ano = "20" + ano 
			}
			else 
			{
			ano = "19" + ano;
			}
			num = pNum.substr(2);
			pObj.value = ano + "000000000".substr(1,8-(num.length)) + num;
			return true;
		}
		num = pNum.substr(4);
		if (num=="")
		{
			alert("O Número de Registro não pode conter apenas o ANO.");
			return false;
		}
		pObj.value = pNum.substr(0,4) + "00000000".substr(1,8-(num.length)) + num;
}
