// FM_centerLayers -> fonction pour centrer un groupe de calques...
// on lui passe en paramètres tous les calques et elle se débrouille pour tout centrer...
// l'origine est obligatoirement 0,0...
// Elle utilise la fonction FM_findObj(n, d) qui est des copie de MM_findObj(n, d) de Macromédia DreamWeaver,
// pour éviter les redélcarations dans les pages car DreamWeaver la place automatiquement lors de l'édition...

function FM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=FM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function FM_reload() {location.reload();}
function FM_centerLayershoriz() {
	onresize = FM_reload;

	var args = FM_centerLayershoriz.arguments;

	// coordeonnées de l'écran...
	var Xscreen = window.innerWidth?window.innerWidth:document.body.clientWidth;
	var Yscreen = window.innerHeight?window.innerHeight:document.body.clientHeight;


	// largeur et hauteur totales du groupe de calques...
	var Grp_Width  = 0;
	var Grp_Height = 0;
	// offset X et Y du groupe de calques...
	var Grp_Offset_X = 0;
	var Grp_Offset_Y = 0;


	// trouver la largeur totale et la hauteur totale...
	// en fonction de la position et des dimensions de chaque calque...
	for (i=0 ; i<args.length ; i++) {
		var zeCalc = FM_findObj(args[i]);

		if (zeCalc!=null) {
			if (zeCalc.style) zeCalc = zeCalc.style;
			var posX = parseInt(zeCalc.left);
			var posY = parseInt(zeCalc.top);


			var Largeur = parseInt((zeCalc.document)?zeCalc.document.width:zeCalc.width);
			var Hauteur = parseInt((zeCalc.document)?zeCalc.document.height:zeCalc.height);


			// Grp_Width ET Grp_Height...
			var Largeur_Calc = posX + Largeur;
			var Hauteur_Calc = posY + Hauteur;
			if (Largeur_Calc > Grp_Width)  Grp_Width  = Largeur_Calc;
			if (Hauteur_Calc > Grp_Height) Grp_Height = Hauteur_Calc;
		}
	}

	Grp_Offset_X = Math.floor((Xscreen - Grp_Width)/2);
	Grp_Offset_Y = Math.floor((Yscreen - Grp_Height)/2);
	if (Grp_Offset_X < 0) Grp_Offset_X = 0;
	if (Grp_Offset_Y < 0) Grp_Offset_Y = 0;


	// Maintenant, on ajout à chaque calque l'offset...
	for (i=0 ; i<args.length ; i++) {
		var zeCalc = FM_findObj(args[i]);
		if (zeCalc!=null) {
			if (zeCalc.style) zeCalc = zeCalc.style;
			var posX = parseInt(zeCalc.left);
			var posY = parseInt(zeCalc.top);

			zeCalc.left = posX + Grp_Offset_X;
			// zeCalc.top  = posY + Grp_Offset_Y;
		}
	}
}