4 function openMenu(anchor, menu) {
5 menu.style.display = "block";
7 menu.clonePosition(anchor, {
8 setLeft: true, setTop: true, setWidth: false, setHeight: false,
9 offsetLeft: 0, offsetTop: anchor.getHeight()
14 * Callback called when the mouse enters a menu anchor.
16 function enterMenuAnchor(event, anchor, menu, delay) {
17 clearTimeout(menu.timer);
20 menu.timer = setTimeout(function () { openMenu(anchor, menu) }, delay);
22 openMenu(event, menu);
27 * Callback called when the mouse leaves a menu anchor.
29 function leaveMenuAnchor(event, anchor, menu) {
30 var to = event.relatedTarget || event.toElement;
32 if (to != menu && !to.descendantOf(menu)) {
33 menu.style.display = "none";
36 clearTimeout(menu.timer);
40 * Callback called when the mouse leaves a menu.
42 function leaveMenu(event, anchor, menu) {
43 var to = event.relatedTarget || event.toElement;
45 if (to != anchor && !to.descendantOf(menu)) {
46 menu.style.display = "none";
49 clearTimeout(menu.timer);
53 * Setup a menu, triggered by hovering over an anchor for a given time.
55 function createMenu(anchorid, menuid, delay) {
56 var anchor = $(anchorid);
59 anchor.onmouseover = function (event) { enterMenuAnchor(anchor, anchor, menu, delay) };
60 anchor.onmouseout = function (event) { leaveMenuAnchor(event, anchor, menu) };
61 menu.onmouseout = function (event) { leaveMenu(event, anchor, menu) };