function externalLinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external")
     anchor.target = "_blank";
 }
}
//window.onload = externalLinks;

/*	sIFR v2.0.7
	Copyright 2004 - 2008 Mark Wubben and Mike Davidson. Prior contributions by Shaun Inman and Tomas Jogin.
	
	This software is licensed under the CC-GNU LGPL <http://creativecommons.org/licenses/LGPL/2.1/>
*/

var hasFlash=function(){var a=6;if(navigator.appVersion.indexOf("MSIE")!=-1&&navigator.appVersion.indexOf("Windows")>-1){document.write('<script language="VBScript"\> \non error resume next \nhasFlash = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & '+a+'))) \n</script\> \n');if(window.hasFlash!=null)return window.hasFlash}if(navigator.mimeTypes&&navigator.mimeTypes["application/x-shockwave-flash"]&&navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){var b=(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description;return parseInt(b.substr(b.indexOf(".")-2,2),10)>=a}return false}();String.prototype.normalize=function(){return this.replace(/\s+/g," ")};if(Array.prototype.push==null){Array.prototype.push=function(){var i=0,a=this.length,b=arguments.length;while(i<b){this[a++]=arguments[i++]}return this.length}}if(!Function.prototype.apply){Function.prototype.apply=function(a,b){var c=[];var d,e;if(!a)a=window;if(!b)b=[];for(var i=0;i<b.length;i++){c[i]="b["+i+"]"}e="a.__applyTemp__("+c.join(",")+");";a.__applyTemp__=this;d=eval(e);a.__applyTemp__=null;return d}}function named(a){return new named.Arguments(a)}named.Arguments=function(a){this.oArgs=a};named.Arguments.prototype.constructor=named.Arguments;named.extract=function(a,b){var c,d;var i=a.length;while(i--){d=a[i];if(d!=null&&d.constructor!=null&&d.constructor==named.Arguments){c=a[i].oArgs;break}}if(c==null)return;for(e in c)if(b[e]!=null)b[e](c[e]);return};var parseSelector=function(){var a=/^([^#.>`]*)(#|\.|\>|\`)(.+)$/;function r(s,t){var u=s.split(/\s*\,\s*/);var v=[];for(var i=0;i<u.length;i++)v=v.concat(b(u[i],t));return v}function b(c,d,e){c=c.normalize().replace(" ","`");var f=c.match(a);var g,h,i,j,k,n;var l=[];if(f==null)f=[c,c];if(f[1]=="")f[1]="*";if(e==null)e="`";if(d==null)d=document;switch(f[2]){case "#":k=f[3].match(a);if(k==null)k=[null,f[3]];g=document.getElementById(k[1]);if(g==null||(f[1]!="*"&&!o(g,f[1])))return l;if(k.length==2){l.push(g);return l}return b(k[3],g,k[2]);case ".":if(e!=">")h=m(d,f[1]);else h=d.childNodes;for(i=0,n=h.length;i<n;i++){g=h[i];if(g.nodeType!=1)continue;k=f[3].match(a);if(k!=null){if(g.className==null||g.className.match("(\\s|^)"+k[1]+"(\\s|$)")==null)continue;j=b(k[3],g,k[2]);l=l.concat(j)}else if(g.className!=null&&g.className.match("(\\s|^)"+f[3]+"(\\s|$)")!=null)l.push(g)}return l;case ">":if(e!=">")h=m(d,f[1]);else h=d.childNodes;for(i=0,n=h.length;i<n;i++){g=h[i];if(g.nodeType!=1)continue;if(!o(g,f[1]))continue;j=b(f[3],g,">");l=l.concat(j)}return l;case "`":h=m(d,f[1]);for(i=0,n=h.length;i<n;i++){g=h[i];j=b(f[3],g,"`");l=l.concat(j)}return l;default:if(e!=">")h=m(d,f[1]);else h=d.childNodes;for(i=0,n=h.length;i<n;i++){g=h[i];if(g.nodeType!=1)continue;if(!o(g,f[1]))continue;l.push(g)}return l}}function m(d,o){if(o=="*"&&d.all!=null)return d.all;return d.getElementsByTagName(o)}function o(p,q){return q=="*"?true:p.nodeName.toLowerCase().replace("html:", "")==q.toLowerCase()}return r}();var sIFR=function(){var a="http://www.w3.org/1999/xhtml";var b=false;var c=false;var d;var ah=[];var al=document;var ak=al.documentElement;var am=window;var au=al.addEventListener;var av=am.addEventListener;var f=function(){var g=navigator.userAgent.toLowerCase();var f={a:g.indexOf("applewebkit")>-1,b:g.indexOf("safari")>-1,c:navigator.product!=null&&navigator.product.toLowerCase().indexOf("konqueror")>-1,d:g.indexOf("opera")>-1,e:al.contentType!=null&&al.contentType.indexOf("xml")>-1,f:true,g:true,h:null,i:null,j:null,k:null};f.l=f.a||f.c;f.m=!f.a&&navigator.product!=null&&navigator.product.toLowerCase()=="gecko";if(f.m&&g.match(/.*gecko\/(\d{8}).*/))f.j=new Number(g.match(/.*gecko\/(\d{8}).*/)[1]);f.n=g.indexOf("msie")>-1&&!f.d&&!f.l&&!f.m;f.o=f.n&&g.match(/.*mac.*/)!=null;if(f.d&&g.match(/.*opera(\s|\/)(\d+\.\d+)/))f.i=new Number(g.match(/.*opera(\s|\/)(\d+\.\d+)/)[2]);if(f.n||(f.d&&f.i<7.6))f.g=false;if(f.a&&g.match(/.*applewebkit\/(\d+).*/))f.k=new Number(g.match(/.*applewebkit\/(\d+).*/)[1]);if(am.hasFlash&&(!f.n||f.o)){var aj=(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description;f.h=parseInt(aj.substr(aj.indexOf(".")-2,2),10)}if(g.match(/.*(windows|mac).*/)==null||f.o||f.c||(f.d&&(g.match(/.*mac.*/)!=null||f.i<7.6))||(f.b&&f.h<7)||(!f.b&&f.a&&f.k<312)||(f.m&&f.j<20020523))f.f=false;if(!f.o&&!f.m&&al.createElementNS)try{al.createElementNS(a,"i").innerHTML=""}catch(e){f.e=true}f.p=f.c||(f.a&&f.k<312);return f}();function at(){return{bIsWebKit:f.a,bIsSafari:f.b,bIsKonq:f.c,bIsOpera:f.d,bIsXML:f.e,bHasTransparencySupport:f.f,bUseDOM:f.g,nFlashVersion:f.h,nOperaVersion:f.i,nGeckoBuildDate:f.j,nWebKitVersion:f.k,bIsKHTML:f.l,bIsGecko:f.m,bIsIE:f.n,bIsIEMac:f.o,bUseInnerHTMLHack:f.p}}if(am.hasFlash==false||!al.getElementsByTagName||!al.getElementById||(f.e&&(f.p||f.n)))return{UA:at()};function af(e){if((!k.bAutoInit&&(am.event||e)!=null)||!l(e))return;b=true;for(var i=0,h=ah.length;i<h;i++)j.apply(null,ah[i]);ah=[]}var k=af;function l(e){if(c==false||k.bIsDisabled==true||((f.e&&f.m||f.l)&&e==null&&b==false)||al.getElementsByTagName("body").length==0)return false;return true}function m(n){if(f.n)return n.replace(new RegExp("%\d{0}","g"),"%25");return n.replace(new RegExp("%(?!\d)","g"),"%25")}function as(p,q){return q=="*"?true:p.nodeName.toLowerCase().replace("html:", "")==q.toLowerCase()}function o(p,q,r,s,t){var u="";var v=p.firstChild;var w,x,y,z;if(s==null)s=0;if(t==null)t="";while(v){if(v.nodeType==3){z=v.nodeValue.replace("<","&lt;");switch(r){case "lower":u+=z.toLowerCase();break;case "upper":u+=z.toUpperCase();break;default:u+=z}}else if(v.nodeType==1){if(as(v,"a")&&!v.getAttribute("href")==false){if(v.getAttribute("target"))t+="&sifr_url_"+s+"_target="+v.getAttribute("target");t+="&sifr_url_"+s+"="+m(v.getAttribute("href")).replace(/&/g,"%26");u+='<a href="asfunction:_root.launchURL,'+s+'">';s++}else if(as(v,"br"))u+="<br/>";if(v.hasChildNodes()){y=o(v,null,r,s,t);u+=y.u;s=y.s;t=y.t}if(as(v,"a"))u+="</a>"}w=v;v=v.nextSibling;if(q!=null){x=w.parentNode.removeChild(w);q.appendChild(x)}}return{"u":u,"s":s,"t":t}}function A(B){if(al.createElementNS&&f.g)return al.createElementNS(a,B);return al.createElement(B)}function C(D,E,z){var p=A("param");p.setAttribute("name",E);p.setAttribute("value",z);D.appendChild(p)}function F(p,G){var H=p.className;if(H==null)H=G;else H=H.normalize()+(H==""?"":" ")+G;p.className=H}function aq(ar){var a=ak;if(k.bHideBrowserText==false)a=al.getElementsByTagName("body")[0];if((k.bHideBrowserText==false||ar)&&a)if(a.className==null||a.className.match(/\bsIFR\-hasFlash\b/)==null)F(a, "sIFR-hasFlash")}function j(I,J,K,L,M,N,O,P,Q,R,S,r,T){if(!l())return ah.push(arguments);aq();named.extract(arguments,{sSelector:function(ap){I=ap},sFlashSrc:function(ap){J=ap},sColor:function(ap){K=ap},sLinkColor:function(ap){L=ap},sHoverColor:function(ap){M=ap},sBgColor:function(ap){N=ap},nPaddingTop:function(ap){O=ap},nPaddingRight:function(ap){P=ap},nPaddingBottom:function(ap){Q=ap},nPaddingLeft:function(ap){R=ap},sFlashVars:function(ap){S=ap},sCase:function(ap){r=ap},sWmode:function(ap){T=ap}});var U=parseSelector(I);if(U.length==0)return false;if(S!=null)S="&"+S.normalize();else S="";if(K!=null)S+="&textcolor="+K;if(M!=null)S+="&hovercolor="+M;if(M!=null||L!=null)S+="&linkcolor="+(L||K);if(O==null)O=0;if(P==null)P=0;if(Q==null)Q=0;if(R==null)R=0;if(N==null)N="#FFFFFF";if(T=="transparent")if(!f.f)T="opaque";else N="transparent";if(T==null)T="";var p,V,W,X,Y,Z,aa,ab,ac;var ad=null;for(var i=0,h=U.length;i<h;i++){p=U[i];if(p.className!=null&&p.className.match(/\bsIFR\-replaced\b/)!=null)continue;V=p.offsetWidth-R-P;W=p.offsetHeight-O-Q;aa=A("span");aa.className="sIFR-alternate";ac=o(p,aa,r);Z="txt="+m(ac.u).replace(/\+/g,"%2B").replace(/&/g,"%26").replace(/\"/g, "%22").normalize() + S + "&w=" + V + "&h=" + W + ac.t;F(p,"sIFR-replaced");if(ad==null||!f.g){if(!f.g){if(!f.n)p.innerHTML=['<embed class="sIFR-flash" type="application/x-shockwave-flash" src="',J,'" quality="best" wmode="',T,'" bgcolor="',N,'" flashvars="',Z,'" width="',V,'" height="',W,'" sifr="true"></embed>'].join("");else p.innerHTML=['<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" sifr="true" width="',V,'" height="',W,'" class="sIFR-flash"><param name="movie" value="',J,'"></param><param name="flashvars" value="',Z,'"></param><param name="quality" value="best"></param><param name="wmode" value="',T,'"></param><param name="bgcolor" value="',N,'"></param> </object>'].join('')}else{if(f.d){ab=A("object");ab.setAttribute("data",J);C(ab,"quality","best");C(ab,"wmode",T);C(ab,"bgcolor",N)}else{ab=A("embed");ab.setAttribute("src",J);ab.setAttribute("quality","best");ab.setAttribute("flashvars",Z);ab.setAttribute("wmode",T);ab.setAttribute("bgcolor",N)}ab.setAttribute("sifr","true");ab.setAttribute("type","application/x-shockwave-flash");ab.className="sIFR-flash";if(!f.l||!f.e)ad=ab.cloneNode(true)}}else ab=ad.cloneNode(true);if(f.g){if(f.d)C(ab,"flashvars",Z);else ab.setAttribute("flashvars",Z);ab.setAttribute("width",V);ab.setAttribute("height",W);ab.style.width=V+"px";ab.style.height=W+"px";p.appendChild(ab)}p.appendChild(aa);if(f.p)p.innerHTML+=""}if(f.n&&k.bFixFragIdBug)setTimeout(function(){al.title=d},0)}function ai(){d=al.title}function ae(){if(k.bIsDisabled==true)return;c=true;if(k.bHideBrowserText)aq(true);if(am.attachEvent)am.attachEvent("onload",af);else if(!f.c&&(al.addEventListener||am.addEventListener)){if(f.a&&f.k>=132&&am.addEventListener)am.addEventListener("load",function(){setTimeout("sIFR({})",1)},false);else{if(al.addEventListener)al.addEventListener("load",af,false);if(am.addEventListener)am.addEventListener("load",af,false)}}else if(typeof am.onload=="function"){var ag=am.onload;am.onload=function(){ag();af()}}else am.onload=af;if(!f.n||am.location.hash=="")k.bFixFragIdBug=false;else ai()}k.UA=at();k.bAutoInit=true;k.bFixFragIdBug=true;k.replaceElement=j;k.updateDocumentTitle=ai;k.appendToClassName=F;k.setup=ae;k.debug=function(){aq(true)};k.debug.replaceNow=function(){ae();k()};k.bIsDisabled=false;k.bHideBrowserText=true;return k}();

if(typeof sIFR == "function" && !sIFR.UA.bIsIEMac && (!sIFR.UA.bIsWebKit || sIFR.UA.nWebKitVersion >= 100)){
	sIFR.setup();
};

sIFR.replaceElement(".head h1", named({sFlashSrc: "/bauhaus.swf", sColor: "#ffffff", sWmode:"transparent", sFlashVars:"textalign=left&offsetTop=0"}));

/*

FREESTYLE MENUS v1.0 RC (c) 2001-2009 Angus Turnbull, http://www.twinhelix.com
Altering this notice or redistributing this file is prohibited.

*/

var isDOM = document.getElementById ? 1 : 0, isIE = document.all ? 1 : 0, isNS4 = navigator.appName == 'Netscape' && !isDOM ? 1 : 0, isOp = self.opera ? 1 : 0, isDyn = isDOM || isIE || isNS4; function getRef(i, p) { p = !p ? document : p.navigator ? p.document : p; return isIE ? p.all[i] : isDOM ? (p.getElementById ? p : p.ownerDocument).getElementById(i) : isNS4 ? p.layers[i] : null }; function getSty(i, p) { var r = getRef(i, p); return r ? isNS4 ? r : r.style : null }; if (!self.LayerObj) var LayerObj = new Function('i', 'p', 'this.ref=getRef(i,p);this.sty=getSty(i,p);return this'); function getLyr(i, p) { return new LayerObj(i, p) }; function LyrFn(n, f) { LayerObj.prototype[n] = new Function('var a=arguments,p=a[0],px=isNS4||isOp?0:"px";with(this){' + f + '}') }; LyrFn('x', 'if(!isNaN(p))sty.left=p+px;else return parseInt(sty.left)'); LyrFn('y', 'if(!isNaN(p))sty.top=p+px;else return parseInt(sty.top)'); if (typeof addEvent != 'function') { var addEvent = function (o, t, f, l) { var d = 'addEventListener', n = 'on' + t; if (o[d] && !l) return o[d](t, f, false); if (!o._evts) o._evts = {}; if (!o._evts[t]) { o._evts[t] = {}; if (o[n]) addEvent(o, t, o[n], l); o[n] = new Function('e', 'var r=true,o=this,a=o._evts["' + t + '"],i;for(i in a){o._f=a[i];if(o._f._i)r=o._f(e||window.event)!=false&&r}o._f=null;return r') } if (!f._i) f._i = addEvent._i++; o._evts[t][f._i] = f; if (t != 'unload') addEvent(window, 'unload', function () { removeEvent(o, t, f, l) }) }; addEvent._i = 1; var removeEvent = function (o, t, f, l) { var d = 'removeEventListener'; if (o[d] && !l) return o[d](t, f, false); if (o._evts && o._evts[t] && f._i) delete o._evts[t][f._i] } } var addReadyEvent = function (f) { var a = addReadyEvent, n = null; addEvent(a, 'ready', f); if (!a.r) { a.r = function () { clearInterval(t); if (a.r) a.onready(); a.r = null }; addEvent(document, 'DOMContentLoaded', a.r); addEvent(window, 'load', a.r); var t = setInterval(function () { if (/complete|loaded/.test(document.readyState)) { if (!n) a.r(); else try { n.doScroll('left'); n = null; a.r() } catch (e) { } } }, 50) } }; function FSMenu(myName, nested, cssProp, cssVis, cssHid) { this.myName = myName; this.nested = nested; this.cssProp = cssProp; this.cssVis = cssVis; this.cssHid = cssHid; this.cssLitClass = 'highlighted'; this.menus = nested ? {} : { root: new FSMenuNode('root', true, this) }; this.menuToShow = []; this.mtsTimer = null; this.showDelay = 0; this.switchDelay = 125; this.hideDelay = 500; this.showOnClick = 0; this.hideOnClick = true; this.animInSpeed = 0.2; this.animOutSpeed = 0.2; this.animations = [] }; FSMenu.prototype.show = function (mN) { with (this) { menuToShow.length = arguments.length; for (var i = 0; i < arguments.length; i++) menuToShow[i] = arguments[i]; clearTimeout(mtsTimer); if (!nested) mtsTimer = setTimeout(myName + '.menus.root.over()', 10) } }; FSMenu.prototype.hide = function (mN) { with (this) { clearTimeout(mtsTimer); if (menus[mN]) menus[mN].out() } }; FSMenu.prototype.hideAll = function () { with (this) { for (var m in menus) if (menus[m].visible && !menus[m].isRoot) menus[m].hide(true) } }; function FSMenuNode(id, isRoot, obj) { this.id = id; this.isRoot = isRoot; this.obj = obj; this.lyr = this.child = this.par = this.timer = this.visible = null; this.args = []; var node = this; this.over = function (evt) { with (node) with (obj) { if (isNS4 && evt && lyr.ref) lyr.ref.routeEvent(evt); clearTimeout(timer); clearTimeout(mtsTimer); if (!isRoot && !visible) node.show(); if (menuToShow.length) { var a = menuToShow, m = a[0]; if (!menus[m] || !menus[m].lyr.ref) menus[m] = new FSMenuNode(m, false, obj); var c = menus[m]; if (c == node) { menuToShow.length = 0; return } clearTimeout(c.timer); if (c != child && c.lyr.ref) { c.args.length = a.length; for (var i = 0; i < a.length; i++) c.args[i] = a[i]; var delay = child ? switchDelay : showDelay; c.timer = setTimeout('with(' + myName + '){menus["' + c.id + '"].par=menus["' + node.id + '"];menus["' + c.id + '"].show()}', delay ? delay : 1) } menuToShow.length = 0 } if (!nested && par) par.over() } }; this.out = function (evt) { with (node) with (obj) { if (isNS4 && evt && lyr && lyr.ref) lyr.ref.routeEvent(evt); clearTimeout(timer); if (!isRoot && hideDelay >= 0) { timer = setTimeout(myName + '.menus["' + id + '"].hide()', hideDelay); if (!nested && par) par.out() } } }; if (id != 'root') with (this) with (lyr = getLyr(id)) if (ref) { if (isNS4) ref.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT); addEvent(ref, 'mouseover', this.over); addEvent(ref, 'mouseout', this.out); if (obj.nested) { addEvent(ref, 'focus', this.over, 1); addEvent(ref, 'click', this.over); addEvent(ref, 'blur', this.out, 1) } } }; FSMenuNode.prototype.show = function (forced) { with (this) with (obj) { if (!lyr || !lyr.ref) return; if (par) { if (par.child && par.child != this) par.child.hide(); par.child = this } var offR = args[1], offX = args[2], offY = args[3], lX = 0, lY = 0, doX = '' + offX != 'undefined', doY = '' + offY != 'undefined'; if (self.page && offR && (doX || doY)) { with (page.elmPos(offR, par.lyr ? par.lyr.ref : 0)) lX = x, lY = y; if (doX) lyr.x(lX + eval(offX)); if (doY) lyr.y(lY + eval(offY)) } if (offR) lightParent(offR, 1); visible = 1; if (obj.onshow) obj.onshow(id); lyr.ref.parentNode.style.zIndex = '2'; setVis(1, forced) } }; FSMenuNode.prototype.hide = function (forced) { with (this) with (obj) { if (!lyr || !lyr.ref || !visible) return; if (isNS4 && self.isMouseIn && isMouseIn(lyr.ref)) return show(); if (args[1]) lightParent(args[1], 0); if (child) child.hide(); if (par && par.child == this) par.child = null; if (lyr) { visible = 0; if (obj.onhide) obj.onhide(id); lyr.ref.parentNode.style.zIndex = '1'; setVis(0, forced) } } }; FSMenuNode.prototype.lightParent = function (elm, lit) { with (this) with (obj) { if (!cssLitClass || isNS4) return; if (lit) elm.className += (elm.className ? ' ' : '') + cssLitClass; else elm.className = elm.className.replace(new RegExp('(\\s*' + cssLitClass + ')+$'), '') } }; FSMenuNode.prototype.setVis = function (sh, forced) { with (this) with (obj) { if (lyr.forced && !forced) return; lyr.forced = forced; lyr.timer = lyr.timer || 0; lyr.counter = lyr.counter || 0; with (lyr) { clearTimeout(timer); var speed = sh ? animInSpeed : animOutSpeed; if (!counter) sty[cssProp] = sh ? cssVis : cssHid; if (isDOM && (speed < 1)) for (var a = 0; a < animations.length; a++) animations[a](ref, counter, sh); if (isDOM && (sh ? counter < 1 : counter > 0)) timer = setTimeout(myName + '.menus["' + id + '"].setVis(' + sh + ',' + (forced || 0) + ')', 50); else lyr.forced = false; counter = counter + speed * (sh ? 1 : -1); if (counter < 0.001) counter = 0; if (counter > 0.999) counter = 1 } } }; FSMenu.animSwipeDown = function (ref, counter, show) { var elm = ref.firstChild.style ? ref.firstChild : ref.firstChild.nextSibling, isOldIE = /MSIE\s(5|6|7)\./.test(navigator.userAgent); if (!elm) return; if (show && (counter == 0)) { if (!elm._fsm_marg) elm._fsm_marg = { 'top': elm.style.marginTop }; ref._fsm_height = ref.offsetHeight } if (counter == 1 || (counter < 0.01 && !show)) { ref.style.overflow = 'visible'; elm.style.marginTop = elm._fsm_marg.top; if (isOldIE) ref.style.height = '' } else { var cP = Math.pow(Math.sin(Math.PI * counter / 2), 0.75); ref.style.overflow = 'hidden'; if (isOldIE) ref.style.height = (ref._fsm_height * cP) + 'px'; else elm.style.marginTop = (0 - ref._fsm_height * (1 - cP)) + 'px' } }; FSMenu.animFade = function (ref, counter, show) { if (typeof ref.filters == 'unknown') return; var f = ref.filters, done = (show ? counter == 1 : counter < 0.01), a = /MSIE\s(4|5)/.test(navigator.userAgent) ? 'alpha' : 'DXImageTransform.Microsoft.Alpha'; if (f) { if (!done && ref.style.filter.indexOf(a) == -1) ref.style.filter += ' ' + (a == 'alpha' ? a : 'progid:' + a) + '(opacity=' + (counter * 100) + ')'; else if (f.length && f[a]) { if (done) f[a].enabled = false; else { f[a].opacity = (counter * 100); f[a].enabled = true } } } else ref.style.opacity = ref.style.MozOpacity = counter * 0.999 }; FSMenu.animClipDown = function (ref, counter, show) { var cP = Math.pow(Math.sin(Math.PI * counter / 2), 0.75); ref.style.clip = (counter == 1 ? ((window.opera || navigator.userAgent.indexOf('KHTML') > -1) ? '' : 'rect(auto,auto,auto,auto)') : 'rect(0,' + ref.offsetWidth + 'px,' + (ref.offsetHeight * cP) + 'px,0px)') }; FSMenu.prototype.activateMenu = function (id, subInd) { with (this) { if (!isDOM || !document.documentElement) return; var fsmFB = getRef('fsmenu-fallback'); if (fsmFB) { fsmFB.rel = 'alternate stylesheet'; fsmFB.disabled = true } var a, ul, li, parUL, mRoot = getRef(id), nodes; if (!FSMenu._count) FSMenu._count = 1; var evtProp = navigator.userAgent.indexOf('Safari') > -1 || isOp ? 'safRtnVal' : 'returnValue'; var lists = mRoot.getElementsByTagName('ul'); for (var i = 0; i < lists.length; i++) { li = ul = lists[i]; while (li) { if (li.nodeName.toLowerCase() == 'li') break; li = li.parentNode } if (!li) continue; parUL = li; while (parUL) { if (parUL.nodeName.toLowerCase() == 'ul') break; parUL = parUL.parentNode } a = li.getElementsByTagName('a'); if (!a) continue; a = a.item(0); var menuID; if (ul.id) menuID = ul.id; else { menuID = myName + '-id-' + FSMenu._count++; ul.setAttribute('id', menuID) } if (menus[menuID] && menus[menuID].lyr.ref == ul) continue; menus[menuID] = new FSMenuNode(menuID, false, this); var rootItem = (li.parentNode == mRoot) ? 1 : 0; var eShow = new Function('with(' + myName + '){var m=menus["' + menuID + '"],pM=menus["' + parUL.id + '"];if(!showOnClick||(showOnClick==1&&!' + rootItem + ')||((showOnClick<=2)&&((pM&&pM.child)||(m&&m.visible))))show("' + menuID + '",this)}'); var eHide = new Function('e', 'if(e.' + evtProp + '!=false)' + myName + '.hide("' + menuID + '")'); addEvent(a, 'mouseover', eShow); addEvent(a, 'mouseout', eHide); addEvent(a, 'focus', eShow); addEvent(a, 'blur', eHide); addEvent(a, 'click', new Function('e', 'var s=' + myName + '.showOnClick,m=' + myName + '.menus["' + menuID + '"];if(!((s==1&&' + rootItem + ')||s>=2))return;' + myName + '[m&&m.visible?"hide":"show"]("' + menuID + '",this);if(e.cancelable&&e.preventDefault)e.preventDefault();e.' + evtProp + '=false;return false')); if (subInd) a.insertBefore(subInd.cloneNode(true), a.firstChild) } var aNodes = mRoot.getElementsByTagName('a'); for (var i = 0; i < aNodes.length; i++) { addEvent(aNodes[i], 'focus', new Function('e', 'var node=this.parentNode;while(node){if(node.onfocus)node.onfocus(e);node=node.parentNode}')); addEvent(aNodes[i], 'blur', new Function('e', 'var node=this.parentNode;while(node){if(node.onblur)node.onblur(e);node=node.parentNode}')) } if (hideOnClick) addEvent(mRoot, 'click', new Function('e', 'if(e.' + evtProp + '!=false)' + myName + '.hideAll()')); menus[id] = new FSMenuNode(id, true, this) } }; var page = { win: self, minW: 0, minH: 0, MS: isIE && !isOp, db: document.compatMode && document.compatMode.indexOf('CSS') > -1 ? 'documentElement' : 'body' }; page.elmPos = function (e, p) { var x = 0, y = 0, w = p ? p : this.win; e = e ? (e.substr ? (isNS4 ? w.document.anchors[e] : getRef(e, w)) : e) : p; if (isNS4) { if (e && (e != p)) { x = e.x; y = e.y }; if (p) { x += p.pageX; y += p.pageY } } if (e && this.MS && navigator.platform.indexOf('Mac') > -1 && e.tagName == 'A') { e.onfocus = new Function('with(event){self.tmpX=clientX-offsetX;self.tmpY=clientY-offsetY}'); e.focus(); x = tmpX; y = tmpY; e.blur() } else while (e) { x += e.offsetLeft; y += e.offsetTop; e = e.offsetParent } return { x: x, y: y} }; if (isNS4) { var fsmMouseX, fsmMouseY, fsmOR = self.onresize, nsWinW = innerWidth, nsWinH = innerHeight; document.fsmMM = document.onmousemove; self.onresize = function () { if (fsmOR) fsmOR(); if (nsWinW != innerWidth || nsWinH != innerHeight) location.reload() }; document.captureEvents(Event.MOUSEMOVE); document.onmousemove = function (e) { fsmMouseX = e.pageX; fsmMouseY = e.pageY; return document.fsmMM ? document.fsmMM(e) : document.routeEvent(e) }; function isMouseIn(sty) { with (sty) return ((fsmMouseX > left) && (fsmMouseX < left + clip.width) && (fsmMouseY > top) && (fsmMouseY < top + clip.height)) } }


// For each menu you create, you must create a matching "FSMenu" JavaScript object to represent
// it and manage its behaviour. You don't have to edit this script at all if you don't want to;
// these comments are just here for completeness. Also, feel free to paste this script into the
// external .JS file to make including it in your pages easier!

// Here's a menu object to control the above list of menu data:
var listMenu = new FSMenu('listMenu', true, 'display', 'block', 'none');

// The parameters of the FSMenu object are:
//  1) Its own name in quotes.
//  2) Whether this is a nested list menu or not (in this case, true means yes).
//  3) The CSS property name to change when menus are shown and hidden.
//  4) The visible value of that CSS property.
//  5) The hidden value of that CSS property.
//
// Next, here's some optional settings for delays and highlighting:
//  * showDelay is the time (in milliseconds) to display a new child menu.
//    Remember that 1000 milliseconds = 1 second.
//  * switchDelay is the time to switch from one child menu to another child menu.
//    Set this higher and point at 2 neighbouring items to see what it does.
//  * hideDelay is the time it takes for a menu to hide after mouseout.
//    Set this to a negative number to disable hiding entirely.
//  * cssLitClass is the CSS classname applied to parent items of active menus.
//  * showOnClick will, suprisingly, set the menus to show on click. Pick one of 4 values:
//     0 = All levels show on mouseover.
//     1 = Menu activates on click of first level, then shows on mouseover.
//     2 = All levels activate on click, then shows on mouseover.
//     3 = All levels show on click only (no mouseover at all).
//  * hideOnClick hides all visible menus when one is clicked (defaults to true).
//  * animInSpeed and animOutSpeed set the animation speed. Set to a number
//    between 0 and 1 where higher = faster. Setting both to 1 disables animation.

//listMenu.showDelay = 0;
//listMenu.switchDelay = 125;
//listMenu.hideDelay = 500;
//listMenu.cssLitClass = 'highlighted';
//listMenu.showOnClick = 0;
//listMenu.hideOnClick = true;
//listMenu.animInSpeed = 0.2;
//listMenu.animOutSpeed = 0.2;


// Now the fun part... animation! This script supports animation plugins you
// can add to each menu object you create. I have provided 3 to get you started.
// To enable animation, add one or more functions to the menuObject.animations
// array; available animations are:
//  * FSMenu.animSwipeDown is a "swipe" animation that sweeps the menu down.
//  * FSMenu.animFade is an alpha fading animation using tranparency.
//  * FSMenu.animClipDown is a "blind" animation similar to 'Swipe'.
// They are listed inside the "fsmenu.js" file for you to modify and extend :).

// I'm applying two at once to listMenu. Delete this to disable!
listMenu.animations[listMenu.animations.length] = FSMenu.animFade;
//listMenu.animations[listMenu.animations.length] = FSMenu.animSwipeDown;
//listMenu.animations[listMenu.animations.length] = FSMenu.animClipDown;


// Finally, on page load you have to activate the menu by calling its 'activateMenu()' method.
// I've provided an "addEvent" method that lets you easily run page events across browsers.
// You pass the activateMenu() function two parameters:
//  (1) The ID of the outermost <ul> list tag containing your menu data.
//  (2) A node containing your submenu popout arrow indicator.
// If none of that made sense, just cut and paste this next bit for each menu you create.

var arrow = null;
if (document.createElement && document.documentElement) {
    //arrow = document.createElement('span');
    //arrow.appendChild(document.createTextNode('>'));
    // Feel free to replace the above two lines with these for a small arrow image...
    arrow = document.createElement('img');
    arrow.src = '/images/arrowSmall.gif';
    arrow.style.borderWidth = '0';
    arrow.className = 'subind';
}
addReadyEvent(new Function('listMenu.activateMenu("listMenuRoot", arrow)'));
addReadyEvent(new Function('listMenu.activateMenu("listMenuRoot1", arrow)'));
addReadyEvent(new Function('listMenu.activateMenu("listMenuRoot2", arrow)'));

// Helps with swapping background images on mouseover in IE. Not needed otherwise.
//if (document.execCommand) document.execCommand("BackgroundImageCache", false, true);

// You may wish to leave your menu as a visible list initially, then apply its style
// dynamically on activation for better accessibility. Screenreaders and older browsers will
// then see all your menu data, but there will be a 'flicker' of the raw list before the
// page has completely loaded. If you want to do this, remove the CLASS="..." attribute from
// the above outermost UL tag, and uncomment this line:
//addReadyEvent(new Function('getRef("listMenuRoot").className="menulist"'));


// TO CREATE MULTIPLE MENUS:
// 1) Duplicate the <ul> menu data and this <script> element.
// 2) In the <ul> change id="listMenuRoot" to id="otherMenuRoot".
// 3) In the <script> change each instance of "listMenu" to "otherMenu"
// 4) In the addReadyEvent line above ensure "otherMenuRoot" is activated.
// Repeat as necessary with a unique name for each menu you want.
// You can also give each a unique CLASS and apply multiple stylesheets
// for different menu appearances/layouts, consult a CSS reference on this.
