

Ext.namespace('Ext.ux');

Ext.ux.Flexddmenu = (function(){
	
	var closeTimer 	= 0,
		menuItem	= {};
	
return{
		
		btnId		: "secteur",
		ddMenuId	: "dropmenudiv",
		delay		: 250,
		
		init: function(){
			
			 this.initEvent();
			 this.initMenu();
		},
		
		initMenu : function(){
			
			Ext.fly(this.ddMenuId).hide();			
		},
		
		initEvent : function(){
			
			var btn = Ext.fly(this.btnId);
			
			btn.on('click', this.openMenu, this);
			btn.on('mouseover', this.openMenu, this);
			btn.on('mouseout', this.closeTimeMenu, this);
			
			var ddmenu = Ext.fly(this.ddMenuId);
			
			ddmenu.on('mouseover', this.cancelCloseTime, this);
			ddmenu.on('mouseout', this.closeTimeMenu, this);
						
		},
		
		openMenu : function(){
			
			this.cancelCloseTime();
			menuItem = Ext.get(this.ddMenuId);
			
			if(!menuItem.isVisible()){
				menuItem.show();
			}
		},
		
		closeMenu : function(){
			
			if(menuItem){	
				menuItem.hide();	
			}
		},
		
		closeTimeMenu : function(){
			closeTimer = window.setTimeout(this.closeMenu, this.delay);
		},
		
		cancelCloseTime : function(){
			
			if(closeTimer)
			{
				window.clearTimeout(closeTimer);
				closeTimer = null;
			}
		}
	};
	
})();

Ext.onReady(Ext.ux.Flexddmenu.init, Ext.ux.Flexddmenu);
