function Ajax()
{
	var handler = null;

	try
	{
		handler = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch (e)
	{
		try
		{
			handler = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				handler = new XMLHttpRequest();
			}
			catch (e)
			{
				handler = null;
			}
		}
	}

	if ( handler == null )
		return null;

	this.Open = function(processFunction, url, method, vars)
	{
		this.URL = url;
		this.Method = method.toUpperCase();

		try
		{
			if (this.Method == "POST")
			{
				handler.open(this.Method, this.URL, true);
				handler.setRequestHeader("Method", "POST " + this.URL + " HTTP/1.1");
				handler.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			}
			else
			{
				handler.open("GET", this.URL + "?" + vars, true);
				vars = "";
			}

			handler.onreadystatechange = function()
			{
				processFunction(handler);
			}

			handler.send(vars);
		}
		catch (e)
		{
			alert(e);
		}
	};
}

function doAjaxPostBack(elementId, postBackUrl, queryString, method)
{
	var ajax = new Ajax();

	if ( ajax == null )
	{
		document.getElementById(elementId).innerHTML = 'Error: AJAX is not working!';
		return;
	}
	
	var proc = function(handler)
	{
		if ( handler.readyState == 4 && handler.status == 200 )
		{
			document.getElementById(elementId).innerHTML = handler.responseText;
		}
		else if ( handler.readyState == 4 && handler.status == 404 )
		{
			document.getElementById(elementId).innerHTML = '<p class="message">Page could not be found!</p>';
		}
		else
		{
			document.getElementById(elementId).innerHTML = '<p class="message"><img alt="" src="http://images.pornbubble.net/misc/loading.gif" /></p>';
		}
	};
	
	ajax.Open(proc, postBackUrl, method, queryString);
}