/*
* Ajax helper functions
*
* @author Alexander
*/

function loading(visible)
{
	var loadingDiv = $('loading');
	if( !loadingDiv )
		return;
	if( visible )
		Element.show(loadingDiv);
	else
		Element.hide(loadingDiv);
}

function ajaxUpdate(elementID, url, params)
{
	loading(true);
	if( elementID )
	{
		new Ajax.Updater(
			elementID, 
			url, 
			{
				method			: params.method, 
	//			parameters		: "elementID=" + elementID,
				onSuccess		: function() { loading(false); },
				onFailure		: function() { loading(false); },
				onException		: function() { loading(false); },	
				postBody		: params.postBody,		
				evalScripts		: true
			});	
	}
	else
	{
		new Ajax.Request(
			url, 
			{
				method			: params.method, 
	//			parameters		: "elementID=" + elementID,
				onSuccess		: function(transport) { loading(false); setTimeout(function() {transport.responseText.evalScripts()}, 10) },
				onFailure		: function() { loading(false); },
				onException		: function() { loading(false); },	
				postBody		: params.postBody,		
				evalScripts		: true
			});	
	}
}

function ajaxGetUpdate(elementID, url, params )
{
	if( !params )
		params = '';
	else
		params = "?" + $H(params).toQueryString();
	
	ajaxUpdate(elementID, url + params, { method: 'get' });
}

function ajaxPostUpdate(elementID, url, params )
{
	params = $H(params);
	ajaxUpdate(elementID, url, {method: 'post', postBody: params.toQueryString()});	
}

