dojo.require("dojo.parser");

dojo.addOnLoad(
	function() {
		var layer = null, noClose = false, closeTimer = null;

		var cancel = function() {
			if (!closeTimer) return;
			window.clearTimeout(closeTimer);
			closeTimer = null;
		},
		setSubmenu = function(n) {
			var node = dojo.byId("menu" + n);
			if (node) {
				cancel();
				dojo.style(node, 'visibility', 'visible');
				if (layer && layer !== node)
					dojo.style(layer, 'visibility', 'hidden');
				layer = node;
			} else if (layer) {
				dojo.style(layer, 'visibility', 'hidden');
				layer = null;
			}
		},
		onOut = function(evt) {
			if (!/.*\d+$/.test(evt.currentTarget.id)) return;
			closeTimer =
			window.setTimeout(
				function() {
					if (layer && !noClose)
						dojo.style(layer, 'visibility', 'hidden');
					else
						noClose = false;
					layer = null;
				},
				300
			);
		};

		dojo.query('.parentmenu').
		onmouseout(onOut).
		onmouseover(
			function(evt) {
				var id = evt.currentTarget.id;
				if (/.*\d+$/.test(id))
					setSubmenu(id.substring(id.search(/\d+$/)));
			}
		);

		dojo.query('.submenu').
		onmouseout(onOut).
		onmouseover(function(evt) {cancel();});
	}
);

