var Popup=Object.extend(Object.extend(Enumerable),{open:function(b){var a=Object.extend({name:"popup",focus:false,fail_same_window:false,fail_element:"popup_fail"},arguments[1]||{});var c=$H(Object.extend({width:640,height:480,toolbar:0,scrollbars:1,location:0,statusbar:0,menubar:0,resizable:1},arguments[2]||{}));Popup[b]=window.open(b,a.name,c.map(function(e,f){return e[0]+"="+e[1]}).join(", "));if(!Popup[b]){var d=$(a.fail_element);if(a.fail_same_window){window.location=b}else{if(d){d.show()}else{alert("It seems that your browser prevents this popup from opening. Please enable popups and try again.")}}return false}if(a.focus){Popup[b].focus()}return Popup[b]},close:function(a){if(a in this){this[a].close();delete this[a]}}});Object.extend(Architecture,{extractAnchor:function(){return window.location.hash.substr(1)},placeAnchor:function(a){window.location.hash=a.replace(/^#/,"")},scroll:function(b){var c=$(b)||$("body").down("a[name="+b+"]");if(c){var a=(c.id==b)?"id":"name";c[a]="";Architecture.placeAnchor(b);c[a]=b;Effect.ScrollTo(c,{offset:Number($(document.body).getStyle("marginTop").replace("px",""))*-1})}return c},scrollTo:function(b){var a=$(b);if(a&&a.hasClassName("more")){a["blind"+(a.visible()?"Up":"Down")]()}else{if(b){Architecture.scroll(b)}}return false},samePage:function(a){a=a.replace(/#.+$/,"");return !a||window.location.href.replace(/#.+$/,"")===a}});Architecture.Menu={headerHeight:0,isOpen:false,effect:null,scaleTo:20,timeout:null,defaultHeight:"35px",alwaysOpen:function(){return $("header").hasClassName("static")},init:function(){var a=Architecture.Menu.alwaysOpen();Architecture.Menu.headerHeight=$("header").getHeight();if(a){Architecture.Menu.toggle(true,{beforeSetup:function(b){b.effects[1].element.setStyle("height: 0px").show()}})}else{$("header").setStyle("height: "+Architecture.Menu.defaultHeight).show()}},toggle:function(a,b){if(a==Architecture.Menu.isOpen||(Architecture.Menu.alwaysOpen()&&Architecture.Menu.isOpen)){return}var d=a?Architecture.Menu.scaleTo:100;if(Architecture.Menu.effect&&Architecture.Menu.effect.state==="running"){Architecture.Menu.effect.cancel();d=Math.round(($("header").getHeight()/Architecture.Menu.headerHeight)*100)}var e=$("main_menu");var c=$("header");Architecture.Menu.effect=new Effect.Parallel([new Effect[a?"Appear":"Fade"]("tudelft",{sync:true}),new Effect.Scale("header",a?100:Architecture.Menu.scaleTo,{scaleX:false,scaleContent:false,scaleMode:{originalHeight:Architecture.Menu.headerHeight},sync:true,scaleFrom:d})],b||{});Architecture.Menu.isOpen=a},bubbledFromChild:function(a,b){var c=b.element();if(c===a){c=b.relatedTarget}return(c&&c.descendantOf(a))},clearTimeout:function(){Architecture.Menu.timeout&&clearTimeout(Architecture.Menu.timeout)}};Event.addBehavior({"#header:mouseover":function(a){if(Architecture.Menu.isOpen){return}Architecture.Menu.timeout=setTimeout(function(){Architecture.Menu.toggle(true)},250)},"#header:mouseout":function(a){Architecture.Menu.clearTimeout();if(!Architecture.Menu.bubbledFromChild(this,a)){Architecture.Menu.toggle(false)}},"#body:mouseover":function(a){Architecture.Menu.clearTimeout();if(Architecture.Menu.isOpen){Architecture.Menu.toggle(false)}},"#main_menu a:click, #search form:submit":function(){Architecture.Menu.toggle(false)},"a[rel=popup]:click":function(){var a=document.viewport.getDimensions();Popup.open(this.href,{fail_same_window:true},{width:a.width,height:a.height,toolbar:1,scrollbars:1,location:1,statusbar:1,menubar:1});return false},"a:click":function(b){if(this.hasClassName("ignore_hash")){return true}var a=this.hash.substr(1);if(a&&Architecture.samePage(this.href)){Architecture.scrollTo(a);return false}}});$(document).observe("dom:loaded",function(a){if(!Architecture.Menu.alwaysOpen()){Architecture.Menu.init()}if("onDomLoad" in Architecture){Architecture.onDomLoad(a)}});Event.observe(window,"load",function(){Architecture.scrollTo(Architecture.extractAnchor())});