//Fonte: http://webmasters.neting.com/msg04077.html
//Comentários: Bruno C. de Paula - 21/3/2002
function ValidarCPF(s) 
	{ 
         /*1 - Verificar se todos os caracteres digitados são números
	 */
	 var varFirstChr = s.charAt(0); 
	 for ( var i=0; i<=10; i++ ) 
	 {  
	   var c = s.charAt(i); 
	   
	   if( ! (c>="0")&&(c<="9") ) 
	   { 
		return false; 
	   } 
	   //Impede que sejam digitados todos os caracteres iguais.
	   if( c!=varFirstChr ) 
		vaCharCPF = true;  
	 }  
	 if( ! vaCharCPF )
	 { 	
		return false; 
	 } 
	 // 3 - Faz sucessivamente: 10*(o primeiro dígito)+9*(o segundo 	 // dígito)+8*(o terceiro)...
	 soma=0; 
	 for ( i=0; i<9; i++ ) 
		soma += (10-i) * ( eval(s.charAt(i)) ); 

	 //PRIMEIRO DÍGITO VERIFICADOR (nono caractere)
	 //4 - O dígito verificador é 11-(soma % 11)
	 //Se o resto da divisão de soma por 11 for menor que 2, então 	 //o dígito verificador é 0.
	 digito_verificador = 11-(soma % 11); 
	 if ( (soma % 11) < 2 ) 
 		digito_verificador = 0; 

 	 //5 - O último dígito (nono) tem que ser 
	 if ( eval(s.charAt(9)) != digito_verificador ) 
	  	return false;   

	  // 6 - Faz sucessivamente: 11*(o primeiro dígito)+10*(o 
          // segundo dígito)+9*(o terceiro)...
          // E, por fim soma o dobro do último dígito.	
	 soma=0; 
	 for ( i=0; i<9; i++ ) 
		soma += (11-i) * ( eval(s.charAt(i)) ); 
	 soma += 2 * ( eval(s.charAt(9)) ); 
	 
	 //SEGUNDO DIGITO VERIFICADOR (DÉCIMO CARACTERE)
	 //7 - O dígito verificador é 11-(soma % 11)
	 //Se o resto der menor que 2 (não se obtem um dígito) então, o
	 //dígito verificador é 0;
	 digito_verificador = 11-(soma % 11); 
	 if ( (soma % 11) < 2 ) 
		digito_verificador = 0; 
	 if ( eval(s.charAt(10)) != digito_verificador ) 
	 	return false;   

	 return true; 
} 
