var Page=new (new Class({Implements:Events,EVENTS:{URLCHANGE:"urlchange",VIEWERSNAP:"viewersnap",FILTERSELECT:"filterselect"},initialize:function(){if(!MAXOMEDIA.debug.settings.get("javascript")){return false}window.addEvent("domready",this.setup.bind(this))},setup:function(){this.build();this.teamData=new Hash(this.teamData);this.menuData=new Hash(this.menuData);this.placeholderData=new Hash(this.placeholderData);this.initModules();Site.fireEvent("ready")},build:function(){$("body-container").addClass("box");$("body-container").getElement("h1").destroy();new Element("div",{id:"team-viewport","class":"flick-viewport"}).wraps($("team-element"));$$("#team-element > li").addClass("flick-item");$("team-element").addClass("flick-element").removeProperty("id")},initModules:function(){this.container=$("team-viewport");this.initViewer();this.initManager();this.initFilter();this.attachEvents();if(!this.manager.getPattern()){this.viewer.scrollToItem(this.viewer.items.active.getRandom())}},initViewer:function(){this.viewer=new MAXOMEDIA.Viewer(this.container,this.teamData,{itemSize:{x:520,y:460},placeholderData:this.placeholderData});this.viewer.addEvent("loaded",this.initInstructions.bind(this));this.viewer.relayEvent("snap",this.EVENTS.VIEWERSNAP,this)},initInstructions:function(){this.instructions=new Instructions();this.viewer.addEvents({scrollByCursor:this.instructions.close.bind(this.instructions),dragStart:this.instructions.close.bind(this.instructions)});this.viewer.radar.addEvent("navigate",this.instructions.close.bind(this.instructions))},initManager:function(){this.manager=new URIFragmentManager([{key:"unit",regex:"^/([-\\w]+)/$",groups:["GroupName"],validators:{GroupName:this.groupDataValidator}},{key:"worker",regex:"^/([-\\w]+)/$",groups:["Slug"]},{key:"unit-worker",regex:"^/([-\\w]+)/([-\\w]+)/$",groups:["GroupName","Slug"]}]);this.manager.relayEvent("change",this.EVENTS.URLCHANGE,this)},initFilter:function(){this.activeFilter=null;this.menuData.Nodes.splice(0,0,{Type:"Clear",Label:"Maxomedia"});this.filter=new MAXOMEDIA.Filter(this.container,this.menuData);this.filter.setLabel("Maxomedia");this.filter.relayEvent("select",this.EVENTS.FILTERSELECT,this)},attachEvents:function(){this.addEvent(this.EVENTS.URLCHANGE,function(c){var b=c[0];var a=c[1];if(a.GroupName&&a.GroupName!=this.activeFilter){if(this.groupDataValidator.contains(a.GroupName)){this.activeFilter=a.GroupName;this.viewer.filter("GroupName="+this.activeFilter);this.filter.setLabel(this.groupData[this.groupDataValidator.indexOf(a.GroupName)])}else{this.manager.clear();this.filter.setLabel("Maxomedia")}}else{if(this.activeFilter&&!a.GroupName){this.activeFilter=false;this.viewer.filter();this.filter.setLabel("Maxomedia")}}if(a.Slug&&$(a.Slug)){this.viewer.scrollToItem($(a.Slug))}else{this.viewer.scrollToItem(this.viewer.items.active.getRandom())}}.bind(this));this.addEvent(this.EVENTS.VIEWERSNAP,function(a){if(a){var c=this.manager.getPattern();var b=$pick(this.teamData.get(a.get("id")),this.placeholderData.get(a.get("id")));if(c){if(c[0]=="unit"){this.manager.setPattern("unit-worker",b)}else{this.manager.setValue("Slug",b.Slug)}}else{this.manager.setPattern("worker",b)}}}.bind(this));this.addEvent(this.EVENTS.FILTERSELECT,function(b){switch(b.Type){case"Clear":this.filter.setLabel(b.Label);this.filter.hide();this.manager.clear();this.viewer.filter();this.viewer.scrollToItem(this.viewer.items.active.getRandom());break;case"Group":this.filter.hide();this.manager.setPattern("unit",b);break;case"Worker":var a=this.manager.getPattern();if(a){if((a[0]==="unit"||a[0]==="unit-worker")&&a[1].GroupName===b.GroupName.toLowerCase()){this.manager.setPattern("unit-worker",b)}else{this.filter.setLabel("Maxomedia");this.manager.setPattern("worker",b)}}else{this.manager.setPattern("worker",b)}break}}.bind(this))}}));
