function horizMenuInit() {

				initLevels();
loader();
				var sfEls = document.getElementById("horizMenu").getElementsByTagName("LI");
				for (var i=0; i<sfEls.length; i++) {
					sfEls[i].onmouseover=function() {
						this.className+=(this.className.length>0? " ": "") + "sfhover";
					
			
						
						hilightParentLi(this.parentNode);
					    if (this.parentNode.tagName!="DIV" )
					        {
				                if (this.parentNode.level  > 1 & this.tagName =="LI")
				                {
    				                
				                    var ulNode = getFirstULObject(this);
    //				                // Cas ou la fonction ne renvoit rien
 				                
				                    if (ulNode != null) 
				                    {    
				                    
				                        if  (window.document.body.clientWidth - (findPosX(this) + 2 * this.clientWidth) < 0)        
				                              ulNode.style.left = "-322px";
                            
				                    }
				                }
				             }
					}
					
					sfEls[i].onmouseout=function() {
						//	this.className=this.className.replace(new RegExp("( ?|^)sfhover\\b"), "");
						
						restoreParentLi(this.parentNode);
						if (this.parentNode.tagName!="DIV" )
					    {
				            if (this.parentNode.level  > 1 & this.tagName =="LI")
				            {
				                
				                var ulNode = getFirstULObject(this);
				                // Cas ou la fonction ne renvoit rien
				                if (ulNode != null) 
				                    ulNode.style.left = "";
				            }
				        }
						out(this);
						//setTimeout( 'out(' + this.id.toString() + ');', 200);

					}
				}
			}
function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
		    if (obj.offsetLeft >= 0)
		    {
			    curleft += obj.offsetLeft;
			}
			
			 obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;

}


			function hilightParentLi(node) {
			
				if (node.tagName=="DIV")
					return;
				
				if (node.tagName=="LI") {
					//node.style.backgroundColor = 'red';
					
					var lnk = getFirstLinkObject(node);
					
					node.className+=(node.className.length>0? " ": "") + "sfhover";

	if (node.parentNode.level != 1) {
		node.childNodes[0].childNodes[0].childNodes[0].childNodes[1].childNodes[0].style.fontWeight = "bold"
	}

					// L'ancêtre li de chaque elt présentera un carré à droite (via un fond transparent)
					//lnk.style.backgroundColor = 'red';
					if (node.parentNode.level == 2)
						lnk.className+=(lnk.className.length>0? " ": "") + "niv23";
					if (node.parentNode.level == 3)
						lnk.className+=(lnk.className.length>0? " ": "") + "niv34";
					if (node.parentNode.level == 4)
						lnk.className+=(lnk.className.length>0? " ": "") + "niv45";
				}
				hilightParentLi(node.parentNode);
			}
			
			// positionne un attribut level sur l'ensemble des ul, indiquant la profondeur
			function initLevels() {
				setLevel(null, null); // 1 représente le niveau à la racine
			}
			
			function setLevel(node, deepth) {
			
				if (!node) {
					node = document.getElementById("horizMenu");
					deepth = 1;
				}

				// le niveau dépends de la profondeur des UL
				if (node.tagName=="UL")
					node.setAttribute("level", deepth++);
			
				for(var i=0; i< node.childNodes.length; i++) {
					//mySon = currNode.childNodes.item(i);
					setLevel(node.childNodes.item(i), deepth);
				}
			}
				function getFirstULObject(node) {
				//currNode.childNodes.item(i)
				if (node.tagName=="UL")
					return node;
				
				//return getFirstLinkObject(node.)
				
				var obj;
				for(var i=0; i< node.childNodes.length; i++) {
					//mySon = currNode.childNodes.item(i);
					obj = getFirstULObject(node.childNodes.item(i));
					
					if (obj) // si le noeud a été trouvé inutile de chercher parmi ses frères
						return obj;
				}
				return null;
			}
			
			function getTaille(node)
			{
			    // Taille en cours
			    var sizeLeft = 0;
			    // Condition d'arret
			    //var obj = getTaille(node.offsetParent);
			    
			    if (node == null)
			        return sizeLeft;
			    else
			    {
			        var obj = getTaille(node.offsetParent);
			        sizeLeft = sizeLeft + parseInt(node.offsetLeft);
			    } 
			   
			}
			function getFirstLinkObject(node) {
				//currNode.childNodes.item(i)
				if (node.tagName=="A")
					return node;
				
				//return getFirstLinkObject(node.)
				
				var obj;
				for(var i=0; i< node.childNodes.length; i++) {
					//mySon = currNode.childNodes.item(i);
					obj = getFirstLinkObject(node.childNodes.item(i));
					
					if (obj) // si le noeud a été trouvé inutile de chercher parmi ses frères
						return obj;
				}
				return null;
			}
			
			function out(szId) {
				var obj;
				//alert(szId);
				/*
				if (!szId.id)
					var obj = document.getElementById(szId);
				else */
					obj = szId;
			
				obj.className=obj.className.replace(new RegExp("(( ?|^)sfhover\\b)*"), "");

			}
			
			
			function restoreParentLi(node) {
				if (node.tagName=="DIV")
					return;
				
				if (node.tagName=="LI") {
					//node.style.backgroundColor = 'red';
					
					var lnk = getFirstLinkObject(node);
					
					//node.className+=(node.className.length>0? " ": "") + "sfhover";
					//lnk.style.backgroundColor = '';
					
					if (node.parentNode.level != 1) {
						node.childNodes[0].childNodes[0].childNodes[0].childNodes[1].childNodes[0].style.fontWeight = ""
					}
					
					// L'ancêtre li de chaque elt présentera un carré à droite (via un fond transparent) : on supprime cet affichage ici
					//lnk.className=lnk.className.replace(new RegExp("(( ?|^)toto\\b)*"), "");
					lnk.className=lnk.className.replace(new RegExp("(( ?|^)niv23\\b)*"), "");
					lnk.className=lnk.className.replace(new RegExp("(( ?|^)niv34\\b)*"), "");
					lnk.className=lnk.className.replace(new RegExp("(( ?|^)niv45\\b)*"), "");
				}
				if (node.tagName=="UL" & node.level >1)
				{
				   
				        node.style.left = "";				    
				}
				restoreParentLi(node.parentNode);
			}


