function Validar_CNPJ(nr_cnpj)
{
	cnpj = Limpa(nr_cnpj);
	if(cnpj == 0) {
		return (false);
	}
	else {
		g = cnpj.length-2;
		if(Testar_Cnpj(cnpj,g) == 1) {
			g = cnpj.length-1;
			if(Testar_Cnpj(cnpj,g) == 1) {	
				return (true);
			}
			else {
				return (false);
			}
		}
		else {
			return (false);
		}
	}
}

function Limpa(S)
{
	var Digitos = "0123456789";
	var temp = "";
	var digito = "";
	for (var i=0; i<S.length; i++){
		digito = S.charAt(i);
		if (Digitos.indexOf(digito)>=0) {
			temp = temp + digito;
		}
	}
	return temp;
}

function Inverte(S)
{
	var temp = "";
	for (var i=0; i<S.length; i++) {
		temp = S.charAt(i) + temp;
	}
    return temp;
}

function Resto(S)
{
	var invertido = Inverte(Limpa(S));
	var soma = 0;
	for (var i=0; i<invertido.length; i++) {
		soma = soma + (i+2) * eval(invertido.charAt(i));
	}
	soma *= 10;
	return ((soma % 11) % 10);
}

function Testar_Cnpj(cnpj,g)
{
	var vercnpj = 0;
	var ind = 2;
	var tam;
	for(f=g;f>0;f--) {
		vercnpj += parseInt(cnpj.charAt(f-1))*ind;
		if(ind>8) {
			ind = 2;
		}
		else {
			ind++;
		}
	}
	vercnpj %= 11;
	if(vercnpj == 0 || vercnpj == 1) {
		vercnpj = 0;
	}
	else {
		vercnpj = 11 - vercnpj;
	}
	if(vercnpj != parseInt(cnpj.charAt(g))) {
		return(0);
	}
	else {
		return(1);
	}
}