/***********************************************
** File:      %M%  version %I%
** Author:    nat
** Modified:  %G%
** Copyright: I-Next Ltd
***********************************************/
/* ident %W% */

// Appel de la fonction quand la page est chargée
window.onload = doLoad;

// Fonction quand la page est chargée
function doLoad(){
 activerMenuEnCascade(); // Activer les menus en cascade  
 activerLiensPopup(); // Activer les liens popups
 initRollovers(); // Initialiser les rollovers
}

function initRollovers() {
  if ( document.images ){
    var preLoad = new Array();
    var tempSrc;
    for (var i = 0; i < document.images.length; i ++ ){

      // Parcourir les images avec la classe rollover
      if ( document.images[i].className == 'rollover' ){
        // obtenir la source
        var src = document.images[i].getAttribute('src'); 
        // Obtenir l'extension du fichier
        var ext = src.substring( src.lastIndexOf('.'), src.length ); 
        // Garder la source du rollover
        var hsrc = src.replace( ext, '_r' + ext ); 
        // Changer la source
        document.images[i].setAttribute('hsrc', hsrc); 
        // Afficher le curseur quand supporté
        document.images[i].style.cursor = 'hand'; 

        // Pré-charger l'image
        preLoad[i] = new Image();
        preLoad[i].src = hsrc;

        // Ajouter les fonctions rollover
        document.images[i].onmouseover = function(){
          tempSrc = this.getAttribute('src');
          this.setAttribute('src', this.getAttribute('hsrc'));
        }
        document.images[i].onmouseout = function(){
          if (!tempSrc) tempSrc = this.getAttribute('src').replace('_r'+ftype, ftype);
          this.setAttribute('src', tempSrc);
        }
      }
    }
  }
}

// Fonction pour ouvrir des fenêtres popup
function popup(url,width,height) {
 if ( popup.arguments.length < 2 ){ width = 320;}
 if ( popup.arguments.length < 3 ){ height = 480;}
 var winl = (screen.width-width)/2;
 var wint = (screen.height-height)/2;
 settings = "location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,height=" + height + ",width=" + width + ",top=" + wint + ",left=" + winl;
 pop=window.open(url,"popup",settings);
 pop.focus();
}

 
// Définir les variables 
var toggleIndex;
var levelsOpen = new Array();

// Définir les images
//var openSrc = '/schema/gifs/open.gif';
//var closedSrc = '/schema/gifs/fold.gif';
var openSrc = '/schema/gifs/leftnavabg.gif';
var closedSrc = '/schema/gifs/leftnavabg_h.gif';

// Fonction pour activer tous les menus toggle
function activerMenuEnCascade(){
  var UL = document.getElementsByTagName('ul'); // Obtenir tous les ULs
  var openLevel = 1; // Le niveau à ouvrir
  var openIds = new Array(); // Les ids à ouvrir dans l'ordre inverse
  for ( var i = 0; i < UL.length; i ++ ){ // parcourir les ULs
    if ( UL[i].className == 'togglemenu' ){ // Obtenir la liste principale
      toggleIndex = i; // Enregistrer l'index
      var LI = UL[i].getElementsByTagName('li'); // Obtenir les LIs dans le menu en cascade
      var lastLevel = 0; // Enregistrer le dernier niveau dans le cycle
      for ( var j = ( LI.length - 1 ); j >= 0; j -- ){ // Parcourir les LIs à l'envers
        // Si nous avons une classe niveau
        if ( LI[j].className.indexOf('level-') != -1 ){
          // Obtenir le niveau
          var liLevel = LI[j].className.split('-')[1];
          // Si le niveau précédent est supérieur
          if ( liLevel < lastLevel ){
            LI[j].tagId = j; // Définir l'index LI dans la balise
            //LI[j].onclick = function(){ toggleMenu( this.tagId ); } // Assigner la fonction mousedown
            //LI[j].style.backgroundImage = 'url(' + closedSrc + ')';
            LI[j].firstChild.style.backgroundImage = 'url(' + closedSrc + ')';
            LI[j].style.cursor = 'default';
            LI[j].toggle = 1; // Définir le toggle comme ouvrable
          } else {
            LI[j].toggle = 0; // Définir le toggle comme non-ouvrable
          }
          // Vérifier que cette ligne dirige vers cette page
          if ( LI[j].firstChild.href ){ // Si il'y a un href
            if ( ( LI[j].firstChild.href == window.location ) && (LI[j].firstChild.name == 'OK')){ // Est-ce la même adresse?
              LI[j].firstChild.style.fontSize='11';
              LI[j].firstChild.style.fontWeight='700';
              openLevel = liLevel; // Enregistrer le niveau actuel
            }
          }
          // Si le niveau est inférieur à celui que nous ouvrons
          if ( liLevel == ( openLevel - 1 ) ){
            openIds.push( j ); // Enregistrer l'id de la balise
            openLevel --; // Descendre un niveau
          }
          if ( LI[j].className != 'level-1' ){ // Si ce n'est pa le niveau 1
            LI[j].style.display = 'none'; // Cacher le LI
          }
          lastLevel = liLevel; // Prêt pour le cycle
        }
      }
      if ( openIds.length > 0 ){ // Si nous avons une id à ouvri
        openIds.reverse(); // Revenir à l'ordre dans lequel on les a ouvert
        for ( var k = 0; k < openIds.length; k ++ ){ // Parcourir les IDs
          toggleMenu( openIds[k] ); // Les ouvrir
        }
      }
      
    // Show the Toggle menu
    UL[i].style.display='block';  
    }
  }
}


// Fonction pour ouvrir et fermer les menus
function toggleMenu( id ){
  var UL = document.getElementsByTagName('ul'); // Obtenir tous les ULs
  var LI = UL[toggleIndex].getElementsByTagName('li'); // Obtenir les LIs dans le menu en cascade
  var thisLevel = Math.abs( LI[id].className.split('-')[1] );

  // Si ce niveau a été ouvert
  if ( ( levelsOpen[thisLevel] != null ) ){
    // Fermer le LI précédent
    //LI[levelsOpen[thisLevel]].style.backgroundImage = 'url(' + closedSrc + ')';
    LI[levelsOpen[thisLevel]].firstChild.style.backgroundImage = 'url(' + closedSrc + ')';
    // Parcourir les LIs depuis l'index LI + 1
    for ( var i = ( levelsOpen[thisLevel] + 1 ); i < LI.length; i ++ ){
      // S'il est supérieur à celui la
      if ( Math.abs( LI[i].className.split('-')[1] ) > thisLevel ){
        LI[i].style.display = 'none'; // Cacher le LI
      } else if ( LI[i].className == 'level-' + thisLevel ){
        break; // Sortir
      }
    }
  }
  // S'il est déjà ouvert
  if ( levelsOpen[thisLevel] == id ){
    // ouvrir les id en blanc depuis ce niveau
    levelsOpen.length = thisLevel;
  } else { // Il était fermé
    // Définir le LI comme ouvert
    //LI[id].style.backgroundImage = 'url(' + openSrc + ')';
    LI[id].firstChild.style.backgroundImage = 'url(' + openSrc + ')';
    // Parcourir les LIs depuis l'index LI passé + 1
    for ( var i = ( id + 1 ); i < LI.length; i ++ ){
      // Si c'est le prochain niveau
      if ( LI[i].className == 'level-' + ( thisLevel + 1 ) ){
        LI[i].style.display = 'block'; // Montrer le LI
        //LI[i].style.backgroundImage = 'url(' + (( LI[i].toggle == 1 )? closedSrc:closedSrc) + ')';
        LI[i].firstChild.style.backgroundImage = 'url(' + (( LI[i].toggle == 1 )? closedSrc:closedSrc) + ')';
      } else if ( LI[i].className == 'level-' + thisLevel ){ // Même niveau
        break; // Sortir
      }
    }
    levelsOpen[thisLevel] = id; // Enregistrer les IDs dans un tableau
  }
}

function activerLiensPopup(){
  var A = document.getElementsByTagName('a'); // Obtenir tous les liens
  for ( var i = 0; i < A.length; i ++ ){ // Parcourir tous les liens
    if ( A[i].className.indexOf('popup-') != -1 ){ // trouver les popups
      var w = A[i].className.split('-')[1].split('x')[0]; // Obtenir la largeur
      var h = A[i].className.split('-')[1].split('x')[1]; // Obtenir la hauteur
      // Reconstruire le lien
      A[i].href = 'javascript:popup(\'' + A[i].href + '\', ' + w + ',' + h + ');'; 
    }
  }
}

function dateExt( val ) {
  // Decide de mettre le th à la fin des jour
  var ext = ( Math.ceil( (val - 1)/10 ) == (val - 1)/10 && val != 11 ) ? 'st' : 'th';
  if ( ext == 'th' ) var ext = ( Math.ceil( (val - 2)/10 ) == (val - 2)/10 && val != 12 ) ? 'nd' : 'th';
  if ( ext == 'th' ) var ext = ( Math.ceil( (val - 3)/10 ) == (val - 3)/10 && val != 13 ) ? 'rd' : 'th';
  return ext;
}

