
// INSTANCE D'UN OBJET DEBUT
var net= new Object();
net.READY_STATE_UNINITILIZED=0;
net.READY_STATE_LOADING=1;
net.READY_STATE_LOADED=2;
net.READY_STATE_COMPLETE=4;

function netclasse(url,waiting,endWaiting,onload,onerror) {
	this.url=url;
	this.req=null;
	this.onload=onload;
	this.onerror=(onerror) ? onerror : this.defaultError;
	this.waiting=(waiting) ? waiting : this.doNothing;
	this.endWaiting=(endWaiting) ? endWaiting : this.doNothing;
}

netclasse.prototype={
loadXMLDOC:function(){
	if(window.XMLHttpRequest) {
		this.req=new XMLHttpRequest();
	}else if (window.ActiveXObject) {
		try {
				this.req = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				this.req = new ActiveXObject("Microsoft.XMLHTTP");
			}
	}
	if (this.req) {
		try {
			var loader=this;
			this.req.onreadystatechange=function() {
				loader.onReadyState.call(loader);
			}
			this.req.open("GET",this.url,true);
			this.req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			this.req.send(null);
		}catch (err) {
			this.onerror.call(this);
		}
	}
},

onReadyState:function() {
	
		var req=this.req;
		var ready=req.readyState;
		if (ready==net.READY_STATE_COMPLETE) {

			var httpStatus=req.status;
			if (httpStatus==200 || httpStatus==0) {
				this.endWaiting.call(this);
				this.onload.call(this);
				
			} else {
				this.endWaiting.call(this);
				this.onerror.call(this);
			}
		}
		else {
			this.waiting.call(this);
		}

},

defaultError:function() {
	alert("Probléme");
},


doNothing:function() {
	return true;
}

}
