// MenuList.js

var MenuList = new Class({
	initialize: function(el, showEvent, hideEvent, offsetTop, offsetLeft, zindex, delay, dissolve) {
		el = $(el);
		if (!$defined(delay)) delay=500;
		if (!$defined(dissolve)) dissolve=400;
		if (!$defined(offsetTop)) offsetTop=0;
		if (!$defined(offsetLeft)) offsetLeft=0;
		if (!$defined(zindex)) zindex=100;
		if ($defined(el)) {
			el.getElements('li').each(function(listitem) {
				var sublist = listitem.getElement('ul');
				if ($defined(sublist)) {
					var fn;
					var listlink = listitem.getElement('a');
					
					// Set events - listlink
					listlink.addEvent(showEvent, function() {
						fn = $clear(fn);
						//var top = offsetTop;
						var ie6offset = 0;
						if (window.ie6) ie6offset = 0;
						var left = this.getLeft().toInt() - el.getLeft().toInt() + offsetLeft + ie6offset;
						var top = this.getTop().toInt() - el.getTop().toInt() + offsetTop;
						sublist.setStyles({
							display: 'block',
							position: 'absolute',
							'z-index': zindex,
							top: top,
							left: left,
							opacity: 0
						});
						sublist.effect('opacity',{duration: dissolve}).start(1);
					});
					listlink.addEvent(hideEvent, function() {
						fn = function(){sublist.setStyle('display', 'none');}.delay(delay);
					});
					
					// Set events - sublist
					sublist.addEvent('mouseover', function() {
						fn = $clear(fn);
						sublist.setStyle('display', 'block');
					});
					sublist.addEvent('mouseout', function() {
						fn = function(){sublist.setStyle('display', 'none');}.delay(delay);
					});
				}
			});
		}
	}
});