/*
**********************************************************************
*        Sistema: PXU                                                *
*       Programa: PXUSCGHM.JS                                        *
*      Descricao: Verificar a validade de um numero de CGC           *
*       Analista: Ronaldo Rapacki                                    *
*    Programador: Alexandre Collatto                                 *
*           Data: Dezembro/94                                        *
*      Alteracao: Marco/99 - Diego Maciel Nobre                      *
*                 Conversao p/ 32 bits                               *
*      Alteracao: Novembro/02                                        *
*                 Retirada da critica que nao permite CGC com        *
*                 'zeros' e com 'noves'.                             *
*                 O CGC das Agencias do Banco do Brasil inicia       *
*                 com 8 'zeros'.                                     *
*      Alteracao: Fevereiro/03 por Capaverde                         *
*                 Acrescentada interface ActiveX                     *
*  Ult.alteracao: Julho/2003 - Charles Diego da Silveira             *
*                 Conversão p/ JavaScript                            *
**********************************************************************
*/
var _pxuscghm = true;

function pxuscghm(numcpfc14)
{
	//*** DECLARAÇÃO DA ESTRUTURA DE PARAMETROS ***
	var xucgcodretornoc02='';
	var xucgnumcgcc14='';
    
	function pxuscghm()
	{
		var numcgc_pi ;
		var soma_i,resto_i,indice_i,i,j;
		
		//*** VERIFICA SE O CGC É NUMERICO ***
		if (this.xucgnumcgcc14.length > 14){
			this.xucgcodretornoc02='01';
			return; }
		numcgc_pi='';
		for (i = 0; i < 14; i++)
		{ 
			if ((this.xucgnumcgcc14.substring(i,i+1) >= '0') && (this.xucgnumcgcc14.substring(i,i+1) <= '9')) {
				numcgc_pi += this.xucgnumcgcc14.substring(i,i+1); }
			else {
				this.xucgcodretornoc02='01';
				return; }
		}
		//*** VALIDA O CGC ***
		for (j = 11; j < 13; j++)
		{
			for (soma_i = 0, indice_i = 2, i = j; i >= 0; i--)
			{
				soma_i += numcgc_pi.substring(i,i+1) * indice_i;
				if (indice_i < 9) {
					indice_i++; }
				else {
					indice_i = 2; }
			}
			resto_i = soma_i % 11;
			if ((resto_i == 1) || (resto_i == 0)) {
				resto_i = 0; }
			else {
				resto_i = 11 - resto_i; }
	
			if (numcgc_pi.substring(j+1,j+2) != resto_i) {
				this.xucgcodretornoc02='01';
				return; }
		}
		this.xucgcodretornoc02='00';
	}
	
	//*** DECLARAÇÃO DO EVENTO DA PXU ***
    this.xucgnumcgcc14=numcpfc14;
    
    this.pxuscghm=pxuscghm;
}