/* auteur: La Capitale, assurances generales inc. */
/* Date de création: 2005-07-08 */
var tabEtatMenu = new Array();
var tabAriane = new Array();
var iDernierMenu = -1;
var sPathImgMenu = pathImages + "common/menu/";
var sPathImageBtn = pathImages + sLangue + "/menu/";
var sPathImageVide = pathImages + "common/vide.gif";
var sMenuBas = "";
var sLienRapide = "";
var sLiensPertinents = "";
var sFilAriane = "";


function elementMenu(nomFr, nomAltFr, urlFr, nomEn, nomAltEn, urlEn, sousMenu, idxParent, ordre){
	this.nomAltEn  = nomAltEn;
	this.nomAltFr  = nomAltFr;
	this.nomEn     = nomEn;
	this.nomFr     = nomFr;
	this.urlEn     = urlEn;
	this.urlFr     = urlFr;
	this.sousMenu  = sousMenu;
	this.idxParent = idxParent;
  this.ordre = ordre;

	if ( nomAltEn == null ){
		this.nomAltEn = nomEn;
	}
	if ( nomAltFr == null ){
		this.nomAltFr = nomFr;
	}
	if ( sousMenu == null ){
		this.sousMenu = new Array();
	}
	
	/* nouveau : ajout de champs pour le plan du site.  */
	this.nomPlanEn = this.nomAltEn;
	this.nomPlanFr = this.nomAltFr;
	idx = this.nomAltFr.indexOf("[[");
	if (idx != -1) {
		
		this.nomPlanFr = this.nomAltFr.substring(idx+2, this.nomAltFr.length-2);
		this.nomAltFr = this.nomAltFr.substring(0, idx);				
	}	
	
	idx = this.nomAltEn.indexOf("[[");
	if (idx != -1) {
		
		this.nomPlanEn = this.nomAltEn.substring(idx+2, this.nomAltEn.length-2);
		this.nomAltEn = this.nomAltEn.substring(0, idx);		
	}
	
	/* ajout : valeur par défaut de l'url anglais	*/
	if (this.urlEn == "" && this.urlFr != null) {
			this.urlEn = this.urlFr.concat("?lang=en");
	}
}

function elementMenuPrinc( index, ordre, valeurs ){
	
	this.idFond		= 'cel' + index;
	this.ordre      = ordre;
	this.valeurs	= valeurs;
	  	
}

function actionMenu( action, index ){
	obj = tabEtatMenu[index];

  if (action == 'init' && index < 6) {
    creerMenuD(index);
  } 
}

function creerMenuD( index ){
	
  /* Construire les listes internes pour chacun des elements */
  sHtml = "";
  for ( i = 0; i < tabEtatMenu[index].ordre.length; i++ ){
			classe="";
      if (i == 0) {
        classe= " class=\"premierItem\"";
      }
      if (i == tabEtatMenu[index].ordre.length-1) {
        classe= " class=\"dernierItem\"";
      }
      
      sHtml += "<li" + classe + "><a href=\"" + 
				 ((bFr)?tabEtatMenu[index].valeurs.sousMenu[tabEtatMenu[index].ordre[i]].urlFr:tabEtatMenu[index].valeurs.sousMenu[tabEtatMenu[index].ordre[i]].urlEn) + "\"/>" + 
				 ((bFr)?tabEtatMenu[index].valeurs.sousMenu[tabEtatMenu[index].ordre[i]].nomAltFr:tabEtatMenu[index].valeurs.sousMenu[tabEtatMenu[index].ordre[i]].nomAltEn) + "</a></li>";
	}
  
  document.getElementById( 'sousMenu' + index ).innerHTML = sHtml;

}

/* Fonction pour les menus deroulants sous internet explorer */
sfHover = function() {
	
  var listeItems = new Array("tableBoutons", "menuGauche", "listeSoumissions", "listeGuidesOutils", "listeAutres", "listeEntreprises");
  
  for (var j=0; j < listeItems.length; j++) {
    testt = document.getElementById(listeItems[j]);
    if (testt) {
      var sfEls = document.getElementById(listeItems[j]).getElementsByTagName("li");
      for (var i=0; i<sfEls.length; i++) {
      
        sfEls[i].onmouseover=function() {
          this.className+=" sfhover";
        }
      
        sfEls[i].onmouseout=function() {
          this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
        }
      }
    }
  }
}
if (window.attachEvent) {window.attachEvent("onload", sfHover)};


clickMenuItem = function() {
  var listeItems = new Array("listeMenuGauche", "listeCapDirect", "listeEntreprises", "listeSoumissions", "listeGuidesOutils", "listeAutres");
  
  for (var j=0; j < listeItems.length; j++) {
    testt = document.getElementById(listeItems[j]);
    if (testt) {
      var sfEls = document.getElementById(listeItems[j]).getElementsByTagName("li");
      for (var i=0; i<sfEls.length; i++) {
        sfEls[i].onclick=function() {
          var dest = this.getElementsByTagName("a");
          if (dest.length > 0) {
            window.location = dest[0].getAttribute("href");
          }
        }
      }
    }
  }
}


function lienDefaut( index ){
	if (bFr) {
		document.location.href = tabEtatMenu[index].valeurs.urlFr;
	} else {
		document.location.href = tabEtatMenu[index].valeurs.urlEn;
	}
}


function creerSousMenu(){
	
	if ( menuSel >= 0 ) {
	
    /* Creer le menu selectionne */
    menuSelectionne = "<div id=\"menuGaucheTitre\" class=\"headerGauche" + menuSel + "\" >" + 
      "<img src=\"" + sPathImageVide + "\" alt=\"" + ((bFr)?tabEtatMenu[menuSel].valeurs.nomAltFr:tabEtatMenu[menuSel].valeurs.nomAltEn) + "\" width=\"196\" height=\"29\"></div>";
    
    /* Creer le titre du sous-menu selectionne */ 
    /* Determiner si le sous-menu selectionne a des sous-items.  Selon le cas l'affichage est légèrement différent */
    if (tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].sousMenu.length == 0) {
      idSousMenu = "menuGaucheSousTitreVide";    
    } else {
      idSousMenu = "menuGaucheSousTitre";
    } 
    
    /* Si le sous-menu n'est pas la page courante, le titre doit être clickable.  On est dans la page du sous-menu lorsque les
       index de 3e niveau et de fil d'ariane sont non-définis */
    if (idx3eNiveau == -1 && idxAriane == -1) {
      titreSousMenu = ((bFr)?tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].nomAltFr:tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].nomAltEn); 
    } else {
      titreSousMenu = "<a href='" + ((bFr)?tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].urlFr:tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].urlEn) + "'>" + ((bFr)?tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].nomAltFr:tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].nomAltEn) + "</a>";
    }
    
    sousMenuTitre = "<ul id=\"" + idSousMenu + "\"><li>" + titreSousMenu + "</li></ul>";
      
    /* Creer la liste de lien pour le sous-menu selectionne */
    sousMenuSel = "";
    if (tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].sousMenu.length > 0) {
      sousMenuSel = "<ul id=\"sousMenuListe\">";
      
      /* s'il y a un ordre de spécifié, on l'utilise pour afficher les items.  sinon on affiche tout */
      if (typeof(tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].ordre) != "undefined") {
        for (i = 0; i < tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].ordre.length; i++ ) {
          
          j = tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].ordre[i];
          sousMenuSel += "<li>-&nbsp;<a href='" + ((bFr)?tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].sousMenu[j].urlFr:tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].sousMenu[j].urlEn) + "'>" + ((bFr)?tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].sousMenu[j].nomAltFr:tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].sousMenu[j].nomAltEn) + "</a></li>";
        }
      } else {
        for ( j = 0; j < tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].sousMenu.length; j++ ){
          
          sousMenuSel += "<li>-&nbsp;<a href='" + ((bFr)?tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].sousMenu[j].urlFr:tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].sousMenu[j].urlEn) + 
             "'>" + ((bFr)?tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].sousMenu[j].nomAltFr:tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].sousMenu[j].nomAltEn) + "</a></li>";
        }
      }
      sousMenuSel += "</ul>";
    }      
    
    /* creer le bloc des autres liens non selectionnes */
    autresLiens =  "<ul class=\"listeMenuDefaut\" id=\"listeMenuGauche\">";
    menuQte = tabEtatMenu[menuSel].ordre.length;
    compte = 0;
    for (j = 0; j < menuQte ; j++) {
    
      var ii = tabEtatMenu[menuSel].ordre[j];
      
      if (sMenuSel != ii) { /* On exclut l'item deja affiche */
                
        /* Determiner les bordures a afficher */
        classe = " class='";
        if (compte != 0) {
          classe += "bTop";
        }
        
        if (compte + 1 < menuQte - 1) {
          classe += " bBas";
          compte++;
        }
        classe += "'";
        
        
        autresLiens += "<li" + classe + "><a href='" + ((bFr)?tabEtatMenu[menuSel].valeurs.sousMenu[ii].urlFr:tabEtatMenu[menuSel].valeurs.sousMenu[ii].urlEn) + 
						 "'>" + ((bFr)?tabEtatMenu[menuSel].valeurs.sousMenu[ii].nomAltFr:tabEtatMenu[menuSel].valeurs.sousMenu[ii].nomAltEn) + "</a></li>";
      }
    }
    
    autresLiens += "</ul>";
    
    
    
    sLiensPertinents = menuSelectionne + sousMenuTitre + sousMenuSel + autresLiens;
		
	}
}

function creerFil(){
	
	var sHtml = "";  
	var sNom = "Accueil";
	var sUrl = sNormalRoot + "/index.jsp";
	var suffixe = (bFr?"Fr":"En");
   
  //Accueil
	if ( !bFr ){
  	sUrl += "?lang=en";
  	sNom = "Homepage";
  }
	
	if ( menuSel != -1 ){
    sHtml += creerLien( sNom, sUrl );
		sHtml += separateur();
		
		//Menu principal
      eval( "sNom = tabEtatMenu[menuSel].valeurs.nomAlt" + suffixe );
        if ( sMenuSel == -1 ) {
        sHtml += afficherNom( sNom );
      } else {		
        eval( "sUrl = tabEtatMenu[menuSel].valeurs.url" + suffixe );
        sHtml += creerLien( sNom, sUrl ); //lien du menu principal
        sHtml += separateur();
      }

		//Sous menu
		eval( "sNomSousMenu = tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].nomAlt" + suffixe );
		eval( "sUrlSousMenu = tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].url" + suffixe );
		
		// Determiner s'il y a un 3e niveau d'imbrication et s'il y a un fil d'ariane
		b3eNiveau = (typeof(idx3eNiveau) != "undefined" && idx3eNiveau >= 0 &&
				idx3eNiveau <= tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].sousMenu.length-1);
				
		bAriane = (typeof(idxAriane) != "undefined" && idxAriane >= 0 && typeof(tabAriane) != "undefined" && idxAriane <= ( tabAriane.length - 1 ));
				
		// 3e niveau
		if (b3eNiveau)	{
					
			eval( "sNom3 = tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].sousMenu[idx3eNiveau].nomAlt" + suffixe );
			eval( "sUrl3 = tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].sousMenu[idx3eNiveau].url" + suffixe );
		}
		
		//Liens de page
		if (bAriane) {		
			sFA = "";
			
			while ( idxAriane != null && idxAriane >= 0 && idxAriane < tabAriane.length ) {
					eval( "sNom = tabAriane[idxAriane].nomAlt" + suffixe );
					
				if ( sFA == "" ) {
					sFA = afficherNom( sNom );
				} else {
	       				eval( "sUrl = tabAriane[idxAriane].url" + suffixe );
	           			sFA = creerLien( sNom, sUrl ) + separateur() + sFA;
				}
	  			idxAriane = tabAriane[idxAriane].idxParent;	  			
			}
		}
		
		// Voir si le fil se termine au niveau du sous menu
		if (bAriane || b3eNiveau) {
		
			// Le fil se continue	
			sHtml += creerLien( sNomSousMenu, sUrlSousMenu );
			
			if (b3eNiveau) {
				sHtml += separateur();
				if (bAriane) {
					
					sHtml += creerLien( sNom3, sUrl3 )				
				} else { // Le fil s'arrete ici
					
					sHtml += afficherNom( sNom3 );
				}	
			}
			
			if (bAriane) {
				sHtml += separateur() + sFA;
			}
			
		} else { // le fil se termine ici
			
			sHtml += afficherNom( sNomSousMenu );			
		}
		
	} else if (typeof(idxAriane) != "undefined" && idxAriane != -1) {
		
		sHtml += creerLien( sNom, sUrl );
		sHtml += separateur();
		
		sFA = "";
			
		while ( idxAriane != null && idxAriane >= 0 && idxAriane < tabAriane.length ) {
				eval( "sNom = tabAriane[idxAriane].nomAlt" + suffixe );
				
			if ( sFA == "" ) {
				sFA = afficherNom( sNom );
			} else {
       				eval( "sUrl = tabAriane[idxAriane].url" + suffixe );
           			sFA = creerLien( sNom, sUrl ) + separateur() + sFA;
			}
  			idxAriane = tabAriane[idxAriane].idxParent;	  			
		}
		
		sHtml += sFA;
	}
	sFilAriane = sHtml;
}

function creerLien( nom, url ){
	return "<a href='" + url + "' class='lienNeutre'>" + nom + "</a>";
}

function afficherNom( nom ){
	return "<b><span class='arianeNom'>" + nom + "</span></b>";
}

function separateur(){
	return "&nbsp;&gt;&nbsp;";
}

function creerVarSiteCatalyst(){
	
  suffixe = (bFr?"Fr":"En");
  
  
  
  /* cas special pour page d'accueil */
  if ( menuSel == -1 ) {
  
    if (bFr) {
      scPageName = "Accueil";
      scChannel = "Accueil";
      scProp1 = "Accueil";      
    } else {
      scPageName = "Home";
      scChannel = "Home";
      scProp1 = "Home";      
    }
  /* Toutes les autres pages seront traitees de la meme maniere, selon le fil d'ariane */
  } else {
    
    var nombreNiveaux = 0;   /* Compter le nombre de niveaux de menu */
    niveaux = new Array();
    eval( "sNom = tabEtatMenu[menuSel].valeurs.nomAlt" + suffixe );
    
    niveaux[0] = sNom;
    niveaux[1] = "";
    niveaux[2] = "";
    niveaux[3] = "";
    niveaux[4] = "";
    
    nombreNiveaux++;
    
    /* Premier sous-menu.  La plupart des pages ont au moins 2 niveaux, soit ligne d'affaire + page */
    if (sMenuSel != -1) {
    
      eval( "sNomSousMenu = tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].nomAlt" + suffixe );
      niveaux[1] = sNomSousMenu;
      nombreNiveaux++;
      
      // Determiner s'il y a un 3e niveau d'imbrication et s'il y a un fil d'ariane
      b3eNiveau = (typeof(idx3eNiveau) != "undefined" && idx3eNiveau >= 0 &&
				idx3eNiveau <= tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].sousMenu.length-1);
				
      bAriane = (typeof(idxAriane) != "undefined" && idxAriane >= 0 && typeof(tabAriane) != "undefined" && idxAriane <= ( tabAriane.length - 1 ));
      
      if (b3eNiveau)  {
					
        eval( "sNom3 = tabEtatMenu[menuSel].valeurs.sousMenu[sMenuSel].sousMenu[idx3eNiveau].nomAlt" + suffixe );
			
        niveaux[2] = sNom3;
        nombreNiveaux++;
        
        if (bAriane) {		
        
        while ( idxAriane != null && idxAriane >= 0 && idxAriane < tabAriane.length ) {
              eval( "sNom = tabAriane[idxAriane].nomAlt" + suffixe );
            
            niveaux[nombreNiveaux] = sNom;
            nombreNiveaux++;
              
            idxAriane = tabAriane[idxAriane].idxParent;	  			
          }
        }
      }    
    }
    
    /* Construire la hierarchie de pages */
    scChannel = niveaux[0];
    scProp1 = niveaux[1];
    scProp2 = niveaux[2];
    scProp3 = niveaux[3];
    scProp3 = niveaux[4];
    
    /* Si on a 2 niveaux ou plus, concatener les 2 derniers niveaux pour faire le nom de page*/
    if (nombreNiveaux >= 2) {
    
      scPageName = niveaux[(nombreNiveaux-2)] + " :: " + niveaux[(nombreNiveaux-1)];
    } else {
    
      scPageName = niveaux[(nombreNiveaux-1)];
    }
  }
}
