function initMenu(menuRoot, relativeRoot) { // Opera not tested yet
	if (!$(menuRoot)) {
		return;
	};
	//
	var nTop = ($(relativeRoot)) ? $(relativeRoot).offsetTop : 0;
	var nLeft = ($(relativeRoot)) ? $(relativeRoot).offsetLeft : 0;
	//
	document.menuOver = false;
	var menuBtn = $(menuRoot).getElements("a");
	menuBtn.each(function(a){
		var li = a.getParent();
		if (a.getNext()) {
			li.subMenu = a.getNext();
			li.isRoot = (li.getParent() == $(menuRoot));
			li.isOver = false;
			if (li.subMenu) {
				li.addEvent("mousemove", function(e){
					new Event(e).stop();
					//
					var oBtn = $(this);
					oBtn.getFirst().addClass("selected");
				});
				li.addEvent("mouseenter", function(e){
					new Event(e).stop();
					//
					var oBtn = $(this);
					oBtn.subMenu.setStyles({
						top: (oBtn.isRoot) ? oBtn.getCoordinates().top+oBtn.getCoordinates().height-nTop : oBtn.offsetTop,
						left: (oBtn.isRoot) ? oBtn.getCoordinates().left-nLeft : oBtn.getCoordinates().width,
						visibility: "visible"
					});
					oBtn.getFirst().addClass("selected");
					document.menuOver = true;
				});
				li.addEvent("mouseleave", function(e){
					new Event(e).stop();
					//
					var oBtn = $(this);
					oBtn.subMenu.setStyles({
						top: -500,
						left: -500,
						visibility: "hidden"
					});
					oBtn.getFirst().removeClass("selected");
					//
					setTimeout(function(){
						try {
							var pE = oBtn.getParent();
							while (pE) {
								if (pE.subMenu && document.menuOver == false) {
									pE.subMenu.setStyles({
										top: -500,
										left: -500,
										visibility: "hidden"
									});
								}
								pE.getFirst().removeClass("selected");
								pE = pE.getParent();
							}
						} catch(e) {
							return;
						}
					}, 40);
					//
					document.menuOver = true;
				});
			};
		};
		li.addEvent("mouseenter", function(e){
			document.menuOver = true;
		});
		li.addEvent("mouseleave", function(e){
			document.menuOver = false;
		});
	});
};
//
window.addEvent("load", function(){
	initMenu("nav", "container");
});
//
window.addEvent("resize", function(){
	initMenu("nav", "container");
});