MooTools.More={version:"1.3.0.1",build:"6dce99bed2792dffcbbbb4ddc15a1fb9a41994b5"};Fx.Elements=new Class({Extends:Fx.CSS,initialize:function(b,a){this.elements=this.subject=$$(b);this.parent(a)},compute:function(g,h,j){var c={};for(var d in g){var a=g[d],e=h[d],f=c[d]={};for(var b in a){f[b]=this.parent(a[b],e[b],j)}}return c},set:function(b){for(var c in b){if(!this.elements[c]){continue}var a=b[c];for(var d in a){this.render(this.elements[c],d,a[d],this.options.unit)}}return this},start:function(c){if(!this.check(c)){return this}var h={},j={};for(var d in c){if(!this.elements[d]){continue}var f=c[d],a=h[d]={},g=j[d]={};for(var b in f){var e=this.prepare(this.elements[d],b,f[b]);a[b]=e.from;g[b]=e.to}}return this.parent(h,j)}});Fx.Accordion=new Class({Extends:Fx.Elements,options:{fixedHeight:false,fixedWidth:false,display:0,show:false,height:true,width:false,opacity:true,alwaysHide:false,trigger:"click",initialDisplayFx:true,returnHeightToAuto:true},initialize:function(){var d=function(e){return e!=null};var c=Array.link(arguments,{container:Type.isElement,options:Type.isObject,togglers:d,elements:d});this.parent(c.elements,c.options);this.togglers=$$(c.togglers);this.previous=-1;this.internalChain=new Chain();if(this.options.alwaysHide){this.options.wait=true}if(this.options.show||this.options.show===0){this.options.display=false;this.previous=this.options.show}if(this.options.start){this.options.display=false;this.options.show=false}this.effects={};if(this.options.opacity){this.effects.opacity="fullOpacity"}if(this.options.width){this.effects.width=this.options.fixedWidth?"fullWidth":"offsetWidth"}if(this.options.height){this.effects.height=this.options.fixedHeight?"fullHeight":"scrollHeight"}for(var b=0,a=this.togglers.length;b<a;b++){this.addSection(this.togglers[b],this.elements[b])}this.elements.each(function(f,e){if(this.options.show===e){this.fireEvent("active",[this.togglers[e],f])}else{for(var g in this.effects){f.setStyle(g,0)}}},this);if(this.options.display||this.options.display===0||this.options.initialDisplayFx===false){this.display(this.options.display,this.options.initialDisplayFx)}if(this.options.fixedHeight!==false){this.options.returnHeightToAuto=false}this.addEvent("complete",this.internalChain.callChain.bind(this.internalChain))},addSection:function(f,d,c){f=document.id(f);d=document.id(d);this.togglers.include(f);this.elements.include(d);var g=this.togglers.contains(f);var a=this.togglers.indexOf(f);if(!c){var b=this.display.pass(a,this);f.store("accordion:display",b).addEvent(this.options.trigger,b)}if(d){if(this.options.height){d.setStyles({"padding-top":0,"border-top":"none","padding-bottom":0,"border-bottom":"none"})}if(this.options.width){d.setStyles({"padding-left":0,"border-left":"none","padding-right":0,"border-right":"none"})}d.fullOpacity=1;if(this.options.fixedWidth){d.fullWidth=this.options.fixedWidth}if(this.options.fixedHeight){d.fullHeight=this.options.fixedHeight}d.setStyle("overflow","hidden");if(!g){for(var e in this.effects){d.setStyle(e,0)}}}return this},removeSection:function(e,b){var a=this.togglers.indexOf(e);var c=this.elements[a];var d=function(){this.togglers.erase(e);this.elements.erase(c);this.detach(e)}.bind(this);if(this.now==a||b!=null){this.display(b!=null?b:(a-1>=0?a-1:0)).chain(d)}else{d()}return this},detach:function(b){var a=function(c){c.removeEvent(this.options.trigger,c.retrieve("accordion:display"))}.bind(this);if(!b){this.togglers.each(a)}else{a(b)}return this},forceDisplay:function(a){if(!this.togglers[a].hasClass("active")){this.display(a)}},forceHide:function(b){var a=this.previous;if(a>-1&&this.togglers[a].hasClass("active")){this.display(a,null,b)}},display:function(a,c,h){if(!this.check(a,c)){return this}c=c!=null?c:true;a=(typeOf(a)=="element")?this.elements.indexOf(a):a;if(a==this.previous&&!this.options.alwaysHide){return this}if(this.options.returnHeightToAuto){var e=this.elements[this.previous];if(e&&!this.selfHidden){for(var d in this.effects){e.setStyle(d,e[this.effects[d]])}}}if((this.timer&&this.options.wait)||(a===this.previous&&!this.options.alwaysHide)){return this}this.previous=a;var g=this.togglers[a];var b=this.options.alwaysHide&&g.hasClass("active");if(b&&!h){this.fireEvent("inactive",g)}var f={};this.togglers.each(function(o,l){f[l]={};var k,m=this.elements[l];if(l!=a){k=true}else{if(this.options.alwaysHide&&o.hasClass("active")){k=true;this.selfHidden=true}}this.fireEvent(k?"background":"active",[o,m,b]);if(this.parentAccordion){var j=this.parentAccordion.togglers[this.parentAccordion.previous];if(!k){j.addClass("stressed")}else{if(b){j.removeClass("stressed")}}}if(m){for(var n in this.effects){f[l][n]=k?0:m[this.effects[n]]}}},this);this.internalChain.clearChain();this.internalChain.chain(function(){if(this.options.returnHeightToAuto&&!this.selfHidden){var i=this.elements[a];if(i){i.setStyle("height","auto")}}}.bind(this));return c?this.start(f):this.set(f)}});(function(a){Array.implement({shuffle:function(){for(var c=this.length;c&&--c;){var b=this[c],d=Math.floor(Math.random()*(c+1));this[c]=this[d];this[d]=b}return this}})}).call(this);function relatedLinks(a){var b;if(a){b=new Element("div",{"class":"related",html:"See also:"});b.adopt(a.map(function(c){return new Element("a",{html:c.title,href:"#!"+c.id,styles:{"background-image":"url(images/16x16/"+c.type+".png)"},events:{click:function(d){appController.onClick(d);appController.processId(c.id)}}})},this))}return b}function likeButton(a){$$('meta[property="og:title"]').set("content",a.title);$$('meta[property="og:url"]').set("content",location.href);$$('meta[property="og:image"]').set("content",a.imageUrl||"images/logo.png");return new Element("iframe",{src:"http://www.facebook.com/plugins/like.php?href="+encodeURIComponent(location.href)+"&layout=button_count&show_faces=false&width=80&height=21&action=like","class":"like",scrolling:"no",frameborder:0,allowTransparency:"true"})}var Template=new Class({Implements:[Options],options:{className:"template"},initialize:function(b,a){this.element=document.id(b);this.setOptions(a);this.element.addClass(this.options.className);this.render()},render:function(){}});var DesignTemplate=new Class({Extends:Template,options:{className:"design-template"},render:function(){var e=new Element("div");var b=new Element("img",{src:this.options.imageUrl});e.adopt(b);var i=relatedLinks(this.options.related);var d=new Element("h2");var g=new Element("span",{html:this.options.title});d.adopt(g,likeButton(this.options));var j=new Element("div",{"class":"description",html:this.options.description});this.element.adopt(e,i,d,j);if(this.options.screenshots){this.element.adopt(this.options.screenshots.map(function(l){var m=new Element("img",{src:l});return new Element("div").adopt(m)},this))}if(this.options.download){var a=new Element("div",{"class":"download"});var f=new Element("a",{href:this.options.download.url,target:"_blank"});var k=new Element("div");var h=new Element("img",{src:this.options.download.icon});k.adopt(h);var c=new Element("div",{"class":"title",html:this.options.download.title||"Download "+this.options.title});f.adopt(k,c);a.adopt(f);this.element.adopt(a)}}});var StoreTemplate=new Class({Extends:Template,options:{className:"store-template"},render:function(){this.element.addClass("two-column-panel");var a=new Element("div",{"class":"left-column"});var b=new Element("img",{src:this.options.imageUrl});a.adopt(b);var g=new Element("div",{"class":"right-column"});var d=new Element("h2");var h=new Element("span",{html:this.options.title});var e=new Element("span",{"class":"price",html:this.options.price});d.adopt(h,e);var j=new Element("div",{"class":"description"});var f=new Element("div",{html:this.options.description});var c=new Element("a",{"class":"button",html:this.options.buttonLabel,href:this.options.buttonUrl,target:"_blank"});j.adopt(f,c);var i=relatedLinks(this.options.related);g.adopt(d,j,i);this.element.adopt(a,g)}});var MusicTemplate=new Class({Extends:Template,options:{className:"music-template"},render:function(){var g=new Element("h2");var f=new Element("div");var j=new Element("span",{html:this.options.title});f.adopt(j,likeButton(this.options));var k=new Element("div",{"class":"subtitle",html:this.options.subtitle});g.adopt(f,k);var n=new Element("object",{height:"81",width:"100%"});var l="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F"+this.options.soundcloudId;var d=new Element("param",{name:"movie",value:l});var c=new Element("param",{name:"allowsriptaccess",value:"always"});var i=new Element("embed",{allowsriptaccess:"always",height:"81",src:l,type:"application/x-shockwave-flash",width:"100%"});n.adopt(d,c,i);var h=new Element("div");var e=new Element("img",{src:this.options.imageUrl});h.adopt(e);var m=new Element("p");var a=new Element("a",{href:this.options.downloadUrl,target:"_blank","class":"button",html:"Download Mix"});var b=new Element("span",{"class":"follow",html:'<span>Follow</span> <a href="http://www.twitter.com/pompandclout" target="_blank">@pompandclout</a> <span>for new mixes</span>'});m.adopt(a,b);var o=new Element("p",{"class":"description",html:this.options.description});this.element.adopt(g,n,e,m,o)}});var VideoTemplate=new Class({Extends:Template,options:{className:"video-template",width:800,height:450},render:function(){var b=new Element("iframe",{src:"http://player.vimeo.com/video/"+this.options.vimeoId+"?color=ffffff",frameborder:0,width:this.options.width,height:this.options.height});var d=relatedLinks(this.options.related);var a=new Element("h2");var e=new Element("span",{html:this.options.title});a.adopt(e,likeButton(this.options));var c=new Element("div",{"class":"description",html:this.options.description});this.element.setStyle("width",parseInt(this.options.width,10)).adopt(b,d,a,c)}});var Cell=new Class({Implements:[Events,Options],options:{thumbnail:null,title:null},initialize:function(b,a){this.element=document.id(b);this.setOptions(a);this.element.addEvent("click",this.onSelected.bind(this));if(this.options.thumbnail){this.image=new Element("img",{events:{load:this.onLoaded.bind(this)}});this.image.set("src","images/previews/"+this.options.thumbnail)}},onLoaded:function(a){this.element.adopt(this.image)},onSelected:function(a){if(!(window.history&&history.pushState)){location.hash="#!"+this.options.id}this.fireEvent("selected",this.options)}});var Canvas=new Class({Implements:[Events,Options],options:{numColumns:3,spacing:22,maxRotation:4},initialize:function(b,a){this.element=document.id(b);this.setOptions(a);this.contentContainer=new Element("div",{id:"content-container",styles:{display:"none"}});this.cellContainer=new Element("div",{id:"cell-container"});this.element.adopt(this.contentContainer,this.cellContainer)},reset:function(){this.contentContainer.setStyle("display","none");this.cellContainer.empty();this.contentContainer.empty()},onSelected:function(a){this.fireEvent("selected",a.id)},addToMenu:function(c){var b=new Element("div",{"class":"cell",title:c.title});var a=new Cell(b,c);a.addEvents({selected:this.onSelected.bind(this)});this.cellContainer.adopt(b)},showMenu:function(){this.cellContainer.setStyle("display","block")},showItem:function(a){if(a.html){new Request.HTML({url:"data/"+a.html,onSuccess:this.loadHTML.bind(this)}).send()}else{if(a.json){new Request.JSON({url:"data/"+a.json,onSuccess:this.loadJSON.bind(this),secure:false}).send()}}},loadHTML:function(c,a,d,b){this.contentContainer.set("html",d);this.cellContainer.setStyle("display","none");this.contentContainer.setStyle("display","block")},loadJSON:function(b){var a=new Element("div");switch(b.template){case"video":new VideoTemplate(a,b);break;case"design":new DesignTemplate(a,b);break;case"store":new StoreTemplate(a,b);break;case"music":new MusicTemplate(a,b);break;default:console.error("Unknown template: "+b.template)}this.contentContainer.empty().adopt(a);this.cellContainer.setStyle("display","none");this.contentContainer.setStyle("display","block")}});var BackgroundEngine=new Class({Implements:[Options],options:{fadeDuration:500,visibleDuration:5000,shuffle:false},initialize:function(b,a){this.element=document.id(b);this.setOptions(a);this.timer=null;window.addEvent("resize",this.onResize.bind(this))},reset:function(){clearTimeout(this.timer);if(this.count>0){this.backgrounds.each(function(a){a.dispose()});this.backgrounds.empty()}this.currentIndex=null;this.loaded=0;this.count=0},setBackgrounds:function(a){this.reset();if(!a){return}if(this.options.shuffle){a.shuffle()}this.count=a.length;this.backgrounds=a.map(function(b){var c=new Element("img",{styles:{opacity:0},events:{load:this.onLoaded.bind(this)},tween:{duration:this.options.fadeDuration}});c.set("src","images/"+b);return c},this);this.element.adopt(this.backgrounds)},onLoaded:function(){this.loaded++;if(this.loaded==this.count){this.showNext()}},onResize:function(){if(this.currentIndex==null){return}var b=this.backgrounds[this.currentIndex],a=window.getSize(),e={x:b.width,y:b.height},d=e.x/e.y,c={};if(a.x/a.y<d){c.width=a.y*d;c.height=a.y;c.left=(a.x-c.width)/2;c.top=0}else{c.width=a.x;c.height=a.x/d;c.left=0;c.top=(a.y-c.height)/2}b.setStyles(c)},showNext:function(){if(this.currentIndex==null){this.currentIndex=0}else{this.backgrounds[this.currentIndex].fade("out");this.currentIndex=++this.currentIndex%this.count}this.onResize();this.backgrounds[this.currentIndex].fade("in");if(this.count>1){this.timer=this.showNext.delay(this.options.visibleDuration,this)}}});function idify(a){return a.toLowerCase().replace(/[^a-z0-9 ]+/g,"").replace(/\s+/g,"-")}var AppController=new Class({Implements:[Events],initialize:function(){this.header=$("header");this.subheader=$("subheader");this.menu=$("menu");this.backgroundEngine=new BackgroundEngine("background");this.canvasView=new Canvas("canvas",{maxRotation:0,onSelected:this.processId.bind(this)});new Request.JSON({url:"data/nav.json",onSuccess:this.loadData.bind(this),secure:false}).send();window.onpopstate=this.onPopstate.bind(this)},loadData:function(b){this.data=b;this.dns={};var a=this.createAccordion();b.accordion=a;b.items.each(function(h,g){this.menu.adopt(this.createLink(h,a,[g]))},this);this.title=b.title;var e=location.pathname,d=e.split("/"),f=d[d.length-1],c=location.hash.slice(2);this.processId(c||f)},createLink:function(c,d,i){var a=c.id=idify(c.title);this.dns[a]=i;var h=new Element("li");var g={id:a,href:c.url||"#!"+a,html:c.title};if(c.icon){g.styles={"background-image":"url(images/16x16/"+c.icon+")"}}if(c.items){g["class"]="pc-toggler"}if(c.url){g.target="_blank"}else{g.events={click:this.onClick.bind(this)}}if(c.styles){h.setStyles(c.styles)}var e=new Element("a",g);h.adopt(e);var f;if(c.items){f=new Element("ul",{styles:{height:0}});h.adopt(f);var b=this.createAccordion();b.parentAccordion=d;c.accordion=b;c.items.each(function(l,j){var k=i.slice();k.push(j);f.adopt(this.createLink(l,b,k))},this)}d.addSection(e,f,!!c.url);return h},createAccordion:function(){return new Fx.Accordion(null,null,{duration:"short",opacity:false,display:null,alwaysHide:true,onComplete:function(){var a=$(this.elements[this.previous]);if(a&&a.offsetHeight>0){a.setStyle("height",window.ie6?"100%":"")}},onActive:this.onActive.bind(this),onInactive:this.onInactive.bind(this),onBackground:this.onBackground.bind(this)})},populateContentMenu:function(c){if(c.items){var a=c.items;for(var b=0;b<a.length;b++){this.populateContentMenu(a[b])}}else{if(c.thumbnail){this.canvasView.addToMenu(c)}}},onClick:function(a){if(window.history&&history.pushState){a.stop();return false}},onPopstate:function(a){this.processId(a.state)},onActive:function(b,a){b.removeClass("inactive").addClass("active");if(b.id=="company"){this.header.tween("opacity",0.9);this.subheader.setStyle("display","block")}else{this.header.tween("opacity",0.35);this.header.addClass("inactive")}this.renderDataPath(this.dns[b.id])},onInactive:function(a){this.renderDataPath(this.dns[a.id].slice(0,-1))},onBackground:function(e,c,b){if(e.id=="company"){this.subheader.setStyle("display","none")}if(e.hasClass("active")){var d=this.data,f=this.dns[e.id];for(var a=0;a<f.length;a++){d=d.items[f[a]]}if(d.accordion){d.accordion.forceHide(true)}}if(b){e.removeClass("active").removeClass("inactive")}else{e.removeClass("active").addClass("inactive")}},processId:function(f){var d=this.data;if(!f||f=="main"||f.match(/index.html$/)){this.backgroundEngine.setBackgrounds(d.background);d.accordion.forceHide();return}var e=this.dns[f];if(!e){console.log("Unknown id: "+f);return}this.disableRenderDataPath=true;for(var c=0;c<e.length;c++){var a=d.accordion,b=e[c];if(c==e.length-1){this.disableRenderDataPath=false}a.forceDisplay(b);d=d.items[b]}this.disableRenderDataPath=false;if(d.accordion){d.accordion.forceHide()}},renderDataPath:function(c){if(this.disableRenderDataPath){return}this.canvasView.reset();var b=this.data;if(c.length==0){this.header.tween("opacity",0.9);this.pushState(null,"Home","main")}else{for(var a=0;a<c.length;a++){b=b.items[c[a]]}this.pushState(b.id,b.title,b.id);if(b.items){this.canvasView.showMenu();this.populateContentMenu(b)}else{this.canvasView.showItem(b)}}this.backgroundEngine.setBackgrounds(b.background)},pushState:function(b,c,a){if(window._gaq){_gaq.push(["_trackPageview",c])}if(window.history&&history.pushState){history.pushState(b,c,a)}document.title=b==null?this.title:this.title+" - "+c}});window.addEvent("domready",function(){window.appController=new AppController()});
