var ActionChain={add:function(actions){this.actions=$merge(this.actions,actions);},apply:function(element){element=$(element);for(var index in this.actions){var action=this.actions[index];index=index.split(':');var selector=index[0];var method=index.length>1?index[1]:'domready';element.getElements(selector).addEvent(method,action);}}};window.addEvent('domready',function(){ActionChain.apply(document);});﻿
var QuickBox=new Class({Implements:Options,options:{resizeDuration:600,resizeTransition:Fx.Transitions.Circ.easeOut,initialWidth:831,initialHeight:626,padding:10,animateCaption:false,counter:"Picture {NUM} of {TOTAL}"},initialize:function(anchors,options){this.setOptions(options);this.anchors=anchors;this.anchors.each(function(a){if(!a.retrieve('quickbox')){a.store('quickbox',this);a.store("caption",a.get("title")||a.getElement("img").get("alt"));a.addEvent("click",this.open.bindWithEvent(this,a));}},this);this.overlay=new Element("div",{id:"qbOverlay",events:{click:this.close.bindWithEvent(this)}}).inject(document.body,"top");this.quickBox=new Element("div",{id:"qbBox",styles:{width:this.options.initialWidth,height:this.options.initialHeight,marginLeft:-(this.options.initialWidth/2),position:"fixed"}}).inject(document.body,"top");this.stage=new Element("div",{id:"qbStage"}).inject(this.quickBox);this.stage.addEvent("click",this.changeImage.bindWithEvent(this,1));this.bottom=new Element("div",{id:"qbBottom"}).inject(this.quickBox);this.bullets=[];var createBullet=function(index){var bullet=new Element('div',{'class':'qbBullet'}).addEvent('click',this.changeImage.bindWithEvent(this,[null,index]));this.bullets.push(bullet);return bullet;}.bind(this);this.anchors.each(function(a,index){this.bottom.grab(createBullet(index));},this);var nextEffect=this.nextEffect.bind(this);this.fx={overlay:new Fx.Tween(this.overlay,{property:"opacity",duration:200}),show:new Fx.Tween(this.stage,{property:"opacity",onComplete:nextEffect,duration:200})};this.active=false;document.addEvent("keydown",this.keyboardListener.bindWithEvent(this));},open:function(event,link){this.active=true;var size=window.getSize();var scroll=window.getScroll();var scrollSize=window.getScrollSize();var offset=Math.round((size.y<768)?size.y/36:size.y/10);this.overlay.setStyles({opacity:0,display:"block",width:scrollSize.x,height:scrollSize.y});this.quickBox.setStyles({display:"block",bottom:'25px'});this.fx.overlay.start(0.8);this.startLoad(link);$$(this.bullets).removeClass('qbActive');this.bullets[this.anchors.indexOf(link)].addClass('qbActive');return false;},startLoad:function(link,preload){if(!link)return;var image=new Asset.image(link.get("href"),{onload:function(){if(!preload&&this.currentLink==link)this.nextEffect();}.bind(this)});if(!preload){this.stage.addClass("loading");this.stage.setStyle("display","block");this.stage.empty();this.currentLink=link;this.currentImage=image;this.currentIndex=this.anchors.indexOf(link);this.step=1;}},keyboardListener:function(event){if(!this.active)return;if(event.key!="f5")event.preventDefault();switch(event.key){case"esc":case"x":case"q":this.close();break;case"b":case"p":case"left":this.changeImage(event,-1);break;case"f":case"n":case"right":this.changeImage(event,1);}},changeImage:function(event,step,index){event.preventDefault();index=$defined(index)?index:(this.currentIndex+step);var link=this.anchors[index];if(!link){index=0;link=this.anchors[index];}
for(var f in this.fx)this.fx[f].cancel();$$(this.bullets).removeClass('qbActive');this.bullets[index].addClass('qbActive');this.startLoad(link);},nextEffect:function(){switch(this.step++){case 1:this.stage.removeClass("loading");this.stage.setStyle("opacity",0);this.currentImage.setStyle("margin",this.options.padding);this.currentImage.inject(this.stage);this.fx.show.start(1);break;case 2:if(this.options.animateCaption){if(this.options.counter){var total=this.anchors.length;var num=this.currentIndex+1;var counterText=this.options.counter;counterText=counterText.replace(/\{NUM\}/,num);counterText=counterText.replace(/\{TOTAL\}/,total);this.counter.set("text",counterText);}
this.bottom.setStyles({opacity:1,top:'20px'});}
break;case 3:this.startLoad(this.anchors[this.currentIndex-1],true);this.startLoad(this.anchors[this.currentIndex+1],true);break;}},close:function(){this.quickBox.setStyle("display","none");this.overlay.set('fade',{duration:200});this.overlay.fade("out");this.active=false;}});var Timeline=new Class({labels:['listening','creating','supporting'],currentIndex:-1,Binds:['firstStep','secondStep','thirdStep'],Implements:[Events],initialize:function(container){this.container=document.id(container);this.injectBullet();this.initHeading();this.initSteps();this.initToggle();},injectBullet:function(){var bulletElement=function(side){return new Element('div',{'class':side});};this.bullet=new Element('div',{'class':'bullet',styles:{visibility:'hidden'}}).inject(this.container);this.bulletBody=bulletElement('middle');this.bullet.adopt(bulletElement('left'),this.bulletBody,bulletElement('right'));this.bulletBody.set('tween',{duration:'short'});},initHeading:function(){this.heading=document.id('expertise_heading');this.heading.store('initial_text',this.heading.get('text'));},initSteps:function(){this.labels.each(function(label,index){(this[label]=this.container.getElement('.'+label)).addEvent('click',this[this.Binds[index]]);},this);this.mainPage=document.id('main_section');this.subPages=$$('.sub_section').slide('hide');this.scroll=new Fx.Scroll(window);this.nextStep=document.id('read_more').addEvent('click',function(){this[this.Binds[this.currentIndex+1]]();this.scroll.toElement($$('.banner_wall')[0]);return false;}.bind(this));},initToggle:function(){this.toggle=document.id('timeline_toggle');this.toggle.store('initial_image',this.toggle.getStyle('background-image'));this.toggle.addEvent('click',function(){if(this.currentIndex==-1){this.activate();this.firstStep();}
else{this.toggle.setStyle('background-image',this.toggle.retrieve('initial_image'));this.bulletBody.set('tween',{duration:'short',onComplete:function(){this.bullet.setStyle('visibility','hidden');this.bulletBody.set('tween',{onComplete:$empty,duration:'short'});}.bind(this)});this.bulletBody.tween('width',0);this.labels.each(function(label){this[label].removeClass('active');},this);this.subPages.slide('hide');this.mainPage.slide('in');this.heading.set('text',this.heading.retrieve('initial_text'));this.currentIndex=-1;}
return false;}.bind(this));},activate:function(){this.toggle.setStyle('background-image',this.toggle.get('data-toggle_image'));this.bullet.setStyle('visibility','visible');},firstStep:function(){this.currentIndex=0;this.setActiveLabel(this.listening);this.setBullet(60);},secondStep:function(){this.currentIndex=1;this.setActiveLabel(this.creating);this.setBullet(313);},thirdStep:function(){this.currentIndex=2;this.setActiveLabel(this.supporting);this.setBullet(582);},setBullet:function(width){this.bulletBody.tween('width',width);},setActiveLabel:function(activeLabel){this.activate();this.labels.each(function(label){label=this[label];label[(label==activeLabel?'add':'remove')+'Class']('active');},this);this.setActiveSubPage();},setActiveSubPage:function(){$$(this.subPages,this.mainPage).slide('hide');var activeSubPage=this.subPages[this.currentIndex];activeSubPage.slide('in');this.heading.set('text',activeSubPage.get('data-title'));this.nextStep.setStyle('display',(this.currentIndex==2?'none':'block'))}});ActionChain.add({'#navi':function(){var current='menu_'+this.get('data-current');var links=this.getElements('a');links.each(function(link,index){if(link.hasClass(current)){link.addClass('current');}});},'#tweets':function(){this.load('/tweets');},'#to_top':function(){this.set('opacity','0').setStyle('display','block');window.addEvent('scroll',function(e){if(Browser.Engine.trident4){this.setStyles({'position':'absolute','bottom':window.getPosition().y+10,'width':100});}
this.fade((window.getScroll().y>200)?'in':'out')}.bind(this));},'.app_thumb':function(){this.set('mask',{onShow:function(element){element.set('tween',{duration:'short'});element.setStyles({display:'block',visibility:'hidden'});element.tween('opacity',0,0.5);}.bind(this),onHide:function(element){element.tween('opacity',0.5,0);}});this.mask.delay(500,this);this.get('mask').element.addEvent('mouseover',function(e){this.unmask();}.bind(this));this.addEvent('mouseout',function(){this.mask();});},'.quickbox':function(){new QuickBox(this.getElements('a'));},'#phone_kevin:click':function(){return false;},'#phone_kevin:mouseenter':function(){this.set({text:'+46 707 366639','class':'text'});},'#phone_kevin:mouseleave':function(){this.set({text:'Phone','class':''});}});