// Ajax class
function ajax() { };

// Get a new instance of a HTTP Object
ajax.getHTTPObject = function()
{
	var httpobj = false;

	if (window.XMLHttpRequest) {
		httpobj = new XMLHttpRequest();
		if (httpobj.overrideMimeType) {
			httpobj.overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) {
		try {
			httpobj = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				httpobj = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {

			}
		}
	}

	if (!httpobj) {
		alert("Error creating HTTP Object.");
		return false;
	}

	return httpobj;
}

// Send a post request
ajax.post = function(url, parameters, callback)
{
	// Get HTTP Object
	var http_request = ajax.getHTTPObject();

	// Register callback function if any
	if (callback != null)
		http_request.onreadystatechange = function()
		{
			if (http_request.readyState == 4) {
				try
				{
					if (http_request.status == 200) {
						eval(callback + "(http_request);");
					}
				}
				catch (e)
				{
					eval(callback + "(null);");
				}
			}
		};

	// Init
	http_request.open('POST', url, true);

	// Set headers
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");

	// Send request
	http_request.send(parameters);
	
	return false;
}

// Send a get request
ajax.get = function(url, parameters, callback)
{
	// Get HTTP Object
	var http_request = ajax.getHTTPObject();

	// Register callback function if any
	if (callback != null)
		http_request.onreadystatechange = function()
		{
			if (http_request.readyState == 4) {
				try
				{
					if (http_request.status == 200) {
						eval(callback + "(http_request);");
					}
				}
				catch (e)
				{
					eval(callback + "(null);");
				}
			}
		};

	// Init
	http_request.open('GET', url+'?'+parameters, true);

	// Send
	http_request.send(null);
	
	return false;
}