var ajaxAvailable = true;

function initializeAjax()
{
	var ajaxObject;
	try
	{
		ajaxObject = new XMLHttpRequest();
	}
	catch (e)
	{
		try
		{
			ajaxObject = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				ajaxObject = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				return null;
			}
		}
	}

	return ajaxObject;
}

function ajax(url, returnFunction, returnType, method, args, length)
{
	var ajaxObject;
	if(ajaxAvailable == false)
		return false;

	ajaxObject = initializeAjax();
	if(ajaxObject == null)
	{
		ajaxAvailable = false;
		return;
	}

	ajaxObject.onreadystatechange=function()
	 {
		if(ajaxObject.readyState==4)
		{
			if(returnFunction != null)
			{
				if(returnType == "text")
				{
					returnFunction(ajaxObject.responseText);
				}
				else if(returnType == "XML")
				{
					returnFunction(ajaxObject.responseXML);
				}
				else
				{
					returnFunction();
				}
			}
			ajaxObject.onreadystatechanged=null;
		}
	}

	if(method == "POST")
	{
		ajaxObject.open("POST",url,true);
		ajaxObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		ajaxObject.setRequestHeader("content-length", length);
		ajaxObject.setRequestHeader("connection", "close");
		ajaxObject.send(args);
	}
	else
	{
		if(args)
			url += "?" + args;

		ajaxObject.open("GET",url,true);
		ajaxObject.send(null);
	}
	return true;
}
