var level3MenuCls = 'lvl3-menu';
var level2MenuCls = 'lvl2-menu';
var expandLevel2MenuCls = 'expand-lvl2-menu';
var level3MenuCls = 'lvl3-menu';
var visLevel3MenuCls = 'lvl3-menu-vis';

var prevExpanded = null;

window.addEvent('domready', function() {
	/* horizontal menu start */	
	var uls = $$('li').filter(function(item){
		return item.className == level2MenuCls;
	});
	
	prevExpanded = null;
	
	var onClickDo = function(parent) {
		var parentElems = parent.getChildren();
		var liHeight = 30;
		
		parent.className = parent.className == level2MenuCls ? expandLevel2MenuCls : level2MenuCls;
		
		var level3Elem = parentElems.filter(function(item){
			return item.className == level3MenuCls || item.className == visLevel3MenuCls;
		});
		
		if (level3Elem[0].className == level3MenuCls) {
			level3Elem[0].className = visLevel3MenuCls;
			parent.setStyle('height', 'auto');
		} else {
			level3Elem[0].className = level3MenuCls;
		}
	
	};
 	
	var getParentByCls = function(child, func) {
		var parent = child;
		if (func(child))
			return parent;
		else {
			parent = child.parentNode;
			return getParentByCls(parent, func);
		}
	};
	
	uls.each(function(item){
		item.addEvent('click', function(event){
			var parent = null;
			var elem = event.target;
			if (elem.className == level2MenuCls || elem.className == expandLevel2MenuCls) {
				parent = elem;
			} else {
				parent = getParentByCls(elem, function(item){
					return item.className == level2MenuCls || item.className == expandLevel2MenuCls;
				});
			} 
			
			onClickDo(parent);
			
			if (parent != prevExpanded && prevExpanded != null)
				onClickDo(prevExpanded);
			
			prevExpanded = parent == prevExpanded ? null : parent;
		});
	});
	/* horizontal menu end */
	
});
