/**
 * topmenu.js - controls drop down menus system for top menu bar
 * depends on YUI3 library
 */

YUI().use('node', function(Y) {
	
	var activeMenu = false;
	var menuActivated = false;
	
	// function to show menu
	var showMenu = function(e) {
		
		if (activeMenu) {
			activeMenu.setStyle('display','none');
			activeMenu = false;
			Y.get('#menucloser').setStyle('display','none');
		}
		
		// extract menuheader id
		var id = e.target.get('id');
		var menu = id + '-menu';
		e.target.blur();
		Y.get('#'+menu).setStyle('left', getPageOffsetLeft(Y.get('#'+id))+'px');
		Y.get('#'+menu).setStyle('display', 'block');
		activeMenu = Y.get('#'+menu);
		menuActivated = true;

		Y.get('#menucloser').setStyle('display','block');
	}
	
	var hideMenu = function(e) {
		if (menuActivated) {
			activeMenu.setStyle('display','none');
			activeMenu = false;
			Y.get('#menucloser').setStyle('display','none');
			menuActivated = false;
		}
	};
	
	var getPageOffsetLeft = function(o) {
		var x;
		x = o.get('offsetLeft');
		if (o.get('offsetParent') !=  null)
			x += getPageOffsetLeft(o.get('offsetParent'));
		return x;
	};
	
	var initMenus = function(e) {
		// subscribe event handlers
		Y.all('.menuheader').on('mouseover', showMenu);
		Y.all('.menu').on('mouseover', activateMenu);
		Y.get('#menucloser').on('mouseover', hideMenu);
	};
	
	var activateMenu = function (e) {
		menuActivated = true;
	}
	
	Y.on('domready', initMenus);
});
