/* ------------------------------------------------------------------------- DFM2HTML v1.3 JavaScript Library Copyright 2003-2005 Jörg Kiegeland. All rights reserved. This javascript library is generated by the DFM2HTML tool. You may adapt this script for your Web pages, provided these opening credit lines (down to the lower dividing line) are kept intact. You may not reprint or redistribute this code without permission. Visit http://www.dfm2html.com ------------------------------------------------------------------------- */ var Timer; //used for sliding and for menu display delay var ToOpen; //menuitem for which to open submenu next var glSelCompo; //element over which mouse overs var TailSubMenu; //deepest opened submenu var glEventObj; //manage event bubbling var IsSliding; //TailSubMenu just sliding? function UpdateImm(Self) { var oldvis=Self.style.visibility; //IE doesnt update immediately, force update Self.style.visibility="hidden"; Self.style.visibility=oldvis; } function OpenMenu() { var Self=ToOpen; ToOpen=null; if (Self.style.display!="none") return; TailSubMenu=Self; if (!Self.IsInline) { var ox=Number(Self.getAttribute("menuleft"));; var oy=Number(Self.getAttribute("menutop")); for (var p=Self.FParentMenuItem; p && p!=Self.offsetParent; p=p.offsetParent) { oy+=p.offsetTop; ox+=p.offsetLeft; } Self.style.top=oy+"px"; Self.style.left=ox+"px"; Self.style.position="absolute"; } if (Self.filters) { if (Self.filters.blendTrans) Self.filters.blendTrans.Apply(); if (Self.filters.revealTrans) Self.filters.revealTrans.Apply(); } Self.style.display = ""; if (Self.FSlide) { IsSliding=true; Self.ow=Self.style.width; Self.offsetWidth;Self.offsetHeight;//for KHTML Self.oriy=Self.offsetHeight; Self.style.width=(Self.offsetWidth-Self.fpadw)+"px"; Self.style.height="0px"; Self.style.overflow="hidden"; Self.cheight=0; Timer=setInterval("SlideNotify();",10); } setTimeout("if (TailSubMenu) UpdateImm(TailSubMenu);",1); if (Self.filters) { if (Self.filters.blendTrans) Self.filters.blendTrans.Play(); if (Self.filters.revealTrans) Self.filters.revealTrans.Play(); } Self.FParentMenuItem.parentNode.FOpenMenuItem=Self.FParentMenuItem; //CheckDesignState ? } function glCheckClose(CloseItem) { if (!IsSliding) clearTimeout(Timer); var p=TailSubMenu; while (p) { TailSubMenu=p; if (VirParent(TailSubMenu,ToOpen)) break; if (!ToOpen && VirParent(TailSubMenu,glSelCompo) && !(CloseItem && VirParent(CloseItem,TailSubMenu))) break; if (p.FSlide && p.cheight!=0 && !(ToOpen && !ToOpen.IsInline)) if (TailSubMenu.IsInline) { if (IsSliding) clearInterval(Timer); IsSliding=true; TailSubMenu.style.width=(TailSubMenu.offsetWidth-TailSubMenu.fpadw)+"px"; TailSubMenu.style.overflow="hidden"; Timer=setInterval("SlideUpNotify();",10); return; } else if (IsSliding) return; TailSubMenu=null; p.style.display = "none"; if (IsSliding) { clearInterval(Timer); IsSliding=false; p.style.width=""; p.style.height=""; p.style.overflow="visible"; } p.FParentMenuItem.parentNode.FOpenMenuItem=null; CheckDesignState(p.FParentMenuItem); p=p.FParentMenuItem.parentNode; for (p; p && !p.FParentMenuItem ; p=p.parentNode); } if (!IsSliding && ToOpen) OpenMenu(); } function SlideNotify() { TailSubMenu.cheight=TailSubMenu.cheight+TailSubMenu.FSlidePixel; if (TailSubMenu.offsetHeight>=TailSubMenu.oriy) { if (TailSubMenu.FAutoSize) { TailSubMenu.style.width=""; TailSubMenu.style.height=""; } TailSubMenu.style.overflow="visible"; clearInterval(Timer); if (ToOpen) glCheckClose; IsSliding=false; if (document.all) setTimeout("if (TailSubMenu) UpdateImm(TailSubMenu);",1); } else TailSubMenu.style.height=TailSubMenu.cheight+"px"; } function SlideUpNotify() { TailSubMenu.cheight=Math.max(TailSubMenu.cheight-TailSubMenu.FSlidePixel,0); TailSubMenu.style.height=TailSubMenu.cheight+"px"; if (TailSubMenu.cheight==0) { clearInterval(Timer); glCheckClose(); } } function UpdateOver(Self,IsOver,Clicked) { if (!(glEventObj && RealParent(Self,glEventObj))) { var _glSelCompo=glSelCompo; glSelCompo=null; if (IsOver) glSelCompo=Self; if (Self.FSubMenu && Self.FSubMenu.getAttribute("clicktoopen")) { if (Self.FSubMenu && Self.FSubMenu.style.display!="none") { if (Clicked) glCheckClose(Self); } else if (Clicked || Self.FSubMenu && Self.FSubMenu.getAttribute("resumeopen") && IsOver && Self.parentNode.FOpenMenuItem) { ToOpen=Self.FSubMenu; glCheckClose(); } } else { Self.IsDown=Clicked; if (IsOver) ToOpen=Self.FSubMenu; if (Clicked) glCheckClose(); else if (IsOver && glSelCompo.FSubMenu && !IsSliding) { clearTimeout(Timer); Timer=setTimeout("glCheckClose();",glSelCompo.FSubMenu.FReactionTime); } } if (_glSelCompo==glSelCompo) _glSelCompo=null; if (_glSelCompo) CheckDesignState(_glSelCompo); if (Self.parentNode.FOpenMenuItem) CheckDesignState(Self.parentNode.FOpenMenuItem); CheckDesignState(Self); } glEventObj=Self; } function CheckDesignState(Self) { var base=Self.getAttribute("cbase"); if (base==null || base=="") return; var s=base+"_nm"; IsDown=(Self.getAttribute("down") || Self.FPC && Self.FPC.FURLAnchor==Self && !Self.getAttribute("notifurl") || Self.getAttribute("ifover") && Self==glSelCompo || !Self.FSubMenu && Self.IsDown && !Self.getAttribute("notifmouse") || Self.FSubMenu && Self.FSubMenu.style.display!="none" && !Self.getAttribute("notifmenu") && !(glSelCompo && Self!=glSelCompo && Self.parentNode==glSelCompo.parentNode/* && !glSelCompo.FParentMenuItem*/)); if (Self==glSelCompo && !(IsDown && Self.getAttribute("noover"))) { if (IsDown) s+=" "+base+"_dn"+" "+base+"_ov"+" "+base+"_od"+" dn ov od"; else s+=" "+base+"_ov"+" ov"; } else if (IsDown) s+=" "+base+"_dn"+" dn"; if (s==Self.className) return; var blend= Self.filters && s!=base+"_nm" && Self.childNodes.length<=1; if (blend) { if (Self.filters.blendTrans) Self.filters.blendTrans.Apply(); if (Self.filters.revealTrans) Self.filters.revealTrans.Apply(); } Self.className=s; if (blend) { if (Self.filters.blendTrans) Self.filters.blendTrans.Play(); if (Self.filters.revealTrans) Self.filters.revealTrans.Play(); } //Self.parentNode.style.display = "none";Self.parentNode.style.display = "block";//NS6 and Moz1.3 for z-index } function GotoSlide(n) { n.style.display="block"; var act=n.parentNode.act; if (act && act!=n) { n.offsetHeight;act.offsetHeight;//for KHTML var diff=n.offsetHeight-act.offsetHeight; act.style.display="none"; var h; for (var p=n.offsetParent; p && p.style && !(p.style.top && p.style.bottom); p=p.offsetParent) {h=p.style.height.replace(/px/,""); if (isNaN(h) || !h) break; p.style.height=Number(h)+diff+"px";} } n.parentNode.act=n; } function MouseOutEvent() { UpdateOver(this,false,false); } function MouseOverEvent() { if (glSelCompo!=this) UpdateOver(this,true,false); } function MouseDownEvent() { UpdateOver(this,true,true); return true; } function ChildPos(c) { for (var i=0; i<=c.parentNode.childNodes.length-1; i++) if (c.parentNode.childNodes[i]==c) return i; } function VirParent(p,c) { for (c; c ; c=(c.FParentMenuItem?c.FParentMenuItem:c.parentNode)) if (p==c) return true; return false; } function RealParent(p,c) { for (c=c.parentNode; c ; c=c.parentNode) if (p==c) return true; return false; } function MouseUpEvent() { if (this.FLastPage) { var z=((ChildPos(this.FLastPage)=ChildPos(this.FLinkPage)*z && v*z