function carregarMenu(url){
	var carregador = new Carregador();
	carregador.carregar(url);	
}
function carregarPHP(url){	
	var carregador = new Carregador();
	carregador.carregarPHP(url);	
}

function Carregador(){

	var erro1 = "Sua versão do \""+navigator.appName+"\" não suporta AJAX";
	var erro2 = "Ops! Ocorreu um problema no processamento!";
	
	var carregando = "<br /><br />";
		carregando += "<table height='200px' width='100%'>";
		carregando +=   "<tr>";
		carregando += 		"<td align='center'>";
		carregando += 			"<img src='img/pre_loader.gif' />";
		carregando += 			"<br />carregando...";
		carregando += 		"</td>";
		carregando += 	"</tr>";
		carregando += "</table>";
		carregando += "<br /><br />";


	this.carregar = function(url){
		var conteudo = document.getElementById("conteudo");
		conteudo.innerHTML = carregando;		
		this.get("php/carregador.php", "?url="+url);
	}
	this.carregarPHP = function(urlComParametros){
		var conteudo = document.getElementById("conteudo");
		conteudo.innerHTML = carregando;	
		var partes = urlComParametros.split("?");
		var url = partes[0];
		var parametros = "?"+partes[1];
		this.get(url, parametros);
	}	
	this.enviarEmail = function(nome, email, cidade, uf, msg){
		this.getEnviarEmail("php/email.php", "?nome="+nome+"&email="+email+"&cidade="+cidade+"&uf="+uf+"&msg="+msg);
	}
	this.convidarEMME = function(nomeIgreja, logradouro, numero, complemento, bairro, cep, cidade, uf, fone1, fone2, email, pastor, fonePastor, comentario){
		this.getConvidarEMME("php/convidarEMME.php", "?nomeIgreja="+nomeIgreja+"&logradouro="+logradouro+"&numero="+numero+"&complemento="+complemento+"&bairro="+bairro+"&cep="+cep+"&cidade="+cidade+"&uf="+uf+"&fone1="+fone1+"&fone2="+fone2+"&email="+email+"&pastor="+pastor+"&fonePastor="+fonePastor+"&comentario="+comentario);
	}
	
	function putConteudo(conteudo){
		var objeto = document.getElementById("conteudo");
		objeto.innerHTML = conteudo;
		executarScripts(conteudo);
	}
		
	this.get = function(url, parameters) {
		try{
		  http_request = getHttpRequest();
		  http_request.onreadystatechange = this.tratar;
		  http_request.open('GET', url + parameters, true);
		  http_request.send(null);
		}catch(erro){
			if(erro == this.erro1){
				alert(erro1);	
			}
		}
	}		
	this.getEnviarEmail = function(url, parameters) {
		try{
		  http_request = getHttpRequest();
		  http_request.onreadystatechange = this.tratarEnviarEmail;
		  http_request.open('GET', url + parameters, true);
		  http_request.send(null);
		}catch(erro){
			if(erro == this.erro1){
				alert(erro1);	
			}
		}
	}	
	this.getConvidarEMME = function(url, parameters){
		try{
		  http_request = getHttpRequest();
		  http_request.onreadystatechange = this.tratarConvidarEMME;
		  http_request.open('GET', url + parameters, true);
		  http_request.send(null);
		}catch(erro){
			if(erro == this.erro1){
				alert(erro1);	
			}
		}
	}
	
	this.tratar = function() {
	  if (http_request.readyState == 4) {
		 if (http_request.status == 200) {
			if(http_request.responseText != ""){
				var conteudo = http_request.responseText.replace(/"/g, "'");
				conteudo = conteudo.replace(/===/g, "\"");
				putConteudo(conteudo);
			}else{
				alert(erro2);
				carregarMenu("home.html");
			}
		 }
	  }
	}		
	this.tratarEnviarEmail = function() {
	  if (http_request.readyState == 4) {
		 if (http_request.status == 200) {
			if(http_request.responseText != ""){
				 if(http_request.responseText == "ok"){
					alert("Email enviado com sucesso!"); 
					document.getElementById("formEmail").reset();
				 }else{
					alert("Ocorreu um erro no envio do email!"); 
				 }
			}
		 }
	  }
	}				
	this.tratarConvidarEMME = function() {
	  if (http_request.readyState == 4) {
		 if (http_request.status == 200) {
			if(http_request.responseText != ""){
				 if(http_request.responseText == "ok"){
					alert("Convite enviado com sucesso!"); 
					document.getElementById("formConvite").reset();
				 }else{
					alert("Ocorreu um erro no envio do convite!"); 
				 }
			}
		 }
	  }
	}		
	
	function getHttpRequest() {
		  http_request = false;
		  if (window.XMLHttpRequest) { // Mozilla, Safari,...
			 http_request = new XMLHttpRequest();
		  } else if (window.ActiveXObject) { // IE
			 try {
				http_request = new ActiveXObject("Msxml2.XMLHTTP");
			 } catch (e) {
				try {
				   http_request = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			 }
		  }
		  if (!http_request) {
			 throw this.erro1;
		  }
		  return http_request;
	}	
	
	function executarScripts(conteudo){  
		var div = document.getElementById('scripts');
		var newElement = document.createElement("script");
		var newDiv = document.createElement("div");
		newDiv.innerHTML = conteudo;
		var scripts = newDiv.getElementsByTagName("script");
		var temp = "";
        for(i = 0; i < scripts.length; i++){
            newElement.text += scripts[i].innerHTML;
       }
	   div.appendChild(newElement);
	}

}	

