/********************
This object represents the pinnacle of my attempts to create a flexible and robust Ajax object. It's small, compact, object oriented, easy to follow and can handle multiple, concurrent, simultaneous requests, something the hello world tutorials always seem to miss. It's also public domain so use it and abuse it however you like and don't sweat giving up any precious screen space to credit me. So without further ado, here's the Ajax object. The documentation follows.
********************/

function ajaxObject(url, callbackFunction) {
	var that=this;      
	this.updating = false;
	this.abort = function() {
		if (that.updating) {
		  that.updating=false;
		  that.AJAX.abort();
		  that.AJAX=null;
		}
	}
	this.update = function(passData,postMethod) { 
		if (that.updating) { return false; }
		that.AJAX = null;                          
		if (window.XMLHttpRequest) {              
		  that.AJAX=new XMLHttpRequest();              
		} else {                                  
		  that.AJAX=new ActiveXObject("Microsoft.XMLHTTP");
		}                                             
		if (that.AJAX==null) {                             
		  return false;                               
		} else {
		  that.AJAX.onreadystatechange = function() {  
			if (that.AJAX.readyState==4) {             
			  that.updating=false;                
			  that.callback(that.AJAX.responseText,that.AJAX.status,that.AJAX.responseXML);        
			  that.AJAX=null;                                         
			}                                                      
		  }                                                        
		  that.updating = new Date();                              
		  if (/post/i.test(postMethod)) {
			var uri=urlCall+'?'+that.updating.getTime();
			that.AJAX.open("POST", uri, true);
			that.AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			that.AJAX.setRequestHeader("Content-Length", passData.length);
			that.AJAX.send(passData);
		  } else {
			var uri=urlCall+'?'+passData+'&timestamp='+(that.updating.getTime()); 
			that.AJAX.open("GET", uri, true);                             
			that.AJAX.send(null);                                         
		  }              
		  return true;                                             
		}                                                                           
	}
	var urlCall = url;        
	this.callback = callbackFunction || function () { };
}