var amnet_ajax_objects = new Array();


function objAmnetAjaxObject($t_name, $t_timer, $t_update, $t_getinfo)
{
	this.name = $t_name;
	this.timer = $t_timer;
	this.decay = this.timer;
	this.run = 1; // object is enabled
	this.torun = 0; // object is about to "run"
	this.Update = $t_update;
	this.getInfo = $t_getinfo;
	this.runASAP = runASAP;

	function runASAP()
	{
		this.decay = -1;
	}
}

function amnet_ajax_success(jsonData)
{
	//alert('Success: result: '+jsonData.responseText);
	var result = eval('('+jsonData.responseText+')');
	var tttt='';


	for(var i=0; i<amnet_ajax_objects.length; i++)
	{
		tttt = tttt+amnet_ajax_objects[i].name+' '+amnet_ajax_objects[i].torun+'  ';
		if (amnet_ajax_objects[i].torun)
		{
			//if (amnet_ajax_objects[i].name == "chatmsgs")
	        //{
    	    //	alert(amnet_ajax_objects[i].name+" 2");
	        //}
			if (result[amnet_ajax_objects[i].name])
			{
				amnet_ajax_objects[i].Update(result[amnet_ajax_objects[i].name]);
			}
		}

	}
	//alert(tttt);

	window.setTimeout('amnet_ajax_go()', 250);
}

function amnet_ajax_failure()
{
	//alert('Failure.');
	window.setTimeout('amnet_ajax_go()', 250);
}

function amnet_ajax_exception(req, e)
{
	//alert("Exception:\n"+e.toString());
	//DP_Debug.dump(e);
	window.setTimeout('amnet_ajax_go()', 250);
}

function objAmnetAjaxOptions()
{
	this.method="post";
	this.onSuccess="amnet_ajax_success";
	this.onFailure="amnet_ajax_failure";
	this.onException="amnet_ajax_exception";
	this.parameters="";
	this.toString = toString;

	function toString()
	{
		return '{method: "'+this.method+'",'
			+'onSuccess: '+this.onSuccess+','
			+'onFailure: '+this.onFailure+','
			+'onException: '+this.onException+','
			+'parameters: "'+this.parameters+'"}';
	}
}

var amnet_ajax_timer = 0;
function amnet_ajax_go()
{
	var tmpDate = new Date();
	var tmpTime = Math.round(tmpDate.getTime() / 1000);
	var tmpDiff = tmpTime - amnet_ajax_timer;
	var amnet_ajax_found_objects = new Array();

	amnet_ajax_found_objects = 0;
	for(var i=0; i<amnet_ajax_objects.length; i++)
	{
		if (amnet_ajax_objects[i].run)
		{
			amnet_ajax_objects[i].decay -= tmpDiff;
			if (amnet_ajax_objects[i].decay <= 0)
			{
				//if (amnet_ajax_objects[i].name == "chatmsgs")
		        //{
		        //	alert("aaa");
		        //}
				//alert("Adding object: "+amnet_ajax_objects[i].name);
				amnet_ajax_found_objects = 1;
				amnet_ajax_objects[i].torun = true;
				amnet_ajax_objects[i].decay = amnet_ajax_objects[i].timer;
			}
			else
			{
				amnet_ajax_objects[i].torun = false;
			}
		}
	}
	amnet_ajax_timer = tmpTime;


	var amnetAjaxOptions = new objAmnetAjaxOptions();


	if (amnet_ajax_found_objects)
	{
		var tmpstring = "";
		for(var i=0; i<amnet_ajax_objects.length; i++)
		{
			if (amnet_ajax_objects[i].run)
			{
				if (amnet_ajax_objects[i].torun)
				{
				    tmpstring = tmpstring + "&"+amnet_ajax_objects[i].name+"=1";
					if (amnet_ajax_objects[i].getInfo)
					{
						tmpstring = tmpstring + "&"+amnet_ajax_objects[i].name+"_params="+escape(amnet_ajax_objects[i].getInfo());
					}
				}
			}
		}
		amnetAjaxOptions.parameters = tmpstring;
		//alert(amnetAjaxOptions.parameters);
		//alert('Requests with options: '+amnetAjaxOptions.toString());
		var req = new Ajax.Request("u_ajax_update.php", eval('('+amnetAjaxOptions.toString()+')'));
	}
	else
	{
		//alert('Sleeping for 1 second...');
		window.setTimeout('amnet_ajax_go()', 250);
	}
}


