function ClickShowHideMenu(id) { this.box1Hover = true; this.box2Hover = true; this.init = function() { this.parse(document.getElementById(this.id).childNodes, this.tree, this.id); } this.parse = function(nodes, tree, id) { for (var i = 0; i < nodes.length; i++) { if (nodes[i].nodeType != 1) { continue; } if (nodes[i].className) { if ("box1" == nodes[i].className.substr(0, 4)) { nodes[i].id = id + "-" + tree.length; tree[tree.length] = new Array(); eval('nodes[i].onmouseover = function() { self.box1over("'+nodes[i].id+'"); }'); eval('nodes[i].onmouseout = function() { self.box1out("'+nodes[i].id+'"); }'); eval('nodes[i].onclick = function() { self.box1click("'+nodes[i].id+'"); }'); } if ("section" == nodes[i].className) { id = id + "-" + (tree.length - 1); nodes[i].id = id + "-section"; tree = tree[tree.length - 1]; } if ("box2" == nodes[i].className.substr(0, 4)) { nodes[i].id = id + "-" + tree.length; tree[tree.length] = new Array(); eval('nodes[i].onmouseover = function() { self.box2over("'+nodes[i].id+'", "'+nodes[i].className+'"); }'); eval('nodes[i].onmouseout = function() { self.box2out("'+nodes[i].id+'", "'+nodes[i].className+'"); }'); } } if (nodes[i].childNodes) { this.parse(nodes[i].childNodes, tree, id); } } } this.box1over = function(id) { if (!this.box1Hover) return; if (!document.getElementById(id)) return; document.getElementById(id).className = (this.id_openbox == id ? "box1-open-hover" : "box1-hover"); } this.box1out = function(id) { if (!this.box1Hover) return; if (!document.getElementById(id)) return; document.getElementById(id).className = (this.id_openbox == id ? "box1-open" : "box1"); } this.box1click = function(id) { if (!document.getElementById(id)) { return; } var id_openbox = this.id_openbox; if (this.id_openbox) { if (!document.getElementById(id + "-section")) { return; } this.hide(); if (id_openbox == id) { if (this.box1hover) { document.getElementById(id_openbox).className = "box1-hover"; document.getElementById('b5').style.visibility = 'hidden'; } else { document.getElementById(id_openbox).className = "box1"; document.getElementById('b5').style.visibility = 'visible'; } } else { document.getElementById(id_openbox).className = "box1"; document.getElementById('b5').style.visibility = 'hidden'; } } if (id_openbox != id) { this.show(id); var className = document.getElementById(id).className; if ("box1-hover" == className) { document.getElementById(id).className = "box1-open-hover"; document.getElementById('b5').style.visibility = 'hidden'; } if ("box1" == className) { document.getElementById(id).className = "box1-open"; document.getElementById('b5').style.visibility = 'hidden'; } } } this.box2over = function(id, className) { if (!this.box2Hover) return; if (!document.getElementById(id)) return; document.getElementById(id).className = className + "-hover"; } this.box2out = function(id, className) { if (!this.box2Hover) return; if (!document.getElementById(id)) return; document.getElementById(id).className = className; } this.show = function(id) { if (document.getElementById(id + "-section")) { document.getElementById(id + "-section").style.display = "block"; this.id_openbox = id; } } this.hide = function() { document.getElementById(this.id_openbox + "-section").style.display = "none"; this.id_openbox = ""; } var self = this; this.id = id; this.tree = new Array(); this.id_openbox = ""; this.init(); } if (typeof String.prototype.trim == "undefined") { String.prototype.trim = function() { var s = this.replace(/^\s*/, ""); return s.replace(/\s*$/, ""); } }