//
//----
// Navigation menu JavaScript
//----
//
var menuWidth, menuLeft;
window.addEvent('resize',function() {
	menuWidth = $('tabmenu').getStyle('width').toInt();
	menuLeft = $('tabmenu').getLeft().toInt();
});
window.addEvent('domready',function(){
	menuWidth = $('tabmenu').getStyle('width').toInt();
	menuLeft = $('tabmenu').getLeft().toInt();
	$$('li.active').each(function(item){/*{{{*/
		setSubMenuLeft(item);
	});/*}}}*/
	var navTimer = new Array();
	$$('li.topnav').each(function(item){/*{{{*/
		item.addEvents({
			'mouseenter': function(e) {
				var e = new Event(e).stop();
				if ($defined(navTimer[item.id])) {
					$clear(navTimer[item.id]);
				}
				$$('li.active', 'li.hover').each(function(a){
					a.removeClass('hover');
					if (a.hasClass('active')) {
						a.addClass('behind');
					}
					a.getLast().setStyle('left','0px');
				});
				item.addClass('hover');
				item.removeClass('behind');
				setSubMenuLeft(item);
			},
			'mouseleave': function(e) {
				var e = new Event(e).stop();
				navTimer[item.id] = function() {
					item.removeClass('hover');
					item.getLast().setStyle('left','0px');
					if ($$('li.active','li.hover').length == 1) {
						$$('li.active').each(function(a){
							a.removeClass('behind');
							a.addClass('hover');
							setSubMenuLeft(a);
						});
					}
				}.delay(1500);
			}
		});
		item.getFirst().addEvent('click',function(e){
			item.removeEvents('mouseleave');
		});
		item.getLast().getChildren().each(function(child){
			child.addEvent('click',function(e){
				item.removeEvents('mouseleave');
			});
		});

	});/*}}}*/
	function setSubMenuLeft(item){/*{{{*/
		if(item.getChildren().length >1){
			var child = item.getLast();
			var childEls = child.getChildren();
			var childWidth = child.getStyle('width').toInt();
			var cpLeft = child.getStyle('padding-left').toInt()+child.getStyle('margin-left').toInt()+child.getStyle('border-left').toInt();
			var cpRight = child.getStyle('padding-right').toInt()+child.getStyle('margin-right').toInt()+child.getStyle('border-right').toInt();
			var left = item.getFirst().getLeft().toInt();
			var totalWidth = childWidth + cpLeft+cpRight + left-menuLeft;
			if (totalWidth < menuWidth) {
				var setleft = left-menuLeft;
			} else {
				var setleft = menuWidth - childWidth-(cpLeft+cpRight) - 5;
			}
			child.setStyle('left',setleft+'px');
		}
	}/*}}}*/
});
