function Async(){
	this._xmlhttp = newXMLHttpRequest();
}

function Async_req(url){
	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
				);
		        break;
		}
	}
	this._xmlhttp.send(null);
}

function Async_loading(){
}

function Async_loaded(){
}

function Async_interactive(){
}

function Async_complete(status,statusText,responseText,responseXML){
}

Async.prototype.loading = Async_loading;
Async.prototype.loaded = Async_loaded;
Async.prototype.interactive = Async_interactive;
Async.prototype.complete = Async_complete;
Async.prototype.req = Async_req;
