function validaCpf(objCpf) {
	var CPF = objCpf.value; // Recebe o valor digitado no campo
	
	if(	CPF.length < 11 && CPF != ''){
		alert("Preencha o campo CPF corretamente.");
		objCpf.style.backgroundColor = "#FFD0D2";
		objCpf.style.border = "1px #fb868b solid";

		return false;
	}

	// Verifica se o campo é nulo
	if (CPF == '') {
		objCpf.style.backgroundColor = "#FFD0D2";
		objCpf.style.border = "1px #fb868b solid";
		return false;

	}

	switch (CPF) {
		case "00000000000":
		case "11111111111":
		case "22222222222":
		case "33333333333":
		case "44444444444":
		case "55555555555":
		case "66666666666":
		case "77777777777":
		case "88888888888":
		case "99999999999":
			alert("CPF inválido");
			return false;
			break;
	} 

	// Aqui começa a checagem do CPF
	var POSICAO, I, SOMA, DV, DV_INFORMADO;
	var DIGITO = new Array(10);
	DV_INFORMADO = CPF.substr(9, 2); // Retira os dois últimos dígitos do número informado
	
	// Desemembra o número do CPF na array DIGITO

	for (I=0; I<=8; I++) {
	  DIGITO[I] = CPF.substr( I, 1);
	}

	// Calcula o valor do 10º dígito da verificação
	POSICAO = 10;
	SOMA = 0;
	for (I=0; I<=8; I++) {
	  SOMA = SOMA + DIGITO[I] * POSICAO;
	  POSICAO = POSICAO - 1;
	}

	DIGITO[9] = SOMA % 11;
	if (DIGITO[9] < 2) {
		DIGITO[9] = 0;
	}
	else{
		   DIGITO[9] = 11 - DIGITO[9];
	}

	// Calcula o valor do 11º dígito da verificação

	POSICAO = 11;
	SOMA = 0;
	for (I=0; I<=9; I++) {
	  SOMA = SOMA + DIGITO[I] * POSICAO;
	  POSICAO = POSICAO - 1;
	}

	DIGITO[10] = SOMA % 11;
	if (DIGITO[10] < 2) {
		DIGITO[10] = 0;
	}
	else {
		DIGITO[10] = 11 - DIGITO[10];
	}
	
	// Verifica se os valores dos dígitos verificadores conferem
	DV = DIGITO[9] * 10 + DIGITO[10];
	
	if (DV != DV_INFORMADO) {
		alert('CPF inválido');
		objCpf.value = '';
		objCpf.focus();
		objCpf.style.backgroundColor = "#FFD0D2";
		objCpf.style.border = "1px #fb868b solid";
		return false;
	}
	
	objCpf.style.backgroundColor = "#F1FFDB";
	objCpf.style.border = "1px #a9df5c solid";
	
	return true;
}
