function ajaxObject()
{
	
	//this._ajax = this.getAjax();
	var url = false;
	var callback = false;
	var _local = this;
	var ajax = false;
	
	//// private functions
	//this.getAjax = function()
	//{
	//	var _ao;
	try
	{
		this.ajax = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
	}
	catch(e)
	{
		alert('Sorry, but your browser doesn\'t support XMLHttpRequest.');
	}
		
		//return _ao;
	//}
	
	this.serialize = function(_data)
	{
		var _u = '';
		var i
		
		for	(i in _data)
		{
			_u += i +'='+ _data[i] + '&';
		}
		
		return _u;
	}
	

	// public functions
	this.setUrl = function (_url)
	{
		_local.url = _url;
	}
		
	this.setCallback = function(_func)
	{
		_local.callback = _func;
	}
	

	this.sendRequest = function (_data, _method)
	{
		var _send_data = _local.serialize(_data);
		
		if (/POST/i.test(_method)) 
	  	{
	        _local.ajax.open("POST", _local.url, true);
	        _local.ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	        _local.ajax.setRequestHeader("Content-Length", _send_data.length);
	        _local.ajax.send(_send_data);
	        
      	} else 
  		{

	        _local.ajax.open("GET", _local.url+'?'+_send_data, true);                             
	        _local.ajax.send(null);
       	}
	}
	
	this.ajax.onreadystatechange = function() 
   	{  
        if (this.readyState == 4)
		{                       
          	_local.callback(this.responseText, this.status, this.responseXML);        
                                 
        }                                                   
	}

	//
	/// register for outside scope access 

}


