function AJAX(element)
{
	this.element = element;
	this.http_request = false;
	this.callback = null;

	this.request = function(url) 
	{
		if (window.XMLHttpRequest) { // Mozilla, Safari, ...
			this.http_request = new XMLHttpRequest();

			if (this.http_request.overrideMimeType) {
				this.http_request.overrideMimeType('text/xml');
                		// See note below about this line
			}
		} else if (window.ActiveXObject) { // IE
			try {
				this.http_request = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					this.http_request = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			}
		}

		if (!this.http_request) {

			if(this.element != null) {
				this.element.innerHTML = '';
			}

			return false;
		}

		var r = this.http_request;

		if(this.callback == null) {
			if(this.element != null) {
				var e = this.element;

				this.http_request.onreadystatechange = function() { 
					AJAX_Draw(r, e); 
				};
			}
		} else {
			var cb = this.callback;

			this.http_request.onreadystatechange = function() { cb(r); }
		}	

		this.http_request.open('GET', url, true);
		this.http_request.send(null);
	}

	this.setCallBack = function(cb)
	{
		this.callback = cb;
	}
}

function AJAX_Draw(http_request, element) 
{
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			element.innerHTML = http_request.responseText;
       		} else {
			element.innerHTML = '';
       		}
	}
}
