function Asynchronous() {
	this._xmlhttp = new FactoryXMLHttpRequest();
}
function Asynchronous_call(url, destination, row) {
	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.responceXML, destination);
			break;
		}
	}
	this._xmlhttp.send(null);
}
function Asynchronous_loading() {
}
function Asynchronous_loaded() {
}
function Asynchronous_interactive() {
}
function Asynchronous_complete(status, statusText, responseText, responseHTML, destination) {
}
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;
