// THIS AJAX SNIPPET IS A JAVASCRIPT OBJECT. YOU ASSIGN IT TO A VARIABLE THE SAME WAY 
// YOU ASSIGN A NEW ARRAY(), OR NEW OBJECT(). THIS MEANS YOU CAN HAVE MANY VARIABLES, 
// EACH ONE IT'S OWN LITTLE, DISCRETE AJAX HANDLER. YOU CAN EVEN MAKE AN ARRAY OF AJAX 
// OBJECTS IF YOU SO DESIRE. (BE AWARE HOWEVER THAT MOST BROWSERS WILL ONLY PROCESS TWO 
// REQUESTS AT A TIME. YOU CAN DECLARE AND START AS MANY AJAX REQUESTS AS YOU WANT BUT 
// ONLY TWO REQUESTS WILL BE PROCESSED AT A TIME AND THE OTHER REQUESTS WILL PATIENTLY 
// WAIT THEIR TURN UNTIL THEY CAN BE PROCESSED). 

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; charset=UTF-8");
				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 () { };
	}

