
/*-------------------------------------------------------
 *  Fonction : findObj
 *  Auteur   : Macromedia
 *
 *  Renvoie l'objet appelé par son ID
 *-----------------------------------------------------*/

function findObj(theObj, theDoc)
{
  var p, i, foundObj;
  
  if(!theDoc) theDoc = document;
  if( (p = theObj.indexOf("?")) > 0 && parent.frames.length)
  {
    theDoc = parent.frames[theObj.substring(p+1)].document;
    theObj = theObj.substring(0,p);
  }
  if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj];
  for (i=0; !foundObj && i < theDoc.forms.length; i++) 
    foundObj = theDoc.forms[i][theObj];
  for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) 
    foundObj = findObj(theObj,theDoc.layers[i].document);
  if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);
  
  return foundObj;
}


/*-------------------------------------------------------
 *  Fonction : showHideLayers
 *  Auteur   : Macromedia
 *
 *  Cache ou rend visible une liste indéfinie de
 *  calques. S'utilise comme suit :
 *  showHideLayers('calque1','','show','calque2','','hide'[,...])
 *-----------------------------------------------------*/

function showHideLayers(){
	
	var i, visStr, obj, args = showHideLayers.arguments;
	for (i=0; i<(args.length-2); i+=3){
		
		if ((obj = findObj(args[i])) != null){
			
			visStr = args[i+2];
			if (obj.style){
				
				obj = obj.style;
				if(visStr == 'show') visStr = 'visible';
				else if(visStr == 'hide') visStr = 'hidden';
				
			}
			obj.visibility = visStr;
	
		}
	
	}

}


/*-------------------------------------------------------
 *  Fonction : openMenus
 *  Auteur   : Vincent Finkelstein
 *  Version  : 11/02/2005
 *
 *  Ouvre les menus suivant les ID trouvés
 *-----------------------------------------------------*/

function menus(){

  /* PREMIERE PARTIE : ouverture des menus
  ** -------------------------------------
  */
  
  //On récupère le menu
  var menu = document.getElementById("sous-menu");
  //On récupère tous les liens du menu
  var liens = menu.getElementsByTagName("a");
  
  for(i=0 ; i<liens.length ; i++){
  
    liens[i].onmouseover = function(){
    
      //On enlève d'abord tous les menus ouverts
      hideAllMenus();
      
      //On récupère la liste des différents menus à ouvrir
      var liste_a_ouvrir = (this.id).match(/[0-9]+/g);
      
      //On construit petit à petit là fonction à executer
      var evaluation = "showHideLayers(";
      for(j=0 ; j<liste_a_ouvrir.length ; j++){
      
        evaluation += "'menu"+liste_a_ouvrir[j]+"','','show',";
      
      }
      evaluation += ");";
      //On enlève la virgule en trop à la fin
      evaluation = evaluation.replace(/,\)/gi , ")");
      //On évalue la fonction ainsi construite
      eval(evaluation);
    
    }
    
    /* DEUXIEME PARTIE : fermeture des menus
    ** -------------------------------------
    */
    
    //Apparemment ça a l'air de suffire pour IE et FF, faut voir en production ce que ça donne
    document.body.onclick = hideAllMenus;
  
  }

}


/*-------------------------------------------------------
 *  Fonction : hideAllMenus
 *  Auteur   : Vincent Finkelstein
 *  Version  : 06/2005
 *
 *  Masque les sous menus de 1 à 50 de l'intranet
 *  Utilisation spécifique à ce site
 *  Utilise la fonction showHideLayers()
 *-----------------------------------------------------*/

function hideAllMenus(){

  for(i=1;i<50;i++){
  
    showHideLayers('menu'+i,'','hide');
  
  }

}


/*-------------------------------------------------------
 *  Fonction : ouvrir_lien_ext
 *  Auteur   : Vincent Finkelstein
 *  Version  : 27/01/2005
 *
 *  Ouvre tous les liens qui ont la classe "ext" dans
 *  une autre fenêtre
 *-----------------------------------------------------*/
 
function ouvrir_lien_ext(){

  //On récupère tous les liens de la page
  var liens = document.getElementsByTagName('a');
  
  //Boucle parcourant les liens un par un
  for(i=0 ; i<liens.length ; i++){
  
    if(liens[i].className == 'ext') liens[i].onclick = function(){
      open(this.href);
      return false;
    }
  
  }
 
}


//  Chargement des fonctions au démarrage de la page
window.onload = function(){
  ouvrir_lien_ext();
  menus();
}