﻿
function validarCNPJ(obj)
{
    var CNPJ       = obj,
        x          = '',
        nonNumbers = /\D/,
        a          = [],
        b          = new Number,
        c          = [6,5,4,3,2,9,8,7,6,5,4,3,2],
        i          = 0,
        y          = 0;
    
    try
    {
	    if (CNPJ.length == 19)
	    {
		    CNPJ = CNPJ.substring(1, CNPJ.length);
		}
        if (CNPJ.length < 18)
        {
            return false;
        }
        if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-"))
        {
            return false;
        }
        if (document.layers && parseInt(navigator.appVersion) == 4)
        {
    	    x  = CNPJ.substring( 0,  2);
            x += CNPJ.substring( 3,  6);
            x += CNPJ.substring( 7, 10);
            x += CNPJ.substring(11, 15);
            x += CNPJ.substring(16, 18);
            CNPJ = x; 
	    }
	    else
	    {
    	    CNPJ = CNPJ.replace(".", "");
            CNPJ = CNPJ.replace(".", "");
            CNPJ = CNPJ.replace("-", "");
            CNPJ = CNPJ.replace("/", "");
        }
        if (nonNumbers.test(CNPJ))
        {
            return false;
        }
        for ( i = 0; i < 12; i++)
        {
    	    a[i] = CNPJ.charAt(i);
            b += a[i] * c[i+1];
	    }
        if ((x = b % 11) < 2)
        {
            a[12] = 0;
        }
        else
        {
            a[12] = 11-x;
        }
        b = 0;
        for (y = 0; y < 13; y++)
        {
    	    b += (a[y] * c[y]); 
        }
        if ((x = b % 11) < 2)
        {
            a[13] = 0;
        }
        else
        {
            a[13] = 11 - x;
        }
        if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13]))
        {
	        return false;
        }
	    return true;
    }
    catch(e){ }
}
