// JavaScript Document

// Fonction de chargement
// ------------------------------------------------
function loading()
{
	var str='<table width="100%" height="100%">'+
				'<tr>'+
					'<td align="center" width="100%">'+
						message.GetValue("div_texte_loading")+'<br /><br />'+
						'<img src="../images/loading.gif" border="0" />'+
					'</td>'+
				'</tr>'+
			'</table>';
	
	document.getElementById("loading_box").style.display				= "block";
	document.getElementById("loading_box").style.top					= "250px";
	document.getElementById("loading_box").style.left					= ((window.screen.availWidth-350)/2)+"px";
	
	document.getElementById("loading_main").innerHTML					= str;
	document.getElementById("loading_header").innerHTML					= message.GetValue("div_header_loading");
	
	document.getElementById("loading_background").style.display			= "block";
}


// Gestion des flottants
// ------------------------------------------------
function getPosition(oLink)
{
	if( oLink.offsetParent )
	{
		for( var posX = 0, posY = 0; oLink.offsetParent; oLink = oLink.offsetParent )
		{
			posX += oLink.offsetLeft;
			posY += oLink.offsetTop;
		}
		return [ posX, posY ];
	}
	else
	{
		return [ oLink.x, oLink.y ];
	}
}


var oPopup			= new Array();				// tableau des objets flottants
var omovePopup		= false;					// Flottant en cours de déplacement
var margePopup		= "10,10".split(",");		// position de référence de l'objet flottant en cours de déplacement
var fclosePopup		= false;					// flag de demande de "fermeture" d'un flottant (en cours de sélection)
var charclosePopup	= "¯,-".split(",");			// caractères "restaurer / réduire" du bouton
var maxzPopup		= 101;						// Zindex le plus élevé des flottants (celui de la classe flottant + 1

var popup="popup_1,popup_2,popup_3,popup_4,popup_5".split(",");			// liste des identifiants de flottants dans la page

function addEvent(obj, evType, fn)
{
	if (obj.addEventListener)
	{
		obj.addEventListener(evType, fn, true);
		return true;
	}
	else if (obj.attachEvent)
	{
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	}
	else
		return false;
}

addEvent(window, "click", f);

var myX;
var myY;

function f(evenement)
{
	var t = new Array();
	myX=evenement.pageX;
	myY=evenement.pageY;
} 

function initPopup()
{
	for (i=0;i<popup.length;i++)
	{
		o=document.getElementById(popup[i]);
		oPopup[i]=new Array();
		oPopup[i][0]=popup[i];	// id
		oPopup[i][1]=o;			// objet
		oPopup[i][2]=true;		// affiché ?
	}
}

function stopMove()
{
	omovePopup		= false;
	margePopup		= "10,10".split(",");
	fclosePopup		= false;
	charclosePopup	= "¯,-".split(",");
	maxzPopup		= 101;
}

function searchPopup(popup)
{
	/* tant que l'objet courant n'est pas un flottant, on cherche un objet parent */
	while (popup && popup.className!="popup") popup=popup.parentNode;
	
	/* on a trouvé un flottant contenant ... c'est lequel parmi ceux enregistrés ? */
	for(i in oPopup)
	{
		o=oPopup[i]
		if (o[1]==popup) return o;
	}
	return false;
}

function searchPopupById(popup)
{
	for(i in oPopup)
	{
		o=oPopup[i]
		if (o[0]==popup) return o;
	}
	return false;
}

function closePopup(o)
{
	fclosePopup=true;				// flag de traitement de fermeture en cours
	popup=searchPopup(o);				// recherche du flottant à fermer
	if(popup)
	{
		popup[1].style.display="none";
		popup[2]=false;
	} else alert('pas trouvé');			// on l'a pas trouvé ... c'est pas normal
	stopMove();
}

function openPopup(oid)
{
	fclosePopup=false;				// annulation de traitement de fermeture
	popup=searchPopupById(oid);		// recherche du flottant à ouvrir
	if(popup)
	{
		popup[1].style.display="block";
		popup[2]=true;
	} else alert('pas trouvé');			// on l'a pas trouvé, c'est pas normal
}

function reducePopup(o)
{
	popup=searchPopup(o);							// recherche du flottant à traiter
	if (popup)
	{
		if(popup[1].style.overflow=="hidden")
		{
			popup[1].style.overflow="visible";
			popup[1].style.height="auto";
			o.innerHTML=charclosePopup[1];
		}
		else
		{
			o.innerHTML=charclosePopup[0];
			popup[1].style.overflow="hidden";
			popup[1].style.height=o.parentNode.offsetHeight+"px";
		}
	}else alert('pas trouvé')						// on l'a pas trouvé, c'est pas normal
}

function startmovePopup(o,e)
{
	omovePopup=searchPopup(o);							// on cherche le flottant à traiter
	if(omovePopup && ! fclosePopup)
	{
		margePopup[0]=(e.offsetX) ? e.offsetX:e.layerX;		// on stocke la position relative du clic
		margePopup[1]=(e.offsetY) ? e.offsetY:e.layerY;
		if (omovePopup[1].style.zIndex<maxzPopup)
		{
			maxzPopup++;
			omovePopup[1].style.zIndex=maxzPopup;
		}
	}
}
function movePopup(e)
{
	if(omovePopup)
	{
		o=omovePopup[1];
		x=(e.x) ? e.x:e.pageX;						// on calcule sa position relative
		y=(e.y) ? e.y:e.pageY;
		o.style.left=(x-margePopup[0])+"px";		// par rapport à la position du clic
		o.style.top=(y-margePopup[1])+"px";
	}
}
