
var PseudoPopups =
{
	//Création des popups
	pool: new Array(),
	popups: new Array(),
	last_created_popup: 0,
	
	
	//Mouvement du popup
	drag: new Array(),
	last_zIndex: 1,
	
	
	getInstance: function ()
	{
	    if (this.pool.length < 1)
	    	return this.createPopup();
	    else
	        return this.pool.pop();
	},
	
	createPopup: function ()
	{
		this.last_created_popup++;
		
		var popup = document.createElement("div");
		popup.setAttribute("id","popup"+this.last_created_popup);
		popup.setAttribute("class","popup");
		document.getElementsByTagName('body')[0].appendChild(popup);
		
	    return this.last_created_popup;
	},
	
	ouvrir: function (popup, largeur, hauteur, fonction_fermeture, sous_titre)
	{
	  	if (!this.popups[popup])
	  	{
		  	this.popups[popup] = this.getInstance();
		  	var num_popup = this.popups[popup];
		  	
		  	//On récupère la largeur de la fenêtre
		  	if (document.body)
			{
				var larg_fen = (document.body.clientWidth);
				var haut_fen = (document.body.clientHeight);
			}
			{
				var larg_fen = (window.innerWidth);
				var haut_fen = (window.innerHeight);
			}
			var pos_left = x_souris + 25;
			if (pos_left + largeur + 25 > larg_fen)
				pos_left = larg_fen - largeur - 25;
		  	document.getElementById("popup"+num_popup).style.left = pos_left+'px';
		  	
		  	var pos_top = y_souris - hauteur/2;
		  	if (pos_top + hauteur + 2 > haut_fen)
		  		pos_top = haut_fen - hauteur - 2;
		  	if (pos_top < 2)
		  		pos_top = 2;
		  	document.getElementById("popup"+num_popup).style.top = pos_top+'px';
		  	
		  	if (!fonction_fermeture)
		    	fonction_fermeture = '';
		    
		  	var contenu = "<div class='popup_cadre' onMouseDown='PseudoPopups.display(\""+popup+"\")' style='width:"+largeur+"px;height:"+hauteur+"px'>"+
		  	
		  	//Titre
		  	"<div class='popup_titre_cadre' style='cursor:move' id='popup"+num_popup+"_handle'>"+
		    	"<div class='popup_fermeture' onClick='"+fonction_fermeture+"PseudoPopups.release(\""+popup+"\")'></div>"+//La croix
		    	"<span class='popup_titre_texte' id='popup"+num_popup+"_titre'></span>"+//Le texte du titre
		  	"</div>";
		  	
		  	//Sous-titre (ex : onglets pour les flottes)
		  	var hauteur_corps;
		  	if (sous_titre)
		  	{
		    	hauteur_corps = hauteur - 47;
		    	contenu += "<div id='popup"+num_popup+"_soustitre' class='popup_soustitre'></div>";
		  	}
		  	else
		    	hauteur_corps = hauteur - 21;
		  	
		  	//Corps
		  	contenu += "<div class='popup_corps' id='popup"+num_popup+"_corps' style='height:"+hauteur_corps+"px'><em>Chargement</em></div>"+
		  	
		  	"</div>";
		  	
		  	document.getElementById("popup"+num_popup).innerHTML = contenu;
		  	this.drag[num_popup] = new Draggable('popup'+num_popup, {zindex:0, handle:'popup'+num_popup+'_handle', endeffect:function(){new Effect.Opacity("popup"+num_popup, {duration:0.2, from:0.7, to:1.0});}, starteffect:function(){PseudoPopups.display(popup);new Effect.Opacity("popup"+num_popup, {duration:0, from:1.0, to:0.7})}});
	  	}
	  	this.display(popup);
	},
	
	write:function (popup, txt)
	{
	  	if (!this.popups[popup])
	  		return false;
	  	
	  	document.getElementById("popup"+this.popups[popup]+"_corps").innerHTML = txt;
	},
	
	add:function (popup, txt)
	{
	  	if (!this.popups[popup])
	  		return false;
	  	
	  	document.getElementById("popup"+this.popups[popup]+"_corps").innerHTML += txt;
	},
	
	writeTitre:function (popup, txt)
	{
	  	if (!this.popups[popup])
	  		return false;
	  	
	  	document.getElementById("popup"+this.popups[popup]+"_titre").innerHTML = txt;
	},
	
	writeSousTitre:function (popup, txt)
	{
	  	if (!this.popups[popup])
	  		return false;
	  	
	  	document.getElementById("popup"+this.popups[popup]+"_soustitre").innerHTML = txt;
	},
	
	display:function (popup)
	{
	  	if (!this.popups[popup])
	  		return false;
	  	
	  	if (document.getElementById("popup"+this.popups[popup]).style.zIndex != this.last_zIndex)
	  	{
			this.last_zIndex++;
			document.getElementById("popup"+this.popups[popup]).style.zIndex = this.last_zIndex;
	  	}
	  	
	  	document.getElementById("popup"+this.popups[popup]).style.visibility = "visible";
	},
	
	release:function (popup)
	{
		if (!this.popups[popup])
	  		return false;
	  	
	  	document.getElementById("popup"+this.popups[popup]).visibility = "hidden";
		document.getElementById("popup"+this.popups[popup]).innerHTML = '';
		this.drag[this.popups[popup]].destroy();
		this.pool.push(this.popups[popup]);
		this.popups[popup] = 0;
	}
}
