
var AjaxHandler = 
{
	s3ajaxobjects : [],
	callcount : [],
	maxcalls : 10,  
	
	Index : function()
	{
		return s3ajaxobjects.length;
	}, 
	
	AddRequest : function(pageUri, processMethod)
	{
		var index = AjaxHandler.Index;
		AjaxHandler.s3ajaxobjects[index] = new ajaxObject(pageUri, processMethod);
		AjaxHandler.callcount[index] = 0;
		return index;
	},
	
	CallUpdate : function(index, requestData, requestMethod)
	{
		if (AjaxHandler.RequestExists(index))
		{
			if (AjaxHandler.IsUpdating())
			{
				setTimeout("AjaxHandler.CallUpdate("+index+", '"+requestData+"', '"+requestMethod+"')", 500);
			}
			AjaxHandler.s3ajaxobjects[index].update(requestData, requestMethod);
			return true;
		}
		return false;
	},
	
	RequestExists : function(index)
	{
		return (AjaxHandler.s3ajaxobjects[index] instanceof ajaxObject);
	}, 
	
	IsUpdating : function()
	{
		for (var i = 0; i < AjaxHandler.s3ajaxobjects.length; i++)
		{
			if (AjaxHandler.s3ajaxobjects[i].updating)
			{
				AjaxHandler.callcount[i]++;
				if (AjaxHandler.callcount[i] >= AjaxHandler.maxcalls)
				{
					AjaxHandler.s3ajaxobjects[i].abort();
				}
				else
				{
					return true;
				}
			}	
		}
		return false;
	}
};