// capture de la souris if (!isIE) document.captureEvents(Event.MOUSEMOVE); document.onmousemove = mouseMove; var currentMenu = ""; // id du menu déplié var activeMenu = false; // activation des menus (pour l'attente du chargement complet de la page) // initialisation des positions des menus function initMenus() { if (!isNS) { // univers Transport addMenu("U1", 82, 30); // univers Ville / région addMenu("U2", 83, 35); // univers Contact addMenu("U3", 83, 25); // chargement OK, on active les menus activeMenu = true; } } // positionnement des sous-menus function addMenu(parentId, top, left) { // récupération du parent pout déterminer la position var parentLayer = getLayer(parentId); var x = getPageLeft(parentLayer); var y = getPageTop(parentLayer); // décalages MAC if (isIE && isMac) { x += 10; y += 15; } else if (isSF) { x += 8; y += 8; } // on déplace le menu var menuLayer = getLayer("menu" + parentId); moveLayerTo(menuLayer, x+left, y+top); } // ouverture du menu function showMenu(id) { if (id != currentMenu && activeMenu) { // on désactive le menu en cours hideMenu(); // activation du menu currentMenu = id; var layer = getLayer("menu" + id); showLayer(layer); } } // fermeture du menu function hideMenu() { if (currentMenu != "" && activeMenu) { // désactivation du menu var layer = getLayer("menu" + currentMenu); hideLayer(layer); currentMenu = ""; } } // test de la souris pour le maintenir le menu ouvert function mouseMove(e) { if (isIE) { var x = event.clientX + document.body.scrollLeft; var y = event.clientY + document.body.scrollTop; } else { var x = e.pageX var y = e.pageY } if (currentMenu != "") { var menuLayer = getLayer(currentMenu); var mLeft = getPageLeft(menuLayer); var mRight = getPageRight(menuLayer); var mTop = getPageTop(menuLayer); var subMenuLayer = getLayer("menu" + currentMenu); var sLeft = getPageLeft(subMenuLayer); var sRight = getPageRight(subMenuLayer); var sTop = getPageTop(subMenuLayer); var sBottom = getPageBottom(subMenuLayer); if (((x < mLeft || x > mRight) && y < sTop) || ((x < sLeft || x > sRight) && y > sTop) || y < mTop || y > sBottom) hideMenu(); } }