// ----------------------------------------------
function load_ajax_php (mod_name, param_str)
{
	url = "/ajax.php?mod=" + mod_name + "&" + param_str;
	
	resp = syncedXRequest (url, false);
	
	if (resp && resp != "undefined")
		return (resp);
	else
		return ("");
}


// ----------------------------------------------
function reset_value_ajax (el_id, mod_name, param_str)
{
	el = document.getElementById (el_id);
	val = load_ajax_php (mod_name, param_str);
	
	if (el)
	{
		el.value = val;
	}
}

// ----------------------------------------------
function syncedXRequest (url) 
{
	var http_request = false;

	if (window.XMLHttpRequest)
	{ // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
	} else if (window.ActiveXObject)
	{ // IE
		try
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	http_request.open('GET', url, false);
	http_request.send(null);

	return (http_request.responseText);
}

// ----------------------------------------------
function XRequest (url, el_id, showl, el_type, post_text, callback_function) 
{
	var http_request = false;

	if (window.XMLHttpRequest) 
	{ // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) 
	{
		try
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) 
	{
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}
	
	http_request.onreadystatechange = function() 
	{ 
		if (returnXResponse)
			return returnXResponse(http_request, el_id, showl, el_type, callback_function); 
	};
	
	if (typeof post_text == "undefined" || post_text=="")
	{
		http_request.open('GET', url, true);
		http_request.send(null);
	}
	else
	{
		http_request.open('POST', url, true);
		http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		http_request.setRequestHeader('Content-Length', post_text.length);
		http_request.send(post_text);
	}
}

// ----------------------------------------------
function returnXResponse (http_request, el_id, showl, el_type, callback_function)
{
	if (http_request.readyState == 4) 
	{
		if (http_request.status == 200) 
		{
			if (el_type=="image_source")
			{
				document.getElementById(el_id).src=http_request.responseText;
			}
			else if(el_type=="json_func")
			{
				json_out=eval("(" + http_request.responseText + ")");
				eval(el_id+"(json_out);");
			}
			else
			{
				el = document.getElementById(el_id);
				
				if (el)
					document.getElementById(el_id).innerHTML = http_request.responseText;
					
				if (callback_function)
					eval(callback_function);
			}
		}
		else
		{
			return false;
		}
	}
}