function AjaxMeuble() { this.scriptResa = new Array(); this.ajaxActif = false; this.tCleDispo = new Array(); }

AjaxMeuble.prototype.ExisteCleDispo = function ( cle ) { return ( this.tCleDispo[ cle ] == 1 ); }
AjaxMeuble.prototype.AjouteCleDispo = function ( cle ) { this.tCleDispo[ cle ] = 1; }
AjaxMeuble.prototype.SetProxyResa = function ( strProxyResa ) { this.proxyResa = strProxyResa; }
AjaxMeuble.prototype.SetListeIdZone = function ( listeIdZone ) { this.listeIdZone = listeIdZone; }
AjaxMeuble.prototype.SetZoneFournisseur = function ( zone ) { this.zoneFournisseur = zone; }

AjaxMeuble.prototype.DonneContenu = function ( node ) 
{	
	if (typeof(node.textContent) != "undefined") return node.textContent;
	else if (typeof(node.innerText) != "undefined")  return node.innerText;
	else if (typeof(node.text) != "undefined") return node.text;
	else return "";
}

AjaxMeuble.prototype.DonneResultatAjax = function ( obj )
{
	try
	{
		obj.responseXML.loadXML(obj.responseText);		
		return obj.responseXML.getElementsByTagName("Sortie");
	}
	catch(err2)
	{
		var xmlDocument = (new DOMParser()).parseFromString(obj.responseText, "text/xml");
		return xmlDocument.getElementsByTagName("Sortie");		
	}	
}

AjaxMeuble.prototype.EnvoiReservation = function ( lien, guid )
{
	if( this.ajaxActif ) return;
	this.ajaxActif = true;
	document.body.style.cursor = 'wait';
	if( this.tableDispo ) this.tableDispo.className = "OSResultatCatalogue";
	this.tableDispo = document.getElementById("Dispo_" + guid);
	this.tableDispo.className = "OSResultatCatalogueLoad";
	if( this.divResa )
	{	
		this.divResa.innerHTML = "";
		this.divResa.style.display = 'none';
		while( this.scriptResa.length > 0 ) 
			document.getElementsByTagName('head')[0].removeChild( this.scriptResa.pop() );		
	}
	this.guidDivResa = guid;	
	new XHRConnection().sendAndLoad( this.proxyResa ? this.proxyResa + lien : lien, "GET", _AjaxMeuble_AffecteResa, _AjaxMeuble_ErreurResa);
}

_AjaxMeuble_AffecteResa = function ( obj )
{
	var Result = ajMeuble.DonneResultatAjax( obj );
	try 
	{
		var Maquette = ajMeuble.DonneContenu( Result.item(0).getElementsByTagName('Maquette').item(0) );
		ajMeuble.divResa = document.getElementById( ajMeuble.guidDivResa );
		ajMeuble.divResa.innerHTML = Maquette;
		ajMeuble.divResa.style.display = 'block';		
		var x = Result.item(0).getElementsByTagName('script');
		for(var i=0; i < x.length; i++)
		{
			var script = document.createElement('script');	
			if ( x[i].getAttribute('src') ) script.setAttribute('src', x[i].getAttribute('src') );
			var text = ajMeuble.DonneContenu ( x[i] );
			if ( text != "" ) script.text = text;
			document.getElementsByTagName('head')[0].appendChild( script );
			ajMeuble.scriptResa.push( script );
		}
		ajMeuble.tableDispo.className = "OSResultatCatalogueOpen";
   }
	catch(err)
	{
		alert("Service momentanément indisponible !");
		ajMeuble.tableDispo.className = "OSResultatCatalogue";	
	}
	document.body.style.cursor = 'default';
	ajMeuble.ajaxActif = false;
 }
 
 _AjaxMeuble_ErreurResa = function ( obj )
 {
	alert( "Service momentanément indisponible ! " + obj.status );
	ajMeuble.tableDispo.className = "OSResultatCatalogue";	
	document.body.style.cursor = 'default';
	ajMeuble.ajaxActif = false;
 }

AjaxMeuble.prototype.EnvoiRechercheDispo = function ( lform )
{
	if( this.ajaxActif ) return;
	var an = lform.elements["Globales/AnDebut"].value;
	var mois = lform.elements["Globales/MoisDebut"].value;
	var jour = lform.elements["Globales/JourDebut"].value;
	var dureesejour = lform.elements["Param/DureeSejour"].value;
	var datedebut = this.DateDepuisChaines( an, mois, jour );
	var datefin = this.IncrDate(datedebut, dureesejour);	
	var datedebutstr = this.DateToStrLong( datedebut );
	if( this.ExisteCleDispo( datedebutstr + "#" + dureesejour ) ) return;
	else this.AjouteCleDispo( datedebutstr + "#" + dureesejour );
	this.ajaxActif = true;
	document.body.style.cursor = 'wait';	
	if( !this.modeleDispo ) 
	{ 
		this.modeleDispo = document.getElementById('DispoModele');
		this.modeleDispoTexte = this.modeleDispo.innerHTML;
	}
	this.modeleDispo.innerHTML = this.modeleDispoTexte.replace( "{0}", datedebutstr ).replace( "{1}", this.DateToStrLong( datefin ) );
	this.modeleDispo.style.display = 'block';
	var XHR = new XHRConnection();
	XHR.appendData("Rf", lform.elements["Rf"].value);	
	XHR.appendData("NumEtape", lform.elements["NumEtape"].value);
	XHR.appendData("Param/ZoneFournisseur", this.zoneFournisseur);
	XHR.appendData("Param/DureeSejour", dureesejour);
	XHR.appendData("Globales/RZ", lform.elements["Globales/RZ"].value);
	XHR.appendData("Globales/ListeIdZone", this.listeIdZone);
	XHR.appendData("Globales/JourDebut", jour);
	XHR.appendData("Globales/MoisDebut", mois);
	XHR.appendData("Globales/AnDebut", an);
	XHR.appendData("Param/IdProduit", lform.elements["Param/IdProduit"].value);
	XHR.sendAndLoad( ( this.proxyResa ? this.proxyResa : "" ) + UrlRecherche, "POST", _AjaxMeuble_AffecteDispo);	
}

// var tDispoCle = new Array();
// var tDispoMaq = new Array();

_AjaxMeuble_AffecteDispo = function ( obj )
{
	var Result = ajMeuble.DonneResultatAjax( obj );
	try 
	{
		var Maquette = ajMeuble.DonneContenu( Result.item(0).getElementsByTagName('Maquette').item(0) );
		var DateDebut = ajMeuble.DonneContenu( Result.item(0).getElementsByTagName('DateDebut').item(0) );
		var DateFin = ajMeuble.DonneContenu( Result.item(0).getElementsByTagName('DateFin').item(0) );
		// var cle = DateDebut + "#" + DateFin;
		// for(i=0; i < tDispoCle.length && tDispoCle[i] != cle; i++);
		// if( i == tDispoCle.length ) tDispoCle.push( cle );
		// tDispoCle.sort();
		// tDispoMaq[ DateDebut + "#" + DateFin ] = Maquette;
		// if( tDispoCle.length > 0 )
		// {
			// var html = "";
			// for(i=0; i < tDispoCle.length; i++)
			//	html += tDispoMaq[ tDispoCle[i] ];
			// document.getElementById('DivDispo').innerHTML = html;
			document.getElementById('DivDispo').innerHTML += Maquette;
			document.getElementById('DivDispoEntete').style.display = 'block';
		// }
	}
	catch(err)
	{
		alert("Service momentanément indisponible !");
	}
	document.body.style.cursor = 'default';
	ajMeuble.modeleDispo.style.display = 'none';
	ajMeuble.ajaxActif = false;
}

AjaxMeuble.prototype.IncrDate = function ( ladate, n )
{
	return new Date(ladate.getFullYear(),ladate.getMonth(),ladate.getDate()+parseInt(n));
}

AjaxMeuble.prototype.DateDepuisChaines = function ( aaaa, mm, jj )
{
	return new Date(parseInt(aaaa),parseInt(mm.replace(/^0/g,""))-1,parseInt(jj.replace(/^0/g,"")));
}

AjaxMeuble.prototype.DateToStrLong = function ( ladate )
{
  if(ladate==null) return "";
  if (typeof(ladate)=="date") ladate= new Date(ladate);
  var jour = ladate.getDate();
  var mois = ladate.getMonth();
  var strjour = new String(jour);
  var strmois = new String(mois+1); 
  var stran = new String(ladate.getFullYear());
  if (jour<10) strjour = "0"+strjour;
  if (mois<9) strmois = "0"+strmois;
  return strjour+"/"+strmois+"/"+stran;  
} 
