// classe para validações
/*	
	Os parametros passados para a validação são o ID do input, onde o mesmo deverá estar entre '' (aspas simples).
	Ex. de uso:		
		<form action="acao.php" onsubmit="return Validacao.ValidaItens('campoNome', 'itAssunto', 'frMensagem', 'oEmail', n);" method="post">
		** n -> é possivel iserir quantos campos quiser
*/

window.onload = loadFunctions;

function loadFunctions(){
	if (gE("pagPrincipal")){
		abrePopUp('radio/index.php', 'radio', 322, 150);
	}
}

function gE(ID){
	return document.getElementById(ID);
}

var Validacao = {
	ValidaItens: function(){
		var args = Validacao.ValidaItens.arguments; // coloca os parametros em uma variavel no qual se tornará um Array
		if (args.length > 0){ // verifica se há parametros atribuidos a função
			for (var x = 0; x < args.length; x++){
				var vItem = gE(args[x]);
				if (vItem.value == "" || vItem.value == null){
					vItem.focus();
					vItem.style.border = 'solid 1px red';
					alert("Campo em branco");
					return(false);
				}else{
					vItem.style.border = '';
				}				
				//verifica se há algum campo de e-mail para chamar o validaEmail
				var vCampo = args[x].toLowerCase();		
				if (vCampo.indexOf('email') > 0){
					if (Validacao.ValidaEmail(vItem) == false)
						return(false);
				}				
			} // fim do for			
			return(true);
		}else{
			alert('Ocorreu um erro ao realizar operação');
			return(false);			
		}// else (args.length > 0){
	}, // fim do ValidaItens
	
	ValidaEmail: function(pCampo){
		var email = pCampo.value;
		var resp = email.search(/(\w[\w\.\+]+)@(.+)\.(\w+)$/)==0;
		
		if (resp == false){
			pCampo.focus();
			pCampo.style.border = 'solid 1px red';
			alert('E-mail inválido');
			return(false);
		}else{
			return(true);
		}
	}
};

function abrePagina(pUrl){
	document.location = pUrl;
}

// abre pop-up
function abrePopUp(url, id, largura, altura){
	window.open(url, id, 'width='+largura+', height='+altura+', toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, menubar=no');
}

function setLoading(opt, local){
	var refer = gE(local);
		
	if (opt == true) {						
		refer.innerHTML = "";
		refer.style.textAlign = "center";
		var img = document.createElement('img');			
		img.setAttribute('src','img/loader.gif');
		img.setAttribute('id','loading');			
		img.setAttribute('width','16');						
		if (!document.getElementById('loading')) {				
			refer.insertBefore(img, refer.firstChild);				
		}
	}else if (opt == false) {			
		refer.style.textAlign = "";
		var imgLoading = gE('loading');			
		if (imgLoading) {
			imgLoading.parentNode.removeChild(imgLoading);
		}
	}
}

function abrePaginaAjax(url, local){
	var conteudo = gE(local);
	var ajax = openAjax();
	ajax.open('GET', url, true);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 1){
			conteudo.innerHTML = '';
			setLoading(true, local);
		} // if->readyState->1
		if (ajax.readyState == 4){				
			if (ajax.status == 200){				
				setLoading(false, local);
				conteudo.style.textAlign = 'left';						
				conteudo.innerHTML = ajax.responseText;										
			}// id->ajax.status->200
			else{
				conteudo.innerHTML = "Erro ao carregar a dados";				
			}
		}// if->readyState->4
	}// ajax.readystatechange
	ajax.send(null);
	return false;		
}

function openAjax() {
	var ajax;
	try {
		ajax = new XMLHttpRequest();
	} catch(ee) {
		try {
			ajax = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				ajax = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(E) {
				ajax = false;
			}
		}
	}
	return ajax;
}