﻿var MenuListRules =
{
	"li.menu-with-hover": function(el) {
		el.onmouseover = function(ev) {
			el = $(el);
			// Hide the other popups
			var popups = $$('.sub-category-popup');
			for (var i = 0; i < popups.length; i++) {
				popups[i].setStyle({ display: 'none' });
			}


			var blocker = $('blocker');
			if (Prototype.Browser.IE6) {
				if (blocker == null) {
					blocker = new Element('iframe', { id: 'blocker' });
					document.body.appendChild(blocker);
				}
			}
			
			clearTimeout(SubCategoryPopupTimeout);

			// Work out where to position the menu, only let the bottom drop out of the viewport if the top would be above 0px
			var popup = el.down('.sub-category-popup');
			var pixelTop = el.viewportOffset().top - 20 + document.viewport.getScrollOffsets().top;

			var space = document.viewport.getHeight() - (el.viewportOffset().top - 20);
			if (space < popup.getDimensions().height) {
				pixelTop -= (popup.getDimensions().height - space);
				if (pixelTop < document.viewport.getScrollOffsets().top) {
					pixelTop = document.viewport.getScrollOffsets().top;
				}
			}

			popup.setStyle({ display: 'block', top: pixelTop - 25 + "px", left: el.viewportOffset().left + 65 + "px" });

			if (Prototype.Browser.IE6) {
				blocker.setStyle({ position: 'absolute', display: 'block', top: pixelTop - 25 + "px", left: el.viewportOffset().left + 65 + "px", width: popup.getDimensions().width + 'px', height: popup.getDimensions().height + 'px' })
			}

		},
		el.onmouseout = function(ev) {
			el = $(el);
			SubCategoryPopupTimeout = setTimeout("MenuPopup.BeginHide();", 100);
		}
	}
}

Behaviour.register(MenuListRules);

var MenuPopup = {
	"BeginHide" : function() {
		popups = $$('.sub-category-popup');
		for (var i = 0; i < popups.length; i++) {
			popups[i].setStyle({ display: 'none' });
		}
		var blocker = $('blocker');
		if (blocker != null) {
			blocker.setStyle({ display: 'none' });
		}
	}
}


var MenuListRolloverRules = {
	"div.menulist ul li a": function(el) {
		el.onmouseover = function(ev) {
			el = $(el);
			if (el.hasClassName('selected')) return;
			el.addClassName('highlighted');
		},
		el.onmouseout = function(ev) {
			el = $(el);
			if (el.hasClassName('selected')) return;
			el.removeClassName('highlighted');
		}
	}
}

Behaviour.register(MenuListRolloverRules);
