// PATCH GD 170209 Correction d'un bug firefox

// PATCH JCG 230109 Gestion des menus revue

//PATCH PAR GD le 26/11/08 : Rassemblement de deux fichiers javascript en un pour annimer les différents menus.
// Mettre  <script src="/js/anim_menu.js"> dans le document 
//Dans le OnLoad il faut mettre soit :
//onLoad="putColorMenu_gauche ('rubrique','sousrubrique')
//onLoad="putColorMenu_ haut_droit ('rubrique','sousrubrique')
//onLoad="putColorMenu_ haut_gauche('rubrique','sousrubrique')


//On place des class="tablejaunemenu" ou "titre_item" suivant le tableau que l'on veut générer. Ils sont placé dans le TD du nom de la rubrique et permettra de sauvergarder chaque nom de rubrique dans un tableau. Les autres TD qui eux n'on pas de balise mais qui seront de la colone seront automatiquement rattaché à lui et seront rangés dans un autre tableau qui correspondra aux sous rubriques.
//On étudie ensuite la correspondante entre ce qu'il y a dans le OnLoad de la page et ce qu'il y a dans le tableau pour changer la couleur de ce qu'il faut.

//ATTENTION ! Firefox ne supporte pas le innerText. Le remplacer par un textContent.

//---------Déclaration de variable-----------

var tt = false; // utilisé pour l'anim du menu de gauche
var menug = new Array() ; //menu de gauche
var m=0; /* index menu_gauche*/
var n=0 ;/* index sous menu_gauche*/

var ff = false; // utilisé pour l'annim du menu du haut droit
var menu = new Array() ; // menu du haut droit

var qq = false; // utilisé pour l'annim du menu du haut gauche
var menuk = new Array() ; // menu du haut gauche


//-----------------MENU DE GAUCHE------------

function getMenuSommaire_gauche(){
var all_td=document.getElementsByTagName("TD");

    for (var i = 0 ; i < all_td.length ; i++){
	     /* correspond au noms des rubriques*/
	     if(all_td[i].className == 'titre_item'){
		   m++;
		   menug[m] = new Array();
		   tt = true ;
		   n=0;
	    }//finif
	 /* ici  td des sous-rubriques */ 	
	 if (tt){
	                  /* safari se comporte comme IE*/
		   if ( (navigator.appName == "Microsoft Internet Explorer") || (navigator.userAgent.toLowerCase().indexOf("safari")!=-1))  {  
			     if(all_td[i].innerText.length >1){
		             /* on stocke l'objet TD  */
			         menug[m][n] = all_td[i];
					
		             n++;
		          }
		 }else{
			   //firefox
			   //alert(all_td[i].textContent+" "+all_td[i].innerText);
			    if(all_td[i].textContent.length >1){
				    menug[m][n] = all_td[i];
		             n++;
				}   
		 }
	 }
	 
	}//ffori 

}

function putColorMenu_gauche(rub, srub){
   rub  = rub.toLowerCase();
   srub = srub.toLowerCase();
 /*Creation index menug*/
    getMenuSommaire_gauche();
	
	for (var i=1 ; i < menug.length ; i++){
	
	if (navigator.userAgent.toLowerCase().indexOf("firefox")==-1) {
	    if (menug[i][0].innerText.toLowerCase().indexOf(rub) == -1) continue;
	 
	 		 for (var j=1; j < menug[i].length ; j++){
	   			 if (menug[i][j].innerText.toLowerCase().indexOf(srub) != -1){
		    		updateColor_gauche(i,j); return true;
				}
	 
     		 }// fj
 
    }else{
     // firefox
	     if (menug[i][0].textContent.toLowerCase().indexOf(rub) == -1) continue;
	 
	 		 for (var j=1; j < menug[i].length ; j++){
	   			 if (menug[i][j].textContent.toLowerCase().indexOf(srub) != -1){
					 
		    		updateColor_gauche(i,j); return true; 
				}
	 
     		 }// ffj
	}
	
   }// ffi
}

function updateColor_gauche(x,y){

 
   var current_td = menug[x][y];
 
   /*ligne contenant le texte*/
   current_td.style.backgroundColor='#FFCC00';
   /*la ligne comporte 2 colonnes et les 2 doivent changer de couleur*/
   var td_before = current_td.previousSibling;
   
   if (navigator.userAgent.toLowerCase().indexOf("firefox")!=-1) 
   {
   		td_before = td_before.previousSibling;
   }
		td_before.style.backgroundColor='#FFCC00';
   
 }
 
 //-----------------MENU DU HAUT DROIT------------
 
function getMenuSommaire_haut_droit(){
;	
var p=0; /* index menu_haut droit*/
var k=0 ;/* index sous menu_haut droit*/
var all_td=document.getElementsByTagName("td");

	for (var i = 0 ; i < all_td.length ; i++){
	     /* correspond au noms des rubriques*/
	     if(all_td[i].id == 'tablejaunemenu'){ // on récupère tous les TD contenant l'id tablebleumenu
		   menu[p] = new Array(); // pour chaque TD de cette class existant on crée un tableau
		   menu[p][0] = all_td[i] ; // on stocke en menuk[a][0] le nom de la rubrique
		    //alert(menu[p][0].innerText); //affiche les rubriques
		   p++

        } // fin si tablejaunemenu
    }//fin for i 
	
	// Recuperation des sous rubriques par rubriques pour chaque rubriques
	for (var i = 0 ; i < menu.length ; i++){	
		// on cherche toutes les id des td
		k = 1;
		for (var j = 0 ; j < all_td.length ; j++){	
		
		 if ((navigator.appName == "Microsoft Internet Explorer") || (navigator.userAgent.toLowerCase().indexOf("safari")!=-1))  { 

			     if(all_td[j].id == menu[i][0].innerText){
					 
					//alert(all_td[i].textContent+" "+all_td[i].innerText);
	             /* on stocke l'objet TD dans un second tableau où il y a les sous rubriques */
			         menu[i][k] = all_td[j]; 
					 k++;
		          }// fin fi 
		 }else{
			   //firefox

				 if(all_td[j].id == menu[i][0].textContent){
					 //alert(all_td[i].textContent+" "+all_td[i].innerText);
					 /* on stocke l'objet TD dans un second tableau où il y a les sous rubriques */
			         menu[i][k] = all_td[j]; 
					 k++;
		          }// fin fi 			   
		} // finsi Navigator

       }// fin for j
  }// fin for i

} // fin fonction


function putColorMenu_haut_droit(rub, srub){
   rub  = rub.toLowerCase(); // récupère la rubrique du menu qui est écrite manuellement lorsque l'on appelle la fonction
   srub = srub.toLowerCase(); // récupère la sous rubrique du menu

 /*Creation table menu index menu*/
    getMenuSommaire_haut_droit(); 

	for (var i=0 ; i < menu.length ; i++){ // pour le nombre de TD qui existe sous le nom de tablejaunemenu

	if (navigator.userAgent.toLowerCase().indexOf("firefox")==-1) { // Sur IE on fait ceci
	
	    if (menu[i][0].innerText.toLowerCase().indexOf(rub) == -1) continue;
		// si la rubrique correspond à quelquechose dans le tableau des rubriques
	
	 		 for (var j=1; j < menu[i].length ; j++){
	
	   			 if (menu[i][j].innerText.toLowerCase().indexOf(srub) != -1){
					 // si la sous rubrique correspond à quelquechose dans le tableau des sous rubriques
			 
		    		updateColor_haut_droit(i,j); // on colore le td
					return true;
				} // fin if
	 
     		 }// for j
 
    }else{
     // Sur firefox
	 
	     if (menu[i][0].textContent.toLowerCase().indexOf(rub) == -1) continue; 
	 
	 		 for (var j=1; j < menu[i].length ; j++){
				 
	   			 if (menu[i][j].textContent.toLowerCase().indexOf(srub) != -1){
		    		updateColor_haut_droit(i,j); return true; // on applique la couleur sur le td
				}// fin if
	 
     		 }// fin for j 
	} // fin Navigator
   }// for i

} // fin fonction

function updateColor_haut_droit(x,y){
 
   var current_td = menu[x][y]; 
   /*ligne contenant le texte*/
   current_td.style.backgroundColor='#FFCC00';  
 }
 
 //-----------------MENU DU HAUT GAUCHE------------
 
function getMenuSommaire_haut_gauche(){
	
var a=0; /* index menu_haut gauche*/
var b=0 ;/* index sous menu_haut gauche*/
var all_td=document.getElementsByTagName("td");

	for (var i = 0 ; i < all_td.length ; i++){
	     /* correspond au noms des rubriques*/
	     if(all_td[i].id == 'tablebleumenu'){ // on récupère tous les TD contenant l'id tablebleumenu
		   menuk[a] = new Array(); // pour chaque TD de cette class existant on crée un tableau
		   menuk[a][0] = all_td[i] ; // on stocke en menuk[a][0] le nom de la rubrique
		   a++
        } // fin si tablebleumenu
    }//fin for i 
	
	// Recuperation des sous rubriques par rubriques pour chaque rubriques
	for (var i = 0 ; i < menuk.length ; i++){	
		// on cherche toutes les id des td
		b = 1;
		for (var j = 0 ; j < all_td.length ; j++){	
		 if ((navigator.appName == "Microsoft Internet Explorer") || (navigator.userAgent.toLowerCase().indexOf("safari")!=-1))  {  
			     if(all_td[j].id == menuk[i][0].innerText){
	             /* on stocke l'objet TD dans un second tableau où il y a les sous rubriques */
			         menuk[i][b] = all_td[j]; 
					 b++;
		          }// fin fi 
		 }else{
			   //firefox
				 if(all_td[j].id == menuk[i][0].textContent){ //firefox ne supporte pas le innertText
	             /* on stocke l'objet TD dans un second tableau où il y a les sous rubriques */
			         menuk[i][b] = all_td[j]; 
					 
					 b++;
		          }// fin fi 			   
		} // finsi Navigator

       }// fin for j
  }// fin for i

} // fin fonction


function putColorMenu_haut_gauche(rub, srub){
	
   rub  = rub.toLowerCase(); // récupère la rubrique du menu qui est écrite manuellement lorsque l'on appelle la fonction
   srub = srub.toLowerCase(); // récupère la sous rubrique du menu
 /*Creation table menuk index menu*/
    getMenuSommaire_haut_gauche(); 

	for (var i=0 ; i < menuk.length ; i++){ // pour le nombre de TD qui existe sous le nom de tablejaunemenu

	if (navigator.userAgent.toLowerCase().indexOf("firefox")==-1) { // Sur IE on fait ceci
	    if (menuk[i][0].innerText.toLowerCase().indexOf(rub) == -1) continue;
		// si la rubrique correspond à quelquechose dans le tableau des rubriques
	
	 		 for (var j=1; j < menuk[i].length ; j++){
			
	   			 if (menuk[i][j].innerText.toLowerCase().indexOf(srub) != -1){
					 // si la sous rubrique correspond à quelquechose dans le tableau des sous rubriques
			 
		    		updateColor_haut_gauche(i,j); // on colore le td
					return true;
				} // fin if
	 
     		 }// for j
 
    }else{
			
     // Sur firefox
	     if (menuk[i][0].textContent.toLowerCase().indexOf(rub) == -1) continue; 
	 		 for (var j=1; j < menuk[i].length ; j++){
	   			 if (menuk[i][j].textContent.toLowerCase().indexOf(srub) != -1){
		    		updateColor_haut_gauche(i,j); return true; // on applique la couleur sur le td
				}// fin if
	 
     		 }// fin for j 
	} // fin Navigator
   }// for i

} // fin fonction

function updateColor_haut_gauche(x,y){
   var current_td = menuk[x][y]; 
   /*ligne contenant le texte*/
   current_td.style.backgroundColor='#FFCC00';  
 }