// ***********************************************************************
// AFFICHAGE D'UNE IMAGE EN SURIMPRESSION SUR LA PAGE 
// ***********************************************************************

// PARAMETRES
var _xlayer = 50; // position du bord gauche du layer relativement à la page
var _ylayer = 10; // position du bord haut du layer relativement à la page
var _couleur_fond = "#b0cdd8"; // couleur du fond
var _couleur_titre = "#000000"; // couleur du titre
var _police = "tahoma"; // police du texte
var _bouton_fermer = "../images/croix.gif"; // bouton fermer la fenêtre en haut du layer
var _id_layer ;
var layerIndex = new Array();
layerIndex[0] = new Array();
layerIndex[1] = new Array();
var _haut_titre = 25; // hauteur du titre en pixels (pour déterminer la hauteur de la zone permettant le déplacement) 

// VARIABLES GLOBALES
var nn4 = (document.layers);
var dom = (document.getElementById);
var iex = (document.all);
var obj_layer = null;
var larg_image = 0; // largeur de l'image
var cache = true;
var X,Y,moveX,moveY,offsetX,offsetY;
var b_traine = false; // vrai, lorsqu'on est en train de déplacer le layer

// création de l'objet obj_layer en fonction du navigateur :
// affecte le layer et lui donne son emplacement vertical
function init_layer() {
  if (dom && (document.getElementById(_id_layer))) {
	i=layerIndex[0].length;
	LayerNiveauMax=0;
	for(k=0; k<layerIndex[0].length; k++){
		if (LayerNiveauMax<layerIndex[1][k]){
			LayerNiveauMax=layerIndex[1][k];
		};
	};
	if (LayerNiveauMax==0){
		index=1;
	}else{
		//index=layerIndex[1][i-1]+1;
		index=LayerNiveauMax+1;
	};
	layerIndex[0][i]=_id_layer;
	layerIndex[1][i]=index;
    obj_layer = document.getElementById(_id_layer).style;
    X = iex ?  "event.clientX": "e.clientX";
    Y = iex ?  "event.clientY" : "e.clientY";
    offsetX = (iex) ? "document.body.scrollLeft" : "pageXOffset";
    offsetY = (iex) ? "document.body.scrollTop" : "pageYOffset";
    obj_layer.zIndex=index;
  }
  else if (iex && (_id_layer)) {
    obj_layer = _id_layer.style;
    X="event.clientX";
    Y="event.clientY";
    offsetX="document.body.scrollLeft";
    offsetY="document.body.scrollTop";
  }
  else if (nn4 && (document.layers[_id_layer])) {
    obj_layer = document.layers[_id_layer];
    X="e.pageX";
    Y="e.pageY";
    offsetX="pageXOffset";
    offsetY="pageYOffset";
    document.captureEvents(Event.MOUSEDOWN|Event.MOUSEMOVE|Event.MOUSEUP);
  }
  if (obj_layer) {
    obj_layer.left = _xlayer;
    obj_layer.top = _ylayer;
  }
}


// écrit le contenu dans le layer et le rend visible
function contenu_layer(contenu) {
  if (nn4) {
    obj_layer.document.write(contenu);
    obj_layer.document.close();
    obj_layer.visibility = "visible";
  }
  else if (dom) {
    document.getElementById(_id_layer).innerHTML = contenu;
    obj_layer.visibility = "visible";
  }
  else if (iex) {
    document.all[_id_layer].innerHTML = contenu;
    obj_layer.visibility = "visible";
  }
}

// cache le layer (seulement s'il est visible)
function fermer(NomLayer) {
	if (NomLayer!=undefined){
		NomLayer = NomLayer;
	}else{
		NomLayer = "popup";
	};  
	if(parent.TypeFenetre=='MecaAppel'){
		FPopup.location="Deverrouille.asp";
	}else{
		//if (!cache) {
			ch_texte="";
			//contenu_layer(ch_texte);
			document.getElementById(NomLayer).style.visibility = "hidden";
		  //cache = true;
		//}
	}
}

// positionne correctement le layer si on a fait défilé la page
function scroll_layer() {
    if (document.all) {
        obj_layer.left = parseInt(document.body.scrollLeft + _xlayer);
        obj_layer.top = parseInt(document.body.scrollTop + _ylayer);
    }
    else {
        obj_layer.left = parseInt(window.pageXOffset + _xlayer);
        obj_layer.top = parseInt(window.pageYOffset + _ylayer);
    }
}

// affiche le titre 
function affiche_titre(texte) {
  var ch_texte = "";
  // on écrit le titre
  // 
  ch_texte += "<tr height='19'><td id='CaseTitre' align='center' style='cursor:default' width='" + (larg_image-17) + "' " + (nn4 ? ">" : " >") + "<font color='" + _couleur_titre + "' face='" + _police + "' size='2'>" + texte + "</font></td>";
  // puis le bouton de fermeture de la fenêtre
  ch_texte += "<td align='right' width='15'><a href='javascript:fermer(\""+ _id_layer +"\")'><img src='" + _bouton_fermer + "' border='0' alt='Fermer' title='Fermer'></a></td></tr>";
  return ch_texte;
}

// affiche une image en surimpression
// avec un texte au-dessus et éventuellement un sous-titre en bas
// 4 arguments : le fichier image, sa largeur en pixels, le titre (en haut) et le sous-titre (en bas)
function OuvrePopup(fichier, hauteur_image, largeur_image, titre, typeFenetre, NomLayer) {
  // reinitialise le layer
  if (NomLayer!=undefined){
	_id_layer = NomLayer;
  }else{
	_id_layer = "popup";
  };  
  init_layer();
  // si le layer existe, on affiche titre et image dans un tableau de fond _couleur_fond (défini dans les paramètres)
  if (obj_layer) {	
    larg_image = largeur_image;
    cache = false;
    var ch_texte = "<table border='1' cellspacing='0' cellpadding='0' bordercolor='#000000'><tr><td>";
    ch_texte += "<table id='tabPopup' width='" + (larg_image+4) + "' height='" + (hauteur_image+23) + "' cellspacing='0' cellpadding='2' border='0' bgcolor='" + _couleur_fond + "'>";
	ch_texte += affiche_titre(titre);
	ch_texte += "<tr height='" + (hauteur_image+4) + "'><td colspan='3' align='center' colspan='2'><iframe name='FPopup' src='" + fichier + "' width='" + larg_image + "' height='" + hauteur_image + "' scrolling='auto' border='0' frameborder='no' vspace='0' hspace='0' framespacing='0' norize='norize' marginwidth='0' marginheight='0' align='middle'></iframe></td></tr>";
	ch_texte += "</table>";
	ch_texte += "</td></tr></table>";
	scroll_layer();
    contenu_layer(ch_texte);
  }
}


// DEPLACEMENT DU LAYER AVEC LA SOURIS

// initialisation lorsqu'on appuye sur le bouton de la souris (début du déplacement)
// l'argument "e" est nécessaire pour Netscape 4
function init_traine(e) {
  if (obj_layer && !cache) {
	if (layerIndex[0].length!=0){
		LayerNiveauMax=0;
		for(k=0; k<layerIndex[0].length; k++){
			if (LayerNiveauMax<layerIndex[1][k]){
				LayerNiveauMax=layerIndex[1][k];
			};
		};
		for(k=layerIndex[0].length-1; k>-1; k--){
			//alert(layerIndex[0][k]);
			obj_layer = document.getElementById(layerIndex[0][k]).style;
			var Xin = eval(X);
			var Yin = eval(Y);
			var L = parseFloat(obj_layer.left);
			var T = parseFloat(obj_layer.top);
			var offX = (nn4)? 0 : eval(offsetX);
			var offY = (nn4)? 0 : eval(offsetY);    
			// détermine si la souris est dans la zone supérieure du layer
			if (Xin>(L-offX) && Xin<(L-offX+larg_image) && Yin>(T-offY) && Yin<(T-offY+_haut_titre)) {
			  b_traine = true;
			  moveX=Xin-L;
			  moveY=Yin-T;
			  if (obj_layer.zIndex<LayerNiveauMax){
				obj_layer.zIndex=LayerNiveauMax+1;
				layerIndex[1][k]=LayerNiveauMax+1;
			  };
			  break;
			}
			else b_traine = false;
		};
	};
  }
  else b_traine = false;
}

function stop_traine() {
  if (b_traine) {
    moveX = null;
    moveY = null;
    b_traine = false;
  }
}

function traine_layer(e) {
  if (b_traine) {
    var Xin = eval(X);
    var Yin = eval(Y);
   // déplacement
    obj_layer.top = Yin - moveY;
    obj_layer.left = Xin - moveX;
  }
}

document.onmousedown=init_traine;
document.onmousemove=traine_layer;
document.onmouseup=stop_traine;