// Função para validação de CPNPJ

var x = 0

//inclui a máscara no CNPJ
function FormataCNPJ()
{
	var campo = window.event.srcElement;

	switch (campo.value.length)
	{
		case 2:
			campo.value = campo.value + ".";
			break;
		case 6:
			campo.value = campo.value + ".";
			break;
		case 10:
			campo.value = campo.value + "/";
			break;
		case 15:
			campo.value = campo.value + "-";
			break;
	}					
}

//Funcao para tirar os caracteres diferentes de numeros
function limpa_string(valor)
{					
	var checkStr = valor;
	var VarCnpj = ""
	x = 0
					
	for (i = 0;  i < checkStr.length;  i++)
	{
		ch = checkStr.charAt(i);
		if (!isNaN(ch))
		{
			VarCnpj += ch
		}
		else
		{
			x++
		}
	}	

	return VarCnpj
}
				
//Funcao para validar se o CNPJ e valido
function valida_Cnpj(s)
{	
	Obj = s
	var i;
	s = limpa_string(s.value);	
					
	//caso não informe o valor
	if (s=="")
		return true
						
	var c = s.substr(0,12);
	var dv = s.substr(12,2);
	var d1 = 0;
				
	for (i = 0; i < 12; i++)
	{
		d1 += c.charAt(11-i)*(2+(i % 8));
	}
					
	if (d1 == 0) 
	{
		alert("CNPJ Inválido!");
		Obj.select()
		return false;
	}
						
	d1 = 11 - (d1 % 11);
					
	if (d1 > 9) 
		d1 = 0;
						
	if (dv.charAt(0) != d1)
	{
		alert("CNPJ Inválido!");
		Obj.select()
		return false;
	}
	
	d1 *= 2;
	for (i = 0; i < 12; i++)
	{
		d1 += c.charAt(11-i)*(2+((i+1) % 8));
	}
				
	d1 = 11 - (d1 % 11);
				
	if (d1 > 9) 
		d1 = 0;
					
	if (dv.charAt(1) != d1)
	{
		alert("CNPJ Inválido!");
		Obj.select()
		return false;
	}

	if (x==0)
	{
		var VarCnpjFrm = ""
		
		for (y = 0;  y < s.length;  y++)
		{
			ch = s.charAt(y);
			VarCnpjFrm = VarCnpjFrm + ch

			switch (y)
			{
				case 1:
					VarCnpjFrm = VarCnpjFrm + ".";
					break;
				case 4:
					VarCnpjFrm = VarCnpjFrm + ".";
					break;
				case 7:
					VarCnpjFrm = VarCnpjFrm + "/";
					break;
				case 11:
					VarCnpjFrm = VarCnpjFrm + "-";
					break;
			}
		}
		Obj.value = "";
		Obj.value = VarCnpjFrm;
	}	
					
	return true;
}

