/* Content generated : 09:57:12 pm 18 November 2006 */ var menus = { last_menu: false, processing_queue: false, queue: [], debug_data: [], setup: function() { var lis = document.getElementsByTagName("LI"); for (var q = 0; q < lis.length; q ++) { var id = lis[q].getAttribute("id"); lis[q].setAttribute("submenus", 0); var lnk = lis[q].getElementsByTagName("A")[0]; if (lnk) { var rel = lnk.getAttribute("rel"); if (rel && rel == "js_remove_href") { lnk.href = "#"; } } if (id && id.search(/^M:([0-9]+)/) != -1) { if (dom_id(id + ":0")) { lis[q].setAttribute("submenus", 1); if (lis[q].className.search(/on/) != -1) { menus.last_menu = lis[q]; //menus.toggle_subs(lis[q], 0, 1); } } lis[q].onclick = function() { menus.debug(this.id + " has been clicked"); try { this.blur(); } catch (e) {}; menus.handle_click(this); return false; } } } }, handle_click: function(li) { var lnk = li.firstChild; /*var tlnk = lnk.href.replace(/\?.*$/, ""); if (tlnk != lnk.protocol + "//" + lnk.hostname + "/" + lnk.pathname + "#" && tlnk != lnk.baseURI + "#") { document.location.href = lnk.href; return false; }*/ if (lnk.href.search(/#$/) == -1) { document.location.href = lnk.href; return false; } // main menu if (li.className.search(/sub/) == -1) { li.className = li.className + " on"; if (menus.last_menu) { if (menus.last_menu == li) { return false; } menus.last_menu.className = menus.last_menu.className.replace(/ ?on/, ""); menus.debug("Closing " + menus.last_menu.id + ", reverting class to " + menus.last_menu.className); menus.queue.push([menus.last_menu.id, -1]); } var subs = li.getAttribute("submenus"); if (subs && subs == 1) { menus.debug("Opening " + li.id); menus.queue.push([li.id, 1]); } else { menus.debug("No action taken for " + li.id); } menus.last_menu = li; } menus.run_queue(); return true; }, run_queue: function() { if (menus.processing_queue) { menus.debug("Waiting in queue..."); setTimeout("menus.run_queue()", 50); } else if (menus.queue.length != 0) { menus.processing_queue = true; menus.debug("Queue invoked for " + menus.queue[0][0] + " - " + menus.queue[0][1]); menus.toggle_subs(dom_id(menus.queue[0][0]), 0, menus.queue[0][1]); menus.queue.shift(); setTimeout("menus.run_queue()", 50); } }, toggle_subs: function(li, index, direction) { var m = dom_id(li.id + ":" + index); if (m) { m.style.display = (direction == 1) ? "block" : "none"; setTimeout(function() { menus.toggle_subs(li, index + 1, direction); }, 30); } else { menus.processing_queue = false; } }, debug: function(msg) { menus.debug_data.unshift(msg); if (menus.debug_data.length > 25) { menus.debug_data.pop(); } var md = document.getElementById("menu_debug"); if (md) { md.inne.php = menus.debug_data.join("
"); } } }; add_to_onload("menus.setup();");