// JavaScript Document
// author : Tony Frias
// Date : 26/11/2010
// Script para submeter ao AJAX um request a uma servlet informada, atraves
// de dois metodos: metodo GET ou metodo POST
//
// NOTA: O retorno fornecido pela servlet atraves do AJAX, sera em uma
//       function que devera ser criada pelo usuario com o nome returnAjax();
// Exemplo da chamada passando um Formulario inteiro com metodo GET
//		ajaxForm('get','servletName','formularioName');
// Exemplo da chamada passando apenas um parametro com metodo GET
//		arrayName[0]="nome";
//		arrayValue[0]=document.getElementById('nome').value;
//		ajaxParm('get','servletName');
// 
// Obs: Para o uso do metodo POST, somente trocar GET por POST.
//		Se o usuario desejar passar mais de um parametro, isso podera
//		ser feito incrementando os arrays. 
//		Ex: arrayName[1]="endereco"; 
//			arrayValue[1]=document.getElementById('endereco').value;
//		O retorno sera definido pelo usuario como no exemplo abaixo.
//		function returnAjax()
//		{
//			document.getElementById('nome').value=xmlHttp.responseXML.getElementsByTagName("nome").item(0).childNodes[0].nodeValue;
//			document.getElementById('endereco').value=xmlHttp.responseXML.getElementsByTagName("endereco").item(0).childNodes[0].nodeValue;
//		}
//
// Definicao de Variaveis Globais
var xmlAjax; // Definicao da variavel que sera criado o objeto AJAX
var arrayName = new Array(); // Array contendo os nomes dos campos a serem passados para a servlet
var arrayValue= new Array(); // Array contendo os valores correspondentes aos campos definidos no arrayName
var comando="";
var metodo ="";
var onAjax=0;
// -----------------------------------------------------------------
// Metodo para submeter ao AJAX um formulario inteiro
// Parametros: Metodo(get ou post)
//			   Servlet(Nome da Servlet a ser acionada no ServerSide
//			   NomeForm(Nome do Formulario a ser submetido
// -----------------------------------------------------------------
function ajaxForm(meto, servlet, nomeForm)
{
    createAjaxXmlHttpRequest();
//	this.metodo=meto;
	var doc=document.getElementById(nomeForm);
	this.comando=""; //servlet+"?"+doc.elements[0].name+"="+doc.elements[0].value;
	for (i=1; i<doc.elements.length; i++) 
	{  
		 if (doc.elements[i].name!='button')
		 {
			 this.comando=this.comando+doc.elements[i].name+"="+doc.elements[i].value+"&";
		 }
	} 
	xmlAjax.open(meto, servlet ,true);
    xmlAjax.onreadystatechange=ajaxState;
    xmlAjax.send(this.comando);
}
// ---------------------------------------------------------------------------------------
// Metodo para submeter ao AJAX no minimo um parametro com o respectiovo valor
// Parametros: Metodo(get ou post)
//			   Servlet(Nome da Servlet a ser acionada no ServerSide
// NOTA : Antes da chamada desse metodo, os arrays de Nome do campo e Valor 
//        devem ser preenchidos(arrayName, arrayValue)
// ---------------------------------------------------------------------------------------
function ajaxParm(met, serv)
{	 
	createAjaxXmlHttpRequest();
	this.metodo=met;
	this.comando=serv+"?"+this.arrayName[0]+"="+this.arrayValue[0];
	for (var i=1;i<this.arrayName.length;i++)
	{
		this.comando=this.comando+"&"+this.arrayName[i]+"="+this.arrayValue[i];
	}	
	xmlAjax.open(this.metodo, this.comando ,true);
    xmlAjax.onreadystatechange=ajaxState;
    xmlAjax.send(null);
}
// Metodo de retorno da Servlet. Sera chamado um metodo,returnAjax(), que
// devera ser criado pelo usuario desse script para obter o retorno da Servlet.
function ajaxState()
{
    if (xmlAjax.readyState==4)
        if (xmlAjax.status==200)
			returnAjax(); // Function a ser criado pelo usuario
        else
           alert("Erro ao carregar a Pagina "+ xmlAjax.status +
                ":"+xmlAjax.statusText);
}
// Cria o objeto AJAX..
function createAjaxXmlHttpRequest()
{
	  if (window.ActiveXObject)
		xmlAjax=new ActiveXObject("Microsoft.XMLHTTP");
	  else if (window.XMLHttpRequest)
        xmlAjax=new XMLHttpRequest();
}
function returnAjax()
{
	if (xmlAjax.readyState==4)
    {
        if(xmlAjax.status==200)
        { 
			if (onAjax=='rss')
				returnRSS();
			else
			if (onAjax=='enquete')
				returnEnquete();
			else
			if (onAjax=='coluna')
				returnColunista();
			else
			if (onAjax=='email')
				returnEmail();
			else
			if (onAjax=='loadxml')
				returnLoadXml();
		}
		else
        {
           jQuery.messager.alert("Erro na carga da Pagina"+ xmlAjax.status +
                ":"+xmlAjax.statusText, 'error');
        }
	}
}
