function ajaxObject(url, callbackFunction)
	{
	
	this.callback = callbackFunction || function (responseText, responseStatus, responseXML) { };
	
	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, isAsync)
		{ 
		if (that.updating)
			{ return false; }

		that.AJAX = getAJAXmlHttp();                          
		

		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, isAsync);
				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 () { };
	}

	



function getAJAXmlHttp()
{
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");		
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}
	
function sendAJAXRequest(url,params,method,succesCallBack, errorCallBack)
	{	
	var myRequest = new ajaxObject(url);
	 myRequest.callback = function(responseText, responseStatus, responseXML) 
		 {
		 if (responseStatus==200)
			{			
				succesCallBack(responseText); 
			}
		 else
		 	{ errorCallBack(responseStatus); 	}
		 }
		myRequest.update(params, method, true);	 
	}


function getAJAXContent(url,params,method,containerId)
{
	
	var myRequest = new ajaxObject(url);
	 myRequest.callback = function(responseText, responseStatus, responseXML) 
	 {
		 if (responseStatus==200)
		 {
			 
			 if(containerId)
			 {
				 var container=getNode(containerId);
				 if(container)
				 {
					 //alert(responseText)
					 container.innerHTML=responseText
				 }
			 }
			 else
			 {
				 return responseText;
			 }
		 }
		 else
		 {
			 alert(responseStatus);
		 }
	 }
	myRequest.update(params,method,true);	 
}
