// JavaScript Document
var	AJAX_ACTION_ELEM = 0,
	AJAX_ACTION_PROC = 1;
	
function AjaxRequest( url, method, data, async, action, object )
{
	var HTTP_REQ_OBJ = false;
	if (!async) var async = true;

	if (window.XMLHttpRequest)
		HTTP_REQ_OBJ = new XMLHttpRequest();
	else if (window.ActiveXObject)
	{
		HTTP_REQ_OBJ = new ActiveXObject("Msxml2.XMLHTTP");
		if (!HTTP_REQ_OBJ) HTTP_REQ_OBJ = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if (!HTTP_REQ_OBJ)
	{
		window.alert( "Error: cannot create http request" );
		return false;
	}
	
	HTTP_REQ_OBJ.onreadystatechange = function()
	{
		if (AjaxCallback) AjaxCallback( HTTP_REQ_OBJ, action, object );
	};
	
	HTTP_REQ_OBJ.open( method, url, async );

	if (method=="POST") HTTP_REQ_OBJ.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );

	HTTP_REQ_OBJ.send( data );
}

function AjaxCallback( http_request, action, object )
{
	if (http_request.readyState == 4) // otherwise still not ready
	{
		if (http_request.status == 200)
		{
			if (action==AJAX_ACTION_ELEM) object.innerHTML = http_request.responseText;
			else if (action==AJAX_ACTION_PROC) object( http_request.responseText );
		}
		else
		{
			window.alert( "Ajax Error!" );
			// there was a problem with the request,
			// for example the response may be a 404 (Not Found)
			// or 500 (Internal Server Error) response codes
		}
	}
}
