

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;
}


// Método executa a validação do Código do Beneficiário.
// vlr - Valor do código.
// field - Objeto input type text o qual deve se colocar o focus.
// shouldAlert - Se deve ser exibida uma mensagem automaticamente
//               por este script.
function checaIDBenef(vlr){

    var tam = vlr.length;
    
    //Caso menor do que 17 preencher com 0´s a esquerda
    if(tam < 17 && tam > 10){
    	for(i = tam; i < 17; i++){
    		vlr = '0' + vlr;
    	}
    	tam = vlr.length;
    }

	if(tam < 17){
		return false;	
	}
	
    var soma = 0;
    var peso = 2;
    for (var i = tam - 2; i > 0; i--) {
        soma += (parseInt(vlr.charAt(i)) * peso);
   	    peso++;
        if (peso == 10)
   	        peso = 2;
    }        
    
    var resto = 11 - (soma % 11);
    if (resto > 9)
       resto = 0;
       
    if (resto != parseInt(vlr.charAt(tam - 1) )){
		return false;
    }
    return true;
}
