/*********************************************** * Slashdot Menu script- By DimX * Submitted to Dynamic Drive DHTML code library: http://www.dynamicdrive.com * Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code ***********************************************/ function SDMenu(id) { if (!document.getElementById || !document.getElementsByTagName) return false; this.menu = document.getElementById(id); this.submenus = this.menu.getElementsByTagName("div"); this.remember = true; // Store menu states (expanded or collapsed) in cookie and restore later this.speed = 4; // Menu sliding speed (1 - 5 recomended) this.markCurrent = true; // Mark current link / page (link.href == location.href) this.oneSmOnly = true; // One expanded submenu at a time } 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=/"; } }; var myMenu; window.onload = function() { myMenu = new SDMenu("my_menu"); myMenu.init(); var page = location.href; var sPage= page.substr(page.lastIndexOf('/') + 7, 4); var refr = document.referrer; var sRefr= refr.substr(refr.lastIndexOf('/') + 7, 4); //alert (sRefr); if ((sPage=='rech'||sPage=='main') && sRefr!='rech' && sRefr!='main') { myMenu.collapseAll(); var firstSubmenu = myMenu.submenus[0]; myMenu.expandMenu(firstSubmenu); } }; /* myMenu.(); var myMenu = new SDMenu("main_menu"); // ID of the menu element // Default values... myMenu.speed = 3; myMenu.remember = true; myMenu.oneSmOnly = false; myMenu.markCurrent = true; myMenu.init(); // Additional methods... var firstSubmenu = myMenu.submenus[0]; myMenu.expandMenu(firstSubmenu); // Expand a submenu myMenu.collapseMenu(firstSubmenu); // Collapse a menu myMenu.toggleMenu(firstSubmenu); // Expand if collapsed and collapse if expanded myMenu.expandAll(); // Expand all submenus myMenu.collapseAll(); // Collapse all submenus */ function getImagePageLeft(img){ var x,obj; x=0; obj=img; if(img!=null){ while(obj.offsetParent!=null){ x+=obj.offsetLeft; obj=obj.offsetParent; } x+=obj.offsetLeft; return x; } else { return(-1); } } function getImagePageTop(img){ var y,obj; y=0; obj=img; if(img!=null){ while(obj.offsetParent!=null){ y+=obj.offsetTop; obj=obj.offsetParent } y+=obj.offsetTop; return y; } else { return(-1); } }