var MSTDropdownMenu = new Class(
{
	initialize:function(element,options)
	{
		this.setOptions(
		{
			mode : 'default',
			duration : 600,
			transition : Fx.Transitions.linear,
			wait : false
		},options);
		var reset = 
		{
			'width' : 0,
			'height' : 0,
			'opacity' : 0
		};
		switch(this.options.mode)
		{
		case'width':
			reset = 
			{
				'width' : 0,
				'opacity' : 0
			};
			break;
		case'height':
			reset=
			{
				'height' : 0,
				'opacity' : 0
			};
			break
		}
		$$(element).each(function(li)
		{
			var ul = li.getElement('ul');
			if(ul)
			{
				var fx = new Fx.Morph(ul,this.options);
				var styles = ul.getStyles('width','height','opacity');
				ul.setStyles(reset);
				li.addEvents(
				{
					mouseenter:function()
					{
						var parent = li.getParent();
						if(parent.getStyle('overflow') == 'hidden')
							parent.setStyle('overflow','visible');
						fx.element.setStyle('overflow','hidden');
						fx.start(styles)
					},
					
					mouseleave:function()
					{
						fx.cancel();
						ul.setStyles(reset)
					}
				})
			}
		}.bind(this))
	}
});

MSTDropdownMenu.implement(new Options);

