function AjaxRequest(sTarget, sParameters, sMethod, bShowLoading, bEffectLoaded, sOnSuccess) {
	var bShowLoading = (bShowLoading == null) ? true : bShowLoading;
	var bEffectLoaded = (bEffectLoaded == null) ? true : bEffectLoaded;
	var sOnSuccess = (sOnSuccess == null) ? null : sOnSuccess;
	var sUrl = 'ajax.php';
	sParametersContent = 'application_mode=with_gui&ajax_target=' + sTarget + '&' + sParameters;
	
	new Ajax.Request(sUrl, {
		method: 'get',
		parameters: sParametersContent,
		requestHeaders: {Accept: 'application/json'},
		onLoading: function() {
			if (bShowLoading) {
				if (Prototype.Browser.IE) {
					$("ajax_loading").setStyle({height:$('body').getHeight()+'px'});
					$("ajax_loading").setStyle({width:$('body').getWidth()+'px'});
					aWindow = getWindowScroll();
					//alert(aWindow.top + (aWindow.height / 2));
					$("ajax_loading_image").setStyle({top:aWindow.top + (aWindow.height / 2)});
				}
				Element.show('ajax_loading');
			}
		},
		onSuccess: function(transport) {
			var json = transport.responseText.evalJSON(true);
			if (bShowLoading) {
				Element.hide('ajax_loading');
			}
			$(sTarget).update(json[sTarget]);
			$(sTarget).innerHTML.evalScripts();
			if (json['mm_help'] != null) {
				$('mm_help').update(json['mm_help']);
				$('mm_help').innerHTML.evalScripts();
			}
			if (bEffectLoaded) {
				new Effect.Opacity(sTarget, {
					duration:1.0,
					from:0.1,
					to:1.0
				});
			}
			if (sOnSuccess != null) {
				eval(sOnSuccess);
			}
		}
	});
	return false;
}

function getWindowScroll() {
	var T, L, W, H;
	var w = window;
	with (w.document) {
		if (w.document.documentElement && documentElement.scrollTop) {
			T = documentElement.scrollTop;
			L = documentElement.scrollLeft;
		} else if (w.document.body) {
			T = body.scrollTop;
			L = body.scrollLeft;
		}
		if (w.innerWidth) {
			W = w.innerWidth;
			H = w.innerHeight;
		} else if (w.document.documentElement && documentElement.clientWidth) {
			W = documentElement.clientWidth;
			H = documentElement.clientHeight;
		} else {
			W = body.offsetWidth;
			H = body.offsetHeight
		}
	}
	return { top: T, left: L, width: W, height: H };
}