/* auteur: Bernard Martin-Rabaud */
/* Date de création: 23/10/2002 */

// ***********************************************************************
// AFFICHAGE D'UNE IMAGE EN SURIMPRESSION SUR LA PAGE 
// ***********************************************************************

// PARAMETRES
var _dir_images = "images/"; // répertoire de l'image à afficher
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 = "#12511E"; // couleur du fond
var _couleur_titre = "#FFD07D"; // couleur du titre
var _bordure_titre = "#707070"; // couleur de la bordure autour du titre (pas de bordure indiquer : "")
var _police = "Verdana,Arial,Helvetica,sans serif"; // police du texte
var _bouton_fermer = "images/croix.gif"; // bouton fermer la fenêtre en haut du layer
var _id_layer = "popup";
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))) {
    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";
  }
  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() {
  if (!cache) {
    obj_layer.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 = "";
  // si on a défini une bordure autour du titre, on entoure celui-ci de 2 tableaux imbriqués
  // pour simuler une bordure : le 1er de la couleur de la bordure, le 2nd de la couleur du fond
  if (_bordure_titre) {  
    ch_texte += "<tr><td><table width='100%' cellspacing='1' cellpadding='0' border='0' bgcolor='" + _bordure_titre + "'><tr><td>";
    ch_texte += "<tr><td><table width='100%' cellspacing='0' cellpadding='0' border='0' bgcolor='" + _couleur_fond + "'><tr><td>";
  }
  // on écrit le titre
  ch_texte += "<tr><td align='center'" + (nn4 ? ">" : " width='100%'>") + "<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'><a href='javascript:fermer()'><img src='" + _bouton_fermer + "' border='0'></a></td></tr>";
  if (_bordure_titre) ch_texte += "</table></td></tr></table></td></tr>";
  return ch_texte;
}

// affiche un sous-titre (en bas de la page)
function affiche_soustitre(texte) {
  return "<tr><td align='center'" + (_bordure_titre ? " colspan='2'>" : ">") + "<font color='" + _couleur_titre + "' face='" + _police + "' size='2'>" + texte + "</font><br><a href='evenement.php'><font color='#ffffff'>Cliquez ici</font></a></td></tr>";
}
  
// 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 agrandir_image(fimage, largeur_image, titre, soustitre) {
  // reinitialise le layer
  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 cellspacing='0' cellpadding='4' border='0' bgcolor='" + _couleur_fond + "'>";
    // affiche le titre en haut
    ch_texte += affiche_titre(titre);
    // affiche l'image
    ch_texte += "<tr><td align='center'" + (_bordure_titre ? " colspan='2'>" : ">") + "<img src='" + _dir_images + fimage + "' border='0'></td></tr>";
    // affiche en bas le sous-titre s'il existe
    if (soustitre) ch_texte += affiche_soustitre(soustitre);
    ch_texte += "</table>";
    // replace le layer, si on a fait défilé la fenêtre
    scroll_layer();
    // affecte ch_texte au contenu du 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) {
    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;
    }
    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;