	
	function Browser() {
	
	  var ua, s, i;
	
	  this.isIE    = false;  // Internet Explorer
	  this.isOP    = false;  // Opera
	  this.isNS    = false;  // Netscape
	  this.version = null;
	
	  ua = navigator.userAgent;
	
	  s = "Opera";
	  if ((i = ua.indexOf(s)) >= 0) {
		this.isOP = true;
		this.version = parseFloat(ua.substr(i + s.length));
		return;
	  }
	
	  s = "Netscape6/";
	  if ((i = ua.indexOf(s)) >= 0) {
		this.isNS = true;
		this.version = parseFloat(ua.substr(i + s.length));
		return;
	  }
	
	  // Treat any other "Gecko" browser as Netscape 6.1.
	
	  s = "Gecko";
	  if ((i = ua.indexOf(s)) >= 0) {
		this.isNS = true;
		this.version = 6.1;
		return;
	  }
	
	  s = "MSIE";
	  if ((i = ua.indexOf(s))) {
		this.isIE = true;
		this.version = parseFloat(ua.substr(i + s.length));
		return;
	  }
	}
	
	var browser = new Browser();
	 var MonTableau = new Array;//tableau definicent larborecent a affich&eacute; du menu
	 var elementaferme;
	
	//----------------------------------------------------------------------------
	// Code for handling the menu bar and active button.
	//----------------------------------------------------------------------------
	
	//var activeButton = null;
	function showsousmenu(event,sousmenuid){
		var button;
		
	//si il s'agit d'internet explorer
	 if (browser.isIE)
		button = window.event.srcElement;
	  else
		button = event.currentTarget;
		
		
	
	
	  // Blur focus from the link to remove that annoying outline.
	
	  button.blur();
	  
	

	 affiche(sousmenuid,button);
		
	}
	function  affiche(sousmenuid,button){ // on affiche le menu selon la class du parent
	// si c un menu enfant d'un item )principale ce sera en bas
	// si c un sousmenu ou soussousmenu..... a droite
	sousmenu=document.getElementById(sousmenuid);
	sousmenu.onmouseout=menuonmouseout;
	
	button.onmouseout=menuonmouseout;
	
	var filsmenu = sousmenu.getElementsByTagName("div");
	var nbrefils=filsmenu.length;
	  for(var i=0;i<nbrefils;i++){
		  filsmenu[i].onmouseout=menuonmouseout;
	  }
		
		


// on va calculer 
sousmenu.style.left = getPageOffsetLeft(button) + "px";
			sousmenu.style.top  = getPageOffsetTop(button) +button.offsetHeight + "px";
		/*if(button.className=='itemmenu'){// si il s'agit d'une arborescene nivo 1
			sousmenu.style.left = getPageOffsetLeft(button) + "px";
			sousmenu.style.top  = getPageOffsetTop(button) +button.offsetHeight + "px";
		}else{// il s'agit d'une arborecence superieur au niveau 1
		alert(button.className);
			sousmenu.style.left = getPageOffsetLeft(button) + (button.offsetWidth-1)+"px";
			sousmenu.style.top  = getPageOffsetTop(button)  + "px";
		}*/
	
	
		sousmenu.style.visibility = "visible";
		if(document.getElementById('ufoDemo')){
		divagerer=document.getElementById('ufoDemo');
		divagerer.style.visibility = "hidden";
		}
		MonTableau.push(sousmenuid);
		
	
	  }
	 
		function getPageOffsetLeft(el) {
	
	  var x;
	
	  // Return the x coordinate of an element relative to the page.
	
	  x = el.offsetLeft;
	  if (el.offsetParent != null)
		x += getPageOffsetLeft(el.offsetParent);
	
	  return x;
	}
	
	function getPageOffsetTop(el) {
	
	  var y;
	
	  // Return the x coordinate of an element relative to the page.
	
	  y = el.offsetTop;
	  if (el.offsetParent != null)
		y += getPageOffsetTop(el.offsetParent);
	
	  return y;
	}
	
	



function menuonmouseout(event){

 var elementcourant;
var affiche="false";

	 var current, related;

  if (window.event) {
   // current = this;
    elementprochain = window.event.toElement;
  }
  else {
  //  current = event.currentTarget;
    elementprochain = event.relatedTarget;
  }
  
  var i=1;
  var sizetab=MonTableau.length;
  
  while(((sizetab-i)>0 )|| affiche=="false"   ){

//	alert(MonTableau[(sizetab)-i]);

	 if(document.getElementById(MonTableau[(sizetab)-i])){// on liste les menu affich&eacute;
	 	elementcourant=document.getElementById(MonTableau[(sizetab)-i]);
				if (!isparent(elementcourant,elementprochain)){
					
					if(affiche=="false"){
						if(document.getElementById('ufoDemo')){
	divagerer=document.getElementById('ufoDemo');
		divagerer.style.visibility = "visible";
						}
	}
					elementcourant.style.visibility = "hidden";// on met invisible du tableau le dernier sous menu dans la 
					
					MonTableau.pop(); // on supprime du tableau le dernier sous menu dans la hieharchie
				}else{
					affiche="true"  
				}
	 }else{
		affiche="true"  
	 }
	//	alert("elementcourant :"+elementcourant.className+" elementrelated :"+related.className);
		i++;
	}// en while
	


}

 

function isparent(a, b) {
	
if(b==a){
//si b est le meme object ke a
	return true;
}else{
  

  while (b.parentNode){

    if ((b = b.parentNode) == a){
    // b est enfant de a
	  return true;
	}
  }
}
 //b n'est pas enfant de a
  return false;
}
		
		// on calcule lalocation du pointeur de la souris si la souris reste sur un menu de la meme arborecence on rend invisible les sous menu de la meme arborecence des autres menu
		// si la souris se place sur un sousmenu deja affich&eacute; alors rien ne se passe
		// si la souris monte d'un nivo de menu on fais disparaitre le nivo courant de menu
		// si la souris se place sous aucun menu on fais tout disparaitre

