/*====================================*\
|| ################################## ||
|| # iDeal 2.0 Ajax Core            # ||
|| # ------------------------------ # ||
|| # Copyright ©2008 MediaPulse     # ||
|| # ------------------------------ # ||
|| # Revision Alpha                 # ||
|| ################################## ||
\*====================================*/

/**
 * Menu controller. Groups multiple pop ups together as a menu.
 */
iDeal.Menu = Class.create({
	_menus: new Array(),
	
	initialize: function( list, trigger, params )
	{
		list = $(list);
		
		list.select(trigger).each(function(s){
			params.target = s;
			this._menus.push( new iDeal.MenuPopUp( this, params ));
		}.bind(this));
	},
	
	hideOthers: function ( menu )
	{
		this._menus.each(function (s) {
			if (s != menu && s._open)
			{
				s._hide();
				s._myDiv.setStyle({zIndex: 0});
			}	
		}.bind(this));
	}
});

/**
 * Menu pop up - extends basic pop up class.
 */
iDeal.MenuPopUp = Class.create( iDeal.PopUp, {
	/**
	 * Reference to the controller object.
	 *
	 * @var object
	 * @access protected
	 */
	_parent: null,
	
	initialize: function ( $super, parent, params ) {
		this._parent = parent;
		$super(params);
	},
	
	_appear: function($super)
	{
		this._myDiv.setStyle({zIndex: 100});
		this._parent.hideOthers( this );	
		$super();
	}
});