
var gwbbcode_ajax = {
	repos : true,//signale si la page est en attente de réponse gwbbcode
	liste_req : Array(),//tableau contenant toutes les requêtes
	liste_obj : Array(),//tableau contenant toutes les cibles (objets conteneurs)
	creer: function(){
		this.liste_req = new Array();
		for(var i=0;i<this.liste_obj.length;i++)
		{
			if(this.liste_obj[i]==null)continue;
			if(this.liste_obj[i]==undefined)continue;
			if(this.liste_obj[i]=='')continue;
			if(this.liste_obj[i].innerHTML=='')continue;
			if(this.liste_obj[i].innerHTML.match(/vide/i)!=null)continue;
			var data = 'string_gwbbcode='+ escape(this.liste_obj[i].innerHTML);
			this.liste_req[i] = new ajax([i]);
			this.liste_req[i].f('http://gw.luna-atra.fr/gwbbcode_rep.php');
			this.liste_req[i].setObjet(this.liste_obj[i]);
			this.liste_req[i].F(4, function(_parent){
				//alert(_parent.o.responseText+' '+_parent.arguments[0])
				if(_parent.tobj[0].getAttribute('time')==_parent.time)
					_parent.tobj[0].innerHTML = gwbbcode_ajax.liste_req[ _parent.arguments[0] ].o.responseText;
				gwbbcode_ajax.nettoyage(_parent.arguments[0]);
			});
			this.liste_req[i].d(data);
			this.liste_req[i].tobj[0].setAttribute('time', Date.parse(new Date()) );
			this.liste_req[i].s();
		}
	},
	creerDernier: function(){
		var i=this.liste_req.length;
		if(this.liste_obj[i]==null)return;
		if(this.liste_obj[i]==undefined)return;
		if(this.liste_obj[i]=='')return;
		if(this.liste_obj[i].innerHTML=='')return;
		if(this.liste_obj[i].innerHTML.match(/vide/i)!=null)return;
		var data = 'string_gwbbcode='+ escape(this.liste_obj[i].innerHTML);
		this.liste_req[i] = new ajax([i]);
		this.liste_req[i].f('http://gw.luna-atra.fr/gwbbcode_rep.php');
		this.liste_req[i].setObjet(this.liste_obj[i]);
		this.liste_req[i].F(4, function(_parent){
			//alert(_parent.o.responseText+' '+_parent.arguments[0])
			if(_parent.tobj[0].getAttribute('time')==_parent.time)
			{
				_parent.tobj[0].innerHTML = gwbbcode_ajax.liste_req[ _parent.arguments[0] ].o.responseText;
				var img = _parent.tobj[0].getElementsByTagName('img')[0].cloneNode(true);
				_parent.tobj[0].innerHTML = '';
				_parent.tobj[0].appendChild(img,_parent.tobj[0]);
				img.style.cursor='move';
				img.onmousemove='';img.setAttribute('onmousemove','');
				img.onmouseover='';img.setAttribute('onmouseover','');
				img.onmouseout='';img.setAttribute('onmousemout','');
				
			}
			gwbbcode_ajax.nettoyage(_parent.arguments[0]);
		});
		this.liste_req[i].d(data);
		this.liste_req[i].tobj[0].setAttribute('time', Date.parse(new Date()) );
		this.liste_req[i].s();
	},
	lancer: function(){
		for(var i=0;i<this.liste_req.length;i++)
		{
			try{this.liste_req[i].s();}catch(e){}
		}
	},
	ajouterReqById: function(objet,cible_id){
		//objet est l'objet depuis lequel est lancé la requête
		//cible_id est l'id de la cible
		//mettre à jour TOUTES les interfaces de la page
		if(objet!=''&&objet!=undefined&&objet!=null)
		{
			setevent(objet,'onclick','');
			objet.style.color="black";
		}
		var temp = document.getElementById(cible_id);
		this.liste_obj.push(document.getElementById(cible_id));
	},
	ajouterReqByObject: function(objet){
		//objet est l'objet à ajouter
		//alert(objet.innerHTML)
		this.liste_obj.push(objet);
		//alert(this.liste_obj)
	},
	ajouterReqByArray: function(tobjet){
		//tobjet est un tableau d'objets à ajouter
		for(var i=0;i<tobjet.length;i++)
		{
			//alert(tobjet[i].innerHTML)
			this.liste_obj.push(tobjet[i]);
		}
	},
	ajouterReqByClass: function(objet_dep,cible_classe){
		//objet_dep est l'objet depuis lequel est lancé la requête
		//cible_classe est l'id de la cible
		//mettre à jour TOUTES les interfaces de la page
		if(objet_dep!=''&&objet_dep!=undefined&&objet_dep!=null)
		{
			setevent(objet_dep,'onclick','');
			objet_dep.style.color="black";
		}
		this.ajouterReqByArray(getElementsByClass(cible_classe));
	},
	nettoyage: function(index){
		this.liste_req[index] = null;
		this.liste_obj[index] = null;
	},
	nettoyer: function(){
		if(this.enCours())return;
		var temp = Array();
		for(var i=0;i<this.liste_obj.length;i++)
		{
			if(this.liste_obj[i]==null)continue;
			if(this.liste_obj[i]==undefined)continue;
			if(this.liste_obj[i]=='')continue;
			if(this.liste_obj[i].innerHTML=='')continue;
			temp.push(this.liste_obj[i]);
		}
		this.liste_obj=temp;
	},
	enCours: function(){
		for(var i=0;i<this.liste_req.length;i++)
		{
			if(this.liste_req[i]==null)continue;
			if(this.liste_req[i]==undefined)continue;
			if(this.liste_req[i]=='')continue;
			try{
				if(this.liste_req[i].o.readyState!=4)
					return true;
			}catch(e){}
		}
		return false;
	},
	vider: function(){
		this.liste_obj=Array();
		this.liste_req=Array();
	}
}
