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=/"}}
