
var MonkiGmap=Class.create({initialize:function(id,options){if(!$(id))throw('Error! id does not exist!  Please contact site administrator!');this.setOptions(options);this.mainDiv=$(id);var temp=this.mainDiv.select('div.'+this.options.mapDiv);this.mapDiv=temp[0];temp=this.mainDiv.select('div.'+this.options.controlDiv);this.controlDiv=temp[0];this.returnBut=this.controlDiv.select('div.'+this.options.returnDiv);var clickHandler=this.clickHandler.bindAsEventListener(this);this.returnBut[0].observe('click',clickHandler);var overHandler=this.overHandler.bindAsEventListener(this);this.returnBut[0].observe('mouseover',overHandler);var outHandler=this.outHandler.bindAsEventListener(this);this.returnBut[0].observe('mouseout',outHandler);this.latlng=new google.maps.LatLng(this.options.latitude,this.options.longitude);var myOptions={zoom:this.options.zoom,center:this.latlng,mapTypeControl:false,mapTypeId:google.maps.MapTypeId.ROADMAP}
this.map=new google.maps.Map(this.mapDiv,myOptions);var contentString='monkiki London is here... <br/>In The Old Truman Brewery!';var infowindow=new google.maps.InfoWindow({content:contentString});var marker=new google.maps.Marker({position:this.latlng,map:this.map,title:'monkiki London'});google.maps.event.addListener(marker,'click',function(){infowindow.open(this.map,marker);});},backtoOrigin:function(){this.map.panTo(this.latlng);},overHandler:function(e){var el=e.element();el.addClassName(this.options.controlOver);},outHandler:function(e){var el=e.element();el.removeClassName(this.options.controlOver);},clickHandler:function(e){var el=e.element();this.backtoOrigin();},resize:function(){google.maps.event.trigger(this.map,'resize');this.map.setZoom(14);this.map.setZoom(15);this.map.panTo(this.latlng);},setOptions:function(options){this.options={mapDiv:"map-div",controlDiv:"control-div",returnDiv:"map-return-but",controlOver:"control-over",latitude:51.521151,longitude:-0.071866,zoom:15};Object.extend(this.options,options||{});}});


var MonkiMenu=Class.create({initialize:function(id,options){if(!$(id)){throw("the specified id cannot be found.  Please check again with Web Administrator")}this.menu=$(id);this.setOptions(options);if(this.options.hasMap){this.mapout=new MonkiGmap(this.options.hasMap)}this.linkButs=this.menu.select('div.'+this.options.titleClass);this.linkDivs=this.menu.select('div.'+this.options.contentClass);this.checkContentMaxHeight();this.stripATag(this.linkButs);this.expandDiv=null;this.expandBut=null;this.currentFilterList=null;this.currentFilterDiv=null;this.myDuration=1.1;this.myFPS=35;var linkButInit=this.linkButInit.bind(this);this.linkButs.each(linkButInit);this.filterList=this.menu.select('div.'+this.options.filterClass);this.stripATag(this.filterList);if(this.filterList){this.defaultFilterDiv=this.filterList[this.options.defaultFilter];this.filterListArray=new Array();for(var i=0;i<this.filterList.length;i++){this.filterList[i].filterOutListArray=new Array();this.filterList[i].filterInListArray=new Array()}var filterListInit=this.filterListInit.bind(this);this.linkButs.each(filterListInit);var handleChange=this.handleChange.bind(this);if(SWFAddress.getValue()!='/'){SWFAddress.setTitle(this.options.baseTitle+SWFAddress.getValue().gsub(/\/(.*?)/,'#{1} :: '))}else{SWFAddress.setTitle(this.options.baseTitle)}SWFAddress.addEventListener(SWFAddressEvent.CHANGE,handleChange)}},stripATag:function(arr){for(var i=0;i<arr.length;i++){var temp=arr[i].innerHTML.gsub(/\<a(.*?)\>(.*?)\<\/a\>/,'#{2}');arr[i].update(temp)}},filterListInit:function(s,index){for(var i=0;i<this.filterList.length;i++){var temp=this.filterList[i].innerHTML.stripTags().gsub(/(.*?)\./,'#{1}').strip();if(s.up('div').identify()!=this.options.defaultMenuID){if(temp!=this.options.defaultFilterName){if(s.readAttribute(this.options.filterAttribute)==temp){this.filterList[i].filterInListArray.push(s)}else{this.filterList[i].filterOutListArray.push(s)}}else{this.filterList[i].filterInListArray.push(s);this.filterList[i].filterOutListArray.push(s)}}}},linkButInit:function(s,index){var content=s.next('div.'+this.options.contentClass);if(content){var clickHandler=this.clickHandler.bindAsEventListener(this);s.observe('click',clickHandler);var overHandler=this.overHandler.bindAsEventListener(this);s.observe('mouseover',overHandler);var outHandler=this.outHandler.bindAsEventListener(this);s.observe('mouseout',outHandler)}content.hide();content.setStyle({height:0})},checkContentMaxHeight:function(){for(var i=0;i<this.linkDivs.length;i++){var dimensions=this.linkDivs[i].getDimensions();if(this.linkDivs[i].getHeight()>this.options.maxHeight){this.linkDivs[i].oHeight=this.linkDivs[i].getHeight()}}},updateChange:function(xhr){},handleChange:function(event){var tempOut=SWFAddress.getPath().split("/");var tempTitle='';if(tempOut[2]){tempTitle=decodeURI(tempOut[2])}else{tempTitle=decodeURI(tempOut[1])}for(var i=0;i<this.linkButs.length;i++){var templink=this.linkButs[i].innerHTML.stripTags().gsub(/(.*?)\./,'#{1}').strip();if(templink==tempTitle&&!this.isAnimating){this.expand(this.linkButs[i]);this.setMeta(this.linkButs[i]);break}}},clickHandler:function(e){var s=e.element();if(s!=this.currentBut&&!this.isAnimating&&s!=this.currentFilterDiv){this.expand(s);var tempOut='';var titleOut=this.options.baseTitle;if(s.readAttribute(this.options.filterAttribute)){tempOut=s.readAttribute(this.options.filterAttribute)+'/';titleOut+=' :: '+s.readAttribute(this.options.filterAttribute)+' :: '}else{titleOut+=' :: '}titleOut+=s.innerHTML.stripTags().gsub(/(.*?)\./,'#{1}').strip();tempOut+=s.innerHTML.stripTags().gsub(/(.*?)\./,'#{1}').strip();SWFAddress.setValue(encodeURI(tempOut));SWFAddress.setTitle(titleOut);this.setMeta(s)}},setMeta:function(s){var metaArr=$$('meta');for(var i=0;i<metaArr.length;i++){if(metaArr[i].readAttribute('name')=='keywords'){var temptag=s.next('div.content-div').select('span.tagcontent');if(temptag[0]){if(temptag[0].innerHTML){metaArr[i].writeAttribute('content',temptag[0].innerHTML)}else{metaArr[i].writeAttribute('content',this.options.defaultTag)}}else{metaArr[i].writeAttribute('content',this.options.defaultTag)}}else if(metaArr[i].readAttribute('name')=='description'){var tempAddThis=s.next('div.content-div').select('a.addthis_button_compact');if(tempAddThis[0]){var tempDesc=tempAddThis[0].readAttribute('addthis:description');if(tempDesc){metaArr[i].writeAttribute('content',tempDesc)}else{metaArr[i].writeAttribute('content',this.options.defaultDesc)}}else{metaArr[i].writeAttribute('content',this.options.defaultDesc)}}}},overHandler:function(e){var s=e.element();if(s!=this.currentBut&&!this.isAnimating&&s!=this.currentFilterDiv){this.over(s)}},outHandler:function(e){var s=e.element();if(s!=this.currentBut&&!this.isAnimating&&s!=this.currentFilterDiv){this.out(s)}},expand:function(el){if(el.hasClassName(this.options.filterClass)){if(el!=this.currentFilterDiv){this.isAnimating=true;this.currentFilterOutList=el.filterOutListArray;new Effect.multiple(el.filterOutListArray,Effect.Fade,{transition:Effect.Transitions.sinoidal,from:1.0,to:0.0,fps:this.myFPS,queue:{scope:'menu'},beforeStart:function(cl){this.isAnimating=true;el.removeClassName(this.options.filterOver);el.addClassName(this.options.filterActive);if(this.currentFilterDiv){this.currentFilterDiv.removeClassName(this.options.filterActive)}this.closeCurrent()}.bind(this),afterFinish:function(al){this.currentFilterDiv=el;this.currentFilterList=el.filterInListArray;if(this.currentFilterList){new Effect.multiple(this.currentFilterList,Effect.Appear,{transition:Effect.Transitions.sinoidal,from:0.0,to:1.0,fps:this.myFPS,queue:{scope:'menu'},beforeStart:function(){this.isAnimating=true}.bind(this),afterFinish:function(bl){this.currentBut=null;this.currentDiv=null;var arr1=new Array();var arr2=new Array();if(this.currentFilterDiv!=this.defaultFilterDiv){arr1[0]=bl.element;arr1[1]=this.currentFilterList[0];arr2[0]=al.element;arr2[1]=this.currentFilterOutList[0];this.expandEnd(arr1,arr2)}else{this.isAnimating=false}}.bind(this)})}}.bind(this)})}}else{this.expandDiv=el.next('div.'+this.options.contentClass);this.expandBut=el;if(this.currentDiv!=this.expandDiv){this.expandDiv.show();this.animate()}}},expandEnd:function(divArr1,divArr2){if(divArr1[0]==divArr1[1]&&divArr2[0]==divArr2[1]){this.expandDiv=this.currentFilterList[0].next('div.'+this.options.contentClass);this.expandBut=this.currentFilterList[0];if(this.currentDiv!=this.expandDiv){this.expandDiv.show();this.animate()}}},over:function(el){if(el.hasClassName(this.options.filterClass)){el.addClassName(this.options.filterOver)}else{el.addClassName(this.options.titleOver)}},out:function(el){if(el.hasClassName(this.options.filterClass)){el.removeClassName(this.options.filterOver)}else{el.removeClassName(this.options.titleOver)}},closeCurrent:function(){if(this.currentDiv){new Effect.Scale(this.currentDiv,0,{scaleContent:false,transition:Effect.Transitions.sinoidal,scaleX:false,scaleY:true,beforeStart:function(){this.isAnimating=true;this.currentDiv.setStyle({display:"block"})}.bind(this),afterFinish:function(){if(this.currentDiv){this.currentDiv.hide();this.currentBut.removeClassName(this.options.titleActive);this.currentBut.removeClassName(this.options.titleOver);this.currentDiv=null;this.currentBut=null;this.isAnimating=false}}.bind(this)})}},animate:function(){var effects=new Array();var options={sync:true,scaleFrom:0,scaleContent:false,transition:Effect.Transitions.sinoidal,scaleMode:{originalHeight:this.expandDiv.oHeight,originalWidth:this.menu.getWidth()},scaleX:false,scaleY:true};effects.push(new Effect.Scale(this.expandDiv,100,options));if(this.currentDiv){options={sync:true,scaleContent:false,transition:Effect.Transitions.sinoidal,scaleX:false,scaleY:true};effects.push(new Effect.Scale(this.currentDiv,0,options))}new Effect.Parallel(effects,{duration:this.myDuration,fps:this.myFPS,queue:{position:'end',scope:'menu'},beforeStart:function(){this.isAnimating=true;this.expandDiv.show();this.expandBut.removeClassName(this.options.titleOver);this.expandBut.addClassName(this.options.titleActive);if(this.currentDiv){this.currentBut.removeClassName(this.options.titleActive);this.currentBut.hide();this.currentDiv.setStyle({display:"block"})}this.expandDiv.setStyle({display:"block"})}.bind(this),afterFinish:function(){if(this.currentDiv){new Effect.Appear(this.currentBut,{duration:2.1});this.currentDiv.hide();this.currentBut.removeClassName(this.options.titleOver)}this.mapout.resize();new Effect.ScrollTo(this.expandBut);this.expandBut.removeClassName(this.options.titleOver);this.expandDiv.setStyle({height:this.expandDiv.oHeight+"px"});this.currentDiv=this.expandDiv;this.currentBut=this.expandBut;this.isAnimating=false}.bind(this)})},setOptions:function(options){this.options={baseTitle:'monkiki',maxHeight:0,defaultFilterName:'All',defaultFilter:0,defaultTitle:1,defaultMenuID:"menu-content",menuClass:"menu",titleClass:"title-divs",controlClass:"control-title",titleActive:"control-title-active",titleOver:"control-title-over",toggleNone:"control-no-toggle",contentClass:"content-div",filterClass:"control-filter",filterOver:"control-filter-over",filterActive:"control-filter-active",filterAttribute:"titlefilter",hasMap:"location-map",defaultTag:"monkiki, interactive, time-based media, graphic, design, creative, brain, agency",defaultDesc:"monkiki is a London based creative brain based in the heart of East London. Our focus is on communications through the digital media, applying branding, identity & good old graphic design to the new interactive & Time-based media.  We constantly explore & invent ways in helping businesses and people with what we do best,by making communications fun."};Object.extend(this.options,options||{})}});








var MonkiControl=Class.create({initialize:function(id,options){if(!$(id)){throw("the specified id cannot be found.  Please check again with Web Administrator");}
this.setOptions(options);this.controlDiv=$(id);this.target=$(this.options.target);this.sliders=this.controlDiv.select('div.'+this.options.sliderDiv);this.initControls(this.sliders);},initControls:function(cD){cD.each(function(sl){var bar=sl.down('.'+this.options.sliderBar);var handle=bar.down('.'+this.options.sliderHandle);if(sl.identify()==this.options.menuSlider){var slider=new Control.Slider(handle,bar,{range:$R(14,36),sliderValue:this.options.defaultMenuSize,increment:1,onSlide:function(value){var text=this.target.select("div."+this.options.menuClass);text.each(function(s,index){s.setStyle({fontSize:parseInt(value)+"px"});}.bind(this));}.bind(this),onChange:function(value){var text=this.target.select("div."+this.options.menuClass);text.each(function(s,index){s.setStyle({fontSize:parseInt(value)+"px"});}.bind(this));}.bindAsEventListener(this)});}
else if(sl.identify()==this.options.numSlider){sl.hide();}}.bind(this));},setOptions:function(options){this.options={target:"",defaultMenuSize:24,defaultnumSize:20,menuClass:"title-divs",sliderDiv:"slider-div",sliderBar:"slider-bar",sliderHandle:"slider-handle",menuSlider:"menu-slider",numSlider:"numbersize-slider"};Object.extend(this.options,options||{});}});


var TopMenu=Class.create({initialize:function(id,options){if(!$(id))throw("the specified id cannot be found.  Please check again with Web Administrator");this.topmenu=$(id);this.setOptions(options);this.content=this.topmenu.select('div.'+this.options.contentClass);this.contentTail=this.topmenu.select('div.'+this.options.contentTail);this.button=this.topmenu.select('div.'+this.options.buttonClass);this.content[0].hide();var buttonClick=this.buttonClick.bindAsEventListener(this);this.button[0].observe('click',buttonClick);var buttonOver=this.buttonOver.bindAsEventListener(this);this.button[0].observe('mouseover',buttonOver);var buttonOut=this.buttonOut.bindAsEventListener(this);this.button[0].observe('mouseout',buttonOut);var scrollOffset=this.scrollOffset.bindAsEventListener(this);Event.observe(window,'scroll',scrollOffset);Event.observe(window,'resize',scrollOffset);},scrollOffset:function(el){this.topmenu.setStyle({top:document.viewport.getScrollOffsets().top+'px'});},buttonClick:function(el){var s=el.element();if(!this.isAnimating){this.animate();}},buttonOver:function(el){this.button[0].addClassName(this.options.buttonOver);},buttonOut:function(el){this.button[0].removeClassName(this.options.buttonOver);},buttonTrigger:function(){this.button[0].removeClassName(this.options.buttonOver);if(this.content[0].visible()){this.button[0].addClassName(this.options.buttonClick);this.contentTail[0].addClassName(this.options.contentTailClick);}
else{this.button[0].removeClassName(this.options.buttonClick);this.contentTail[0].removeClassName(this.options.contentTailClick);}},animate:function(){if(!this.isAnimating){this.timerTriggerOff();Effect.toggle(this.content[0],'slide',{queue:{position:'end',scope:'topmenu'},beforeStart:function(){this.isAnimating=true;}.bind(this),afterFinish:function(){this.buttonTrigger();this.isAnimating=false;this.timerTriggerOn();}.bind(this)});}},timerTriggerOn:function(){if(this.content[0].visible()){this.pEx=new PeriodicalExecuter(function(pe){if(!this.content[0].visible()){pe.stop();}
else{Effect.toggle(this.content[0],'slide',{beforeStart:function(){this.isAnimating=true;}.bind(this),afterFinish:function(){pe.stop();this.isAnimating=false;this.buttonTrigger();}.bind(this)})}}.bind(this),30);}},timerTriggerOff:function(){if(this.pEx){this.pEx.stop();}},setOptions:function(options){this.options={contentClass:"top_controls_main",contentTail:"top_controls_content_bottom",contentTailClick:"top_controls_content_bottom_click",buttonClass:"top_controls_bottom",buttonOver:"top_controls_bottom_over",buttonClick:"top_controls_bottom_click"};Object.extend(this.options,options||{});}});


var MonkiSlideShow=Class.create({initialize:function(id,options){if(!$(id))throw("Attempted to initalize monki slideshow: "+id+" which was not found.");this.setOptions(options);this.id=$(id);this.current=this.options.defaultStartFrame;this.slideShow=this.id.select('ul.'+this.options.slideShowUL);this.slideShowList=new Array();this.current=new Array();this.endFrame=new Array();this.controlDiv=new Array();this.controller=new Array();var initialHide=this.initialHide.bind(this);this.slideShow.each(initialHide);},initialHide:function(s,index){var list=s.select('li');if(list.length>1){this.slideShowList[index]=list;this.controlDiv[index]=new Element('ul');this.controlDiv[index].addClassName(this.options.control);var tempBut='';for(var i=0;i<list.length;i++){if(i!=this.options.defaultStartFrame){list[i].style.display='none';}
tempBut+='<li>'+i+'</li>';}
this.controlDiv[index].update(tempBut);s.insert({'after':this.controlDiv[index]});this.controller[index]=s.next('ul.'+this.options.control).select('li');createBut=this.createBut.bind(this);this.controller[index].each(createBut);this.current[index]=this.options.defaultStartFrame;this.endFrame[index]=list.length-1;this.current[index]=this.options.defaultStartFrame;this.controller[index][this.current[index]].addClassName(this.options.controlButActive);}},createBut:function(s,index){var clickHandler=this.clickHandler.bindAsEventListener(this);s.observe('click',clickHandler);var overHandler=this.overHandler.bindAsEventListener(this);s.observe('mouseover',overHandler);var outHandler=this.outHandler.bindAsEventListener(this);s.observe('mouseout',outHandler);},overHandler:function(el){var s=el.element();for(var i=0;i<this.current.length;i++){if(s!=this.current[i]){s.addClassName(this.options.controlButOver);}}},outHandler:function(el){var s=el.element();for(var i=0;i<this.current.length;i++){if(s!=this.current[i]){s.removeClassName(this.options.controlButOver);}}},clickHandler:function(el){var s=el.element();for(var i=0;i<this.slideShow.length;i++){if(s.up('ul').previous('ul')==this.slideShow[i]){this.clickChanges(parseInt(s.innerHTML),i);}}},clickChanges:function(num,index){Effect.Fade(this.slideShowList[index][this.current[index]],{duration:this.options.speed,from:1.0,to:0.0});this.controller[index][this.current[index]].removeClassName(this.options.controlButActive);this.current[index]=num;this.controller[index][this.current[index]].addClassName(this.options.controlButActive);Effect.Appear(this.slideShowList[index][this.current[index]],{duration:this.options.speed,from:0.0,to:1.0});},startSlideShow:function(){this.pEx=new PeriodicalExecuter(function(pe){var fadeInOut=this.fadeInOut.bind(this);this.slideShow.each(fadeInOut);}.bind(this),this.options.defaultDelay);},fadeInOut:function(s,index){Effect.Fade(this.slideShowList[index][this.current[index]],{duration:this.options.speed,from:1.0,to:0.0});this.controller[index][this.current[index]].removeClassName(this.options.controlButActive);if(this.current[index]>=this.endFrame[index]){this.current[index]=0;}
else{this.current[index]++;}
this.controller[index][this.current[index]].addClassName(this.options.controlButActive);Effect.Appear(this.slideShowList[index][this.current[index]],{duration:this.options.speed,from:0.0,to:1.0});},setOptions:function(options){this.options={speed:1.5,defaultDelay:15,defaultStartFrame:0,slideShowUL:'slideshow-class',control:'slideshow-control',controlBut:'slideshow-controlbut',controlButOver:'slideshow-over',controlButActive:'slideshow-active'};Object.extend(this.options,options||{});}});document.observe("dom:loaded",function(){slideshow=new MonkiSlideShow("content",0,5000);});



