var CapMenu = Class.create({
	initialize: function(menu)
	{
		this.menuId = menu;
		this.menu = $(menu);
		
		this.ul = this.menu.childElements();
		var i=0;
		for(i=0;i<this.ul.length;i++)
		{
			this.menuLevel = 0;
			this.traverseMenu(this.ul[i], 0);
		}
	},
	
	traverseMenu: function(ele, menuLevel)
	{
		var self = this;
		var li = ele.childElements();
		var j=0;
		for(j=0;j<li.length;j++)
		{
			if(li[j].nodeName == "LI")
			{
				var cUl = li[j].childElements();
				if(cUl.length > 1)
				{
					if(cUl[1].nodeName == 'UL' && cUl[0].nodeName == 'A')
					{
						cUl[0].containerUl = cUl[1];
						cUl[0].menuLevel = this.menuLevel;
						
						if(menuLevel == 0)
						{
							cUl[0].observe('mouseover', function(){
								window.clearTimeout(this.containerUl.timeout);
								if(this.containerUl.style.display == 'none')
								{
									var close = $$('#' + self.menuId + ' ul li ul');
									for(i=0;i<close.length;i++)
									{
										if(close[i].nodeName == 'UL')
										{
											close[i].style.display = 'none';
										}
									}
									Effect.Appear(this.containerUl, { duration: 0.2, from: 0.0, to: 1.0 });
								}
							});
						}
						else
						{
							cUl[0].observe('mouseover', function(){
								window.clearTimeout(this.containerUl.timeout);
								if(this.containerUl.style.display == 'none')
								{
									Effect.Appear(this.containerUl, { duration: 0.2, from: 0.0, to: 1.0 });
								}
							});
						}
						cUl[0].observe('mouseout', function(){
							this.containerUl.timeout = Element.hide.delay(0.5, this.containerUl);
						});
						
						cUl[1].observe('mouseover', function(){
							window.clearTimeout(this.timeout);
						});
						cUl[1].observe('mouseout', function(){
							this.timeout = Element.hide.delay(0.5, this);
						});
					}
					var cLi = cUl[1].childElements();
					if(cLi.length > 1)
					{
						this.traverseMenu(cUl[1]);
					}
				}
			}
		}
	}
});


	
