function ajaxClass()
{
		var XMLHttpRequestObject = false;
		
		if (window.XMLHttpRequest) 
		{
				XMLHttpRequestObject = new XMLHttpRequest();
		} 
		else if (window.ActiveXObject) 
		{
				XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
		}
		
		this.XMLHttpRequestObject = XMLHttpRequestObject;

		this.sendRequest = function(requestMethod, requestUrl, isAsyn, requestData, handlerFunction, delay)
		{
				if(this.XMLHttpRequestObject)
				{
						this.abortRequest();
						if(delay == 0)
						{		
								this.XMLHttpRequestObject.open(requestMethod, requestUrl , isAsyn);
								if(handlerFunction)
								{
										this.XMLHttpRequestObject.onreadystatechange = handlerFunction;	
								}
								if(requestMethod == "POST")
								{
										this.XMLHttpRequestObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
								}								
								this.XMLHttpRequestObject.send(requestData);								
						}
						else
						{						
								sendDelayRequest(this, requestMethod, requestUrl, isAsyn, requestData, handlerFunction, delay);
						}
				}			
				else
				{
						alert('Your browser does not support some of the features required on this site. Please upgrade to new browser.');	
				}
		}
		
		function sendDelayRequest(_this, requestMethod, requestUrl, isAsyn, requestData, handlerFunction, delay) 
		{
				var callbBackFunction = function() 
				{
						_this.XMLHttpRequestObject.open(requestMethod, requestUrl , isAsyn);
						_this.XMLHttpRequestObject.onreadystatechange = handlerFunction;
						_this.XMLHttpRequestObject.send(requestData);
				}
				_this.timeOut = window.setTimeout(callbBackFunction, delay);
		}
		
		this.abortRequest = function()
		{
				this.XMLHttpRequestObject.abort();
				window.clearTimeout(this.timeOut);
		}		
}

