
	var menu = new Object();
	menu.tag = 'DIV';
	menu.over = '_over';
	menu.zones = new Array('zone_0','zone_1');
	menu.items = new Array('item_0','item_1','item_2');
	menu.stack = new Array();
	menu.space = 10;
	
	menu.create = function()
	{
		var base = document.getElementById(menu.zones[0]);
		
		menu.initClass(base);
		menu.initSpacer(base);
		menu.initPos(base);
		menu.initEvent(base);
	}
	
	menu.initClass = function(parent)
	{
		var classe = "";
		var children = menu.getChildren(parent);
		for(var i=0;i<children.length;i++)
		{
			if(parent.id == menu.zones[0])
				classe = menu.items[0];
			else if(children[i].id == menu.zones[1])
				classe = menu.zones[1];
			else
				if(menu.getChildren(children[i])<1)
					classe = menu.items[1];
				else
					classe = menu.items[2];

			children[i].className = classe;
			menu.initClass(children[i]);
		}
	}
	
	menu.initPos = function(parent)
	{
		var children = menu.getChildren(parent);
		for(var i=0;i<children.length;i++)
		{
			var x = 0;
			var y = 0;
			
			if(parent.className == menu.items[0])
			{
				x = 0;
				y = parent.offsetHeight;
				
				children[i].style.left = x + "px";
				children[i].style.top = y + "px";
			}
			else if(parent.id == menu.zones[0])
			{
				x = menu.space;
				y = 0;
				
				//alert(children[i].className);
				
				children[i].style.left = x + "px";
				children[i].style.top = y + "px";
			}
			else
			{
				x = parent.parentNode.offsetWidth - 2;
				y = parent.offsetTop;
				
				children[i].style.left = x + "px";
				children[i].style.top = y + "px";
			}
			menu.initPos(children[i]);
		}
	}
	
	menu.initEvent = function(parent)
	{
		var children = menu.getChildren(parent);
		for(var i=0;i<children.length;i++)
		{
			children[i].onmouseover = menu.onMouseOver;
			children[i].onmouseout = menu.onMouseOut;
			if(children[i].id == menu.zones[1])
				children[i].onclick = menu.propagation;
			
			menu.initEvent(children[i]);
		}
	}
	
	menu.initSpacer = function(base)
	{
		var children = menu.getChildren(base);
		var last = children[children.length-1];
		var width = menu.leftElement(last) - menu.leftElement(base) + last.offsetWidth;
		menu.space = base.offsetWidth - width;
	}
	
	menu.onMouseOver = function(e)
	{
		var children = menu.getChildren(this);
		if( children.length==1 )
			children[0].style.visibility = 'visible';
		
		if(this.className.indexOf(menu.over) == -1)
			this.className += menu.over;
	}
	
	menu.onMouseOut = function(e)
	{
		var children = menu.getChildren(this);
		if( children.length==1 )
			children[0].style.visibility = 'hidden';
		
		if(this.className.indexOf(menu.over) != -1)
			this.className = this.className.replace(menu.over,'');
	}
	
	menu.click = function(lien)
	{
		if(lien)
			window.location.href = lien;
		menu.propagation(this);
	}
	
	menu.propagation = function(e)
	{
		if(e)
			e.stopPropagation();
		else	
			event.cancelBubble = true;
	}
	
	menu.getChildren = function(parent)
	{
		var result = Array();
		for(var i = 0 ; i < parent.childNodes.length ; i++)
			if(parent.childNodes[i].tagName == menu.tag)
				result[result.length] = parent.childNodes[i];
		return(result);
	}
	
	menu.topElement = function(e)
	{ 
		return ((e && menu.topElement != menu.topElement.caller)?e.offsetTop:0) + ((e && e.offsetParent)?e.offsetParent.offsetTop + menu.topElement(e.offsetParent):0);
	}
					
	menu.leftElement = function(e)
	{
		return ((e && menu.leftElement != menu.leftElement.caller)?e.offsetLeft:0) + ((e && e.offsetParent && !e.offsetParentoffsetParent)?e.offsetParent.offsetLeft + menu.leftElement(e.offsetParent):0);
	}
	
	menu.debug = function(Objet)
	{
		var pr = new Array();
		var res = "";
		
		var count = 0 ;
		for(tmp in Objet)
		{
				pr[count] = tmp;
				count++;
		}
		pr.sort();
		res = String(pr.join(",   "));
		
		alert(res);
	}
	
	menu.resize = function()
	{
		var base = document.getElementById(menu.zones[0]);
		menu.initPos(base);
	}
	
	menu.create();