/* Função para inicializar um objeto AJAX */
function openAjax()
{
	var ajax;
	try
	{
		ajax = new XMLHttpRequest(); // XMLHttpRequest para browsers decentes, como: Firefox, Safari, dentre outros.
		/*if (ajax.overrideMimeType)
		{
			ajax.overrideMimeType('text/html');
		}*/
	}
	catch(ee)
	{
		try
		{
			ajax = new ActiveXObject("Msxml2.XMLHTTP"); // Para o IE da MS
		}
		catch(e)
		{
			try
			{
				ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Para o IE da MS
			}
			catch(E)
			{
				ajax = false;
				//alert('Este navegador não dá suporte a aplicações com tecnologia AJAX!');
			}
		}
	}
	return ajax;
}

/* Envia informações a outra página, utilizando XMLHTTPRequest [GET,POST] */
function enviarInformacoes(caminho,parametros,id_destino,id_mensagem,msg_inicial,msg_erro,msg_final,funcao_pos,funcao_erro,metodo)
{
	var exibeResultado = (document.getElementById(id_destino)) ? document.getElementById(id_destino) : false;
	var mensagem       = (document.getElementById(id_mensagem)) ? document.getElementById(id_mensagem) : false;
	var ajax = openAjax();
	if(metodo == 'POST' || metodo == 'post' || metodo == 2)
	{
		ajax.open('POST',caminho,true);
		ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		ajax.setRequestHeader("Content-length",caminho);
		ajax.setRequestHeader("Connection", "close");
	}
	else if(metodo == 'GET' || metodo == 'get' || metodo == 1)
	{
		ajax.open("GET",caminho+'?'+parametros,true);
		parametros = null;
	}
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 1) // carregando
		{
			if(mensagem)
			{
				mensagem.innerHTML = msg_inicial;
			}
		}
		if(ajax.readyState == 4) // tudo pronto
		{
			if(ajax.status == 200) // sucesso no carregamento do onteúdo
			{
				var resultado = ajax.responseText;
				resultado = resultado.replace(/\+/g,"+");
				resultado = unescape(resultado);
				if(mensagem)
				{
					mensagem.innerHTML = (msg_final != '') ? msg_final : '&nbsp;';
				}
				if(exibeResultado)
				{
					exibeResultado.innerHTML = resultado;
				}
				if(funcao_pos != '' && funcao_pos != null)
				{
					eval(funcao_pos);
				}
			}
			else
			{
				if(mensagem)
				{
					mensagem.innerHTML = msg_erro;
				}
				if(funcao_erro != '' && funcao_erro != null)
				{
					eval(funcao_erro);
				}
			}
		}
	}
	ajax.send(parametros);
}

/* Carrega o conteúdo de uma página processada e devolve dentro de um elemento especificado */
function carregaConteudo(id_destino,id_msg,msg_carregando,msg_erro,caminho_pagina,funcao_pos)
{
	if(document.getElementById)
	{
		var exibeResultado = document.getElementById(id_destino); // div que receberá o conteúdo buscado
		var mensagem       = document.getElementById(id_msg); // div que receberá o conteúdo buscado
		var ajax = openAjax(); // Inicia o Ajax.
		ajax.open("GET",caminho_pagina,true);
		ajax.onreadystatechange = function()
		{
			if(ajax.readyState == 1) // carregando
			{
				mensagem.innerHTML = msg_carregando;
			}
			if(ajax.readyState == 4) // tudo pronto
			{
				if(ajax.status == 200) // sucesso no carregamento do onteúdo
				{
					var resultado = ajax.responseText;
					resultado = resultado.replace(/\+/g,"+");
					resultado = unescape(resultado);
					mensagem.innerHTML = '&nbsp;';
					exibeResultado.innerHTML = resultado;
					if(funcao_pos != '')
					{
						setTimeout(funcao_pos,1);
					}
				}
				else
				{
					mensagem.innerHTML = msg_erro;
				}
			}
		}
		ajax.send(null);
	} 
}	
