﻿//Nested Side Bar Menu (Mar 20th, 09)
//By Dynamic Drive: http://www.dynamicdrive.com/style/

var menuids=["Level-0"]; //Enter id(s) of each Side Bar Menu's main UL, separated by commas
var Largeur=0;

var regExpBeginning = /^\s+/;
var regExpEnd = /\s+$/;  

// Supprime les espaces inutiles en début et fin de la chaîne passée en paramètre.

function trim(aString)
	{
		return aString.replace(regExpBeginning, "").replace(regExpEnd, "");
	}

function LargeurMenu(Menu)
	{
		var len=0;
		var lentext=0;
		for (var i=0;i<Menu.length;i++)
			{
				if (navigator.appName=="Netscape")
					var Texte=Menu[i].textContent;
				else if (navigator.appName=="Microsoft Internet Explorer")
					var Texte=Menu[i].innerHTML;
				else
					var Texte=Menu[i].textContent;
				if (Texte.indexOf("\n")>0)
					{
						var tmp= Texte.split("\n");
						for (var j=0; j<tmp.length;j++)
							{
								window.document.getElementById("Longeur").innerHTML=trim(tmp[j]);
								lentext=window.document.getElementById("Longeur").offsetWidth;
								if (lentext>len)
									len=lentext;
							}
					}
				else
					{
						var tmp=Texte;
						window.document.getElementById("Longeur").innerHTML=tmp;
						lentext=window.document.getElementById("Longeur").offsetWidth;
						if (lentext>len)
							len=lentext;
					}
				//alert(len);
			}
		return len;
	}

function initsidebarmenu()
	{
		for (var i=0; i<menuids.length; i++)
			{
				var ultags=document.getElementById(menuids[i]).getElementsByTagName("ul");
				for (var t=0; t<ultags.length; t++)
					{
						ultags[t].parentNode.getElementsByTagName("a")[0].className+=" subfolderstyle";
						if (ultags[t].parentNode.parentNode.id==menuids[i]) //if this is a first level submenu
							ultags[t].style.left=ultags[t].parentNode.offsetWidth+"px"; //dynamically position first level submenus to be width of main menu item
						else //else if this is a sub level submenu (ul)
							ultags[t].style.left=ultags[t-1].getElementsByTagName("a")[0].offsetWidth+"px";//position menu to the right of menu item that activated it
						ultags[t].parentNode.onmouseover=function()
							{
								this.getElementsByTagName("ul")[0].style.display="block";
								
								var MenuWidth=LargeurMenu(this.getElementsByTagName("ul")[0].children);
								//this.getElementsByTagName("ul")[0].Taille=200+len+35;
								this.getElementsByTagName("ul")[0].style.width=(MenuWidth+35)+"px";
								if (this.getElementsByTagName("ul")[0].parentNode.parentNode.id==menuids[0]) //if this is a first level submenu
									this.getElementsByTagName("ul")[0].style.left=this.getElementsByTagName("ul")[0].parentNode.offsetWidth+"px"; //dynamically position first level submenus to be width of main menu item
								else //else if this is a sub level submenu (ul)	
									{
										var MenuPereWidth=LargeurMenu(this.getElementsByTagName("ul")[0].parentNode.parentNode.children);
										this.getElementsByTagName("ul")[0].style.left=(35+MenuPereWidth)+"px";
									}
								
							}
						ultags[t].parentNode.onmouseout=function()
							{
								this.getElementsByTagName("ul")[0].style.display="none";
							}
					}
				for (var t=ultags.length-1; t>-1; t--)
					{ //loop through all sub menus again, and use "display:none" to hide menus (to prevent possible page scrollbars
						ultags[t].style.visibility="visible";
						ultags[t].style.display="none";
					}
		  }
	}

if (window.addEventListener)
	window.addEventListener("load", initsidebarmenu, false);
else if (window.attachEvent)
	window.attachEvent("onload", initsidebarmenu);

