function valida_CPF(s) { 
	var i;
	var c = s.substr(0,9); 
	var dv = s.substr(9,2); 
	var d1 = 0; 
	
	for (i = 0; i < 9; i++) 
	{ 
		d1 += c.charAt(i)*(10-i); 
	} 
	
	if (d1 == 0) {
		alert("CPF inválido");
		return false;
	}
	
	d1 = 11 - (d1 % 11); 
	
	if (d1 > 9) d1 = 0; 
	
	if (dv.charAt(0) != d1) 
	{ 
		alert("CPF inválido");
		return false; 
	} 
	
	d1 *= 2; 
	
	for (i = 0; i < 9; i++) 
	{ 
		d1 += c.charAt(i)*(11-i); 
	} 
	
	d1 = 11 - (d1 % 11); 
	
	if (d1 > 9) d1 = 0; 
	
	if (dv.charAt(1) != d1) 
	{ 
		alert("CPF inválido");
		return false; 
	}
	return true; 
} 

function validaCNPJ(campo) {
	CNPJ = campo;
	erro = new String;
	
	//substituir os caracteres que nao sao numeros
	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("/","");
	}
	
	var nonNumbers = /\D/;
	
	if (nonNumbers.test(CNPJ)) erro += "A verificação de CNPJ suporta apenas números \n\n"; 
	
	var a = [];
	var b = new Number;
	var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
	
	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])){
		erro +="CNPJ inválido";
	}
	
	if (erro.length > 0 && campo.value != ''){
		alert(erro);
		campo.value = '';
		campo.focus()
		return false;
	} else {
	}
	
	return true;
}

