<!--
/**
 * Funções AJAX
 * @author Emanuel Sampaio <contato@emanuelsampaio.com.br>
 * @since 05/01/2010
 * @version 1.0
 * @copyright © 2010 Emanuel Sampaio - Todos os direitos reservados.
 * @package js
 * @link http://www.emanuelsampaio.com.br
 */

/**
 * variáveis globais
 */
var linha_cache = null; // guarda o id do registro a ser editado
var fundo_linha = "#ffffcc"; // guarda a cor do registro a ser editado

// preloader ajax
var carregando = "<div class='carregando'><img src='img/ajax.gif' alt='Aguarde...' /><br />CARREGANDO</div>";



/**
 * Função para converter as aspas simples dos inputs nos formulários de alteração
 * @param string
 */
function tratar_input(campo)
{
	return campo.replace(/[']+/g, "&#039;");
}



/**
 * Função para converter quebras de linhas em textarea nos formulários de alteração
 * @param string
 */
function tratar_textarea(campo)
{
	return campo.replace(/(<BR>)+/g, "\n");
}



/**
 * Função para pegar o objeto XMLHTTP para uso com AJAX
 */
function xmlhttp()
{
	// XMLHttpRequest para firefox e outros navegadores
	if (window.XMLHttpRequest)
	{
		return new XMLHttpRequest();
	}

	// ActiveXObject para navegadores microsoft
	var versao = ['Microsoft.XMLHttp', 'Msxml2.XMLHttp', 'Msxml2.XMLHttp.6.0', 'Msxml2.XMLHttp.5.0', 'Msxml2.XMLHttp.4.0', 'Msxml2.XMLHttp.3.0'];
	for (var i = 0; i < versao.length; i++)
	{
		try
		{
			return new ActiveXObject(versao[i]);
		}
		catch(e)
		{
			alertar("Seu navegador não possui recursos para o uso do AJAX!");
		}
	} // fecha for
	return null;
} // fecha função xmlhttp



/**
 * Função para pegar os scripts que ficam dentro das páginas aberta com AJAX
 */
function pegar_script(tag_script)
{
	var js_home = 0; // início do script
	var js_end  = 0; // final do script

	// varre os scripts encontrados
	while (js_home != -1)
	{
		js_home = tag_script.indexOf('<script', js_home); // procura a tag script
		if (js_home >= 0)
		{
			js_home = tag_script.indexOf('>', js_home) + 1; // pega o início
			js_end  = tag_script.indexOf('</script>', js_home); // pega o final
			codigo  = tag_script.substring(js_home, js_end); // pega o código

			var novo  = document.createElement('script');
			novo.type = 'text/javascript';
			novo.text = codigo;
			document.body.appendChild(novo);
		} // fecha if
	} // fecha while
} // fecha função pegar_script()



/**
 * Função AJAX para abrir os links das páginas via GET
 * @param string, object
 */
function abrir_pag(pag, id)
{
	id == null ? id = document.getElementById("conteudo") : id = document.getElementById(id);
	ajax = xmlhttp(); // instancia ajax
	ajax.open("GET", pag, true);
	ajax.onreadystatechange = function()
	{
		// enquanto estiver processando emite a msg de carregando
		if (ajax.readyState > 0 && ajax.readyState <= 3)
		{
			id.innerHTML = carregando;
		}
		if (ajax.readyState == 4 && ajax.status == 200)
		{
			pegar_script(unescape(ajax.responseText.replace(/\+/g," "))); // conversão de scripts
			id.innerHTML = ajax.responseText;
			linha_cache = null; // limpa o id do registro em edição no cache
		}
	}
	ajax.send(null);
} // fecha função abrir_pag()



/**
 * Função AJAX para enviar dados via POST
 * @param string, string, object
 */
function enviar_pag(url, dados, id)
{
	id == null ? id = document.getElementById("conteudo") : id = document.getElementById(id);
	ajax = xmlhttp(); // instancia ajax
	ajax.open("POST", url, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.onreadystatechange = function()
	{
		// enquanto estiver processando emite a msg de carregando
		if (ajax.readyState > 0 && ajax.readyState <= 3)
		{
			id.innerHTML = carregando;
		}
		if (ajax.readyState == 4 && ajax.status == 200)
		{
			id.innerHTML = ajax.responseText;
			linha_cache = null; // limpa o id do registro em edição no cache
		}
	}
	ajax.send(dados);
} // fecha função enviar_pag()



/**
 * Formulário Newsletter
 */
function cadastrar_news()
{
	nome  = document.getElementById("news_nome").value;
	email = document.getElementById("news_email").value;

	if (nome == "" || nome == "Digite seu nome")
	{
		alertar("Por favor, informe seu nome!", "news_nome");
	}
	else if (email == "" || email == "Digite seu e-mail")
	{
		alertar("Por favor " + nome + ", informe seu e-mail!", "news_email");
	}
	else if ((email.indexOf("@") < 1) || (email.lastIndexOf(".") <= email.indexOf("@")) || (email.indexOf("@") == email.length))
	{
		alertar("E-mail inválido!", "news_email");
	}
	else
	{
		// campos do formulário
		dados = 'nome=' + encodeURIComponent(nome);
		dados+= '&email=' + encodeURIComponent(email);
		enviar_pag("php/news.php", dados + "&enviar=ok", "news");
	}
} // fecha função cadastrar_news()



/**
 * Formulário de contato do site
 */
function form_contato()
{
	nome         = document.getElementById("nome").value;
	email        = document.getElementById("email").value;
	destinatario = document.getElementById("destinatario").value;
	assunto      = document.getElementById("assunto").value;
	mensagem     = document.getElementById("mensagem").value;

	if (nome == "" || nome == "undefined")
	{
		alertar("Por favor, informe seu nome!", "nome");
	}
	else if (email == "" || email == "undefined")
	{
		alertar("Por favor " + nome + ", informe seu e-mail!", "email");
	}
	else if ((email.indexOf("@") < 1) || (email.lastIndexOf(".") <= email.indexOf("@")) || (email.indexOf("@") == email.length))
	{
		alertar("E-mail inválido!", "email");
	}
	else if (destinatario == "" || destinatario == "undefined")
	{
		alertar("Por favor " + nome + ", selecione um destinatário!", "destinatario");
	}
	else if (assunto == "" || assunto == "undefined")
	{
		alertar("Por favor " + nome + ", informe o assunto!", "assunto");
	}
	else if (mensagem == "" || mensagem == "undefined")
	{
		alertar("Por favor " + nome + ", informe a mensagem!", "mensagem");
	}
	else
	{
		// campos do formulário
		dados = 'nome=' + encodeURIComponent(nome);
		dados+= '&email=' + encodeURIComponent(email);
		dados+= '&destinatario=' + encodeURIComponent(destinatario);
		dados+= '&assunto=' + encodeURIComponent(assunto);
		dados+= '&mensagem=' + encodeURIComponent(mensagem);
		enviar_pag("php/contato.php", dados + "&enviar=ok");
	}
} // fecha função form_contato()
//-->
