// To enable menus on hover and with return to default delay, juste replace "click" by "mouseenter"
var TabMenu = {
	container: null,
	elements: null,
	defaultitemnumber: null,
	defaultitem: null,
	selectTab: true,
	
	initialize: function (options){
		TabMenu.container     = options.container;
		TabMenu.elements      = options.container.getChildren()[0].getElements('li.level1');
		TabMenu.defaultitemnumber = options.defaultitemnumber || TabMenu.defaultitemnumber;
		TabMenu.defaultitem   = TabMenu.elements[TabMenu.defaultitemnumber];
		TabMenu.selectTab     = options.selectTab && TabMenu.selectTab;
		TabMenu.delay         = options.delay || 3000;

		TabMenu.elements.addEvent('mouseover', function () {
			TabMenu.enableTab(this, false);
		});

		// Enable default tab
		if (TabMenu.defaultitem != null) {
			TabMenu.enableTab(TabMenu.defaultitem, true);
		}
	},
	
	reset: function () {
		TabMenu.disableTabs();
		TabMenu.enableTab(TabMenu.defaultitem, true);
	},

	// Enable given tab
	enableTab: function (el, defaultTab) {

		// Stop current timeout
		if (TabMenu.timeoutReset) {
			$clear(TabMenu.timeoutReset);
			TabMenu.timeoutReset = null;
		}

		TabMenu.disableTabs();

		if (!el.hasClass('active')) {
			if (!defaultTab || (defaultTab && TabMenu.selectTab) ) {
				el.addClass('active');
				el.getElement('a').addClass('active');
			}
			el.getElement('ul').setStyle('display', 'block');
		}

		TabMenu.timeoutReset = TabMenu.reset.delay(TabMenu.delay);
	},

	// Disable all tabs
	disableTabs: function () {

		TabMenu.elements.each(function (el) {
			if (el.hasClass('active')) {
				el.removeClass('active');
				el.getElement('a').removeClass('active');
				el.getElement('ul').setStyle('display', 'none');
			}
		});
	}
}

window.addEvent('domready', function () {
	TabMenu.initialize({
		container: $('menu')
	});
});