1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| //<![CDATA[
var timeout = 1000;
for (var i = 0; i < 100; i++) {
eval("var timeoutli" + i + " = false;");
}
function initMenu() {
if (browser.isDOM1 && !(browser.isMac && browser.isIE) && !(browser.isOpera && browser.versionMajor < 7) && !(browser.isIE && browser.versionMajor < 5)) {
var menu = document.getElementById('menu');
var lis = menu.getElementsByTagName('li');
menu.className = 'menu';
for (var i = 0; i < lis.length; i++) {
if (lis.item(i).getElementsByTagName('ul').length > 0) {
if (browser.isIE) {
addAnEvent(lis.item(i), 'keyup', show);
}
addAnEvent(lis.item(i), 'mouseover', show);
addAnEvent(lis.item(i), 'mouseout', timeoutHide);
addAnEvent(lis.item(i), 'blur', timeoutHide);
addAnEvent(lis.item(i), 'focus', show);
lis.item(i).setAttribute('id', "li" + i);
}
}
}
}
function addAnEvent(target, eventName, functionName) {
if (browser.isIE) {
eval('target.on' + eventName + '=functionName');
} else {
target.addEventListener(eventName, functionName, true);
}
}
function timeoutHide() {
eval("timeout" + this.id + " = window.setTimeout('hideUlUnder( \"" + this.id + "\" )', " + timeout + " );");
}
function hideUlUnder(id) {
document.getElementById(id).getElementsByTagName('ul')[0].style['visibility'] = 'hidden';
}
function show() {
this.getElementsByTagName('ul')[0].style['visibility'] = 'visible';
var currentNode = this;
while (currentNode) {
if (currentNode.nodeName == 'LI') {
currentNode.getElementsByTagName('a')[0].className = 'linkOver';
}
currentNode = currentNode.parentNode;
}
eval("clearTimeout( timeout" + this.id + ");");
hideAllOthersUls(this);
}
function hideAllOthersUls(currentLi) {
var lis = currentLi.parentNode;
for (var i = 0; i < lis.childNodes.length; i++) {
if (lis.childNodes[i].nodeName == 'LI' && lis.childNodes[i].id != currentLi.id) {
hideUlUnderLi(lis.childNodes[i]);
}
}
}
function hideUlUnderLi(li) {
var as = li.getElementsByTagName('a');
for (var i = 0; i < as.length; i++) {
as.item(i).className = "";
}
var uls = li.getElementsByTagName('ul');
for (var i = 0; i < uls.length; i++) {
uls.item(i).style['visibility'] = 'hidden';
}
}
//]]> |
Partager