// JavaScript Document
function campo_vazio(form){
	// Valida campos vazios
	var bVazio = false;
	var inputs = form.getElementsByTagName("input");
	for(var i = 0; i < inputs.length; i++){
		classe = inputs[i].className.replace(/\s(vazio|preenchido)/gi,"");
		if((inputs[i].getAttribute("type") == "text" || inputs[i].getAttribute("type") == "password") && inputs[i].getAttribute("obrigatorio") == "true" && inputs[i].style.display != 'none'){
			if(!inputs[i].value.length){
				inputs[i].className = classe + " vazio";
				bVazio = true;
			}else inputs[i].className = classe + " preenchido";
		}
	}
	
	var textarea = form.getElementsByTagName("textarea");
	for(var i = 0; i < textarea.length; i++){
		classe = textarea[i].className.replace(/\s(vazio|preenchido)/gi,"");

		if(textarea[i].getAttribute("obrigatorio") == "true"){
			if(!textarea[i].value.length){
				textarea[i].className = classe + " vazio";
				bVazio = true;
			}else textarea[i].className = classe + " preenchido";
		}else textarea[i].className = classe + " preenchido";
	}
	
	var selects = form.getElementsByTagName("select");
	for(var i = 0; i < selects.length; i++){
		classe = selects[i].className.replace(/\s(vazio|preenchido)/gi,"");

		if(selects[i].getAttribute("obrigatorio") == "true"){
			if(selects[i].selectedIndex == 0){
				selects[i].className = classe + " vazio";
				bVazio = true;
			}else selects[i].className = classe + " preenchido";
		}else selects[i].className = classe + " preenchido";
	}
	
	return bVazio;
}

function isNumberKey(evt){
	var charCode = (evt.which) ? evt.which : event.keyCode
	if (charCode > 31 && (charCode < 48 || charCode > 57)) return false;
	
	return true;
}

function valida_email(email) {
	var oRegExp = new RegExp(/^([a-zA-Z0-9_\.-])+@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/);
	return(oRegExp.test(email));
}

function valida_data(dia,mes,ano){
	data = dia + "/" + mes + "/" +  ano;
	var validformat = new RegExp(/^\d{2}\/\d{2}\/\d{4}$/);

	if (!validformat.test(data)) return false;
	else{ //Detailed check for valid date ranges
		var dayobj = new Date(ano, mes-1, dia);
		
		if ((dayobj.getMonth()+1 != mes) || (dayobj.getDate() != dia) || (dayobj.getFullYear() != ano)) return false;
		else return true;
	}
}

function removeElement(obj){
	if (obj.hasChildNodes()){
		while ( obj.childNodes.length >= 1 ){
			obj.removeChild( obj.firstChild );
		}
	}
	
	obj.parentNode.removeChild(obj);
}

function limpaElemento(obj){
	if (obj.hasChildNodes()){
		while ( obj.childNodes.length >= 1 ){
			obj.removeChild( obj.firstChild );
		}
	}	
}

function GetXmlHttpObject(){
	var oXmlHttp = false;
	try{oXmlHttp = new XMLHttpRequest();} // Firefox, Opera 8.0+, Safari
	catch(e){
		try{oXmlHttp = new ActiveXObject('Msxml2.XMLHTTP');} // Internet Explorer 6+
		catch(e){oXmlHttp = new ActiveXObject('Microsoft.XMLHTTP');} // Internet Explorer 5.5
	}
	return oXmlHttp;
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function validaCPF(CPF) {
	if(!CPF.length) return false;
	if(CPF.length < 11) return false;
	var a = [];
	var b = new Number;
	var c = [11,10,9,8,7,6,5,4,3,2];
	for (i=0; i<9; i++){
		a[i] = CPF.charAt(i);
		b += a[i] * c[i+1];
	}
	
	if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }
	b = 0;
	
	for (y=0; y<10; y++) {
		b += (a[y] * c[y]);
	}
	
	if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }
	if ((CPF.charAt(9) != a[9]) || (CPF.charAt(10) != a[10])){
		return false;
	}
	
	return true;
}

function formata_cpf(obj,bFormata,bValida){
	if(!obj.value.length || obj.value.length < 11) return false;
	
	cpf = obj.value.replace(/\W/g,"");

	if(bFormata){
		// Validar CPF
		if(bValida){
			if(!validaCPF(obj.value.replace(/[\.\-\/]/g,""))){
				alert("O CPF é inválido, verifique se digitou o número corretamente.");
				return false;
			}
		}
		
		cpf1 = cpf.substr(0,3);
		cpf2 = cpf.substr(3,3);
		cpf3 = cpf.substr(6,3);
		cpf4 = cpf.substr(9,2);
		
		obj.value = cpf1 + "." + cpf2 + "." + cpf3 + "-" + cpf4;
	}else obj.value = cpf;
}

function formata_cep(obj,bFormata,bValida){
	if(!obj.value.length || obj.value.length < 8) return false;

	cep = obj.value.replace(/\W/g,"");
	
	if(bFormata){
		//Valida CEP
		if(bValida){
			if(cep.length < 8){
				alert("O CEP é inválido, verifique se digitou o número corretamente.");
				return false;
			}
		}
	
		cep1 = cep.substr(0,5);
		cep2 = cep.substr(5,3);
		
		obj.value = cep1 + "-" + cep2;
	}else obj.value = cep;
}

function formata_telefone(obj,bFormata,bValida){
	if(!obj.value.length || obj.value.length < 7) return false;

	tel = obj.value.replace(/\W/g,"");

	if(bFormata){
		//Valida CEP
		if(bValida){
			if(tel.length < 7){
				alert("O Telefone é inválido, verifique se digitou o número corretamente.");
				return false;
			}
		}
	
		tel1 = tel.substr(0,parseInt(tel.length/2));
		tel2 = tel.substr(parseInt(tel.length/2),4);
		
		obj.value = tel1 + "-" + tel2;
	}else obj.value = tel;
}
