function validaCPFy(obj, str, alerta)
{
var numero;
var digito = new Array(10); // array para os dígitos do CPF.
var aux = 0; // índice para a string num.
var posicao
var i
var soma
var dv
var dvInformado;

if(obj != null)
{
str = obj.value;
}

//numero = _extraiNumero(str);

// Retira os dígitos formatadores de CPF '.' e '-', caso existam.
if (str.length > 0)
{
while ((str.indexOf('.') != -1) || (str.indexOf('-') != -1))
{
if (str.indexOf('.') != -1)
{
aux = str.indexOf('.');
str = str.substr(0, aux) + str.substr(aux+1, str.length-1);
}
if (str.indexOf('-') != -1)
{
aux = str.indexOf('-');
str = str.substr(0, aux) + str.substr(aux+1, str.length-1);
}
} //while
} //if

//verifica CPFs manjados
switch (str) {
case '0':
case '00':
case '000':
case '0000':
case '00000':
case '000000':
case '0000000':
case '00000000':
case '000000000':
case '0000000000':
case '00000000000':
case '11111111111':
case '22222222222':
case '33333333333':
case '44444444444':
case '55555555555':
case '66666666666':
case '77777777777':
case '88888888888':
case '99999999999':
obj.value = '';
document.getElementById('alert_cpf').style.display='';
obj.focus();
return false;
}

// Início da validação do CPF.
/* Retira do número informado os dois últimos dígitos */
dvInformado = str.substr(9,2);
/* Desmembra o número do CPF no array digito */
for (i=0; i<=8; i++)
{
digito[i] = str.substr(i,1);
}
/* Calcula o valor do 10o. digito de verificação */
posicao = 10;
soma = 0;
for (i=0; i<=8; i++)
{
soma = soma + digito[i] * posicao;
posicao--;
}
digito[9] = soma % 11;
if (digito[9] < 2)
{
digito[9] = 0;
}
else
{
digito[9] = 11 - digito[9];
}
/* Calcula o valor do 11o. digito de verificação */
posicao = 11;
soma = 0;
for (i=0; i<=9; i++)
{
soma = soma + digito[i] * posicao;
posicao--;
}
digito[10] = soma % 11;
if (digito[10] < 2)
{
digito[10] = 0;
}
else
{
digito[10] = 11 - digito[10];
}
dv = digito[9] * 10 + digito[10];
/* Verifica se o DV calculado é igual ao informado */
if(dv != dvInformado)
{
// exibe mensagem ao usuário.
if(alerta)
{
obj.value = '';

//document.getElementById('alert_cpf').style.display='';
 alert('CPF Invalido!');
}
if(obj != null)
{
obj.focus();
}
return false;
}
else
{
//document.getElementById('alert_cpf').style.display='none';
return true;
}
}



//valida o CPF digitado

function validaCPF(obj,Objcpf){
    var cpf = Objcpf;
    exp = /\.|\-/g
    cpf = cpf.toString().replace( exp, "" );
    var digitoDigitado = eval(cpf.charAt(9)+cpf.charAt(10));
    var soma1=0, soma2=0;
    var vlr =11;
    
    for(i=0;i<9;i++){
        soma1+=eval(cpf.charAt(i)*(vlr-1));
        soma2+=eval(cpf.charAt(i)*vlr);
        vlr--;
    }    
    soma1 = (((soma1*10)%11)==10 ? 0:((soma1*10)%11));
    soma2=(((soma2+(2*soma1))*10)%11);
	


    var digitoGerado=(soma1*10)+soma2;
    if(digitoGerado!=digitoDigitado){
		obj.value = '';
        alert('CPF Invalido!');
	}  
switch (cpf) {
case '0':
case '00':
case '000':
case '0000':
case '00000':
case '000000':
case '0000000':
case '00000000':
case '000000000':
case '0000000000':
case '00000000000':
case '11111111111':
case '22222222222':
case '33333333333':
case '44444444444':
case '55555555555':
case '66666666666':
case '77777777777':
case '88888888888':
case '99999999999':
obj.value = '';
obj.focus();
}

}