   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 IE6 = false;
   var fadings = new Array();
   /*
var agent=navigator.userAgent.toLowerCase();
var is_iphone = (agent.indexOf('iphone')!=-1);
if (is_iphone) { alert("iphone"); }
*/
   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 (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 ALBUM PHOTOS
 *
 * -------------------------------------------------------------*/

var album_page_active = "";
var album_photo_active = "";
var album_page_back_admin = "";
var album_photo_back_admin = "";

function AfficheAlbumThumbs(idalbum) {
   if ( document.getElementById('album_pres_thumbs')) {
     //window.scroll(0,0);
     document.getElementById('album_pres_thumbs_titre').innerHTML = document.getElementById('album_titre_page_'+idalbum).innerHTML;

     if (album_page_active != idalbum) {
       // patch pour historique, pas grave puisque bouton non clicable lorsque sélectionné !
        if (album_page_active != "" && document.getElementById('album_thumbs_page_'+album_page_active))
            document.getElementById('album_thumbs_page_'+album_page_active).style.display = "none";
        album_page_active = idalbum;

        if (document.getElementById('album_thumbs_page_'+idalbum)) Ouvrir('album_thumbs_page_'+idalbum);
     }

   }
}
var effacer_photo = false;
function AfficheAlbumPhoto(idphoto) {
  if (!effacer_photo) {
   AjusteFiltre();
   fade_in("overlay_filtre",0,55);
   document.getElementById('overlay_filtre').style.display = 'block';
   document.getElementById('section_droite_contenu').style.visibility = "hidden"; // patch pour cacher le flash

/*
   if (document.getElementById('album_pres_conteneur').style.display != "block"
       || document.getElementById('album_pres_conteneur').style.visibility == "hidden" )
      Ouvrir('album_pres_conteneur');
*/
   document.getElementById('album_pres_conteneur').style.display = "block";   
   document.getElementById('album_pres_conteneur').style.top = (getScrollXY()[1]+15)+"px";
   clientW = getClientSize()[0];
   if (clientW < 980)
      document.getElementById('album_pres_conteneur').style.left = (getScrollXY()[0]+15)+"px";
   else
      document.getElementById('album_pres_conteneur').style.left = Math.round((clientW-850)/2)+"px";

   if ( document.getElementById('album_pres_photo') && document.getElementById('album_photo_src_'+idphoto)) {
     if (album_photo_active != idphoto) {
       /*document.getElementById('album_pres_photo').style.visibility = "hidden";*/
       fade_out('album_pres_photo',10,0);
       album_photo_active = idphoto;

       document.getElementById('album_pres_titre').innerHTML = document.getElementById('album_photo_titre_'+idphoto).innerHTML;
       document.getElementById('album_pres_photo').innerHTML = '<img src="'+document.getElementById('album_photo_src_'+idphoto).innerHTML+'" onmousedown="return false;" ondrag="return false;" />';

       setTimeout("fade_in('album_pres_photo',0,100);",200); // puisque juste l'image, IE AUSSI, donc fade_in sans "ouvrir" ! :)

       document.getElementById('album_pres_contenu').innerHTML = document.getElementById('album_photo_contenu_'+idphoto).innerHTML;
     }
   }
  }
}
function FermeAlbumPhoto() {
   document.getElementById('album_pres_conteneur').style.display = 'none';
   document.getElementById('overlay_filtre').style.display = 'none';
   document.getElementById('section_droite_contenu').style.visibility = 'visible'; // patch pour cacher le flash

   /*fade_out("overlay_filtre",70,0);*/

   if (document.getElementById('div_modifier_album_photo') && document.getElementById('div_modifier_album_photo').style.display=="block") {
      Annuler('div_modifier_album_photo');
   }
}

   /* ------------------  Fin des fonctions de l'album photo..  ------ */



/* ---------------------------------------------------------------
 *
 *          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";
     document.getElementById(Sousmenu).style.overflow="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 = 15;
        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
       document.getElementById(Sousmenu).style.overflow="hidden";
    	 if (IEfader) {
    	    Deroule(Sousmenu,35,25,maxy-2);
       }
       else {
          Deroule(Sousmenu,35,25,maxy);
          /*fade_in(Sousmenu,80,100);*/
       }
      
      /* fin */

       document.getElementById(Sousmenu).style.visibility="visible";
      }
    }
  }
}
function Deroule(Sousmenu,ms,dy,maxy) {    
    milisec = ms;
    deltay = dy+30;
    max = maxy;
    //if (Sousmenu == sm_actif) {
        if ((pompe + dy) >= maxy) {
           document.getElementById(Sousmenu).style.overflow="visible";
           document.getElementById(Sousmenu).style.height = maxy+"px";
        }
        else {
            pompe = pompe+dy;
            document.getElementById(Sousmenu).style.height = pompe+"px";
            setTimeout("Deroule('"+Sousmenu+"',milisec,deltay,max)",milisec);
        }
    //}
}
function Disparait(Sousmenu) {
	sm_actif = "aucun";
   if (IEfader) {setTimeout("Enlever('"+Sousmenu+"')",100);}
		else {setTimeout("Enlever('"+Sousmenu+"')",100);}

}

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) { 
  document.getElementById("contenu_pages").innerHTML = str;
  
  window.scroll(0,0);

  if (!IEfader) {
      fadings['contenu_pages'] = "in"; // stop explicitement le fade-out ! :)
      fade_in('contenu_pages',40,100);
  }
/*
  fadings['sablier'] = "out";
  fade_out('sablier',60,0);
*/
  // if (document.getElementById('grille_cal_ev')) GetCalEv(0);
  
  if (page_active > 0 || (section_active != 'autres' && section_active != 'others')) article_actif = "";
  else getArchivesArticles();

  if (document.getElementById('album_premiere_page')) {
    if (album_page_back_admin == "") {
      AfficheAlbumThumbs(document.getElementById('album_premiere_page').innerHTML);
      //AfficheAlbumPhoto(document.getElementById('album_premiere_photo').innerHTML);

    }
    else {
      AfficheAlbumThumbs(album_page_back_admin);
 
      if (album_photo_back_admin != "")
         AfficheAlbumPhoto(album_photo_back_admin);
      album_page_back_admin = "";
      album_photo_back_admin = "";
    }
  }
  effacer_photo = false;
  edition_active = false;
  if (IE6) supersleight.run();
}


function getContenuPatch(s,p) { /* Patch pour l'historique (retour du iframe..) */

   section_active = s;
   page_active = p;   

   album_page_active = "";
   album_photo_active = "";
   art = ""
   if (article_actif != "") art = "&art="+article_actif;
   if ((page_active == 0 && (s == "autres" || s == "others")) && art == "") art = "&art=0";
   ajaxContenu.doGet('zen_sections_contenu.php?s='+s+'&p='+p+art, showContenu);
   if (!IEfader) {
      fade_out("contenu_pages",90,20);
   }

   document.getElementById('archives_articles').style.display = "none";
   document.title = liste_titres_site[s][p][0];
}

var alterne_img = 0;

function getContenu(s,p) {
 if (((s == "autres" || s == "others") && p == 0) && article_actif > 0) section_active = ""; //bypass pour ré-afficher la page tout le temps !

 if (est_admin || (section_active != s || page_active != p)) {
  if (CheckEdition()){
   document.getElementById('iframe_historique').src='zen_historique.php?s='+s+'&p='+p;

   if (!est_admin) {      
      try { pageTracker._trackPageview(liste_fichiers_pages[s][p]+'.php');  } catch(err) {}
   }
   //fade_in("sablier",0,80);
   
  }
 }
}

var article_actif = "";


var ajaxArticles = new Ajax();
var showArchivesArticles = function(str) {
   document.getElementById('archives_articles').innerHTML = str;
   document.getElementById('archives_articles').style.display = "block";
}
function getArchivesArticles(){  

   if (document.getElementById('archives_articles').innerHTML == "") {
      // n'est chargé qu'une seule fois !
      ajaxArticles.doGet('zen_archives_articles.php', showArchivesArticles);
   }
   else
      document.getElementById('archives_articles').style.display = "block";
   //if (document.getElementById('archives_articles').style.display != "block")
   //   Ouvrir('archives_articles');
//
}

function getArticle(art) {
 if (est_admin || art == 0 || art != article_actif) {
  if (CheckEdition()){
   //window.scroll(0,0);
   document.getElementById('iframe_historique').src='zen_historique.php?s='+(francais?'autres':'others')+'&p=0&art='+art;

   if (!est_admin) {
      try { pageTracker._trackPageview('articles'+(francais?'':'_en')+'.php?art='+art); } catch(err) {}
   }
   //fade_in("sablier",0,80);
  }
 }
}




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);
      }
   }
 }
}

function ChercheMenu() {
   q = document.getElementById('cherche_menu_q').value;
   document.getElementById('cherche_menu_resultats').innerHTML = "";
   if (q != '') {
      question = new RegExp("("+q.replace(/\s/g,").*(")+")","i");

      resultats = "<ul>";
      nb_res = 0;
      for (i in liste_titres_site)
         for (j in liste_titres_site[i])
            if (question.test(liste_titres_site[i][j][1]) || question.test(liste_fichiers_pages[i][j])) {
               nb_res++;
               if (nb_res%12 == 0) resultats += "</ul><ul>";
               resultats += '<li onclick="getContenu(\''+i+'\','+j+');">'+liste_titres_site[i][j][1]+"</li>";
            }

      if (nb_res == 0) resultats += "<h4 style='text-align:center;'>Aucun résultats</h4>";
      resultats += "</ul>";


      document.getElementById('cherche_menu_resultats').innerHTML += resultats;

      document.getElementById('cherche_menu_resultats').style.display = "block";
      if (!IEfader) fade_in('cherche_menu_resultats',90,90);
   }
   else document.getElementById('cherche_menu_resultats').style.display = "none";
}


function FermeChercheMenu() {

   setTimeout("document.getElementById('cherche_menu_resultats').style.display = 'none';",200);

}

function VerifierFormCourriel() {

   CheckCourriel = document.form_courriel.courriel.value;
    CourrielParties = CheckCourriel.split("@");
    if (CheckCourriel.indexOf("@") < 0) {
      alert("S.V.P. Entrez une adresse de courriel valide pour que nous puissions vous contacter.");
      return false;
   }
   else {
      if (CourrielParties[0] == "" || CourrielParties[1].length < 4)	{
         alert("S.V.P. entrez une adresse de courriel valide pour que nous puissions vous contacter.");
         return false;
      }
   }

      if (document.form_courriel.message.value.length < 1) {
      alert("S.V.P Écrivez un message.");
      return false;
   }
      if (document.form_courriel.sujet.value.length < 1) {
      alert("S.V.P. Entrez un sujet.");
      return false;
   }
      if (document.form_courriel.from.value.length < 1) {
      alert("S.V.P. Entrez un nom.");
      return false;
   }

   return true;
}
function VerifierFormEmail() {

   CheckCourriel = document.form_courriel.courriel.value;
    CourrielParties = CheckCourriel.split("@");
    if (CheckCourriel.indexOf("@") < 0) {
      alert("Please enter a valid email adress for us to contact you.");
      return false;
   }
   else {
      if (CourrielParties[0] == "" || CourrielParties[1].length < 4)	{
         alert("Please enter a valid email adress for us to contact you.");
         return false;
      }
   }

      if (document.form_courriel.message.value.length < 1) {
      alert("Please enter a message.");
      return false;
   }
      if (document.form_courriel.sujet.value.length < 1) {
      alert("Please enter a subject");
      return false;
   }
      if (document.form_courriel.from.value.length < 1) {
      alert("Please enter a name.");
      return false;
   }

   return true;
}
