function validaCNPJ(input) {
	if (!validarCNPJ(input.value)) {
		alert("CNPJ inválido!");
		return false;
	}
	return true;
}

function validarCNPJ(cnpj){
	var ret = false;
	// 12.345.678/9012-34 => 12.456.890/2345-78
	cnpj = cnpj.replace(".","").replace(".", "");
	cnpj = cnpj.replace("-","");
	cnpj = cnpj.replace("/","");

	if (cnpj.length != 14) {
		return false;
	}
	else if (cnpj == "00000000000000") {
		return false;
	}
	else {
		var soma = 0;
		var d1;
		var d2;
		var resto;
		for (var i = 0; i < 4; i++) {
			soma += parseInt(cnpj.charAt(i)) * (5 - i);
		}
		for (var i = 4; i < 12; i++) {
			soma += parseInt(cnpj.charAt(i)) * (13 - i);
		}
		resto = soma % 11;
		if (resto == 0 || resto == 1) {
			d1 = 0;
		}
		else {
			d1 = 11 - resto;
		}

		if (d1 != parseInt(cnpj.charAt(12))) {
			return false;
		}
		else {
			soma = 0;
			for (var i = 0; i < 5; i++) {
				soma += parseInt(cnpj.charAt(i)) * (6 - i);
			}
			for (var i = 5; i < 13; i++) {
				soma += parseInt(cnpj.charAt(i)) * (14 - i);
			}
			resto = soma % 11;
			if (resto == 0 || resto == 1) {
				d2 = 0;
			}
			else {
				d2 = 11 - resto;
			}

			return (d2 == parseInt(cnpj.charAt(13)));
		}
	}
	return false;
}

function validaCPF(input) {
	if (!validarCPF(input.value)) {
		alert("CPF inválido!");
	}
}

function validarCPF(CPF) {
	CPF = CPF.substr(0,3) + CPF.substr(4,3) + CPF.substr(8,3) + CPF.substr(12,2);
	if (CPF.length != 11 || CPF == "00000000000" || CPF == "11111111111" ||
		CPF == "22222222222" ||	CPF == "33333333333" || CPF == "44444444444" ||
		CPF == "55555555555" || CPF == "66666666666" || CPF == "77777777777" ||
		CPF == "88888888888" || CPF == "99999999999")
		return false;
	soma = 0;
	for (i=0; i < 9; i ++)
			soma += parseInt(CPF.charAt(i)) * (10 - i);
	resto = 11 - (soma % 11);
	if (resto == 10 || resto == 11)
		resto = 0;
	if (resto != parseInt(CPF.charAt(9)))
		return false;
	soma = 0;
	for (i = 0; i < 10; i ++){
			soma += parseInt(CPF.charAt(i)) * (11 - i);
	}
	resto = 11 - (soma % 11);
	if (resto == 10 || resto == 11)
		resto = 0;
	if (resto != parseInt(CPF.charAt(10))) {
		return false;
	}
	return true;
}

function validaData(input) {
	if (!validarData(input.value)) {
		alert("Data inválida!");
	}
}

function validarData(data) {
	var erro = false;
	if (data.length != 10) {
		erro = true;
	}
	else {
		var x = data.split("/");
		if (x[0].length != 2 || x[1].length != 2 || x[2].length != 4) {
			erro = true;
		}
		else {
			switch (x[1]) {
			case "02":
				if (x[2] % 4 == 0) {
					if (x[0] > 29) {
						erro = true;
					}
				}
				else {
					if (x[0] > 28) {
						erro = true;
					}
				}
				break;
			case "01":
			case "03":
			case "05":
			case "07":
			case "08":
			case "10":
			case "12":
				if (x[0] > 31) {
					erro = true;
				}
				break;
			case "04":
			case "06":
			case "09":
			case "11":
				if (x[0] > 30) {
					erro = true;
				}
				break;
			default:
				erro = true;
				break;
			}
		}
	}
	return !erro;
}

function validaEmail(input) {
	if (!validarEmail(input.value)) {
		alert("E-mail inválido!");
	}
}

function validarEmail(email) {
	return !(email.indexOf("@") == -1 || email.indexOf(".") == -1 || email == "");
}
 
function ajustarCEP(input, e){
	if (!soNumeros(e)) {
		return false;
	}
	if(input.value.length==5){
			input.value += "-" ;
	}
}


function ajustarCNPJ(input, e) {
	if (!soNumeros(e)) {
		return false; 
	}
	// 12.456.890/2345-78
	if (input.value.length == 2 || input.value.length == 6) {
		input.value += "." ;
	}
	if (input.value.length == 10) {
		input.value += "/";
	}
	if (input.value.length == 15) {
		input.value += "-";
	}
}

function ajustarCPF(input, e) {
	if (!soNumeros(e)) {
		return false;
	}
	if ((input.value.length==3) || (input.value.length==7))
		input.value += "." ;
	if (input.value.length==11)
		input.value += "-";
}

function ajustarData (input, e) {
	if (!soNumeros(e)) {
		return false;
	}
	if (input.value.length == 2) {
		input.value += "/" ;
	}
	if (input.value.length == 5) {
		input.value += "/" ;
	}
}

function ajustarEstadual(input, e){
	if (!soNumeros(e)) {
		return false;
	}
	if ((input.value.length==2) || (input.value.length==6)) {
		input.value += "." ;
	}
	if (input.value.length==10) {
		input.value += "-";
	}
}

function ajustarTel(input, e) {
	if (!soNumeros(e)) {
		return false;
	}
	if(input.value.length==4) {
		input.value += "-" ;
	}
}

function soNumeros(e) {
	if (document.all) { // ie
		if((event.keyCode < 48 || event.keyCode > 57) && event.keyCode != 8 && event.keyCode != 0){
			event.returnValue = false; 
			return false;
		}
	}
	else {
		if((e.which < 48 || e.which > 57) && e.which != 8 && e.which != 0){
			e.preventDefault();
			return false;
		}		
	}
	return true;
}

function getHttpRequest(handler) { 
	var objXmlHttp = null;
	
	if (navigator.userAgent.indexOf("MSIE") >= 0) { 
		var strName = "Msxml2.XMLHTTP";
		if (navigator.appVersion.indexOf("MSIE 5.5") >= 0) {
			strName = "Microsoft.XMLHTTP";
		}
		try {
			objXmlHttp = new ActiveXObject(strName);
			objXmlHttp.onreadystatechange = handler;
			return objXmlHttp;
		}
		catch (e) {
			alert("Error. Scripting for ActiveX might be disabled") ;
			return null;
		}
	}
	else if (navigator.userAgent.indexOf("Mozilla") >= 0) {
		objXmlHttp = new XMLHttpRequest();
		objXmlHttp.onload = handler;
		objXmlHttp.onerror = handler;
		return objXmlHttp;
	}
	else if (navigator.userAgent.indexOf("Opera") >= 0) {
		alert("This example doesn't work in Opera");
		return null;
	}
}