
function isCNPJ(p_cnpj) 
{
	return( isCGC(p_cnpj) );
}

function isCGC (p_cgc) 
{
	// testa se campo vazio
	if (p_cgc.length == 0) 
		return false;

	str_cgc= trim(p_cgc);
	
	var  Lbyt_cgc_dig_01 = parseInt (str_cgc.substring (0, 1), 10);
	var  Lbyt_cgc_dig_02 = parseInt (str_cgc.substring (1, 2), 10);
	var  Lbyt_cgc_dig_03 = parseInt (str_cgc.substring (2, 3), 10);
	var  Lbyt_cgc_dig_04 = parseInt (str_cgc.substring (3, 4), 10);
	var  Lbyt_cgc_dig_05 = parseInt (str_cgc.substring (4, 5), 10);
	var  Lbyt_cgc_dig_06 = parseInt (str_cgc.substring (5, 6), 10);
	var  Lbyt_cgc_dig_07 = parseInt (str_cgc.substring (6, 7), 10);
	var  Lbyt_cgc_dig_08 = parseInt (str_cgc.substring (7, 8), 10);
	var  Lbyt_cgc_dig_09 = parseInt (str_cgc.substring (8, 9), 10);
	var  Lbyt_cgc_dig_10 = parseInt (str_cgc.substring (9, 10), 10);
	var  Lbyt_cgc_dig_11 = parseInt (str_cgc.substring (10, 11), 10);
	var  Lbyt_cgc_dig_12 = parseInt (str_cgc.substring (11, 12), 10);
	var  Lbyt_cgc_dig_13 = parseInt (str_cgc.substring (12, 13), 10);
	var  Lbyt_cgc_dig_14 = parseInt (str_cgc.substring (13, 14), 10);

	var  Lint_Soma_Dig = 0;
	var  Lint_Soma = 0;
	var  Lint_Resto = 0;
	var  Lint_dig_ver_1 = 0;
	var  Lint_dig_ver_2 = 0;
		
	//    'testa se campo incompleto
	Lint_dig_ver_1 = -1;
	Lint_dig_ver_2 = -1;
	Lint_Soma_Dig = 0;
	Lint_Resto = 0;

	Lint_Soma_Dig = ((Lbyt_cgc_dig_01 * 5) + 
                     (Lbyt_cgc_dig_02 * 4) + 
                     (Lbyt_cgc_dig_03 * 3) + 
                     (Lbyt_cgc_dig_04 * 2) + 
                     (Lbyt_cgc_dig_05 * 9) + 
                     (Lbyt_cgc_dig_06 * 8) + 
                     (Lbyt_cgc_dig_07 * 7) + 
                     (Lbyt_cgc_dig_08 * 6) + 
                     (Lbyt_cgc_dig_09 * 5) + 
                     (Lbyt_cgc_dig_10 * 4) + 
                     (Lbyt_cgc_dig_11 * 3) + 
                     (Lbyt_cgc_dig_12 * 2));

	Lint_Resto = Lint_Soma_Dig % 11;

	if (Lint_Resto == 0)
		Lint_dig_ver_1 = 0;
	else
		Lint_dig_ver_1 = (11 - Lint_Resto) % 10;

    if (Lbyt_cgc_dig_13 == Lint_dig_ver_1) 
	 {
        Lint_Soma_Dig = 0;
        Lint_Resto = 0;
    
        Lint_Soma_Dig = ((Lbyt_cgc_dig_01 * 6) + 
                         (Lbyt_cgc_dig_02 * 5) + 
                         (Lbyt_cgc_dig_03 * 4) + 
                         (Lbyt_cgc_dig_04 * 3) + 
                         (Lbyt_cgc_dig_05 * 2) + 
                         (Lbyt_cgc_dig_06 * 9) + 
                         (Lbyt_cgc_dig_07 * 8) + 
                         (Lbyt_cgc_dig_08 * 7) + 
                         (Lbyt_cgc_dig_09 * 6) + 
                         (Lbyt_cgc_dig_10 * 5) + 
                         (Lbyt_cgc_dig_11 * 4) + 
                         (Lbyt_cgc_dig_12 * 3) + 
                         (Lbyt_cgc_dig_13 * 2));
    
        Lint_Resto = Lint_Soma_Dig % 11;

        if (Lint_Resto == 0)
            Lint_dig_ver_2 = 0;
        else
            Lint_dig_ver_2 = (11 - Lint_Resto) % 10;
    }

    if( Lbyt_cgc_dig_13 == Lint_dig_ver_1 && 
        Lbyt_cgc_dig_14 == Lint_dig_ver_2)
        return true;
    else
        return false;
}

