/******************************************************************
 Verifica se o valor é numérico.
 O parametro "cInteiro" indica se o valor tem ponto decimal ("F")
 ou é um valor inteiro("I").
***************************************************************/ 
function fValorIsNumero(nValor,cInteiro) {
   if ((cInteiro=="F") && (nValor.indexOf(",") > -1))
       nValor = nValor.substring(0, nValor.indexOf(",")) + nValor.substring(nValor.indexOf(",")+1, 10);
 //parseFloat: Verifica se o conteúdo possui valores numericos válidos
 //incluindo os sinais "+" e "-" no inicio ou o simbolo "e" que indica
 //valor cientifico.
   if (nValor != parseFloat(nValor)) return false;
   if (nValor.indexOf("+") > -1)     return false;
   if (nValor.indexOf("-") > -1)     return false;
   if (nValor.indexOf("e") > -1)     return false;
   if ((cInteiro=="I") & (nValor.indexOf(".")>-1)) return false;
   return true;
}

/************************************************************
   Funções auxiliares para autenticação de campos em forms
************************************************************/

var defaultEmptyOK = false

//function isDigit (c)
//{   return ((c >= "0") && (c <= "9") || (c=="-"))
//}


function isDigit( cString ){
   
var cChar  = "";
var cNumeros  = "0123456789"
var nCount    = 0;
var lContinua = true;
var lFalha    = false;
   
   while( lContinua ){
      
      cChar = cString.substring( nCount , nCount + 1 );
      if( cNumeros.indexOf( cChar , 0 ) == -1 ){ 
         
         lFalha    = true;
         lContinua = false;
      }
      if( nCount == cString.length - 1 ){ lContinua = false; }
      nCount++;
   }
   
   return !lFalha;
}

function isAlpha (s)
{   var i;
    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (isDigit(c)) return false;
    }
    return true;
}




function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}



	
function warnInvalid (theField, s)
{   theField.focus()
    theField.select()
    alert(s)
    return false
}




function isInteger (s)
{   var i;

    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);

        if (!isDigit(c)) return false;
    }
    return true;
}

//
//verifica se o codigo hexa é valido
//
function fcnValidaHexa( cCodigo ){

var nContador  = 0;
var cHexa      = "0123456789ABCDEF"
var cChar      = ""
var lFalha     = false;
   
      for( nContador=0; nContador < cCodigo.length;nContador++  ){
      
         cChar = cCodigo.substring( nContador , nContador + 1  );
      
         if( cHexa.indexOf( cChar.toUpperCase() ) == -1 ){
         
            lFalha = true;
            nContador = cCodigo.length;
         }
      }
   return !lFalha;
}







/****************************************** 
   Função que valida o valor de um e-mail
*****************************************/
function fEmailIsValid( strEmail )
{
// Precisa conter pelo menos cinco caracteres
   if (strEmail.length < 6) return false;
   return (RegularExpressionValidatorEvaluateIsValid(strEmail,"\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*") 
   		|| RegularExpressionValidatorEvaluateIsValid(strEmail,"^[0-9a-zA-Z-_\.]+@[0-9a-zA-Z-_\.~]+(\.[a-zA-Z]+)+$"));
}

function RegularExpressionValidatorEvaluateIsValid(val, validationexpression) {
    var value = new String(val);
    var rx = new RegExp(validationexpression);
    var matches = rx.exec(value);
    return (matches != null && value == matches[0]);
}
function ValidatorTrim(s) {
    var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
    return (m == null) ? "" : m[1];
}








//como usar :
//   <INPUT name="txtCaixa1" onKeyPress="fcnPassaCamposEnter( 'frmFormulario' , 'txtCaixa2' , 'txtCaixa1' , 'txtCaixa4' , 'fcnValidacao()' )">
//   onde :
//        frmFormulario      = Nome do Formulario
//        txtCaixa2          = Proximo Campo
//        txtCaixa1          = Campo Atual
//        txtCaixa4          = Campo que Quando Teclado Enter Deve Executar o Submit
//        cExecutaSubmit     = Funcao que deve ser usada para executar o metodo submit do form corrente
function fcnPassaCamposEnter( cForm , cProximoCampo , cCampoAtual , cUltimoCampo , cExecutaSubmit ){

   if( event.keyCode == 13 ){
      
      if( eval( cForm + "." + cCampoAtual + ".name" ) == eval( cForm + "." + cUltimoCampo + ".name" ) ){
         
         if( cExecutaSubmit.length > 0 ){
            
            eval( cExecutaSubmit );
         }
           
      }else{
         
         eval( cForm + "." + cProximoCampo + ".focus()" );
         return false;
      }
   }
}   

//como usar :
//   <INPUT name="txtCaixa1" onKeyPress="fcnPassaCamposEnter( 'frmFormulario' , 'txtCaixa2' , 'txtCaixa1' )">
//   onde :
//        frmFormulario = Nome do Formulario
//        txtCaixa2     = Proximo Campo
//        txtCaixa1     = Campo Atual
function fcnMudaFocoPorLenght( cForm , cProximoCampo , cCampoAtual , nCaracteres ){
   //window.alert("asdasd");
   
   if ( nCaracteres == 2 ){
      if( eval( cForm + "." + cCampoAtual  + ".value.length" ) == 2  ){
      
         eval( cForm + "." + cProximoCampo + ".focus()" );
      }
   }else if ( nCaracteres == 4 ){
       if( eval( cForm + "." + cCampoAtual  + ".value.length" ) == 4  ){
      
         eval( cForm + "." + cProximoCampo + ".focus()" );
       }
   }
}   




function fcnValida_Empresa( formulario ){
    
	if (isEmpty(formulario.LOGIN.value)){
      
	   warnInvalid (formulario.LOGIN, 'Digite o seu LOGIN!');
	   return false;
	}
	else if (isEmpty(formulario.SENHA.value)){
	
	   warnInvalid (formulario.SENHA, 'O campo Senha não pode estar em branco!');
       return false;
	}
	
	return true;
}

//Verifica os campos do formulário de login EMPRESA
function fcnSubmitValida_empresa ( formulario ) 
{
   if( fcnValida_Empresa( formulario ) ){
      
      formulario.submit()
   }
}

//Verifica os campos do formulário "candidato"
function fcnValidaCandidato( formulario ) {
var lSubmit = true

var cEmailNuc = formulario.EMAIL.value;
   
   // verifica se o campo nao esta em branco
   if( cEmailNuc == "" ){
      
      warnInvalid (formulario.EMAIL, 'Digite o seu Email ou um Nuc Válido!');
      return false;   
   }
   //verifica se e um e-mail ou um nuc
   if( !isAlpha( cEmailNuc.substring( 0 , 3 ) ) && cEmailNuc.indexOf( "@" , 0 ) == -1 ){
         
      warnInvalid (formulario.EMAIL, 'Digite o seu Email ou um Nuc Válido!');
      return false;
   }
   //verifica se numero de caracteres do nuc foi preenchido corretamente
   if( isAlpha( cEmailNuc.substring( 0 , 3 ) ) && cEmailNuc.indexOf( "@" , 0 ) == -1 ){
      
      if( cEmailNuc.substring( 0 , 3 ).indexOf( "-" , 0 ) != -1 ){

         warnInvalid (formulario.EMAIL, 'Digite o seu Email ou um Nuc Válido!');
         return false;
      }
      if( cEmailNuc.indexOf( "-" , 0 ) == -1 ){
         
         if(fValorIsNumero( cEmailNuc.substring( 3, cEmailNuc.length ),"I") == false){

            warnInvalid (formulario.EMAIL, 'Digite o seu Email ou um Nuc Válido!');
            return false;
         }
      }else if( cEmailNuc.indexOf( "-" , 0 ) != -1 ){   
      
         if(fValorIsNumero( cEmailNuc.substring( 4, cEmailNuc.length ),"I") == false){

            warnInvalid (formulario.EMAIL, 'Digite o seu Email ou um Nuc Válido!');
            return false;
         }
      }
   }
   // verifica se e um e-mail
   if( cEmailNuc.indexOf( "@" , 0 ) > -1 ){
      
      if( !fEmailIsValid( cEmailNuc ) ){
         
         warnInvalid (formulario.EMAIL, 'Digite o seu Email ou um Nuc Válido!');
         return false;
      }
   }   
   if( formulario.SENHA.value == "" ){

      warnInvalid (formulario.SENHA, 'Digite uma senha válida!');
      return false;
   }
   return true;
}

function checanuc ( formulario ){

   if ( fcnValidaCandidato( formulario ) ){
      
      formulario.submit()
   }
}
