// CollapseMenu Object // a slick collapsable navigation menu object // 19990606 // Copyright (C) 1999 Dan Steinman // Distributed under the terms of the GNU Library General Public License // Available at http://www.dansteinman.com/dynapi/ function CollapseMenu(x,y,width,numBlocks,color,name) { this.name = (name!=null)? name : "CollapseMenu"+(CollapseMenu.count++) this.x = x this.y = y this.w = width this.numBlocks = numBlocks this.bgColor = color this.openStyle = "glide" // or 'glide' or 'move' this.contentIndent = 0 this.inc = 32 this.speed = 12 this.active = false this.obj = this.name + "Object" eval(this.obj + "=this") this.build = CollapseMenuBuild this.activate = CollapseMenuActivate this.toggle = CollapseMenuToggle this.open = CollapseMenuOpen this.close = CollapseMenuClose this.finish = CollapseMenuFinish this.waitToOpen = CollapseWaitToOpen this.onToggle = new Function() } function CollapseMenuBuild() { this.css = css(this.name,this.x,this.y,this.w,0) for (var i=0;i' this.divEnd = '' this.divEnd += '
 
' for (var i=0;i=0;i--) { this.blocks[i].lyr.clipInit() this.blocks[i].lyr.clipTo(0,this.w,this.h-this.blocks[i].lyr.y,0) } this.blocks[this.numBlocks] = new Object() this.blocks[this.numBlocks].lyr = new DynLayer(this.name+'Block'+this.numBlocks) this.blocks[this.numBlocks].lyr.clipTo(0,this.w,this.h-this.itemTotal,0) this.blocks[this.numBlocks].lyr.css.height = this.h-this.itemTotal this.blocks[this.numBlocks].lyr.moveTo(null,this.blocks[this.numBlocks-1].itemHeight) this.lyr.clipTo(0,this.w,this.h,0) } function CollapseWaitToOpen(theclosingindex,theopeningindex){ // Esta condición no es correcta. Hay que encontar la manera de sincronizar close-open. if (this.blocks[theclosingindex].open) setTimeout(this.obj+'waitToOpen('+theclosingindex+','+theopeningindex+')',30) else this.open(theopeningindex); } function CollapseMenuToggle(i) { if (this.active) return; this.active = true; if (!this.blocks[i].open){ for (j=0;j