function ajaxRequest(url, pars, functionTreatResponse) {
	//anulei o pars devido a problemas com acentuação (Luiz)
	if (pars != null)
		url += "?"+pars;
	
	pars=null;

	var myAjax = new Ajax.Request(
		url,
		{
	    method: 'get',
	    parameters: pars,
			onComplete: eval(functionTreatResponse)
		}
	);      
}

/**
* Funções úteis na utilização de recursos do Ajax.
* Cassyus
* 25/04/2008
*/
var baseAjax;
BaseAjax = function(nmCombo) {
	var combo = document.getElementById(nmCombo);
	var _nmFunction;

	this.initialize = function(nmFunction) {
		clearOptions(nmCombo);
		addOption(combo, "0", "Carregando...");
		_nmFunction = nmFunction;
	}

	this.execute = function(response) {
		clearOptions(nmCombo);
		addOption(combo, "", "");
		var json = eval("(" + response.responseText + ")");
		for (x in json.jsonObject)
			if (x.indexOf("P_") == -1)
				addOption(combo, x, json.jsonObject[x]);

		if (_nmFunction)
			eval(_nmFunction);
	}
	
	this.getCombo = function() {
		return combo;
	}
}

function addOption(combo, value, text) {
	var option = document.createElement("option");
	option.value= value;
	option.text= text;	
	try {
		combo.add(option);
	} catch(e) {
		combo.add(option, null);
	}
}

function clearOptions(nmObj) {
	var obj = document.getElementById(nmObj);
	while(obj.length > 0)
		obj.remove(obj.length - 1);
}

function loadAjaxList(obj, url, nmCombo, nmObj, nmFunction) {
	baseAjax = new BaseAjax(nmCombo);
	baseAjax.initialize(nmFunction);

	var pars = ((!nmObj || nmObj == "") ? obj.id : obj.name) + "=" + obj.value;
	
	if (pars != null)
		url += "?"+pars;
	
	pars=null;
	
	var myAjax = new Ajax.Request(
		url,
			{
		    	method: "get",
		     	parameters: pars,
		     	onComplete: baseAjax.execute
		  	}
  );
}


/* Funções AjaxSetObjResponse 
* e ajaxSetObjByOther para preenchimento
* de um objeto a partir de outro, por exemplo
* setar o valor de uma ComboBox a partir de um text;
* Lucas
* 30/05/2008
*/

var ajaxSetObj;
AjaxSetObjResponse = function (nmObj,result){
	this.nmObj= nmObj;
	this.result= result;
	this.execute = function(data){
		var jsonObject = eval('(' + data.responseText + ')');
		if(eval("jsonObject.objSetado."+result) == ""){
			showErrorMessage("Valor inválido.");
			return;
		}
		$(nmObj).value = eval("jsonObject.objSetado."+result);
	}
	
}

function ajaxSetObjByOther(nmObj,valorText,url,params,result){
	if(valorText == "")
		return;	
	clearMessage();
	ajaxSetObj = new AjaxSetObjResponse(nmObj,result);
	$(nmObj).value = '';
	var pars = params + '=' + valorText;
	
	if (pars != null)
		url += "?"+pars;
	
	pars=null;
	
	var myAjax = new Ajax.Request(
		url,
			{
		    	method: "get",
		     	parameters: pars,
		     	onComplete: ajaxSetObj.execute
		  	}
  );
}


/*
* Variável utilizada para o registro de ação do objeto Ajax
* Luiz Lima
* 09/05/2008
*/
var callbacksGlobais = {
	onCreate: function() {
		Element.show('processAJAX');
	},

	onComplete: function() {
		if(Ajax.activeRequestCount == 0) {
			Element.hide('processAJAX');
		}
	}
};

Ajax.Responders.register(callbacksGlobais);

