function AjaxRequest()
{
// Variables
	var url = "";
	var req_type = "GET";
	var post_options;
	var return_func;
	var request;
	
// Constructors
	this.set_url = set_url;
	this.set_req_type = set_req_type;
	this.set_post_options = set_post_options;
	this.set_return_func = set_return_func;
	
	function set_url (url) { this.url = url; }
	function set_req_type (req_type) { this.req_type = req_type; }
	function set_post_options (opts) { this.post_options = opts; }
	function set_return_func (ret_func) { this.return_func = ret_func; }

// Methods
	this.http_request = http_request;
	function http_request()
	{
		this.request = get_http_object();
		with (this)
		{
			request.open(req_type, url, true);
			request.onreadystatechange =
				function ()
				{
					if (request.readyState == 4)
					{
						return_func(request.responseText);
					}
				}
				
			if (req_type == "POST")
			{
				request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				request.send(post_options);
			}
			else
			{
				request.send(null);
			}
		}
	}

	/* Function for constructing a request object. */
	function get_http_object()
	{
		// Mozilla-based browsers
		if(window.XMLHttpRequest)
		{
			request = new XMLHttpRequest();
		}
		// IE
		else if (window.ActiveXObject)
		{
			request = new ActiveXObject("Msxml2.XMLHTTP");
			if (!request) request = new ActiveXObject("Microsoft.XMLHTTP");
		}
		
		//the request could still be null if neither ActiveXObject
		//initialization succeeded
		if(request)
		{
			return request;
		}
		else
		{
			alert("Det &auml;r dags att du skaffar dig en ny browser.\n "+
				  "Den du har nu st&ouml;djer inte Ajax!");
		}
	}
}