var DropMenu = new Class
({
	options:
	{
		hover: 'li',
		sub: 'ul',
		child: 'li'
	},
	
	initialize: function(el, options)
	{
		this.el = $E(el);
		this.setOptions(options);
		
		$each
		(
			this.el.getChildren(),
			function (item)
			{
				if (item.getTag() == this.options.hover)
				{
					item.addEvent('mouseenter', this.show.pass(item, this));
					item.addEvent('mouseleave', this.hide.pass(item, this));
					try
					{
						var sub = item.getElement(this.options.sub);
						sub.setStyle('display', 'block');
						
						if (item.getSize().size.x > sub.getSize().size.x) sub.setStyle('width', item.getSize().size.x + 'px');
						else sub.setStyle('width', sub.getSize().size.x + 'px');
						sub.setStyle('opacity', '.85');
						sub.setStyle('display', 'none');
					}
					catch (err) { }
				}
			},
			this
		);
	},
	
	show: function(item)
	{
		try
		{
			item.getElement(this.options.sub).setStyle('display', 'block');
		}
		catch (err) { }
	},
	
	hide: function(item)
	{
		try 
		{
			item.getElement(this.options.sub).setStyle('display', 'none');
		}
		catch (err) { }
	}
});

DropMenu.implement(new Events(), new Options());
