//alert("compatib ok");

/* script de gestion du Dhtml (c) Michel RHO 1998 - 2008
   dernière mise à jour : 29 février 2008
   Ce fichier sert à gérer les préload d'images réactives, les affichages et
   effacements de layer, les systèmes d'onglets et de menus déroulants.
   Insérer vos paramètres dans la zone prévue en début de script, puis 
   utilisez dans vos pages les appels aux différentes fonctions :
   roll(), montre(), place() ou montreTiming() selon vos besoins.
      
*/    

/* **********  P A R A M E T R E S   D U   S I T E   A    M O D I F I E R  ********** */

/* indiquer ici tout ce qui est spécifique au site : */   

/*
   remarque : dans cette version, les déroulants commencent à 1 et se suivent
   si ce n'est pas le cas, adapter la construction du tableau des déroulants
*/

// largeur du contenu affiché 
   var my_body=1004; 

// chemin des images réactives
   var cheminimg="IMG/generales/";

// liste des images à précharger
   var MyImgData="";

   
// liste des images à reseter automatiquement (les onglets)
   var MyResetImgData="";

/* M E N U   D E R O U L A N T S (

attention :ici 2 sur le sommaire et un nombre variable à l'intérieur
Il faut donc deux tableaux et des préfixes différents

   les menus déroulants portent par défaut un nom commençant
   par un préfixe et suivi d'un numéro d'ordre */

// leur nombre : 
var n_deroul=2; // sommaire
var n_deroul_intE=6; // pages intérieures ecole
var n_deroul_intC=6; // pages intérieures college

// leur préfixe :
var prefixe_deroule="m";
var prefixe_deroule_intE="m_intE";
var prefixe_deroule_intC="m_intC";

// leur position x
$positionDeroulantsX=new Array(296,266);
$positionDeroulantsX_intE=new Array(308,429,620,793);
$positionDeroulantsX_intC=new Array(308,474,584,712);

// leur position y au démarrage cachés
$positionDeroulantsY=0;

// leur durée d'affichage au over
var dureeOver=60;

// le délai avant effacement au out
var dureeOut=30;

/*
   a noter pour les timers : en réinitialisant la variable duree sous chaque item,
   on permet aux déroulants de rester afficher tant que la souris circule sur les item.
   Voir le squelette qui crée les mouseover.
*/

/* L I S T E S   D E R O U L A N T E S */
// leur nombre :
var liste_deroule = 0;

// leur préfixe :
var prefixe_liste_deroule="";


// la liste des divs absolutes éventuels à repositionner selon la taille de l'écran : nom, x, y
var divAbs=new Array("bloc_generalites,12,156","bloc_generalites_sommaire,12,126","zone_defilants,12,358");
pageAvecDivAbs = 1 ; //1 divs sur toutes les pages sinon 0 : certaines pages seulement
/* attention : s'ils ne sont pas sur toutes les pages, initier sur la page concernée
   la variable pageAvecDivAbs = 1; */
// idem avec les pages comportant des défilants
pageAvecDivDefilants=0;

/* l'aspect normal des menus déroulants */
couleur_fond           ='transparent';
couleur_bord_inferieur ='none';
couleur_bord_droit    ='';
couleur_bord_gauche    ='';
couleur_bord_superieur ='';
image_fond             ='';

/* la mise en valeur des menus déroulants sous le curseur */
couleur_hi_fond           ='#9fc6fc';
couleur_hi_bord_inferieur ='white';
couleur_hi_bord_droit    ='';
couleur_hi_bord_gauche    ='';
couleur_hi_bord_superieur ='';
image_hi_fond             ='';

/* ********    ********************     F I N   D U   P A R A M E T R A G E    ********************   ********* /



/* *****  C O N S T R U C T I O N   D E  S   T A B L E A U X ***** */

// constitution du tableau des images à précharger
   var MyImgList=new Array();
   MyImgList=MyImgData.split(',');
   var a="";
   for (i=0; i<MyImgList.length; i++) {
    a=cheminimg+MyImgList[i]+".gif";
    MyImgList[i]=a;  
   }

// constitution du tableau images à reseter 
   var MyResetImgList=new Array();
   MyResetImgList=MyResetImgData.split(',');

// constitution des tableaux des menus déroulants à effacer
  var divList=new Array();
  for(i=0; i<=n_deroul; i++){
  divList[i] = prefixe_deroule+(i+1);
}  

// 2 ajouts pour elements séparés

  var divList_intE=new Array();
  for(i=0; i<=n_deroul_intE; i++){
  divList_intE[i] = prefixe_deroule_intE+(i+1);
}
  var divList_intC=new Array();
  for(i=0; i<=n_deroul_intC; i++){
  divList_intC[i] = prefixe_deroule_intC+(i+1);
}



/* ********** V A R I A B L E S   G E N E R A L E S  **********   */

// controle du chargement avant activation du Dhtml
var isLoaded=false;

var permanent;// pour le layer a ne pas effacer

var styleSwitch="", ref1Image="", refImage2=""; souris="";

var gversion=navigator.appName.substring(0,3).toLowerCase();
var gnumversion=navigator.appVersion.charAt(0).toLowerCase();

var dom=document.getElementById?1:0;
var ie6=(navigator.appVersion.indexOf("MSIE 6")>-1 && dom)?1:0;
var ie5=(navigator.appVersion.indexOf("MSIE 5")>-1 && dom)?1:0;
var ie4=(document.all && !dom)?1:0;
var ns5=(dom && parseInt(navigator.appVersion) >= 5) ?1:0;
var ns4=(document.layers && !dom)?1:0;

var corscrolx;

        if(gversion=="mic" &&!dom) {
        layerRef="";//pas de "document" pour IE4
        styleSwitch=".style";
        topSwitch=".posTop"
        ref1Image="document.all." //document.all est facultatif
        ref2Image="";
        souris="client";        
        }else{
        if(gversion=="net"){
        layerRef="document.";//necessaire pour Netscape
        styleSwitch="";       //pas de ".style" pour Netscpae
        topSwitch=".top"      //pour IE c'est posTop!
        ref1Image="document." //pas de .all
        ref2Image=".document.images[0]" //pour acceder a l'image d'un div
        souris="page";
        if (dom) 
            { 
            layerRef="document.getElementById('"; styleSwitch="').style";
            souris="client";
            }
            }else{      
             // opera, safari, konqueror 
             // on parie sur la compatibilité netscape
            layerRef="document.getElementById('"; styleSwitch="').style";
            souris="client";
        }
}



/* E C O U T E U R   D ' E V E N E M E N T S   P O U R   L E S   P O S I T I O N S   S O U R I S  */

if (document.layers)
document.captureEvents(Event.MOUSEMOVE);
if (document.layers || document.all)
document.onmousemove = mouseMove;
if (document.addEventListener)
document.addEventListener('mousemove', mouseMove, true);


/* ********** R E L E V E   D E S   P O S I T I O N S   S O U R I S ********** */
var gx=0;
var gy=0;

function mouseMove (evt) {
         if (document.layers) {
            gx=evt.x; gy=evt.y;
            }
         if (document.all)
            {
            gx=event.clientX; gy=event.clientY;
            }
            else
            {
              if (document.getElementById) {
                 gx=evt.clientX; gy=evt.clientY;
              }
            }
// temoins de formulaires si nécessaire
//document.getElementById('cibleX').value=gx;
//document.getElementById('cibleY').value=gy;
}

function affiche_legende(){
         place(arguments[0],gx,gy);
         }


/*    G E S T I O N   D E S   M E N U S   D E R O U L A N T S   E T   D E S  L A Y E R S  */

// positionne les éléments calque, en x et y
function place(calque,x,y){ 
if (!calque)return;
if(isLoaded){
    if (corscrolx > 1024){
      corx=((corscrolx-my_body)/2); 
      if (corx < 0)corx = 0; 
    // pas de correction pour les défilants qui sont relatifs à leur conteneur
    if(calque.lastIndexOf("defile")!=-1) corx=0;
      x+=corx; // correction à cause du centrage
    }
//alert( calque+" x= "+ x+" y= "+ y);
   eval(layerRef+calque+styleSwitch+'.zIndex=1000');
   eval (layerRef+calque+styleSwitch+".left='"+x+"px';");
   eval (layerRef+calque+styleSwitch+".top='"+y+"px';");
   eval (layerRef+calque+styleSwitch+'.visibility="visible"');
  }else{return;}
}

// lance un affichage avec timer
function montreTiming(){
place (arguments[0],arguments[1],arguments[2]); 
duree=dureeOver;
timing=setTimeout('decompte();',duree);
}

// lance un effacement de layer et un reset d'images avec timer
function ResetTiming(){
duree=dureeOut;
timing=setTimeout('decompte();',duree);
}

// effacement avec timer des div AVEC reset des images
function decompteReset() { 
if(timing){clearTimeout(timing);}
duree--; 
if (duree==0){
     efface();
     clearTimeout(timing);
     resetImg(); // remet les onglets à off 
     return true;
    } else {
    timing=setTimeout('decompteReset();',duree);
    }
}

// effacement avec timer des div SANS reset des images
function decompte() {
if(timing){clearTimeout(timing);}
duree--;
if (duree==0){
     efface();
     clearTimeout(timing);
     return true;
    } else {
    timing=setTimeout('decompte();',duree);
    }
}

// simple apparition d'un element passe en argument
function montre(calque){
if (isLoaded){
        eval (layerRef+calque+styleSwitch+'.visibility="visible"');
        return true;
        }
}
// disparition d'un element passe en argument
function cache(calque){
if (document.getElementById)
 {
 if(!document.getElementById(calque))return;
 }else if(document.all)
       {
       if(!document.all[calque])return;
       }
       else if(document.layers)
       {
       if(!document.layers[calque]) return;
       }

//if (document.getElementById(calque)){alert(calque+"oui");}else{alert(calque+"non");};


if (isLoaded){
        if(permanent){ //interdit l'effacement d'un div permanent  (cas des md dans la bonne rubrique. Initie par le php)
           if (calque==permanent)return;
        }
        eval(layerRef+calque+styleSwitch+'.visibility="hidden"');
        eval(layerRef+calque+styleSwitch+'.zIndex=0');
        return true;
  }
}

//efface les divs de la liste indiquee au debut de la page html
function efface(){
if(typeof(timing)!="undefined"){clearTimeout(timing);}
if (isLoaded){
    for (i=0;i<divList.length-1;i++)
        { 
        cache(divList[i]);
        }
// ajouts pour les 2 ets
    for (i=0;i<divList_intE.length-1;i++)
        {
        cache(divList_intE[i]);
        }
        
    for (i=0;i<divList_intC.length-1;i++)
        {
        cache(divList_intC[i]);
        }
    }
}


/* **********  L E S   I M A G E S   R E A C T I V E S   ********** */


// remet à off les images susceptibles d'être mises en valeur
function resetImg(){
if(typeof(l_path)=="undefined")l_path=cheminimg;
    for(i=0; i<MyResetImgList.length; i++)
    { 
      eval("document."+MyResetImgList[i]+".src='"+l_path+MyResetImgList[i]+"n.gif';");      
    }
    return true;
}

// roll over des images 
// nouvelle version pour xhtml strict du rollStandard des anciens fichiers
function roll(){  
arguments[1]? l_path=arguments[1]+"/" : l_path=cheminimg;
 
  if(document.getElementById){
             a=document.getElementById(arguments[0]).src;              
       }else{
             a=eval("document."+arguments[0]+".src"); 
  }
  img_name= a.substring(0,a.length-5); 
  if(a.charAt(a.length-5)=="h"){ 
            if(document.getElementById){ 
            document.getElementById(arguments[0]).src=img_name+"n.gif";return true;                     
            }else{                     
            eval("document."+arguments[0]+".src='"+img_name+"n.gif';");return true;  
            }   
  }else{
            if(document.getElementById){ 
            document.getElementById(arguments[0]).src=img_name+"h.gif";return true;
            }else{  
             eval("document."+arguments[0]+".src='"+img_name+"h.gif';");return true;
             }
    }
}

// classique de MM modifiée par mr pour partir d'un listing en tete de page
function MM_mr_preloadImages() { //v3.0 modifiée par mr pour partir d'un listing en tete de page
  var d=document; 
  if(d.images)
  { 
    if(!d.MM_p) 
    { 
      d.MM_p=new Array();
      var i,j=d.MM_p.length; 
          for(i=0; i<MyImgList.length; i++)
          {        
                d.MM_p[j]=new Image; 
                d.MM_p[j].src=cheminimg + MyImgList[i]; 
                j++;              
          }      
    }
  }
}


/* **********  A J U S T A G E   D E S   T A I L L E S   E C R A N S  ********** */

// relais appelé par le body de chaque page
function appel_preload(){ 
MM_mr_preloadImages();
isLoaded=true;
taille_fenetre();
ajuste_taille();
positionneElements(); 
}

// détermine la taille de l'écran
function taille_fenetre() {
  // les navigateurs normaux 
  if( typeof( window.innerWidth ) == 'number' ) { 
      corscrolx = window.innerWidth;
      corscroly = window.innerHeight;      
  } 
  // IE6
  else if( document.documentElement &&
      ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) 
      {
      corscrolx = document.documentElement.clientWidth;
      corscroly = document.documentElement.clientHeight;
  } 
  // IE4
  else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
      corscrolx = document.body.clientWidth;
      corscroly = document.body.clientHeight;
  }
  // tous
  if (document.body.scrollWidth < corscrolx) // presence d'ascenseur latéral
  corscrolx = document.body.scrollWidth;
}

// determine la correction en x à appliquer si on dépasse 1024
function ajuste_taille() { // appelée après body par preload plus bas pour les divs fixes
    corx=(( (eval(corscrolx)) - my_body)/2); //alert ("grand ecran "+corx);
  if (corx <= 0 )corx = 0; 
}

// repositionne les éléments absolus selon la taille écran
function positionneElements() { 
if(pageAvecDivAbs==1) { 
  var lg_abs_div = divAbs.length; 
  for (i=0; i<lg_abs_div; i++ ){
      var DivAPlacer = new Array();
      DivAPlacer = divAbs[i].split(","); 

// separer la zone défilante, si pas présente sur toutes les pages
           if (DivAPlacer[0]=="zone_defilants")
              { 
              if(pageAvecDivDefilants==1) // si autorisée
                  {
                  place (DivAPlacer[0],DivAPlacer[1]*1,DivAPlacer[2]*1);
                  }
              }
              else
              {
              place (DivAPlacer[0],DivAPlacer[1]*1,DivAPlacer[2]*1);
              }
      }
  }
}

// appel sans coordonnées pour des menus déroulants numérotés 1 à 6
function positionneDeroulants(le_deroulant){
// on récupère d'abord ses coordonnées
var numD = le_deroulant.substring(le_deroulant.length-1,le_deroulant.length);
numD = (numD*1)-1; // commencer à lire le tableau à 0 
//place(le_deroulant,$positionDeroulantsX[numD],$positionDeroulantsY);
montreTiming(le_deroulant,$positionDeroulantsX[numD],$positionDeroulantsY);
}


/* **********  A P P A R E N C E   R E A C T I V E   D E S   D E R O U L A N T S   ********** */

/* fonctions generales pour changer un style */
/*http://perso.orange.fr/coin.des.experts/reponses/faq9_49/anim.html*/

function trouvestyle(idf) {
                if (document.getElementById) {
                 return document.getElementById(idf).style;
              } else if (document.all) {
                 return document.all[idf].style;
              } else if (document.layers) {
                 return document.layers[idf];
              } else return null
         }

function newstyle(idf,prop,value) {
    var objet_style=trouvestyle(idf)
    if(objet_style)
    eval( 'objet_style.' + prop + '="' + value+ '"' );
   }

function menuhover(idf) {
var stylem=trouvestyle(idf); /*objet "style" du bouton"*/
  if(stylem) {
    stylem.backgroundColor=couleur_hi_fond;
    //stylem.borderBottomColor=couleur_hi_bord_inferieur;
    stylem.borderRightColor=couleur_bord_droit;
    stylem.borderLeftColor=couleur_hi_bord_gauche;
    stylem.borderTopColor=couleur_hi_bord_superieur;
   }
}

function menurestaure(idf) {
var stylem=trouvestyle(idf); /*objet "style" du bouton"*/
  if(stylem) {
    stylem.backgroundColor=couleur_fond;
    //stylem.borderBottomColor=couleur_bord_inferieur;
    stylem.borderRightColor=couleur_bord_droit;
    stylem.borderLeftColor=couleur_bord_gauche;
    stylem.borderTopColor=couleur_bord_superieur;
   }
}  

// fonction appelée par le filtre de cryptage, appelle le formulaire de décryptage et d'envoi
function ecrireH(adr) {
appelwin="./mr_squels/courrier_cr.php?adr="+adr;
window.open(appelwin,"Envoyer_un_email","width=800,height=600,left=100,top=100,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no");
}
// version non cryptée pour contourner les pb de mémoire du serveur en cas de longue liste de mails
function ecrireA(adr){
a=adr.lastIndexOf("---");
adr1=adr.substring(0,adr.lastIndexOf("---"))
adr2=adr.substring(adr1.length+3,adr.length);
appelwin="./squelettes/courrier.php?adr1="+adr1+"&adr2="+adr2;
window.open(appelwin,"Envoyer_un_email","width=800,height=600,left=100,top=100,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no");
}

function lanceRecherche(){
// si plusieurs formulaires dans la page, identifier celui de la recherche
   for (i=0; i<=document.forms.length; i++) {
        for (j=0; j<=document.forms[i].elements.length; j++){
         if (document.forms[i].elements[j].name=="recherche") {
             document.forms[i].submit();
             return;
             }//if
        }// J
   }// i
}

/* ajout février 2008 pour Ekis, menu par liste masquables */
function deroul_menu(le_menu){
var stylem=trouvestyle(le_menu); /*objet "style" du menu" */
  if(stylem) {
             if (stylem.display=="none")
             {
             stylem.display="block";
             }else{
             stylem.display="none";
             }
  }
}
function cache_menu(){
for (i=1; i<=liste_deroule; i++) {
  le_menu=prefixe_liste_deroule+i;
  var stylem=trouvestyle(le_menu); /*objet "style" du menu" */
    if(stylem) {
               stylem.display="none";
               }
  }
}
