// alert("compatib ok");

/* script de gestion du Dhtml (c) Michel RHO 1998
   dernière mise à jour : 12 05 2009
   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.
      
*/    
var isLoaded;
/* **********  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=1000;
   my_body=1000; // bug ie6

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

// liste des images à précharger
var MyImgData="bt_servir_h.jpg,bt_nourrir_h.jpg,bt_gouter_h.jpg,bt_dialoguer_h.jpg,bt_aider_h.jpg,bt_proposer_h.jpg,bt_organisateurs2_h.gif,bt_comptes_rendus2_h.gif,bt_lieux2_h.gif,bt_espace_pro2_h.gif, bt_autres2_h.gif";

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

/* 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=0;

// leur préfixe :
var prefixe_deroule="m";

// leur position x
$positionDeroulantsX=new Array(0,0); // le second=region sans affichage

// leur position y
$positionDeroulantsY=115;

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

// 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.
*/

// la liste des divs absolutes éventuels à repositionner selon la taille de l'écran : nom, x, y

var divAbs=new Array(); 
//divAbs[0] = "";


// l'aspect normal des menus déroulants
var couleur_fond           ='#ffdfae';
var couleur_bord_inferieur ='';
var couleur_bord_droit    ='#ffbb63';
var couleur_bord_gauche    ='#ffbb63';
var couleur_bord_superieur ='#ffbb63';
var image_fond             ='';

// la mise en valeur des menus déroulants sous le curseur
var couleur_hi_fond           ='#9a0116';
var couleur_hi_bord_inferieur ='';
var couleur_hi_bord_droit    ='#9a0116';
var couleur_hi_bord_gauche    ='#9a0116';
var couleur_hi_bord_superieur ='#9a0116';
var image_hi_fond             ='IMG/generales/hilimenuitem.gif';

// eviter des alertes de console
var i=0;
/* ********    ********************     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]; // extension incluse car variable
    MyImgList[i]=a;  
   }

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

// constitution du tableau des menus déroulants à effacer
  var divList=new Array();
  for(i=0; i<=n_deroul; i++){
  divList[i] = prefixe_deroule+(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) {
        var layerRef="";//pas de "document" pour IE4
        var styleSwitch=".style";
        var topSwitch=".posTop"
        var ref1Image="document.all." //document.all est facultatif
        var ref2Image="";
        var souris="client";
        }else{
        if(gversion=="net"){
        var layerRef="document.";//necessaire pour Netscape
        var styleSwitch="";       //pas de ".style" pour Netscpae
        var topSwitch=".top"      //pour IE c'est posTop!
        var ref1Image="document." //pas de .all
        var ref2Image=".document.images[0]" //pour acceder a l'image d'un div
        var souris="page";
        if (dom) 
            { 
            layerRef="document.getElementById('"; styleSwitch="').style";
            }
            }else{      
             // opera, safari, konqueror 
             // on parie sur la compatibilité netscape
            layerRef="document.getElementById('"; styleSwitch="').style";      
        }
}

/*    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  */
var bbbb=0;
// positionne les éléments calque, en x et y
function place(calque,x,y){ 
bbbb++;

if(!document.getElementById(calque))return;
if(isLoaded){
    if (corscrolx > 1024){
      corx=((corscrolx-my_body)/2); 
      if (corx < 0)corx = 0; 
      /* ATTENTION : un test est ajouté dans cette version pour éviter la
         double correction des défilants, lesquels héritent déjà de la correction
         du conteneur */
      if (calque.substring(0,6)!="defile" && calque.substring(0,6)!="zone_d"){
        x+=corx; // correction à cause du centrage
        }
    }   
   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);
    return true;
    }
}

// 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);
    return true;
    }
}

// simple apparition d'un element passe en argument
function montre(calque){
if (isLoaded){
        eval (layerRef+calque+styleSwitch+'.visibility="visible"');
        return true;
        }else{
        return false;
        }
}
// disparition d'un element passe en argument
function cache(calque){
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;
  }else{
  return false;
  }
}

//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]);
        }
    }    
}


/* **********  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"); 
             
  }
  ext=a.substring(a.length-3,a.length);
  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."+ext;return true;
            }else{                     
            eval("document."+arguments[0]+".src='"+img_name+"n."+ext+"';");return true;
            }   
  }else{
            if(document.getElementById){ 
            document.getElementById(arguments[0]).src=img_name+"h."+ext;return true;
            }else{  
             eval("document."+arguments[0]+".src='"+img_name+"h."+ext+"';");return true;
             }
    }
}

// classique de MM modifiée par mr pour partir d'un listing en tete de page
function MM_mr_preloadImages() { 
  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=MyImgList[i]; //cheminimg et .gif intégré au début
                //alert (d.MM_p[j].src);
                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();
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() {
var lg_abs_div = divAbs.length;
for (i=0; i<lg_abs_div; i++ ){ 
    var DivAPlacer = new Array();
    DivAPlacer = divAbs[i].split(",");
    place (DivAPlacer[0],DivAPlacer[1]*1,DivAPlacer[2]*1);
  }
  accessoires();
}

// 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="./ma_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 et sans formulaire
function ecrireA(adr){
//Le séparateur est une virgule
   adr1=adr.substring(0,adr.lastIndexOf(","));
   adr2=adr.substring(adr1.length+1,adr.length);
   if (adr1=="contact-scr")adr1="helene.rubion";
   var d = "l";
   var c = "i";
   var e = "t";
   var b = "a";
   var a = "m";
   var f = "o";
   var g = ":";
   var h = "@";

var adrcomplete=a+b+c+d+e+f+g+adr1+h+adr2;
location.href=adrcomplete;
}

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

function accessoires () {
// peut être utilisée pour des actions spéciales au chargement des pages via appel_preload

return true;
}
