   function getClientSize() {
     var myWidth = 0, myHeight = 0;
     if( typeof( window.innerWidth ) == 'number' ) {
       //Non-IE
       myWidth = window.innerWidth;
       myHeight = window.innerHeight;
     } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
       //IE 6+ in 'standards compliant mode'
       myWidth = document.documentElement.clientWidth;
       myHeight = document.documentElement.clientHeight;
     } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
       //IE 4 compatible
       myWidth = document.body.clientWidth;
       myHeight = document.body.clientHeight;
     }
     return [ myWidth, myHeight ];
   }

   function getScrollXY() {
     var scrOfX = 0, scrOfY = 0;
     if( typeof( window.pageYOffset ) == 'number' ) {
       //Netscape compliant
       scrOfY = window.pageYOffset;
       scrOfX = window.pageXOffset;
     } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
       //DOM compliant
       scrOfY = document.body.scrollTop;
       scrOfX = document.body.scrollLeft;
     } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
       //IE6 standards compliant mode
       scrOfY = document.documentElement.scrollTop;
       scrOfX = document.documentElement.scrollLeft;
     }
     return [ scrOfX, scrOfY ];
   }


   var IEfader = (navigator.appName == "Microsoft Internet Explorer");

   var fadings = new Array();

   function fade_in(id,op,max) {
     if (!fadings[id] || fadings[id] == "") fadings[id] = "in";
     if (fadings[id] == "in") {
      if (element = document.getElementById(id)) {
          if (op==0) element.style.visibility = "visible";
          //if (element.style.visibility != "visible") element.style.visibility = "visible";
          if (op>max) op=max;
          if (IEfader)
            element.style.filter = "alpha(opacity="+op+")";
          else {
            element.style.opacity = (op / 100);
            element.style.MozOpacity = (op / 100);
          }
          if (op < max) setTimeout('fade_in("'+id+'",'+(op+15)+','+max+');',55);
          else fadings[id] = "";
      }
     }
     else { //sinon attendre...
        setTimeout('fade_in("'+id+'",'+op+','+max+');',75);
     }
    }

    function fade_out(id,op,min) {
      if (!fadings[id] || fadings[id] == "") fadings[id] = "out";
      if (fadings[id] == "out") {
       if (element = document.getElementById(id)) {
          if (op < min) op=min;
          if (IEfader)
            element.style.filter = "alpha(opacity="+op+")";
          else {
            element.style.opacity = (op / 100);
            element.style.MozOpacity = (op / 100);
          }

          if (op==0) element.style.visibility = "hidden";

          if (op>min) setTimeout('fade_out("'+id+'",'+(op-15)+','+min+');',55);
          else fadings[id] = "";
       }
       else { //sinon attendre...
         setTimeout('fade_out("'+id+'",'+op+','+min+');',75);
      }
     }
   }


   /* ------------------  Fonctions de fenêtres "génériques"..  ------ */
    function Ouvrir(id) {
      if (!IEfader)
        fade_in(id,0,100);
      document.getElementById(id).style.display = "block";
    }

    function Fermer(id) {
      if (!IEfader)
        fade_out(id,70,0);
      else document.getElementById(id).style.display = "none";
    }


/* ------------------  Fonction de base pour capture / drag de la souris..  ------ */

   var nowX = 0;
   var nowY = 0;
   var curr_z = 200;

   var sourisX1 = 0;
   var sourisY1 = 0;
   var objX1 = 0;
   var objY1 = 0;
   var initialise = false;

   function getMouseXY(e) {
      var posX = 0;
      var posY = 0;
      var e = (!e) ? window.event : e;
      if (e.pageX || e.pageY) {
         posX = e.pageX;
         posY = e.pageY;
      }
      else if (e.clientX || e.clientY) {
         if (document.body.scrollLeft || document.body.scrollTop) {
            posX = e.clientX + document.body.scrollLeft;
            posY = e.clientY + document.body.scrollTop;
         }
         else {
            posX = e.clientX + document.documentElement.scrollLeft;
            posY = e.clientY + document.documentElement.scrollTop;
         }
      }
      nowX = posX;
      nowY = posY;
   }

   /* onmousemove appelle toujours getMouseXY, */
   /* pour s'assurer que lorsqu'on commence un drag, on a une valeur de nowX et nowY valide */   
   document.onmouseup = function() {
       document.onmousemove = function(e) { getMouseXY(e); }       
   }
   document.onmousemove = function(e) { getMouseXY(e); }

    function drag(id) {
       obj = document.getElementById(id);
       obj.style.zIndex = curr_z++;
       /* initialise les positions relatives au début du drag */
       sourisX1 = nowX;
       sourisY1 = nowY;
       objX1 = obj.offsetLeft;
       objY1 = obj.offsetTop;
       /* redéfinis la fonction temporairement (jusqu'à "onmouseup") */
       document.onmousemove = function(e) {
           getMouseXY(e);
           newX = (objX1-sourisX1+nowX);
           newY = (objY1-sourisY1+nowY);
           obj.style.left = newX+"px";
           obj.style.top = newY+"px";
       }
   }


   /* ------------------  Fin des fonctions de capture de la souris..  ------ */





/* ---------------------------------------------------------------
 *
 *          Fonctions du MENU DÉROULANT
 *
 * -------------------------------------------------------------*/

var sm_actif = "aucun";
var sm_ancien = "aucun";

var pompe = 1;              // menu déroulants: contourne des petits problèmes (diff. IE vs FIREFOX)..

var hauteurs = Array();

function Enlever(Sousmenu) {
  if (sm_actif != Sousmenu) {
     document.getElementById(Sousmenu).style.visibility="hidden";
  }
}
function Apparait(Sousmenu) {
  if (Sousmenu != sm_actif) {
    sm_actif = Sousmenu;
    
    for (i = 1; i <= nombre_items_menu; i++) {if (("sm_"+i) != sm_actif) Enlever("sm_"+i);}  
    
    if (Sousmenu != "aucun") {

      /* mettre en commentaire pour enlever l'effet déroulant : */
      if (document.getElementById(Sousmenu).style.visibility != "visible") {
        if (!hauteurs[Sousmenu])
           hauteurs[Sousmenu] = document.getElementById(Sousmenu).scrollHeight;

        maxy = hauteurs[Sousmenu];
        pompe = 20;
        document.getElementById(Sousmenu).style.height = pompe+"px";

        // les vitesse sont différentes selon les navigateurs
        // premier chiffre : milisecondes entre les rafraichissements
        // deuxième chiffre : nombre de pixel qu'on agrandit à chaque rafraichissements
         if (IEfader) {
             Deroule(Sousmenu,40,30,maxy-2);
         }
         else {
             Deroule(Sousmenu,40,30,maxy);
             fade_in(Sousmenu,50,95);
         }
         document.getElementById(Sousmenu).style.visibility="visible";
      }
    	
    }
  }
}
function Deroule(Sousmenu,ms,dy,maxy) {
    Numero = Sousmenu;
    milisec = ms;
    deltay = dy+10; // accélération !
    max = maxy;
    //if (Sousmenu == sm_actif) {
        if ((pompe + dy) >= maxy)
            document.getElementById(Sousmenu).style.height = maxy+"px";
        else {
            pompe = pompe+dy;
            document.getElementById(Sousmenu).style.height = pompe+"px";
            setTimeout("Deroule(Numero,milisec,deltay,max)",milisec);
        }
    //}
}
function Disparait(Sousmenu) {
	sm_actif = "aucun";   
   if (IEfader) {setTimeout("Enlever('"+Sousmenu+"')",900);}
		else {setTimeout("Enlever('"+Sousmenu+"')",600);}

}

function OverMenu(Sousmenu)	{
    sm_actif = Sousmenu;
}


function AjusteFiltre() {
   if (filtre = document.getElementById("overlay_filtre")) {
      cl = getClientSize();
      sc = getScrollXY();

      filtre.style.width = (cl[0])+ "px";
      filtre.style.height = (cl[1])+ "px";
      filtre.style.left = (sc[0])+'px';
      filtre.style.top = (sc[1])+'px';

   }
}
window.onresize = function() {
   AjusteFiltre();
}
window.onscroll = function() {
   AjusteFiltre();
}


/* *******************************************************
 *    Fonctions pour AJAX
 *
 * ******************************************************* */
var edition_active = false;

function CheckEdition() {
   if (document.getElementById("msg_admin"))
     document.getElementById("msg_admin").innerHTML = "&nbsp;";
   if (edition_active) {
      if (est_admin) {
         alert("Vous devriez finir ce que vous avez commencé !\nEnregistrez ou annulez vos modifications puis ré-essayez.");
         document.getElementById("msg_admin").innerHTML = "Finissez ou annulez ce que vous êtes en train de faire.";
      }
      //else
         //alert("Vous êtes déjà en train de changer de page...");
      return false;
   }
   else {
      edition_active = true;
      return true;
   }
}

var ajaxContenu = new Ajax();

var showContenu = function(str) { 
  edition_active = false;
  document.getElementById("contenu_pages").innerHTML = str;
  //if (!est_admin && !cache_pages[section_active][page_active])
  //   cache_pages[section_active][page_active] = str;
  if (!IEfader) {
      fadings['contenu_pages'] = "in"; // stop explicitement le fade-out ! :)
      fade_in('contenu_pages',40,100);
  }

 
}


function getContenuPatch(s,p) { /* Patch pour l'historique (retour du iframe..) */
   document.title = (est_admin?'ADMIN':titre_site)+" - "+liste_ts[s];
   document.getElementById('complet').style.backgroundImage = "url(images/Fond_"+s+".jpg)";
   window.scroll(0,0);

   last_m = document.getElementById('menu_'+section_active);
   last_m.onmouseover = function () {this.style.backgroundPosition='0px -29px';}
   last_m.onmouseout = function () {this.style.backgroundPosition='0px 0px';}
   last_m.style.backgroundPosition='0px 0px';
   last_m.style.cursor='pointer';
   new_m = document.getElementById('menu_'+s);
   new_m.onmouseover = function () {}
   new_m.onmouseout = function () {}
   new_m.style.backgroundPosition='0px -58px';
   new_m.style.cursor='default';

   section_active = s;
   page_active = p;   

   ajaxContenu.doGet('zen_sections_contenu.php?s='+s+'&p='+p, showContenu);

   if (!IEfader) {
      fade_out("contenu_pages",90,20);
   }
}

var histo_iframe = true;


function getContenu(s,p) {
 if (est_admin || (section_active != s || page_active != p)) {
  if (CheckEdition()){
   histo_iframe = false;
   document.getElementById('iframe_historique').src='zen_historique.php?s='+s+'&p='+p;
   getContenuPatch(s,p);
   if (!est_admin) {
      try { pageTracker._trackPageview(liste_fp[s][p]+'.php');  } catch(err) {}
   }   
  }
 }
}


function ChangeOnglet(id) {
 if (!edition_active) {
   if (document.getElementById('onglet_actif')) {
      ferme = document.getElementById('onglet_actif').innerHTML;
      document.getElementById('onglet_actif').innerHTML = id;
      if (ferme != id) {

         document.getElementById('onglet_'+ferme).style.display = "none";
         document.getElementById('menu_onglet_'+ferme).className = "";
         document.getElementById('menu_onglet_'+id).className = "onglet_selection";
         Ouvrir('onglet_'+id);
      }
   }
 }
}

function ChangeVOnglet(id) {
 if (!edition_active) {
   if (document.getElementById('vonglet_actif')) {
      ferme = document.getElementById('vonglet_actif').innerHTML;
      document.getElementById('vonglet_actif').innerHTML = id;
      if (ferme != id) {

         document.getElementById('vonglet_'+ferme).style.display = "none";
         document.getElementById('menu_vonglet_'+ferme).className = "";
         document.getElementById('menu_vonglet_'+id).className = "vonglet_selection";
         Ouvrir('vonglet_'+id);
      }
   }
 }
}


