// ************************************************************
// Ajax Manager Object
// ************************************************************
function AjaxManagerGeneric(objName, usecache)
{
	//Properties
	this.manager = new AjaxManager(objName + ".manager", usecache);
	
	//Methods
	this.Add = _AjaxManagerGeneric_Add;
	this.AddDefault = _AjaxManagerGeneric_AddDefault;
	
	function _AjaxManagerGeneric_AddDefault(url, divId, notify, post, trigger)
	{
		if(notify)
		{
			this.manager.Add(url, DefaultParser, CreateLoading, EvalHtmlJavaScript, DestroyLoading, divId, post);
		}
		else
		{
			this.manager.Add(url, DefaultParser, null, EvalHtmlJavaScript, null, divId, post);
		}
		this.Trigger = trigger;
	}
	
	function _AjaxManagerGeneric_Add(url, parseMethod, requestBegin, requestEnd, requestError, trigger)
	{
		this.manager.Add(url, parseMethod, requestBegin, requestEnd, requestError);
		this.Trigger = trigger;
	}
}
/* -------------------------------------------------------------
/ Evaluate JavaScript
/ -------------------------------------------------------------*/
function EvalHtmlJavaScript()
{
	//s&oacute; para n&atilde;o dar pau. est&aacute; incorreto
	if(this.RequestError)
	{
		DestroyLoading();
	}
	
	var html = this.httpRequest.responseText;

	var regex = new RegExp("<script[^>]*>[^/]*//VIEW SCRIPT[^<]*</script>");

	if(html.match(regex) != null)
	{
		var result = html.match(regex)[0].toString();
		if (result != null)
		{
			result = result.replace(/<script[^>]*>/, "").replace("</script>", "");
			eval(result);
		}
	}
}

/* -------------------------------------------------------------
/ Default parser
/ -------------------------------------------------------------*/
/* -------------------------------------------------------------
/ Default parser
/ -------------------------------------------------------------*/
function DefaultParser()
{
	if(this.httpRequest.status == 200)
	{
		var html = this.httpRequest.responseText;
		var divList = this.parameters.split(',');
		
		for(var i = 0; i < divList.length; i++)
		{
			var div = document.getElementById(divList[i]);
			
			if(div != null)
			{
				div.innerHTML = html;
			}
		}
		if(genericManager.Trigger)
		{
			genericManager.Trigger();
		}		
	}
}