/*
*	inc_menu_principal.js
*	author Ok!nteractif
*/

var menu = {
	menuPrefix		: 'smenu_',
	menuPrinc		: 'menu_haut_user',
	
	currentBtn		: null,
	currentMenu		: null,
	
	isOnButton		: false,
	isOnMenu		: false,
	hideMenuTimer	: null,

//	Menu show/hide management	///////////////////////////////////////////////////////////////////////////////
	showMenu		: function(idSection)
	{
		this.isOnButton = true;
		if(this.currentMenu) this.forceHideMenu();
		
		this.setCurrentMenu(idSection);
		if(!this.currentMenu) return;
		
		this.highlightCurrentBtn(idSection);
		this.attachCurrentMenuEvents();
		
		this.showCurrentMenu();	
	},
	
	hideMenu		: function()
	{
		if(this.isOnButton) this.isOnButton = false;
		this.hideMenuTimer = setTimeout('menu.hideMenuDelayed()', 2000);
	},
	
	hideMenuDelayed	: function()
	{
		if(this.isOnMenu || this.isOnButton) return;
		this.forceHideMenu();
	},
	
	forceHideMenu	: function()
	{
		if(this.hideMenuTimer!='undefined') clearTimeout(this.hideMenuTimer);
		if(!this.currentMenu) return;
		
		this.setBtnOut();
		this.hideCurrentMenu();
		
		this.currentMenu = null;
		this.currentBtn = null;
	},
	hideCurrentMenu	: function()
	{
		this.currentMenu.style.display = 'none';		
	},
	
	showCurrentMenu	: function()
	{
		this.currentMenu.style.display = 'block';
	},
	
	setCurrentMenu	: function(idSection)
	{
		this.currentMenu = $(this.menuPrefix+idSection);

	},
	
//	Menu events/states management	///////////////////////////////////////////////////////////////////////////
	attachCurrentMenuEvents	: function()
	{
		this.currentMenu.addEvent('mouseenter', this.menuMouseOver);
		this.currentMenu.addEvent('mouseleave', this.menuMouseOut);
	},
	
	menuMouseOver	: function()
	{
		menu.isOnMenu = true;
	},
	
	menuMouseOut	: function()
	{
		menu.isOnMenu = false;
		menu.hideMenu();
	},
	
	setBtnOver		: function(a)
	{		
		this.currentBtn = 	a.getFirst();
		
		var currentSrc = 	this.currentBtn.getProperty('src');
		var newSrc = 		currentSrc.replace(/_up/, '_over');
		
		this.currentBtn.setProperty('src', newSrc);
		
	},
	
	setBtnOut		: function()
	{
		var currentSrc = 	this.currentBtn.getProperty('src');
		var newSrc = 		currentSrc.replace(/_over/, '_up');

		this.currentBtn.setProperty('src', newSrc);
	},
	
	
	highlightCurrentBtn	: function(idSection)
	{
		var s;
		var reg = new RegExp(idSection);
		var menuPrinc = $(this.menuPrinc);
		var children = menuPrinc.getChildren();
		
		for(var i = 0; i < children.length; i += 1){
			s = children[i];
			if(s.getChildren().length == 1)
				if(reg.test(s.getFirst().getProperty('src')))
					this.setBtnOver(s);
				
		}
	}
};

