// VALIDA CPF
function WScpf(cpf) {
     var soma1, soma2, s1, s2;
     //var cpf = obj.value;
     var str_cpf = "";

     for (i = 0; i <= cpf.length - 1; i++)
          if ((cpf.charAt(i)).match(/\d/))
            str_cpf += cpf.charAt(i);
          else if (!(cpf.charAt(i)).match(/[\.\-]/)) {
            //alert ("O campo 'CPF/CNPJ' apresenta caracteres inválidos");
            return false;
          }

       if (str_cpf.length != 11) 
	   {
			 if (str_cpf.length != 14)
			 {
               //alert ("O campo 'CPF' deve conter 11 dígitos. Se for 'CNPJ' deve conter 14 dígitos");
               return false;
			 }
        }
		
		//if (str_cpf.length == 14){return (valida_cnpj(cpf));}
		
		if (str_cpf.length == 11)
		{
		
        soma1 = soma2 = 0;
        for (i = 0; i <= 8; i++) {
          soma1 += str_cpf.charAt(i) * (10-i);
          soma2 += str_cpf.charAt(i) * (11-i);
        }
        s1 = ((soma1 * 10) % 11) % 10;
        s2 = (((soma2 + (s1 * 2)) * 10) % 11) % 10;

        if ((s1 != str_cpf.charAt(9)) || (s2 != str_cpf.charAt(10))) {
               //alert ("O CPF '"+cpf+"' não é válido");
               return false;
        }
        return true;
		}
}


function valida_cnpj(cnpj)
      {
      var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;
      digitos_iguais = 1;
      if (cnpj.length < 14 && cnpj.length < 15)
            return false;
      for (i = 0; i < cnpj.length - 1; i++)
            if (cnpj.charAt(i) != cnpj.charAt(i + 1))
                  {
                  digitos_iguais = 0;
                  break;
                  }
      if (!digitos_iguais)
            {
            tamanho = cnpj.length - 2
            numeros = cnpj.substring(0,tamanho);
            digitos = cnpj.substring(tamanho);
            soma = 0;
            pos = tamanho - 7;
            for (i = tamanho; i >= 1; i--)
                  {
                  soma += numeros.charAt(tamanho - i) * pos--;
                  if (pos < 2)
                        pos = 9;
                  }
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(0))
                 {
				  //alert('CNPJ '+cnpj+' não é válido');
                  return false;
				}
            tamanho = tamanho + 1;
            numeros = cnpj.substring(0,tamanho);
            soma = 0;
            pos = tamanho - 7;
            for (i = tamanho; i >= 1; i--)
                  {
                  soma += numeros.charAt(tamanho - i) * pos--;
                  if (pos < 2)
                        pos = 9;
                  }
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(1))
			{
				  //alert('CNPJ '+cnpj+' não é válido');
                  return false;
			}
            return true;
            }
      else
	  {
		    //alert('CNPJ '+cnpj+' não é válido');
            return false;
	  }
 } 

function EData(dt){//alert('dt:'+dt+'   '+dt.length);
 if(dt.length==10){
	 var temp = new Array();
   temp = dt.split('/');//alert('--->'+temp[0]+temp[1]+temp[2]);
	 if(temp[0].length==2 && temp[1].length==2 && temp[2].length==4){
		  return(EDataTesta(temp[0],temp[1],temp[2]))
	 }
	 else{
		  temp = dt.split('-');
      if(temp[0].length==2 && temp[1].length==2 && temp[2].length==4){
		     return(EDataTesta(temp[0],temp[1],temp[2]))
	    }
  	  else return false;
	 }
 }
 else{
	 if(dt.length==8){
	   return(EDataTesta(dt.substr(0,2),dt.substr(2,2),dt.substr(4,4)));
   }
   else return false;
 }
}

function EDataTesta(day,month,year){
// retorna true ou false
//var dteDate;dteDate=new Date(year,month,day);
//return ((day==dteDate.getDate()) && (month==dteDate.getMonth()) && (year==dteDate.getFullYear()));
if(day>31 || day==0 || month==0 || month>12){return false;}
if(month==2){
  if(year % 4 == 0){ if(day >29){ return false;} } 
  if(year % 4 != 0){ if(month==2 && day >28){ return false;} } // fev ano normal
}
//if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)
if(month==4 || month==6 || month==9 || month==11){if(day==31){return false;}}
return true;
}




/*function ENum(numero){
 return numero.match(/^\d+$/);
}*/
function ENum(sText){
   var ValidChars = "0123456789";//"0123456789.";
   var IsNumber=true;
   var Char;
   for (i = 0; i < sText.length && IsNumber == true; i++){ 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1){
         IsNumber = false;
      }
   }
   return IsNumber;
}

function EValor(sText){
   var ValidChars = "0123456789,";//"0123456789.";
   var IsNumber=true;
   var Char;
	 var EVirg=0;
   for (i = 0; i < sText.length && IsNumber == true; i++){ 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1){
         IsNumber = false;
      }
			else{ 
			   if (Char==','){  EVirg=EVirg+1;   }
			}
   }
	 if(EVirg > 1){IsNumber = false;} //alert('IsNumber: '+IsNumber);
   return IsNumber;
}


function EVazio(val){
	if(val==null){return true;}
	for(var i=0;i<val.length;i++) {
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
		}
	return true;
	}
	
	
function EEMail(em){
     var bOk = 0;
     for (i = 0; i < em.length; i++){
             if ( em.charAt(i) == "@" ){
                     i = em.length;
                     bOk = 1;
             }
     }
     if (bOk == 0)        {
             return false;
     }
     return true;
}	
	




// --- TRIMs -------------------------------------------------
function LTrim(str){
	if (str==null){return null;}
	for(var i=0;str.charAt(i)==" ";i++);
	return str.substring(i,str.length);
	}

function RTrim(str){
	if (str==null){return null;}
	for(var i=str.length-1;str.charAt(i)==" ";i--);
	return str.substring(0,i+1);
	}
function Trim(str){return LTrim(RTrim(str));}

function LTrimAll(str) {
	if (str==null){return str;}
	for (var i=0; str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t"; i++);
	return str.substring(i,str.length);
	}

function RTrimAll(str) {
	if (str==null){return str;}
	for (var i=str.length-1; str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t"; i--);
	return str.substring(0,i+1);
	}
function TrimAll(str) {
	return LTrimAll(RTrimAll(str));
	}






