/*
----------------------------------------------------------------------------------------------------------------------------------------------------
Data Início							:	Goiânia, segunda-feira, 15 de maio de 2000 às 15:14 hs
Data Fim								:	Goiânia, segunda-feira, 15 de maio de 2000 às 00:00 hs
Data de Atualização		:	
Autor										:	Marcelo de Oliveira Assis
													Bruno Estevão Monteiro Guida
Objetivo								:	Validar o dígito verificador de um número de CPF
													Exemplo : 
Nome									:	Function ValidaCPF ( )
Padrões								:	. Cabeçalho em toda função, com as informações acima
													. Nome da função sempre intuitiva, com iniciais maiúsculas, sem espaços, sem sublinha
													. Variáveis sempre declaradas, com a seguinte nomenclatura :
														- V - Variáveis - Início de todo nome de variável
														- P - Parâmetro - Variável de parâmetro
														- Nome - Sempre intuitivo, com as iniciais maiúsculas, sem espaços, sem sublinha
														- VNomeRazaoSocial - nome ou razão social de um contribuinte
													. Marcar todo inicío e final de bloco com a seguinte nomenclatura :
														- F01 - início e final da primeira função, 02 para a segunda, etc . . .
														- I01 - início e final do primeiro if, 02 para o segundo, etc . . .
														- Fo01 - início e final do primeiro for, 02 para o segundo, etc . . .
----------------------------------------------------------------------------------------------------------------------------------------------------
*/

/* -------------------- Início da função de validação do CPF*/
function ValidaCPF(VPCPF)
{ // F01
  
/* -------------------- Declaração de Variáveis */
	var VCPF = VPCPF; // Número do CPF a ser validado, recebido como parâmetro
	var VTamanhoCPF; // Tamanho do número digitado como CPF
	var I; // Contador
	var J = 10; // Contador
	var VNumeros; // Variável
	var VTotal = 0; // Recebe a Soma do Produto pelos seus respectivos pesos
	var VDigito1; // Recebe Primeiro Dígito
	var VResto; // Recebe o Resto da Divisão
	var VValor; // dd
	var VPosicao; // dd
	var retorno

	/* -------------------- Valida o primeiro dígito verificador do CPF */
	/* -------------------- Laço para a soma do produtos dos dígitos pelos seus respectivos pesos */
	for (I = 0; I < 9; I++)
	{ // Fo01
		VPosicao = VCPF.charAt(I);
		VTotal = VTotal + (VPosicao * J);
		J--;
	} // Fo01

	/* -------------------- Calcula o resto do primeiro dígito */
	VResto = VTotal * 10
	VResto %= 11

	/* -------------------- Verifica se o resto é igual a 10 */
	if (VResto == 10)
	{ // I02
		VResto = 0;
  	} // I02
	
	//--------- Valida CPF 99999999999
	var DigitoTest = VCPF.charAt(VCPF.length-1);
	var NumSeq     = "";
	var t
	for(t=1;t<=VCPF.length;t++) NumSeq+= DigitoTest; 
	if(parseInt(VCPF,10) == parseInt(NumSeq,10))
	{
		alert('CPF inválido!');
		return false;
	}
	
	/* -------------------- Verifica se o dígito recebido é igual ao resto */
	if (VCPF.charAt(9) != VResto)
	{ // I03
		alert('CPF incorreto');
		return false;
	} // I03

	/* -------------------- Verifica 2º dígito verificador */
	
	J = 11;
	VTotal = 0
	for (I = 0; I < 10; I++)
	{ // Fo02
		VPosicao = VCPF.charAt(I);
		VTotal = VTotal + (VPosicao * J);
		J--;
	} // Fo02

	VResto = VTotal * 10
	VResto %= 11
	
	if (VResto == 10)
	{
    	VResto = 0;
	}

	if (VCPF.charAt(10) != VResto)
	{
		alert('CPF incorreto');
		return false;
	}

	return true;
	
} // F01

