/*
	Data:       28/12/2005
	Autora:     Nelson Marinho
	Uso:        Função Gera senha
	Parâmetros: a) não
		        b) Não				
	Status:    
*/	
function GeraSenha()
  {
      wparteNum = Math.round(Math.random()*10000,0);
      strLetras ='abcdefghijklmnopqrstuvwxyz';
      wsenha = '';
      for (i=1; i<=4; i++)
       {
         wind = -1;
         while (wind <=0) {wind = Math.round(Math.random()*10,2);}       
         wsenha = wsenha + strLetras.substr(wind,1);
       }
      wsenha = wsenha + wparteNum;
      return wsenha;
  }


//---------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------
/*

/*
	Data:       20/08/2002
	Autora:     Ivy
	Uso:        Função que verifica se um campo está vazio
	Parâmetros: a) obj - campo a ser verificado
		        b) msg - mensagem que deve ser exibida caso o campo esteja vazio				
	Status:    TESTADA E NÃO DOCUMENTADA
*/


       function isVazio(obj, msg){              
        if (obj.value == "") {
            alert(msg);
            obj.focus();
            return true;
       }
         return false;
}

//---------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------
/*
	Data:       20/08/2002
	Autora:     Ivy
	Uso:        Função que redireciona para a URL passada como parâmetro
	Parâmetros: a) url - url destino
	Status:    TESTADA E NÃO DOCUMENTADA
*/
        function goTo(url){
		window.location.href =url;
	}
 
//---------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------
/*
	Data:       13/08/2002
	Autora:     Patrícia Martins
	Uso:        Função que verifica o número de elementos selecionados numa lista de
				checkboxes
	Parâmetros: a) f - formulário que contém a lista de checkbox
				b) nomeCheckBox - nome da variável de checkbox
				c) minElementos - número mínimo de elementos que deve estar selecionado.
				d) maxElementos - número máximo de elementos que deve estar selecionado.
								  Se não houver um número máximo, o valor passado deve 
								  ser -1		
	Status:    TESTADA E DOCUMENTADA
*/
	function excluir(f, nomeCheckBox, minElementos, maxElementos) {
		total = eval('f.'+ nomeCheckBox + '.length');		
		numElemSelecionados = 0;
		for (i=0; i < total; i++) {
			if (eval('f.' + nomeCheckBox + '[' + i + ']' + '.checked')) {
				numElemSelecionados++;
			}
		}						
		submeter = true;		
		if (numElemSelecionados < minElementos) {
			alert('Pelo menos ' + minElementos + ' deve(m) estar selecionado(s)');
			submeter = false;
		}
		
		if ((maxElementos != -1) && (numElemSelecionados > maxElementos)) {
			alert('O número máximo de elementos selecionados é ' + maxElementos);
			submeter = false;
		}
		
		if (submeter) {					
			f.hidOperacao.value = 'excluir_varios';
			f.submit();
		}
	}

//---------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------
/*
	Data:       10/07/2002
	Autora:     Patrícia Martins
	Uso:        Função que valida o tamanho de um campo textarea. Deve ser 
	            chamada no evento onKeyDown ou onKeyUp do campo associado.
	Parâmetros: a) campo (objeto referente ao campo do formulário que se deseja validar)
	            b) max (tamanho máximo do campo)  
	            c) exibeMsg (variável booleana que indica se deve ser exibida
	                         uma mensagem se o tamanho exceder o valor máximo)
	Status:     TESTADA
	Exemplo: 
				<textarea name="txa_observacao" onBlur="validaTamanho(this, 50, false)"></textarea>
*/

	function validaTamanho(campo, maxTam, exibeMsg){	
		if (campo.value.length > maxTam){
			campo.value = campo.value.substring(0, maxTam);
			if (exibeMsg){
				alert('O tamanho máximo do campo é ' + maxTam);
			}
		}
	}
//---------------------------------------------------------------------------------------------

//---------------------------------------------------------------------------------------------

/*
	Data:       10/07/2002
	Autor:      http://www.construindoseusite.com.br/javascript/scripts/js_validacao_cpf_2.shtm
	Uso:        Função que validaCPF, sem hífen.
	Parâmetros: a) cpf (objeto referente ao campo do formulário que se deseja validar)	          
	Status:     TESTADA   
*/

    function validaCPF(cpf) 
    {		
		var cpf;
		
		cpf = new String(cpf);
    
		if (cpf == '') {
			alert('CPF inválido !');
			return false;
		}

		// Aqui começa a checagem do CPF
		var POSICAO, I, SOMA, DV, DV_INFORMADO;
		var DIGITO = new Array(10);
		DV_INFORMADO = cpf.substr(9, 2); // Retira os dois últimos dígitos do número informado

		// Desemembra o número do CPF na array DIGITO
		for (I=0; I<=8; I++) {
			DIGITO[I] = cpf.substr(I, 1);
		}

		// Calcula o valor do 10º dígito da verificação
		POSICAO = 10;
		SOMA = 0;
		for (I=0; I<=8; I++) {
			SOMA = SOMA + DIGITO[I] * POSICAO;
			POSICAO = POSICAO - 1;
		}
		DIGITO[9] = SOMA % 11;
		if (DIGITO[9] < 2) {
			DIGITO[9] = 0;
		}
		else{
			DIGITO[9] = 11 - DIGITO[9];
		}

		// Calcula o valor do 11º dígito da verificação
		POSICAO = 11;
		SOMA = 0;
		for (I=0; I<=9; I++) {
			SOMA = SOMA + DIGITO[I] * POSICAO;
			POSICAO = POSICAO - 1;
		}
		DIGITO[10] = SOMA % 11;
		if (DIGITO[10] < 2) {
			DIGITO[10] = 0;
		}
		else {
			DIGITO[10] = 11 - DIGITO[10];
		}

		// Verifica se os valores dos dígitos verificadores conferem
		DV = DIGITO[9] * 10 + DIGITO[10];
		if (DV != DV_INFORMADO) {
			alert('CPF inválido');		
			return false;
		} 
	}
//---------------------------------------------------------------------------------------------

//---------------------------------------------------------------------------------------------
/*
	Data:       02/08/2002
	Autor:      Desconhecido
	Uso:        Função que valida CNPJ
	Parâmetros: a) cnpj (objeto referente ao campo do formulário que se deseja validar)	          
	Status:    TESTADA
*/
	function validaCNPJ(cnpj){//02307861000142
		var i;
		var c	= cnpj.substr(0,12) ;//pega os 12 primeiros caracteres
		var dv	= cnpj.substr(12,2);//pega os 2 ultimos caracteres
		var d1	= 0;
		for (i	= 0; i < 12; i++){
			d1 += c.charAt(11-i)*(2+(i % 8));
		}

		if (d1 == 0) return false;

		d1 = 11 - (d1 % 11);

		if (d1 > 9) d1 = 0;

		if (dv.charAt(0) != d1){
			return false;
		}
		//alert("DV1 Calc="+d1 + " DV1 entrada = " + dv.charAt(0));
		//Se o primeiro Digito Confere calcula-se o Segundo Digito
		d1 *= 2;
		for (i = 0; i < 12; i++){
			d1 += c.charAt(11-i)*(2+((i+1) % 8));
		}
    
		d1 = 11 - (d1 % 11);
		//alert("DV2 Calc="+d1 + " DV2 entrada = " + dv.charAt(1));
		//Se o primeiro Digito Confere calcula-se o Segundo Digito

		if (d1 > 9) d1 = 0;
		if (dv.charAt(1) != d1){
	   		alert("CNPJ Invalido");
	   	return false;
		}
		return true;
	}
//---------------------------------------------------------------------------------------------

function comparaData(dataMaior, dataMenor, msg){
		if (dataMaior != "" ){
			if (dataMenor != "" ){	
				var Dmaior = new Date(dataMaior);
				var Dmenor = new Date(dataMenor);
				
				if (Dmaior.getDate() < Dmenor.getDate()){
					alert (msg);							
					return false;
				}				
			}
		
		}
		return true;
}	


//---------------------------------------------------------------------------------------------
/*
	Data:       10/07/2002
	Autora:     Patrícia Martins
	Uso:        Função que valida uma data no formato dd/mm/aaaa
	Parâmetros: a) campo (objeto referente ao campo do formulário que se deseja validar)	           	
	Status:     Com problema
*/

function validaHorario(campo){	
	
	//  ExpHora= /^((?:0?[0-9]|1[0-9]|2[0-3]):[0-5][0-9])$/;
	//  if (!ExpHora.test(campo.value)){
	//  	alert('Horário inválido');
	//	campo.focus();
	  	return false
	//  }
	  return true;
}	


function validaData(campo)
{

	var dia, mes, ano;

	dia = campo.value.substring(0,2);
	mes = campo.value.substring(3,5);
	ano = campo.value.substring(6,10);
	
	if (campo.value.length!=10){
		alert('Data inválida');
		return false;
	}

	for (i=0; i < campo.value.length; i++){
		if (isNaN(campo.value.charAt(i)) && campo.value.charAt(i)!='/') {
			alert('Data inválida');
			return false;
		}
	}	
			
	if ((mes==0)||(ano==0))	{
		alert('Data inválida');
		campo.focus();
		return false;
	}
	
	if (mes > 12) {
		alert('Data inválida');
		campo.focus();
		return false;
	}
		
	if (mes==2){		
		if ( ((ano%4 != 0)||(ano%100==0 && ano%400!=0)) && dia > 28 || dia > 29 )
		{
			alert('Data inválida');
			campo.focus();
			return false;
		}		
	}
	else {
		if (dia > 31) {
			alert('Data inválida');
			campo.focus();
			return false;
		}
		else{	
			if ((dia==31)&&((mes==4)||(mes==6)||(mes==9)||(mes==11))){
				alert('Data inválida');
				campo.focus();
				return false;
			}
		}
	}
	return true;
}
//---------------------------------------------------------------------------------------------


function validaIdade(campo,campo2)
{

	var ano, ano_atual,idade;

	ano = campo.value.substring(6,10);
	
	if (campo.value.length!=10){
		alert('Data inválida');
		return false;
	}
    
	ano_atual = new Date()
	ano_atual = ano_atual.getYear()
	
	idade = ano_atual - ano;
	
	campo2.value = idade
	
	return true;
}
//---------------------------------------------------------------------------------------------







//---------------------------------------------------------------------------------------------
/*
	Data:       01/08/2002
	Autora:     Patrícia Martins
	Uso:        Função que retorna true se campo só possuir letras e false, caso contrário
	Parâmetros: a) campo (objeto referente ao campo do formulário que se deseja validar)	           	
	Status:     TESTADA
*/

	function validaString(str) {//TRABALHA JUNTO COM ehLetra
  		for (var i=0 ; i < str.length; i++){
     		var charAux = str.charAt(i);	 
     		if (!ehLetra(charAux)) //chama a funcao ehLetra
	 	    	alert("Não e uma string")

	 		return false;
  		}
  		return true;
}
//---------------------------------------------------------------------------------------------


//---------------------------------------------------------------------------------------------
/*
	Data:       02/08/2002
	Autora:     Patrícia Martins
	Uso:        Função que retorna true se o caracter passado como parâmetro for letra,
				retorna false, caso contrário
	Parâmetros: a) caracter	- caracter que se deseja analisar         	
	Status:     TESTADA
*/

	function ehLetra(caracter) {//TRABALHA JUNTO COM validaString
     	if (( caracter >= 'A' && caracter <= 'Z') || ( caracter >= 'a' && caracter <= 'z')){
	 		return true;
	 	}else{
  			return false;
	 	}
}
//---------------------------------------------------------------------------------------------

//---------------------------------------------------------------------------------------------
/*
	Data:       02/08/2002
	Autora:     Patrícia Martins
	Uso:        Função que retorna true se o caracter passado como parâmetro for letra,
				retorna false, caso contrário
	Parâmetros: a) caracter	- caracter que se deseja analisar         	
	Status:     TESTADA
*/

function validaNumero(obj, msg) { //TRABALHA JUNTO COM ehNumero
  
  		var str = obj.value;			
		var valido = true
		for (var i=0 ; i < str.length; i++){
     		var charAux = str.charAt(i);	 
     		if (!ehNumero(charAux)){valido = false}		 		
  		}
   	
		if (!valido){
			alert(msg);
			obj.focus();				
			return false;
		}	
  		return true;
	}

//---------------------------------------------------------------------------------------------
/*
	Data:       02/08/2002
	Autora:     Patrícia Martins
	Uso:        Função que retorna true se o caracter passado como parâmetro for numérico,
				retorna false, caso contrário
	Parâmetros: a) caracter	- caracter que se deseja analisar         	
	Status:     TESTADA
*/

function ehNumero(caracter) { //TRABALHA JUNTO COM validaNumero
     if ( caracter >= '0' && caracter <= '9'){ 
	 	return true;
	 }else{ 
  		return false;
	 }
}
//---------------------------------------------------------------------------------------------


//----------------------------------------------------------------------------------------------
/*
	Data:       02/08/2002
	Autora:     Patrícia Martins
	Uso:        Função que abra uma janela de popup
	Parâmetros: a) pag - URL da página que se deseja abrir
	            b) titulo - titulo da janela
				c) larg - largura da janela
				d) comp - comprimento da janela                 
	Status:     TESTADA
*/

function abrirPopUp(pag, titulo, larg, comp) {
  window.open(pag, titulo, 'dependent=yes,directories=no,location=no,menubar=no,resizable=no,scrollbars=yes,status=no,toolbar=no,height='+comp+',width='+comp)
}
//----------------------------------------------------------------------------------------------

/*
	Data:       02/08/2002
	Autora:     Gustavo Maia
	Uso:        Função verifica se o caracter é um numéro
	Status:     TESTADA
*/


function isNum( caractere )
{ 
         var strValidos = "0123456789" ;
         if ( strValidos.indexOf( caractere ) == -1 ) 
                 return false; 
         return true; 
} 

//----------------------------------------------------------------------------------------------
/*
	Data:       02/08/2002
	Autora:     Gustavo Maia
	Uso:        Funcao para só deixar o usuário digitar números
	Status:     TESTADA
*/


function validaTecla(campo, event)
{ 
         var BACKSPACE=8; 
         var key; 
         var tecla; 


         CheckTAB=true; 
         if(navigator.appName.indexOf("Netscape")!= -1) 
                 tecla= event.which; 
         else 
                 tecla= event.keyCode; 


         key = String.fromCharCode( tecla); 


         if ( tecla == 13 ) 
                 return false; 
         if ( tecla == BACKSPACE ) 
                 return true; 
         return ( isNum(key)); 
} 

//----------------------------------------------------------------------------------------------
/*
	Data:       02/08/2002
	Autora:     Gustavo Maia
	Uso:        Funcao para testar se o campo do formulário é uma Data
	Status:     TESTADA
*/

 
function vData(o)
{
	f=o.value;
	dt=new Date(o.value);
	o.value=dt;
	t=o.value; 
	i=parseFloat(f);
	if (i>1011900)
	{
		t=f.substring(0,2) +'/'+f.substring(2,4)+'/'+f.substring(4);
		f=t;
	}
	else if(i>=10100)
	{
		if (parseInt(f.substring(4))<70)
		{
		t=f.substring(0,2) +'/'+f.substring(2,4)+'/20'+f.substring(4);
		}
		else
		{
		t=f.substring(0,2) +'/'+f.substring(2,4)+'/19'+f.substring(4);
		}
		f=t;
		
	}
	else if(i>=101)
	{
		Data=new Date();
		Ano=Data.getYear();
		if (Ano<200)
		{

			Ano=Ano+1900;
		}
		t=f.substring(0,2) +'/'+f.substring(2,4)+'/'+Ano;
		f=t;
	
	}

	o.value=f;
}

//----------------------------------------------------------------------------------------------


function vHora(campo)
{                       
	valor = campo.value;
	if (valor.length >= 5)
	{
		for (i = 1 ; i <= valor.length ; i++)
		{
			c = valor.substring(i-1,i);
			if (((c >= 0) == false) && (c != ":"))
			{
				alert("Hora Inválida");
				campo.select();
				break;
			}
		}
	}
	else
	{
	 	alert("Hora Inválida");
	 	campo.select();
	 	return;
 	}
	
}

//---------------------------------------------------------------------------------------------

/*
	Data:       02/08/2002
	Autora:     Gustavo Maia
	Uso:        Funcao para Comparar Data
	Parâmetros: a) Data Maior
	            b) Data Menor
				c) Msg se Ocorrer o Erro
	Status:     TESTADA
*/



function comparaData2(dataMaior, dataMenor, msg){
		if (dataMaior != "" )
		{
			if (dataMenor != "" )
			{	
								 
				arr_Maior = dataMaior.split("/"); 
				arr_Menor = dataMenor.split("/");
								
				DiaMaior = parseInt(arr_Maior[0]);
				DiaMenor = parseInt(arr_Menor[0]);
				
				MesMaior = parseInt(arr_Maior[1]);
				MesMenor = parseInt(arr_Menor[1]);
				
				AnoMaior = parseInt(arr_Maior[2]);
				AnoMenor = parseInt(arr_Menor[2]);
				
							
			if (AnoMaior >= AnoMenor)
				{	if (MesMaior >= MesMenor)
						{ if (DiaMaior >= DiaMenor) 
							{ return true }
							else
							{ alert(msg)
							  return false}   
						}   
					else
						{ alert(msg)
				}		  return false} 
			else
				{ alert(msg)
				return false}  
			
		}
		return false;
	}	
}
