//###########################################
//		objet = new net(fct1_local,fct2_local);
//				objet = new netclasse(url,call_pub,"",elt_local);
//###########################################
// INSTANCE D'UN OBJET NET DEBUT

var net= new Object();
net.UF_FLUX_UNDEF=-1;
net.UF_FLUX_OK="UF_FRONTAL_OK";
net.READY_STATE_UNINITILIZED=0;
net.READY_STATE_LOADING=1;
net.READY_STATE_LOADED=2;
net.READY_STATE_COMPLETE=4;

function net_class(parametre,error_function,start_loading_function,end_loading_function,OK_function,KO_function)
{
	this.url="/pg/frontal/new_frontal.cgi?";
	var parm="";
	for (var key in parametre)
	{
		if (key!="undefined") {
			parm += key+"="+parametre[key]+"&";
		}
  
	}
	//alert(this.url);
	//alert(parm);
	this.error_function=error_function;
	this.start_loading_function=start_loading_function;
	this.end_loading_function=end_loading_function;
	this.fct_OK=(OK_function) ? OK_function : this.defaultOK;
	this.fct_KO=(KO_function) ? KO_function : this.defaultKO;
	this.status=net.UF_FLUX_UNDEF;
	this.flux_complet=null;
	this.flux=null;
	this.req=null;
	this.params=parm;
	this.onerror=(error_function) ? error_function : this.defaultError;
}

net_class.prototype=
{

loadXMLDOC:function()
{
	this.start_loading_function.call();
	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("POST",this.url,true);
			this.req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			this.req.send(this.params);
		}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;
			this.end_loading_function.call(this);
			if (httpStatus==200 || httpStatus==0)
			{
				this.flux_complet=this.req.responseText;
				this.traite_flux(this);
				
			} else {
				this.onerror.call(this);
			}
		}
		else
		{
			var empty=document.getElementById('chrg_attente');
			//addNode(empty,"Chargement des donnees ....");
		}

},

traite_flux:function()
{
 this.importe.call(this);
 this.traite_retour.call(this);	
},

importe:function()
{
	this.status=this.flux_complet.substring(0,this.flux_complet.indexOf('|'));
	this.flux=this.flux_complet.slice(this.flux_complet.indexOf('|')+1);
},

traite_retour:function()
{	
		if (this.status==net.UF_FLUX_OK)
		{
				this.fct_OK.call(this.flux);
		}
		else
		{
				this.fct_KO.call(this.flux);
		}
},

defaultOK:function()
{
	alert("OK");
},
defaultKO:function()
{
	alert("KO");
},

defaultError:function() {
	alert("Probléme");
}

}
//INSTANCE D'UN OBJET FIN


function alert_attente() {
var empty=document.getElementById('chrg_attente');
addNode(empty,"Chargement des donnees ....");
}

function elt() {
var empty=document.getElementById('chrg_attente');
var elt_inclus=empty.getElementsByTagName('div')[0];
empty.removeChild(elt_inclus);
}

function addNode(el,text)
{
	var elt_inclus=el.getElementsByTagName("div")[0];
	if (elt_inclus ==null) {
	var childEl=document.createElement("div");
	childEl.style.border='solid #DCE2E2 2px';
	childEl.style.width="250px";
	childEl.style.color='#990000';
	childEl.style.fontFamily='Verdana';
	childEl.style.fontSize='11px';
	childEl.style.backgroundColor='#F6FAFB';
	el.appendChild(childEl);
	var txtNode=document.createTextNode(text);
	childEl.appendChild(txtNode);
	}
	else {
		el.removeChild(elt_inclus)
		var childEl=document.createElement("div");
		childEl.style.border='solid #DCE2E2 2px';
		childEl.style.width="250px";
		childEl.style.color='#990000';
		childEl.style.fontFamily='Verdana';
		childEl.style.fontSize='11px';
		childEl.style.backgroundColor='#F6FAFB';
		el.appendChild(childEl);
		var txtNode=document.createTextNode(text);
		childEl.appendChild(txtNode);
	}
}

