//function SDMenu(id) { // if (!document.getElementById || !document.getElementsByTagName) // return false; // this.menu = document.getElementById(id); // this.submenus = this.menu.getElementsByTagName("div"); // this.remember = true; // this.speed = 3; // this.markCurrent = true; // this.oneSmOnly = false; //} //SDMenu.prototype.init = function() { // var mainInstance = this; // for (var i = 0; i < this.submenus.length; i++) // this.submenus[i].getElementsByTagName("span")[0].onclick = function() { // mainInstance.toggleMenu(this.parentNode); // }; // if (this.markCurrent) { // var links = this.menu.getElementsByTagName("a"); // for (var i = 0; i < links.length; i++) // if (links[i].href == document.location.href) { // links[i].className = "current"; // break; // } // } // if (this.remember) { // var regex = new RegExp("sdmenu_" + encodeURIComponent(this.menu.id) + "=([01]+)"); // var match = regex.exec(document.cookie); // if (match) { // var states = match[1].split(""); // for (var i = 0; i < states.length; i++) // this.submenus[i].className = (states[i] == 0 ? "collapsed" : ""); // } // } //}; //SDMenu.prototype.toggleMenu = function(submenu) { // if (submenu.className == "collapsed") // this.expandMenu(submenu); // else // this.collapseMenu(submenu); //}; //SDMenu.prototype.expandMenu = function(submenu) { // var fullHeight = submenu.getElementsByTagName("span")[0].offsetHeight; // var links = submenu.getElementsByTagName("a"); // for (var i = 0; i < links.length; i++) // fullHeight += links[i].offsetHeight; // var moveBy = Math.round(this.speed * links.length); // // var mainInstance = this; // var intId = setInterval(function() { // var curHeight = submenu.offsetHeight; // var newHeight = curHeight + moveBy; // if (newHeight < fullHeight) // submenu.style.height = newHeight + "px"; // else { // clearInterval(intId); // submenu.style.height = ""; // submenu.className = ""; // mainInstance.memorize(); // } // }, 30); // this.collapseOthers(submenu); //}; //SDMenu.prototype.collapseMenu = function(submenu) { // var minHeight = submenu.getElementsByTagName("span")[0].offsetHeight; // var moveBy = Math.round(this.speed * submenu.getElementsByTagName("a").length); // var mainInstance = this; // var intId = setInterval(function() { // var curHeight = submenu.offsetHeight; // var newHeight = curHeight - moveBy; // if (newHeight > minHeight) // submenu.style.height = newHeight + "px"; // else { // clearInterval(intId); // submenu.style.height = ""; // submenu.className = "collapsed"; // mainInstance.memorize(); // } // }, 30); //}; //SDMenu.prototype.collapseOthers = function(submenu) { // if (this.oneSmOnly) { // for (var i = 0; i < this.submenus.length; i++) // if (this.submenus[i] != submenu && this.submenus[i].className != "collapsed") // this.collapseMenu(this.submenus[i]); // } //}; //SDMenu.prototype.expandAll = function() { // var oldOneSmOnly = this.oneSmOnly; // this.oneSmOnly = false; // for (var i = 0; i < this.submenus.length; i++) // if (this.submenus[i].className == "collapsed") // this.expandMenu(this.submenus[i]); // this.oneSmOnly = oldOneSmOnly; //}; //SDMenu.prototype.collapseAll = function() { // for (var i = 0; i < this.submenus.length; i++) // if (this.submenus[i].className != "collapsed") // this.collapseMenu(this.submenus[i]); //}; //SDMenu.prototype.memorize = function() { // if (this.remember) { // var states = new Array(); // for (var i = 0; i < this.submenus.length; i++) // states.push(this.submenus[i].className == "collapsed" ? 0 : 1); // var d = new Date(); // d.setTime(d.getTime() + (30 * 24 * 60 * 60 * 1000)); // document.cookie = "sdmenu_" + encodeURIComponent(this.menu.id) + "=" + states.join("") + "; expires=" + d.toGMTString() + "; path=/"; // } //}; function SDMenu(id) { if (!document.getElementById || !document.getElementsByTagName) return false; this.menu = document.getElementById(id); this.submenus = this.menu.getElementsByTagName("div"); this.remember = true; this.speed = 3; this.markCurrent = true; this.oneSmOnly = true; } SDMenu.prototype.init = function() { var mainInstance = this; for (var i = 0; i < this.submenus.length; i++) { SDMenu.prototype.collapseMenu(this.submenus[i].getElementsByTagName("span")[0].parentNode) //alert(this.submenus[i].getElementsByTagName("a")[0].innerHTML) this.submenus[i].getElementsByTagName("span")[0].onclick = function() { mainInstance.toggleMenu(this.parentNode); }; for(var j=0 ; j < this.submenus[i].getElementsByTagName("a").length; j++) { if(this.submenus[i].getElementsByTagName("a")[j].href==document.location.href) { //alert(this.submenus[i].getElementsByTagName("a")[j].href) SDMenu.prototype.expandMenu(this.submenus[i].getElementsByTagName("span")[0].parentNode); } } if(this.submenus[i].getElementsByTagName("a")[0].href==document.location.href) { //alert(this.submenus[i].getElementsByTagName("a")[0].href) SDMenu.prototype.expandMenu(this.submenus[i].getElementsByTagName("span")[0].parentNode); } } if (this.markCurrent) { var links = this.menu.getElementsByTagName("a"); for (var i = 0; i < links.length; i++) if (links[i].href == document.location.href) { if(links[i].className=="sublist"){ links[i].className = "current"; } break; } } if (this.remember) { var regex = new RegExp("sdmenu_" + encodeURIComponent(this.menu.id) + "=([01]+)"); var match = regex.exec(document.cookie); if (match) { var states = match[1].split(""); for (var i = 0; i < states.length; i++) this.submenus[i].className = (states[i] == 0 ? "collapsed" : ""); } } }; SDMenu.prototype.toggleMenu = function(submenu) { if (submenu.className == "collapsed") this.expandMenu(submenu); else this.collapseMenu(submenu); }; SDMenu.prototype.expandMenu = function(submenu) { var fullHeight = submenu.getElementsByTagName("span")[0].offsetHeight; var links = submenu.getElementsByTagName("a"); for (var i = 0; i < links.length; i++) fullHeight += links[i].offsetHeight; var moveBy = Math.round(this.speed * links.length); var mainInstance = this; var intId = setInterval(function() { var curHeight = submenu.offsetHeight; var newHeight = curHeight + moveBy; if (newHeight < fullHeight) submenu.style.height = newHeight + "px"; else { clearInterval(intId); submenu.style.height = ""; submenu.className = ""; mainInstance.memorize(); } }, 30); this.collapseOthers(submenu); }; SDMenu.prototype.collapseMenu = function(submenu) { var minHeight = submenu.getElementsByTagName("span")[0].offsetHeight; var moveBy = Math.round(this.speed * submenu.getElementsByTagName("a").length); var mainInstance = this; var intId = setInterval(function() { var curHeight = submenu.offsetHeight; var newHeight = curHeight - moveBy; if (newHeight > minHeight) submenu.style.height = newHeight + "px"; else { clearInterval(intId); submenu.style.height = ""; submenu.className = "collapsed"; mainInstance.memorize(); } }, 30); }; SDMenu.prototype.collapseOthers = function(submenu) { if (this.oneSmOnly) { for (var i = 0; i < this.submenus.length; i++) if (this.submenus[i] != submenu && this.submenus[i].className != "collapsed") this.collapseMenu(this.submenus[i]); } }; SDMenu.prototype.expandAll = function() { var oldOneSmOnly = this.oneSmOnly; this.oneSmOnly = true; for (var i = 0; i < this.submenus.length; i++) if (this.submenus[i].className == "collapsed") this.expandMenu(this.submenus[i]); this.oneSmOnly = oldOneSmOnly; }; SDMenu.prototype.collapseAll = function() { for (var i = 0; i < this.submenus.length; i++) if (this.submenus[i].className != "collapsed") this.collapseMenu(this.submenus[i]); }; SDMenu.prototype.memorize = function() { if (this.remember) { var states = new Array(); for (var i = 0; i < this.submenus.length; i++) states.push(this.submenus[i].className == "collapsed" ? 0 : 1); var d = new Date(); d.setTime(d.getTime() + (30 * 24 * 60 * 60 * 1000)); document.cookie = "sdmenu_" + encodeURIComponent(this.menu.id) + "=" + states.join("") + "; expires=" + d.toGMTString() + "; path=/"; } };