<!--
//------------------------------------------------------------------------------
// Associação Brasileira de Bancos Estaduais e Regionais - ASBACE
// Arquivo  : ValidaForm.js
// Descrição: Funções em javascript para validações de campos em formulários
//
// Relação das funções do arquivo:
// Função	  		  	 Descrição
// ObrigatorioTxt        Verifica se o campo textbox foi digitado
// ObrigatorioRadio      Verifica se alguma opção do radio button foi escolhida
// ValidaNumero			 Verifica se o campo digitado contém somente números
// ValidaEmail			 Verifica se campo digitado é um email válido           
// ValidaTelefone		 Verifica se o campo digitado está no formato correto
// 
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
// Associação Brasileira de Bancos Estaduais e Regionais - ASBACE
// Função     : ObrigatorioTxt
// Descrição  : Verifica se o campo textbox foi digitado 
// Parâmetros : Campo   	- Campo a ser verificado a obrigatoriedade
// 			    NomeCampo   - Nome do campo a ser apresentado nas mensagens de erro
// Programador: Geraldo Fernandez Dominguez Junior (gfdj@uol.com.br)
// Observação : Nenhuma.
//------------------------------------------------------------------------------
function ObrigatorioTxt(Campo,NomeCampo){

   // Verifica se o campo foi digitado.
   if (Campo.value == ""){
      alert("O campo " + NomeCampo + " é obrigatório, favor preencher.");
      Campo.focus();
      return (false);
   }

   // Verifica se existe alguma coisa digitada
   var checkOK = " ";
   var checkStr = Campo.value;
   var allValid = false;

   // Verifica se só existe dígitos no número digitado
   for (i = 0;  i < checkStr.length;  i++){
      ch = checkStr.charAt(i);
      for (j = 0;  j < checkOK.length;  j++)
         if (ch == checkOK.charAt(j))
            break;
         if (j == checkOK.length){
            allValid = true;
            break;
         }
   }

   if (!allValid){
      alert("O campo " + NomeCampo + " é obrigatório, favor preencher.");
      Campo.focus();
	  Campo.select();
	
      return (false);
   }

   return (true);
}

//------------------------------------------------------------------------------
// Associação Brasileira de Bancos Estaduais e Regionais - ASBACE
// Função     : ObrigatorioRadio
// Descrição  : Verifica se alguma opção do radio button foi escolhida 
// Parâmetros : Radio    	- Radio Button a ser verificado
// 			    NomeCampo   - Nome do campo a ser apresentado nas mensagens de erro
// Programador: Geraldo Fernandez Dominguez Junior (gfdj@uol.com.br)
// Observação : Nenhuma.
//------------------------------------------------------------------------------
function ObrigatorioRadio(Radio,NomeCampo){

   // Verifica se alguma opção do radio button foi selecionada
   var allValid = false;
   
   for (i = 0; i<Radio.length; ++ i){
      if (Radio[i].checked){
         allValid = true;
      }
   }
   
   if (!allValid){
      alert("O campo " + NomeCampo + " é obrigatório, favor escolha uma opção.");
      return (false);
   }

   return (true);
}

//------------------------------------------------------------------------------
// Associação Brasileira de Bancos Estaduais e Regionais - ASBACE
// Função     : ValidaNumero
// Descrição  : Verifica se o número digitado está correto
// Parâmetros : Numero  	- Campo contendo o numero a ser verificado
//              TamMax      - Tamanho máximo do campo ou 0 para tamanho indefinido
// 			    NomeCampo   - Nome do campo a ser apresentado nas mensagens de erro
//			    Obrigatorio - Indica se a digitação do número é obrigatório ou não 
//	       	   			      1 - Obrigatório  0 - Opcional
// Programador: Geraldo Fernandez Dominguez Junior (gfdj@uol.com.br)
// Observação : Esta função verifica se os números são positivos e inteiros.
//------------------------------------------------------------------------------
function ValidaNumero(Numero, TamMax, NomeCampo, Obrigatorio){

   // Verifica em caso de obrigatoriedade do campo se ele foi digitado.
   if ((Numero.value == "" || Numero.value == "0") && Obrigatorio == 1){
      alert("O campo " + NomeCampo + " é obrigatório, favor preencher.");
      Numero.focus();
      return (false);
   }
   else{

      // Seta a máscara default do número se o campo for opcional e não for digitado 
      if (Numero.value == "" && Obrigatorio == 0){  
         Numero.value = "0";
         return (true);
	  }
   }
  
   // Verifica o tamanho máximo do número
   // Se o TamMax = 0 a verificação será descartada
   if ( TamMax != 0){
      if (Numero.value.length > TamMax){
         if (TamMax > 1){
            alert("Favor preencher o " + NomeCampo + " com no máximo " + TamMax + " dígitos.");}
   	     else {
            alert("Favor preencher o " + NomeCampo + " com no máximo " + TamMax + " dígito.");}

         Numero.focus();
	     Numero.select();
         return (false);
	  }
   }
   
   var checkOK = "0123456789";
   var checkStr = Numero.value;
   var allValid = true;

   // Verifica se só existe dígitos no número digitado
   for (i = 0;  i < checkStr.length;  i++){
      ch = checkStr.charAt(i);
      for (j = 0;  j < checkOK.length;  j++)
         if (ch == checkOK.charAt(j))
            break;
         if (j == checkOK.length){
            allValid = false;
            break;
         }
   }

   if (!allValid){
      alert("Favor preencher o campo " + NomeCampo + " somente com dígitos.");
      Numero.focus();
	  Numero.select();
	
      return (false);
   }

   return (true);
}

//------------------------------------------------------------------------------
// Associação Brasileira de Bancos Estaduais e Regionais - ASBACE
// Função     : ValidaEmail
// Descrição  : Verifica se campo digitado é um email válido
// Parâmetros : Email   	- Campo contendo o email a ser verificado
// 			    NomeCampo   - Nome do campo a ser apresentado nas mensagens de erro
//			    Obrigatorio - Indica se a digitação do email é obrigatória ou não 
//	       	   			      1 - Obrigatório  0 - Opcional
// Programador: Geraldo Fernandez Dominguez Junior (gfdj@uol.com.br)
// Observação : Nenhuma.
//------------------------------------------------------------------------------
function ValidaEmail(Email, NomeCampo, Obrigatorio){
 
   // Verifica em caso de obrigatoriedade do campo se ele foi digitado.
   if ((Email.value == "" ) && Obrigatorio == 1){
      alert("O campo " + NomeCampo + " é obrigatório, favor preencher.");
      Email.focus();
      return (false);
   }

   // Verifica se existe o caracter @ no campo
   at = Email.value.indexOf("@")

   if (at<0){
      alert("O campo " + NomeCampo + " não é um email válido, favor corrigir.");
      Email.focus();
	  Email.select();
	  return (false);	  
   }

   return (true);
}

//------------------------------------------------------------------------------
// Associação Brasileira de Bancos Estaduais e Regionais - ASBACE
// Função     : ValidaTelefone
// Descrição  : Verifica se o campo digitado está no formato de telefone 9999-9999
// Parâmetros : Telefone  	- Campo a ser verificado
// 			    NomeCampo   - Nome do campo a ser apresentado nas mensagens de erro
//			    Obrigatorio - Indica se a digitação do número é obrigatório ou não 
//	       	   			      1 - Obrigatório  0 - Opcional
// Programador: Geraldo Fernandez Dominguez Junior (gfdj@uol.com.br)
// Observação : Nenhuma.
//------------------------------------------------------------------------------
function ValidaTelefone(Telefone, NomeCampo, Obrigatorio){

   // Verifica em caso de obrigatoriedade do campo se ele foi digitado.
   if ((Telefone.value == "" ) && Obrigatorio == 1){
      alert("O campo " + NomeCampo + " é obrigatório, favor preencher.");
      Telefone.focus();
      return (false);
   }
  
   var checkOK = "0123456789-";
   var checkStr = Telefone.value;
   var allValid = true;

   // Verifica se só existe dígitos ou hifen no telefone digitado
   for (i = 0;  i < checkStr.length;  i++){
      ch = checkStr.charAt(i);
      for (j = 0;  j < checkOK.length;  j++)
         if (ch == checkOK.charAt(j))
            break;
         if (j == checkOK.length){
            allValid = false;
            break;
         }
   }

   if (!allValid){
      alert("Favor preencher o campo " + NomeCampo + " somente com dígitos no formato (9999-9999).");
      Telefone.focus();
	  Telefone.select();
	
      return (false);
   }

   return (true);
}

/*------------------------------------------------------------------------------
Associação Brasileira de Bancos Estaduais e Regionais - ASBACE
Função     : ValidaNumerico
Descrição  : Verifica se o valor digitado no campo é numerico
Parâmetros : objCampo     	- Campo a ser verificado
			 strNomeCampo	- Nome do campo
Programador: Cleiton José de Deus Santos (cleitons@mailbr.com.br)
Observação : 
------------------------------------------------------------------------------*/

function ValidaNumerico(objCampo,strNomeCampo)
{
	var blnStatus = true;
	for(i=0;i<objCampo.value.length;i++)
	{
		if(isNaN((objCampo.value.replace('.','').replace(',','')).substr(i,1)))
		{
			blnStatus = false
		}
	}
	
	if(blnStatus)
	{
		var fltValor = parseFloat(objCampo.value.replace('.','').replace(',','.'))
										
		if((isNaN(fltValor))&&(objCampo.value!=''))
		{
			objCampo.value='';
			objCampo.focus();
			objCampo.select();
			alert('O campo '+ strNomeCampo +' deve ser preenchido somente com numeros');
			return (false);
		}
	}
	else
	{
		objCampo.value='';
		objCampo.focus();
		objCampo.select();
		alert('O campo '+ strNomeCampo +' deve ser preenchido somente com numeros');
		return (false);
	}
	return (true)
}


/*------------------------------------------------------------------------------
Associação Brasileira de Bancos Estaduais e Regionais - ASBACE
Função     : Formata_Valor
Descrição  : Esta função é destinada mascarar campos no formato Monetário.
Parâmetros : campo  	   - Campo a ser mascarado
Programador: Geraldo Fernandez Dominguez Junior (gfdj@uol.com.br)
Alterações : Cleiton José de Deus Santos (cleitons@mailbr.com.br)
Observação : Utilize esta função no envento "onkeypress" do campo
------------------------------------------------------------------------------*/
function Formata_Valor(campo) {
	var tecla = event.keyCode;
	vr = campo.value;
	if (tecla==46 || tecla==44)
	{
	   event.keyCode=0;
	}
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( ",", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	var tammax = campo.maxLength
	tam = vr.length;
	

	if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }

	if (tecla == 8 ){	tam = tam - 1 ; }
		
	if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ){
		if ( tam <= 2 ){ 
	 		campo.value = vr ; }
	 	if ( (tam > 2) && (tam <= 5) ){
	 		campo.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 6) && (tam <= 8) ){
	 		campo.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 9) && (tam <= 11) ){
	 		campo.value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 12) && (tam <= 14) ){
	 		campo.value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 15) && (tam <= 17) ){
	 		campo.value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;}
	}		
	
}
