function Asynchronous( ) 
{ 
	this._xmlhttp = new FactoryXMLHttpRequest(); 
}

function Asynchronous_call(url) 
{ 
	//Make sure page is not cached
	url = url + "?timestamp=" + new Date().getTime()
	
	var instance = this; 
	this._xmlhttp.open('GET', url, true);
	this._xmlhttp.onreadystatechange = function() 
	{ 
		switch(instance._xmlhttp.readyState) 
		{ 
			case 1: 
				instance.loading();
				break;
			case 2: 
				instance.loaded(); 
				break;
			case 3: 
				instance.interactive(); 
				break;
			case 4:
				instance.complete(instance._xmlhttp.status, instance._xmlhttp.statusText, instance._xmlhttp.responseText, instance._xmlhttp.responseXML, url);
				break;
		} 
	} 
	
	this._xmlhttp.send(null);
}

function Asynchronous_loading() 
{ 
} 
function Asynchronous_loaded() 
{ 
} 
function Asynchronous_interactive() 
{ 
} 
function Asynchronous_complete(status, statusText, responseText, responseHTML, url) 
{ 
}

Asynchronous.prototype.loading = Asynchronous_loading; 
Asynchronous.prototype.loaded = Asynchronous_loaded; 
Asynchronous.prototype.interactive = Asynchronous_interactive; 
Asynchronous.prototype.complete = Asynchronous_complete;
Asynchronous.prototype.call = Asynchronous_call;

