var AjaxRequest = {
	callCompleted : false,
	http_request : false,
	callBackFunction : null,
	ResponseText : null,
	Init : function(){
		if (window.XMLHttpRequest) { // Mozilla, Safari,...
			AjaxRequest.http_request = new XMLHttpRequest();
			if (AjaxRequest.http_request.overrideMimeType) {
				AjaxRequest.http_request.overrideMimeType('text/xml');
				// See note below about this line
			}
		}
		else if (window.ActiveXObject) { // IE
			try{
				AjaxRequest.http_request = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch(e){
				try{
					AjaxRequest.http_request = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e){}
			}
		}
	},
	MakeAjaxRequest : function(url){
		url = url + "&timestamp=" + new Date().getTime();

		AjaxRequest.http_request.onreadystatechange = AjaxRequest.StateHandler;
		
		if (!AjaxRequest.http_request) {
			alert('Giving up :( Cannot create an XMLHTTP instance');
			return false;
		}
	  
		AjaxRequest.http_request.open('GET', url, true);
		AjaxRequest.http_request.send(null);
	},
	StateHandler : function(){
		if(AjaxRequest.http_request.readyState == 4){
			if(AjaxRequest.http_request.status == 200){
				AjaxRequest.callCompleted = true;
				AjaxRequest.CallBack();
			}
		}
	},
	CallBack : function(){
		if(this.callBackFunction != null){
			if(this.callCompleted){
				this.ResponseText = AjaxRequest.http_request.responseText;
				eval(this.callBackFunction);
			}
		}
		else
			alert("Callback is not set.");
	}
}