function pesquisaValida(){

	if(isPalavraChaveNaoPreenchida()
			&& (isNumeroPreenchido() || isIdiomaNaoPortugues())){
		return true;
	}
	
	if(!isPalavraChaveValida()){
		return false;
	}
	
	if (document.forms[0].tipoPesquisa != null &&
		document.forms[0].tipoPesquisa[2].checked == true){
		return true;
	}
	
	return true;
}


function isPalavraChaveNaoPreenchida(){
	return getPalavraChave() == '' || getPalavraChave().indexOf('Pesquisar...')>-1 ;
}

function isNumeroPreenchido(){
	return (document.forms[0].numero!=null) ? document.forms[0].numero.value != "" : false;
}

function isIdiomaNaoPortugues(){
	return document.forms[0].idioma.value != "1";
}

function isPalavraChaveValida(){

	var palavraChave = getPalavraChave();

	if (possuiPalavra('AND') || possuiPalavra('OR') || possuiPalavra('THE') ||
		possuiPalavra('NOT') || possueCaracter('*') || possueCaracter('&') ||
		possueCaracter('%') || possueCaracter('$') || possueCaracter('#') ||
		possueCaracter('@') || possueCaracter('!') || possueCaracter('-') ||
		possueCaracter('+') || possueCaracter('_') || possueCaracter('=') ||
		possueCaracter(':') || possueCaracter(';') || possueCaracter('/') ||
		possueCaracter('\\') || possueCaracter('?') || possueCaracter(',') 
		 || possueCaracter('<') || possueCaracter('>')){
		alert('Palavra-chave inválido(a)!');

		return false;
	}
	var palavras = palavraChave.split(" ");
	
	if (trim(palavraChave) == ''){
		alert('Palavra-chave obrigatório(a)!');
		return false;
	} else if (palavraChave.length < 2){
		alert('Favor informar uma palavra completa.');
		return false;
	}

	if(palavras.length > 1){
		for (var i=0; i	 < palavras.length; i++) {
			if (palavras[i].length >= 3){
				return true;
			}
		}
	}
	
	return true;
	
}

function getPalavraChave(){
	var palavraChave;

	if (document.forms[0].palavraChave == null){
		return document.PesquisaForm.palavraChave.value;
	} else {
		return document.forms[0].palavraChave.value;
	}
}

function possueCaracter(carac){
	var palavraChave = getPalavraChave();
	return palavraChave.toUpperCase().indexOf(carac)>-1;
//	return palavraChave.toUpperCase() == carac;
}

function trim(valorTrim){
	 var len = valorTrim.length;
	 for(var x=0; x<len; x++) if(valorTrim.charCodeAt(x)!=32 && valorTrim.charCodeAt(x)!=10 && valorTrim.charCodeAt(x)!=13) break;
	 	valorTrim = valorTrim.substring(x,len);
		len = valorTrim.length;
	 for(x=len-1; x>1; x--) if(valorTrim.charCodeAt(x)!=32 && valorTrim.charCodeAt(x)!=10 && valorTrim.charCodeAt(x)!=13) break;
	 	valorTrim = valorTrim.substring(0,x+1);
	 return valorTrim;
}


function possuiPalavra(palavra){

	return possueCaracter(' ' + palavra + ' ') 
		|| isPalavraNoFim(palavra) 
		|| isPalavraNoComeco(palavra);

//	||
//		isPalavraNoFim(palavra) || 
//		isPalavraNoComeco(palavra));
}
function isPalavraNoFim(palavra){
	var palavraChave = getPalavraChave().toUpperCase();
	var tamanhoPalavraChave = palavraChave.length;
	var tamanhoPalavra = palavra.length;
	return possueCaracter(' ' + palavra) &&  
		palavraChave.indexOf(palavra)== tamanhoPalavraChave - tamanhoPalavra;
}

function isPalavraNoComeco(palavra){
	var palavraChave = getPalavraChave().toUpperCase();
	var tamanhoPalavraChave = palavraChave.length;
	var tamanhoPalavra = palavra.length;
	return possueCaracter(palavra + ' ') 
		&& palavraChave.indexOf(palavra)== 0;

}

function habilitaEnter(e){
    if(document.all) { //IE 
	   var car = window.event.keyCode;	   
	} else {//se for Mozilla 
	   var car = e.which; 
	}
	//Para evitar o enter nos campos text do tipo código
	if (car==13 ){ 
		pesquisarOk();
	}else if(car!=13){
		return true;
		
	}
	
	return false;

}


	function validarFormulario()
	{
		var palavra = document.forms[0].palavraChave.value;
		palavra = palavra.toLowerCase();

		if(palavra.indexOf(" and ")>-1 || palavra.indexOf(" or ")>-1) {
			if(!document.forms[0].tipoPesquisa[2].checked) {
				alert("Para utilizar \"AND\" e \"OR\" como critério de busca deve-se selecionar o Tipo de busca \"Frase exata\". Para as outras opções os operadores lógicos são adicionados automáticamente.");
//				document.forms[0].tipoPesquisa[2].checked = true;
//				document.forms[0].tipoPesquisa[2].focus();
				return false;
			}
		}
		
		if(document.forms[0].idioma.value == "1") 
		{
			if (((document.forms[0].especie!=null) ? document.forms[0].especie.value == "" : true) || 
				((document.forms[0].funcao!=null) ? document.forms[0].funcao.value == "" : true))
			{
				if((document.forms[0].palavraChave.value == "") &&
					((document.forms[0].numero!=null) ? document.forms[0].numero.value == "" : true))
				{
					alert("Parâmetros insuficientes para realizar a pesquisa.");	
					document.forms[0].palavraChave.focus();
					return false;
				}
			}
		}
		
		return true;
	}

	function validarFormulario()
	{

		var palavra = document.forms[0].palavraChave.value;

		palavra = palavra.toLowerCase();

		if(palavra.indexOf(" and ")>-1 || palavra.indexOf(" or ")>-1) {
			if(!document.forms[0].tipoPesquisa[2].checked) {
				alert("Para utilizar \"AND\" e \"OR\" como critério de busca deve-se selecionar o Tipo de busca \"Frase exata\". Para as outras opções os operadores lógicos são adicionados automáticamente.");
//				document.forms[0].tipoPesquisa[2].checked = true;
//				document.forms[0].tipoPesquisa[2].focus();
				return false;
			}
		}
		
		if(document.forms[0].idioma.value == "1") 
		{
			if (((document.forms[0].especie!=null) ? document.forms[0].especie.value == "" : true) || 
				((document.forms[0].funcao!=null) ? document.forms[0].funcao.value == "" : true))
			{
				if((document.forms[0].palavraChave.value == "") &&
					((document.forms[0].numero!=null) ? document.forms[0].numero.value == "" : true))
				{
					alert("Parâmetros insuficientes para realizar a pesquisa.");	
					document.forms[0].palavraChave.focus();
					return false;
				}
			}
		}
		
		return true;
	}

function disabilitaEnter(e)
{

     var key;

     if(window.event)
          key = window.event.keyCode;     //IE
     else
          key = e.which;     //firefox

     if(key == 13)
          return false;
     else
          return true;
}

function validaForm(){
	var ret = pesquisaValida();		
	
	if(ret){		
		if(pesquisaPagina()){
			return ret;
		}
		var dataIni = document.forms[0].dataInicial.value;
		var dataFim = document.forms[0].dataFinal.value;
		
		ret = validaDatas(dataIni, dataFim);
		
	}
	
	return ret;
}

function validaDatas(dataIni, dataFim){

		var ret = true;
		if(dataIni.length>0 && (dataIni.indexOf("data_inici")==-1)){
			ret = isDate(dataIni);
		}
		
		if(ret && dataFim.length>0 && dataFim!="data_final"){
			ret = isDate(dataFim);
		}
			
		if(!ret){
			alert('Data inválida');
		}else if(comparaData(dataIni,dataFim)==-1){
			ret=false;
			alert('Data início deve ser inferior a data fim!');
				
		}

	return ret;

}