ajax = {
	responseHandler : function() {},
	errorHandler : function() {},
	request : null,
	
	getXmlHttpObject : function()
	{
		var xmlHttpObject = null;
	
		try
		{
			xmlHttpObject = new XMLHttpRequest();
		}
		catch(e)
		{
			try
			{
				xmlHttpObject = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e)
			{
				try
				{
					xmlHttpObject = new ActiveXObject("MSXML3.XMLHTTP");
				}
				catch(e)
				{
					try
					{
						xmlHttpObject = new ActiveXObject("MSXML2.XMLHTTP.3.0");
					}
					catch(e)
					{
						try
						{
							xmlHttpObject = new ActiveXObject("Msxml2.XMLHTTP");
						}
						catch(e)
						{
						}
					}
				}
			}
		}
		
		return xmlHttpObject;
	},
	
	sendRequest : function(url, callback)
	{
		if(!url)
		{
			return;
		}
		
		request = this.getXmlHttpObject();
		if(request == null)
		{
			if(this.errorHandler)
			{
				this.errorHandler(1);
			}
			
			return;
		}
	
		this.responseHandler = callback;
		var sid = "ajax_sid=" + new Date().getTime();
		
		if(url.indexOf("?") + 1)
		{
			url += "&" + sid;
		}
		else
		{
			url += "?" + sid;
		}
		
		var me = this;
	
		request.onreadystatechange = function()
		{
			if(request.readyState == 4)
			{
				if(request.status == 200)
				{
					if(me.responseHandler)
					{
						var response = "";

						if(request.responseText)
						{
							response = request.responseText;
						}
	
						me.responseHandler(response);
					}
				}
				else
				{
					if(me.errorHandler)
					{
						me.errorHandler(2);
					}
				}
			}
		};
		
		request.open('GET', url, true);
		request.send(null);
	}
}