<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta http-equiv="Content-Style-Type" content="text/css">
  <title></title>
  <meta name="Generator" content="Cocoa HTML Writer">
  <meta name="CocoaVersion" content="949.43">
  <style type="text/css">
    p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Lucida Grande}
    p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Lucida Grande; min-height: 13.0px}
    span.Apple-tab-span {white-space:pre}
  </style>
</head>
<body>
<p class="p1">######</p>
<p class="p1">#</p>
<p class="p1"># Snippets by http://typo3.intervation.de/</p>
<p class="p1">#</p>
<p class="p1">####/*****************************************************</p>
<p class="p1"><span class="Apple-converted-space"> </span>* ypSlideOutMenu</p>
<p class="p1"><span class="Apple-converted-space"> </span>* 3/04/2001</p>
<p class="p1"><span class="Apple-converted-space"> </span>*</p>
<p class="p1"><span class="Apple-converted-space"> </span>* a nice little script to create exclusive, slide-out</p>
<p class="p1"><span class="Apple-converted-space"> </span>* menus for ns4, ns6, mozilla, opera, ie4, ie5 on</p>
<p class="p1"><span class="Apple-converted-space"> </span>* mac and win32. I've got no linux or unix to test on but</p>
<p class="p1"><span class="Apple-converted-space"> </span>* it should(?) work...</p>
<p class="p1"><span class="Apple-converted-space"> </span>*</p>
<p class="p1"><span class="Apple-converted-space"> </span>* --youngpup--</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-converted-space"> </span>* Überarbeitet typo.intervation.de 2007</p>
<p class="p1"><span class="Apple-converted-space"> </span>*****************************************************/</p>
<p class="p2"><br></p>
<p class="p1">ypSlideOutMenu.Registry = []</p>
<p class="p1">ypSlideOutMenu.aniLen = 450</p>
<p class="p1">ypSlideOutMenu.hideDelay = 50</p>
<p class="p1">ypSlideOutMenu.minCPUResolution = 10</p>
<p class="p2"><br></p>
<p class="p1">// constructor</p>
<p class="p1">function ypSlideOutMenu(id, dir, left, top, width, height, parentid)</p>
<p class="p1">{</p>
<p class="p1"><span class="Apple-tab-span">	</span>this.ie<span class="Apple-converted-space">  </span>= document.all ? 1 : 0</p>
<p class="p1"><span class="Apple-tab-span">	</span>this.ns4 = document.layers ? 1 : 0</p>
<p class="p1"><span class="Apple-tab-span">	</span>this.dom = document.getElementById ? 1 : 0</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-converted-space">        </span>//alert(id+"Container");</p>
<p class="p1"><span class="Apple-tab-span">	</span>if (this.ie || this.ns4 || this.dom) {</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>var m_hight = document.getElementById(id+"Container").offsetHeight;</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.id<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span> = id</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.dir<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span> = dir</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.orientation = dir == "left" || dir == "right" ? "h" : "v"</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.dirType<span class="Apple-tab-span">	</span> = dir == "right" || dir == "down" ? "-" : "+"</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.dim<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span> = this.orientation == "h" ? width : height</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.hideTimer<span class="Apple-tab-span">	</span> = false</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.aniTimer<span class="Apple-tab-span">	</span> = false</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.open<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span> = false</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.over<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span> = false</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.startTime<span class="Apple-tab-span">	</span> = 0</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.sliding<span class="Apple-tab-span">	</span> = false</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.parentid<span class="Apple-tab-span">	</span> = parentid</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.showcount<span class="Apple-tab-span">	</span> = 0</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>// global reference to this object</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.gRef = "ypSlideOutMenu_"+id</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>eval(this.gRef+"=this")</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.initleft = left</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.inittop = top</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.initwidth = width</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.initheight = height</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.showcount = 0;</p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>// add this menu object to an internal list of all menus</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>ypSlideOutMenu.Registry[id] = this</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>var d = document</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-converted-space">                </span>var strCSS = '&lt;style type="text/css"&gt;';</p>
<p class="p1"><span class="Apple-converted-space">                </span>strCSS += '#' + this.id + 'Container { visibility:hidden; '</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>strCSS += 'left:' + left + 'px; '</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>strCSS += 'top:' + top + 'px; '</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>strCSS += 'overflow:hidden; z-index:10000; text-align:left}'</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>strCSS += '#' + this.id + 'Container, #' + this.id + 'Content { position:absolute; '</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>strCSS += 'width:' + width + 'px;padding-bottom:20px;margin-left:1px; '</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>strCSS += 'height:' + m_hight + 'px; '</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>strCSS += 'clip:rect(0 ' + width + ' ' + m_hight + ' 0); '</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>strCSS += '}'</p>
<p class="p1"><span class="Apple-converted-space">                </span>strCSS += '&lt;/style&gt;';</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-converted-space">                </span>d.write(strCSS)</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.load()</p>
<p class="p1"><span class="Apple-tab-span">	</span>}</p>
<p class="p1">}</p>
<p class="p2"><br></p>
<p class="p1">ypSlideOutMenu.set_level_one = function(vert) {</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span>ypSlideOutMenu.horz_vert = vert;</p>
<p class="p2"><br></p>
<p class="p1">}</p>
<p class="p1">ypSlideOutMenu.writeCSS = function() {</p>
<p class="p1"><span class="Apple-tab-span">	</span>document.writeln('&lt;style type="text/css"&gt;');</p>
<p class="p1"><span class="Apple-tab-span">	</span>for (var id in ypSlideOutMenu.Registry) {</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>document.writeln(ypSlideOutMenu.Registry[id].css);</p>
<p class="p1"><span class="Apple-tab-span">	</span>}</p>
<p class="p1"><span class="Apple-tab-span">	</span>document.writeln('&lt;/style&gt;');</p>
<p class="p1">}</p>
<p class="p2"><br></p>
<p class="p1">ypSlideOutMenu.prototype.load = function() {</p>
<p class="p1"><span class="Apple-tab-span">	</span>var d = document</p>
<p class="p1"><span class="Apple-tab-span">	</span>var lyrId1 = this.id + "Container"</p>
<p class="p1"><span class="Apple-tab-span">	</span>var lyrId2 = this.id + "Content"</p>
<p class="p1"><span class="Apple-tab-span">	</span>var obj1 = this.dom ? d.getElementById(lyrId1) : this.ie ? d.all[lyrId1] : d.layers[lyrId1]</p>
<p class="p1"><span class="Apple-tab-span">	</span>if (obj1) var obj2 = this.ns4 ? obj1.layers[lyrId2] : this.ie ? d.all[lyrId2] : d.getElementById(lyrId2)</p>
<p class="p1"><span class="Apple-tab-span">	</span>// var temp</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span>if (!obj1 || !obj2) window.setTimeout(this.gRef + ".load()", 1000)</p>
<p class="p1"><span class="Apple-tab-span">	</span>else {</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.container<span class="Apple-tab-span">	</span>= obj1</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.menu<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>= obj2</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.style<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>= this.ns4 ? this.menu : this.menu.style</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.homePos<span class="Apple-tab-span">	</span>= eval("0" + this.dirType + this.dim)</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.outPos<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>= 0</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.accelConst<span class="Apple-tab-span">	</span>= (this.outPos - this.homePos) / ypSlideOutMenu.aniLen / ypSlideOutMenu.aniLen</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>// set event handlers.</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>if (this.ns4) this.menu.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT);</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.menu.onmouseover = new Function("ypSlideOutMenu.showMenu('" + this.id + "')")</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.menu.onmouseout = new Function("ypSlideOutMenu.hideMenu('" + this.id + "')")</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>//set initial state</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.endSlide()</p>
<p class="p1"><span class="Apple-tab-span">	</span>}</p>
<p class="p1">}</p>
<p class="p2"><br></p>
<p class="p1">ypSlideOutMenu.showMenu = function(id, layerid, idw, level)</p>
<p class="p1">{</p>
<p class="p1"><span class="Apple-tab-span">	</span>var reg = ypSlideOutMenu.Registry</p>
<p class="p1"><span class="Apple-tab-span">	</span>var obj = ypSlideOutMenu.Registry[id]</p>
<p class="p1"><span class="Apple-tab-span">	</span>if(layerid) {</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>idw.onactivate = function() { repositionMenu(idw, layerid, level); }</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span>}</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span>if (obj.container) {</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>obj.over = true</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>// close other menus.</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>// for (menu in reg) if (id != menu) ypSlideOutMenu.hide(menu)</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>// if this menu is scheduled to close, cancel it.</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>if (obj.hideTimer) { reg[id].hideTimer = window.clearTimeout(reg[id].hideTimer) }</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>obj.showcount++;</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>// if this menu is closed, open it.</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>if (!obj.open &amp;&amp; !obj.aniTimer) reg[id].startSlide(true)</p>
<p class="p1"><span class="Apple-tab-span">	</span>}</p>
<p class="p1">}</p>
<p class="p2"><br></p>
<p class="p1">ypSlideOutMenu.hideMenu = function(id)</p>
<p class="p1">{</p>
<p class="p1"><span class="Apple-tab-span">	</span>// schedules the menu to close after &lt;hideDelay&gt; ms, which</p>
<p class="p1"><span class="Apple-tab-span">	</span>// gives the user time to cancel the action if they accidentally moused out</p>
<p class="p1"><span class="Apple-tab-span">	</span>var obj = ypSlideOutMenu.Registry[id]</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span>if (obj.container) {</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>if (obj.hideTimer) window.clearTimeout(obj.hideTimer)</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>obj.showcount--;</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>obj.hideTimer = window.setTimeout("ypSlideOutMenu.hide('" + id + "')", ypSlideOutMenu.hideDelay);</p>
<p class="p1"><span class="Apple-tab-span">	</span>}</p>
<p class="p1">}</p>
<p class="p2"><br></p>
<p class="p1">ypSlideOutMenu.hide = function(id)</p>
<p class="p1">{</p>
<p class="p1"><span class="Apple-tab-span">	</span>var obj = ypSlideOutMenu.Registry[id]</p>
<p class="p1"><span class="Apple-tab-span">	</span>var reg = ypSlideOutMenu.Registry</p>
<p class="p1"><span class="Apple-tab-span">	</span>obj.over = false</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span>if (obj.hideTimer) window.clearTimeout(obj.hideTimer)</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span>// flag that this scheduled event has occured.</p>
<p class="p1"><span class="Apple-tab-span">	</span>obj.hideTimer = 0</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span>var close = true;</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span>for (menu in reg) {</p>
<p class="p1"><span class="Apple-tab-span">	</span>// for each child, if either</p>
<p class="p1"><span class="Apple-tab-span">	</span>// 1. the child is open or</p>
<p class="p1"><span class="Apple-tab-span">	</span>// 2. the child is closing (but hasn't closed yet)</p>
<p class="p1"><span class="Apple-tab-span">	</span>// then we don't close this menu.</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>var pid = ypSlideOutMenu.Registry[menu].parentid;</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>if(pid == id) {</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>if (ypSlideOutMenu.Registry[menu].open) close = false;</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>if (!ypSlideOutMenu.Registry[menu].open &amp;&amp; ypSlideOutMenu.Registry[menu].sliding) close = false;</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}</p>
<p class="p1"><span class="Apple-tab-span">	</span>}</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span>// if this menu is open, close it.</p>
<p class="p1"><span class="Apple-tab-span">	</span>if (obj.open &amp;&amp; !obj.aniTimer &amp;&amp; close &amp;&amp; !obj.showcount) obj.startSlide(false);</p>
<p class="p1">}</p>
<p class="p2"><br></p>
<p class="p1">ypSlideOutMenu.prototype.startSlide = function(open) {</p>
<p class="p1"><span class="Apple-tab-span">	</span>this[open ? "onactivate" : "ondeactivate"]()</p>
<p class="p1"><span class="Apple-tab-span">	</span>this.open = open</p>
<p class="p1"><span class="Apple-tab-span">	</span>if (open) this.setVisibility(true)</p>
<p class="p1"><span class="Apple-tab-span">	</span>this.startTime = (new Date()).getTime()</p>
<p class="p1"><span class="Apple-tab-span">	</span>this.sliding = true;</p>
<p class="p1"><span class="Apple-tab-span">	</span>this.aniTimer = window.setInterval(this.gRef + ".slide()", ypSlideOutMenu.minCPUResolution)</p>
<p class="p1">}</p>
<p class="p2"><br></p>
<p class="p1">ypSlideOutMenu.prototype.slide = function() {</p>
<p class="p1"><span class="Apple-tab-span">	</span>var elapsed = (new Date()).getTime() - this.startTime</p>
<p class="p1"><span class="Apple-tab-span">	</span>if (elapsed &gt; ypSlideOutMenu.aniLen) this.endSlide()</p>
<p class="p1"><span class="Apple-tab-span">	</span>else {</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>var d = Math.round(Math.pow(ypSlideOutMenu.aniLen-elapsed, 2) * this.accelConst)</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>if (this.open &amp;&amp; this.dirType == "-")<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = -d</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>else if (this.open &amp;&amp; this.dirType == "+")<span class="Apple-tab-span">	</span>d = -d</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>else if (!this.open &amp;&amp; this.dirType == "-")<span class="Apple-tab-span">	</span>d = -this.dim + d</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>else<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = this.dim + d</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.moveTo(d)</p>
<p class="p1"><span class="Apple-tab-span">	</span>}</p>
<p class="p1">}</p>
<p class="p2"><br></p>
<p class="p1">ypSlideOutMenu.prototype.endSlide = function() {</p>
<p class="p1"><span class="Apple-tab-span">	</span>this.aniTimer = window.clearTimeout(this.aniTimer)</p>
<p class="p1"><span class="Apple-tab-span">	</span>this.moveTo(this.open ? this.outPos : this.homePos)</p>
<p class="p1"><span class="Apple-tab-span">	</span>if (!this.open) this.setVisibility(false)</p>
<p class="p1"><span class="Apple-tab-span">	</span>this.sliding = false;</p>
<p class="p1"><span class="Apple-tab-span">	</span>if ((this.open &amp;&amp; !this.over) || (!this.open &amp;&amp; this.over) &amp;&amp; (!this.parent || this.parent.open)) {</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this.startSlide(this.over)</p>
<p class="p1"><span class="Apple-tab-span">	</span>} else {</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>var overchild = false;</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>var reg = ypSlideOutMenu.Registry</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>for (menu in reg) {</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>var pid = ypSlideOutMenu.Registry[menu].parentid</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>if (pid == this.id) overchild = ypSlideOutMenu.Registry[menu].over ? true : overchild</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>if(!overchild &amp;&amp; this.parentid &amp;&amp; !ypSlideOutMenu.Registry[this.parentid].over) ypSlideOutMenu.hide(this.parentid);</p>
<p class="p1"><span class="Apple-tab-span">	</span>}</p>
<p class="p1">}</p>
<p class="p2"><br></p>
<p class="p1">ypSlideOutMenu.prototype.setVisibility = function(bShow) {</p>
<p class="p1"><span class="Apple-tab-span">	</span>var s = this.ns4 ? this.container : this.container.style</p>
<p class="p1"><span class="Apple-tab-span">	</span>s.visibility = bShow ? "visible" : "hidden"</p>
<p class="p1">}</p>
<p class="p1">ypSlideOutMenu.prototype.moveTo = function(p) {</p>
<p class="p1"><span class="Apple-tab-span">	</span>this.style[this.orientation == "h" ? "left" : "top"] = this.ns4 ? p : p + "px"</p>
<p class="p1">}</p>
<p class="p1">ypSlideOutMenu.prototype.getPos = function(c) {</p>
<p class="p1"><span class="Apple-tab-span">	</span>return parseInt(this.style[c])</p>
<p class="p1">}</p>
<p class="p2"><br></p>
<p class="p1">// events</p>
<p class="p1">ypSlideOutMenu.prototype.onactivate<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>= function() { }</p>
<p class="p1">ypSlideOutMenu.prototype.ondeactivate<span class="Apple-tab-span">	</span>= function() { }</p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p1">function getPosition(element) {</p>
<p class="p1">/* der Aufruf dieser Funktion ermittelt die absoluten Koordinaten</p>
<p class="p1"><span class="Apple-converted-space">   </span>des Objekts element */</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-converted-space">  </span>var elem=element,tagname="",x=0,y=0;</p>
<p class="p1"><span class="Apple-converted-space">  </span>/* solange elem ein Objekt ist und die Eigenschaft offsetTop enthaelt</p>
<p class="p1"><span class="Apple-converted-space">   </span>wird diese Schleife fuer das Element und all seine Offset-Eltern ausgefuehrt */</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-converted-space">  </span>while ((typeof(elem)=="object")&amp;&amp;(typeof(elem.tagName)!="undefined"))</p>
<p class="p1"><span class="Apple-converted-space">  </span>{</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-converted-space">    </span>y+=elem.offsetTop; <span class="Apple-converted-space">    </span>/* Offset des jeweiligen Elements addieren */</p>
<p class="p1"><span class="Apple-converted-space">    </span>x+=elem.offsetLeft;<span class="Apple-converted-space">    </span>/* Offset des jeweiligen Elements addieren */</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-converted-space">    </span>tagname=elem.tagName.toUpperCase(); /* tag-Name ermitteln, Grossbuchstaben */</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span>/* wenn beim Body-tag angekommen elem fuer Abbruch auf 0 setzen */</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-converted-space">    </span>if (tagname=="HTML") {</p>
<p class="p1"><span class="Apple-converted-space">      </span>elem=0;</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span>}</p>
<p class="p1"><span class="Apple-tab-span">	</span>if (tagname=="BODY" &amp;&amp; navigator.userAgent.indexOf("Opera")&gt;-1) {</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>elem=0;</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span>}</p>
<p class="p1"><span class="Apple-tab-span">	</span>if (tagname=="BODY" &amp;&amp; !navigator.userAgent.indexOf("Opera")&gt;-1) {</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>elem=0;</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span>}</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span>/* wenn elem ein Objekt ist und offsetParent enthaelt</p>
<p class="p1"><span class="Apple-converted-space">   </span>Offset-Elternelement ermitteln */</p>
<p class="p1"><span class="Apple-converted-space">    </span>if (typeof(elem)=="object")</p>
<p class="p1"><span class="Apple-converted-space">      </span>if (typeof(elem.offsetParent)=="object")</p>
<p class="p1"><span class="Apple-converted-space">        </span>elem=elem.offsetParent;</p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-converted-space">  </span>}</p>
<p class="p2"><br></p>
<p class="p1">/* Objekt mit x und y zurueckgeben */</p>
<p class="p1"><span class="Apple-converted-space">  </span>position=new Object();</p>
<p class="p1"><span class="Apple-converted-space">  </span>position.x=x;</p>
<p class="p1"><span class="Apple-converted-space">  </span>position.y=y;</p>
<p class="p1"><span class="Apple-converted-space">  </span>return position;</p>
<p class="p1">}</p>
<p class="p1">// this function repositions a menu to the speicified offset from center</p>
<p class="p1">function repositionMenu(menu, offset, level) {</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span>/* Element-Objekt zur ID ermitteln */</p>
<p class="p1"><span class="Apple-tab-span">	</span>element=document.getElementById(offset);</p>
<p class="p1"><span class="Apple-tab-span">	</span> //alert(document.getElementById(offset).pageXOffset);</p>
<p class="p1">/* Position bestimmen und melden */</p>
<p class="p1"><span class="Apple-tab-span">	</span>//alert(document.getElementById(offset).offsetWidth);</p>
<p class="p1">// the new left position should be the center of the window + the offset</p>
<p class="p1"><span class="Apple-tab-span">	</span>var newLeft = getPosition(element);</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span>if(level)</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>var erx = newLeft.x+document.getElementById(offset).offsetWidth;</p>
<p class="p1"><span class="Apple-tab-span">	</span>else {</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>if(ypSlideOutMenu.horz_vert == "down") {</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>erx = newLeft.x;</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>newLeft.y = newLeft.y+ element.offsetHeight;</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>else {</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>erx = newLeft.x + element.offsetWidth;</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>newLeft.y = newLeft.y;</p>
<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}</p>
<p class="p2"><br></p>
<p class="p1"><span class="Apple-tab-span">	</span>}</p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p1">// setting the left position in netscape is a little different than IE</p>
<p class="p1"><span class="Apple-tab-span">	</span>menu.container.style ? menu.container.style.left = erx + "px" : menu.container.left = newLeft.x;</p>
<p class="p1"><span class="Apple-tab-span">	</span>menu.container.style ? menu.container.style.top = newLeft.y + "px" : menu.container.top = newLeft.y;</p>
<p class="p1">}</p>
<p class="p2"><br></p>
<p class="p1">// this function calculates the window's width - different for IE and netscape</p>
<p class="p1">function getWindowWidth()</p>
<p class="p1">{</p>
<p class="p1"><span class="Apple-tab-span">	</span>return window.innerWidth ? window.innerWidth : document.body.offsetWidth;</p>
<p class="p1">}</p>
</body>
</html>
