/* Gestion des menus pour RSmenu
* Fichier à  appeler dans la page : 
* <script type="text/javascript" src="media/RSmenu.js"></script> 
*
* Ce script est d'utilisation libre sous réserve de laisser ce commentaire
* Copyright 2005 - Stéphane Reuille
* http://www.rs-dev.com
*/

/** Personalisation des variables de menu
* Vous pouvez modifier ci-dessous les dimensions des menu et sous-menu
* Les valeurs par défaut devrait normalement suffire
*/
/** Unité utilisée pour les menus et sous-menus
* @var string menuUnit
* @default em
*/
var menuUnit = 'em';

/** Largeur intitulé des menus
* @var int intituleWidth
* @default 8
*/
var intituleWidth = 12;
var intituleLargeur=new Array(12,5.5,7,12,14);


/* Position par raport au haut de la barre de menu
* @var mixed intituleTop
* @defaut 2px
*/
var intituleTop = '2px';

/* Hauteur des intitulé
* @var mixed intituleHeight
* @defaut 2px
*/
var intituleHeight = '16px';

/** Largeur des sous-menus
* @var mixed smenuWidth
* @default auto
*/
var smenuWidth = '200px';

/* Position par raport au haut de la barre de menu
* @var mixed smenuTop
* @defaut 20px
*/
var smenuTop = '20px';
/* Variables définies par Laurent TIDONA
 * Permet de repositionner le menu
 * Valeurs exprimées en pixels
 */
var largeurSite = 885;
var margeGaucheMenu=20;
/* Top, Right, Bottom, Left */
var paddingSousMenu='4px 30px 4px 10px';


/** NE RIEN EDITER CI-DESSOUS */
var RSnav;
function buildIntituleLink(nodeNum){
	var nodeIntitule = RSnav.getElementsByTagName('p')[nodeNum];
	var textNode = nodeIntitule.firstChild;
	// Mise en place du lien
	var textLink = textNode.data;
	// C'est ici qu'il faudrait détexter le textNode.data
	// Si c'est un lien on fait rien
	// innerHTML : Utilisé pour changer le contenue d'une balise
	// Il faudrait pouvoir tester le contenue de cette balise
	//if (strpos(textLink,"</a>")==false)
	/*
	if (textLink.search("</a>")==-1)
	{
	  nodeIntitule.innerHTML = '<a href="#" onmouseover="showRSmenu('+nodeNum+');">'+textLink+'</a>';
	} 
	*/
	var detecteLien=textLink.search("href");
	if (detecteLien==-1)
	{
	  nodeIntitule.innerHTML = '<a href="#" onmouseover="showRSmenu('+nodeNum+');">'+textLink+'</a>';	 
	}
	else
	{ 
	  /*
	   * Cas ou on veut avoir une adresse directement dans
	   * la barre de menu.
	   * pour cela il suffit de placer directement dans la balise
	   * <p>, l'adresse de la chaine  afficher
	   */	   
	  var texteAdresse = textLink.substring(detecteLien);
	  var texteAffiche = textLink.substring(0,detecteLien);	  
	  nodeIntitule.innerHTML = '<a '+texteAdresse+' onmouseover="hideRSmenu();">'+texteAffiche+'</a>';
	}

}

function buildDocumentIntitules(){
	var intitules = RSnav.getElementsByTagName('p');
	
	var menuLargeurTido = 0;
	var totalLargeur = 0;	//largeurSite = conteneur.style.width;
	// Attention innerWidth peut ne pas marcher
	// avec internet explorer	
    var largeurFenetre=0;
          
    if (window.innerWidth) largeurFenetre=window.innerWidth;
    else if (document.body && document.body.offsetWidth) largeurFenetre=document.body.offsetWidth;        	
	//largeurMarge = (largeurFenetre - largeurSite)/2;
	largeurMarge = (largeurFenetre - largeurSite)/2;
	if (largeurMarge<0) largeurMarge=0;
	RSnav.style.left = margeGaucheMenu +largeurMarge  + 'px';
	//RSnav.style.left = '100px';
	
	var totalLeft=0;
	for(i=0 ; i < intitules.length ; i++){
		with(intitules[i].style){
			position = 'absolute';
			top = intituleTop;
			height = intituleHeight;
			//width = intituleWidth + menuUnit;
			//left = ((i * intituleWidth)+0.5) + menuUnit;					
			width = intituleLargeur[i] + menuUnit;
			left = totalLeft + menuUnit;
			totalLeft = totalLeft + (intituleLargeur[i] + 0.5);
		}
		buildIntituleLink(i);
	}
}
function buildSousMenu(){

	var smenu = RSnav.getElementsByTagName('ul');
	var totalLeft=0;
	for(i=0 ; i < smenu.length ; i++){
		with(smenu[i].style){
			position = 'absolute';
			top = smenuTop;
			width = smenuWidth;
			margin = '0';			
			padding = paddingSousMenu;
			left = totalLeft + menuUnit;
			totalLeft = totalLeft + (intituleLargeur[i] + 0.5);
		}				
	}

}

function hideRSmenu(){
	for(var m = RSnav.firstChild; m!= null; m = m.nextSibling){
		if( (m.nodeType == 1) && (m.tagName == 'UL') ){
			m.style.visibility = 'hidden';
		}
	}
}

function showRSmenu(num){

	hideRSmenu();

	var smenu = RSnav.getElementsByTagName('UL')[num];
	smenu.style.visibility = 'visible';  
}

function RSmenuInit(){
	RSnav = document.getElementById('RSnav');
	RSnav.style.position = 'absolute';
	buildDocumentIntitules();
	buildSousMenu();
	hideRSmenu();
}
