window.site_data={};window.site_data.settings={CY_MEDIA_URL:"http://media.chrisyap.com/",MEDIA_URL:"/media/5/"};var CYController=Class.create();Object.extend(CYController.prototype,{initialize:function(){Event.observe(window,"load",function(){this.fixPngs()}.bind(this))},fixPngs:function(){var a=parseFloat(navigator.appVersion.split("MSIE")[1]);if((a>=5.5)&&(a<7)&&(document.body.filters)){$$(".pngfix").each(function(b){var d=b.currentStyle.backgroundImage;var c=d.substring(d.indexOf('"')+1,d.lastIndexOf('"'));if(b.currentStyle.backgroundRepeat=="repeat-x"||b.currentStyle.backgroundRepeat=="repeat-y"){var e="scale"}else{var e="crop"}b.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+c+"', sizingMethod='"+e+"')";b.style.backgroundImage="none"});$$("img.pngfix").each(function(b){b.runtimeStyle.backgroundImage="none";b.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+b.src+"', sizingMethod='image')";b.src="/images/spacer.gif"})}},embedFlickr:function(){this.flickrSettings={apiKey:"60cda4a2cdaf876686b71e82dfde3265",userID:"52033098%40N00",tags:"portfolioSite",itemsToShow:5,timeToWait:0,flickrContainer:"flickrContainer"};var b=document.getElementsByTagName("head")[0];this.flickrContainer=$(this.flickrSettings.flickrContainer);var a=document.createElement("script");a.type="text/javascript";a.src=["http://api.flickr.com/services/rest/?format=json&jsoncallback=cyc.constructFlickrItems&method=flickr.photos.search&tags=",this.flickrSettings.tags,"&user_id=",this.flickrSettings.userID,"&per_page=100&api_key=",this.flickrSettings.apiKey].join("");b.appendChild(a);var c=setTimeout(function(){a.onload=null;a.parentNode.removeChild(a);a=null},this.flickrSettings.timeToWait);return{constructFlickrItems:this.constructFlickrItems}},constructFlickrItems:function(d){var h=d.photos,g=document.createElement("ul"),f,b,a,f,e;for(var c=0;c<this.flickrSettings.itemsToShow;c++){e=Math.floor(Math.random()*d.photos.photo.length+1);b=d.photos.photo[e];a=["http://farm",b.farm+".static.flickr.com/"+b.server+"/"+b.id+"_"+b.secret+".jpg"].join("");f=document.createElement("li");f.innerHTML=['<img src="',a,'" class="flickrPhoto" border="0" />'].join("");g.appendChild(f)}this.flickrContainer.appendChild(g);console.log("done")},embedTumblr:function(){this.tumblrSettings={userName:"buzzyapyear",itemsToShow:6,tumblrContainer:"tumblrContainer",imageSize:250,shortPublishDate:true,timeToWait:0};var b=document.getElementsByTagName("head")[0];this.tumblrContainer=$(this.tumblrSettings.tumblrContainer);var a=document.createElement("script");a.type="text/javascript";a.src=["http://",this.tumblrSettings.userName,".tumblr.com/api/read/json?callback=cyc.constructTumblrItems&tagged=portfolioSite&num=",this.tumblrSettings.itemsToShow].join("");b.appendChild(a);var c=setTimeout(function(){a.onload=null;a.parentNode.removeChild(a);a=null},this.tumblrSettings.timeToWait);return{constructTumblrItems:this.constructTumblrItems}},constructTumblrItems:function(r){var q=r.posts,k=document.createElement("ul"),o,a,l,b,p,m,g,h,f;k.className="tumblr";for(var e=0,n=q.length;e<n;e=e+1){o=q[e];if(/regular|photo|quote|link|conversation/.test(o.type)){a=document.createElement("li");l=document.createElement("div");l.className="tumblrPost";p=o["regular-body"]||o["photo-caption"]||o["quote-source"]||o["link-text"]||o["link-url"]||"";if(o.type==="photo"){m=document.createElement("a");m.href=o.url;g=document.createElement("img");g.width=this.tumblrSettings.imageSize;g.src=o["photo-url-"+this.tumblrSettings.imageSize];m.appendChild(g);l.appendChild(m);p="<em>"+p+"</em>"}else{if(o.type==="quote"){p=o["quote-text"]+"<em>"+p+"</em>"}else{if(o.type==="link"){p='<a href="'+o["link-url"]+'">'+p+"</a>"}else{if(o.type==="conversation"){h=o["conversation-lines"];for(var c=0,d=h.length;c<d;c=c+1){p+=h[c].label+" "+h[c].phrase+((c===(d-1))?"":"<br>")}}}}}l.innerHTML+=p;b=document.createElement("div");b.innerHTML+='<div><a href="'+o.url+'" target="_blank">More &raquo;</a>';a.appendChild(l);a.appendChild(b);k.appendChild(a)}}this.tumblrContainer.appendChild(k)},getDocHeight:function(){var a=document;return Math.max(Math.max(a.body.scrollHeight,a.documentElement.scrollHeight),Math.max(a.body.offsetHeight,a.documentElement.offsetHeight),Math.max(a.body.clientHeight,a.documentElement.clientHeight))}});LightboxOptions=Object.extend({fileLoadingImage:site_data.settings.CY_MEDIA_URL+"cydotcom/images/lightbox/loading.gif",fileBottomNavCloseImage:site_data.settings.CY_MEDIA_URL+"cydotcom/images/lightbox/closelabel.gif",overlayOpacity:0.8,animate:true,resizeSpeed:7,borderSize:10,labelImage:"Image",labelOf:"of"},window.LightboxOptions||{});var Lightbox=Class.create();Lightbox.prototype={imageArray:[],activeImage:undefined,initialize:function(){this.updateImageList();this.keyboardAction=this.keyboardAction.bindAsEventListener(this);if(LightboxOptions.resizeSpeed>10){LightboxOptions.resizeSpeed=10}if(LightboxOptions.resizeSpeed<1){LightboxOptions.resizeSpeed=1}this.resizeDuration=LightboxOptions.animate?((11-LightboxOptions.resizeSpeed)*0.15):0;this.overlayDuration=LightboxOptions.animate?0.2:0;var b=(LightboxOptions.animate?250:1)+"px";var a=$$("body")[0];a.appendChild(Builder.node("div",{id:"overlay"}));a.appendChild(Builder.node("div",{id:"lightbox"},[Builder.node("div",{id:"outerImageContainer"},Builder.node("div",{id:"imageContainer"},[Builder.node("img",{id:"lightboxImage"}),Builder.node("div",{id:"hoverNav"},[Builder.node("a",{id:"prevLink",href:"#"}),Builder.node("a",{id:"nextLink",href:"#"})]),Builder.node("div",{id:"loading"},Builder.node("a",{id:"loadingLink",href:"#"},Builder.node("img",{src:LightboxOptions.fileLoadingImage})))])),Builder.node("div",{id:"imageDataContainer"},Builder.node("div",{id:"imageData"},[Builder.node("div",{id:"imageDetails"},[Builder.node("span",{id:"caption"}),Builder.node("span",{id:"numberDisplay"})]),Builder.node("div",{id:"bottomNav"},Builder.node("a",{id:"bottomNavClose",href:"#"},Builder.node("img",{src:LightboxOptions.fileBottomNavCloseImage})))]))]));$("overlay").hide().observe("click",(function(){this.end()}).bind(this));$("lightbox").hide().observe("click",(function(d){if(d.element().id=="lightbox"){this.end()}}).bind(this));$("outerImageContainer").setStyle({width:b,height:b});$("prevLink").observe("click",(function(d){d.stop();this.changeImage(this.activeImage-1)}).bindAsEventListener(this));$("nextLink").observe("click",(function(d){d.stop();this.changeImage(this.activeImage+1)}).bindAsEventListener(this));$("loadingLink").observe("click",(function(d){d.stop();this.end()}).bind(this));$("bottomNavClose").observe("click",(function(d){d.stop();this.end()}).bind(this));var c=this;(function(){var d="overlay lightbox outerImageContainer imageContainer lightboxImage hoverNav prevLink nextLink loading loadingLink imageDataContainer imageData imageDetails caption numberDisplay bottomNav bottomNavClose";$w(d).each(function(e){c[e]=$(e)})}).defer()},updateImageList:function(){this.updateImageList=Prototype.emptyFunction;document.observe("click",(function(a){var b=a.findElement("a[rel^=lightbox]")||a.findElement("area[rel^=lightbox]");if(b){a.stop();this.start(b)}}).bind(this))},start:function(f){$$("select","object","embed").each(function(g){g.style.visibility="hidden"});var c=this.getPageSize();$("overlay").setStyle({width:c[0]+"px",height:c[1]+"px"});new Effect.Appear(this.overlay,{duration:this.overlayDuration,from:0,to:LightboxOptions.overlayOpacity});this.imageArray=[];var b=0;if((f.rel=="lightbox")){this.imageArray.push([f.href,f.title])}else{this.imageArray=$$(f.tagName+'[href][rel="'+f.rel+'"]').collect(function(g){return[g.href,g.title]}).uniq();while(this.imageArray[b][0]!=f.href){b++}}var a=document.viewport.getScrollOffsets();var e=a[1]+(document.viewport.getHeight()/10);var d=a[0];this.lightbox.setStyle({top:e+"px",left:d+"px"}).show();this.changeImage(b)},changeImage:function(b){this.activeImage=b;if(LightboxOptions.animate){this.loading.show()}this.lightboxImage.hide();this.hoverNav.hide();this.prevLink.hide();this.nextLink.hide();this.imageDataContainer.setStyle({opacity:0.0001});this.numberDisplay.hide();var a=new Image();a.onload=(function(){this.lightboxImage.src=this.imageArray[this.activeImage][0];this.resizeImageContainer(a.width,a.height)}).bind(this);a.src=this.imageArray[this.activeImage][0]},resizeImageContainer:function(e,f){var h=this.outerImageContainer.getWidth();var c=this.outerImageContainer.getHeight();var g=(e+LightboxOptions.borderSize*2);var j=(f+LightboxOptions.borderSize*2);var k=(g/h)*100;var b=(j/c)*100;var i=h-g;var a=c-j;if(a!=0){new Effect.Scale(this.outerImageContainer,b,{scaleX:false,duration:this.resizeDuration,queue:"front"})}if(i!=0){new Effect.Scale(this.outerImageContainer,k,{scaleY:false,duration:this.resizeDuration,delay:this.resizeDuration})}var d=0;if((a==0)&&(i==0)){d=100;if(Prototype.Browser.IE){d=250}}(function(){this.prevLink.setStyle({height:f+"px"});this.nextLink.setStyle({height:f+"px"});this.imageDataContainer.setStyle({width:g+"px"});this.showImage()}).bind(this).delay(d/1000)},showImage:function(){this.loading.hide();new Effect.Appear(this.lightboxImage,{duration:this.resizeDuration,queue:"end",afterFinish:(function(){this.updateDetails()}).bind(this)});this.preloadNeighborImages()},updateDetails:function(){if(this.imageArray[this.activeImage][1]!=""){this.caption.update(this.imageArray[this.activeImage][1]).show()}if(this.imageArray.length>1){this.numberDisplay.update(LightboxOptions.labelImage+" "+(this.activeImage+1)+" "+LightboxOptions.labelOf+"  "+this.imageArray.length).show()}new Effect.Parallel([new Effect.SlideDown(this.imageDataContainer,{sync:true,duration:this.resizeDuration,from:0,to:1}),new Effect.Appear(this.imageDataContainer,{sync:true,duration:this.resizeDuration})],{duration:this.resizeDuration,afterFinish:(function(){var a=this.getPageSize();this.overlay.setStyle({height:a[1]+"px"});this.updateNav()}).bind(this)})},updateNav:function(){this.hoverNav.show();if(this.activeImage>0){this.prevLink.show()}if(this.activeImage<(this.imageArray.length-1)){this.nextLink.show()}this.enableKeyboardNav()},enableKeyboardNav:function(){document.observe("keydown",this.keyboardAction)},disableKeyboardNav:function(){document.stopObserving("keydown",this.keyboardAction)},keyboardAction:function(d){var a=d.keyCode;var b;if(d.DOM_VK_ESCAPE){b=d.DOM_VK_ESCAPE}else{b=27}var c=String.fromCharCode(a).toLowerCase();if(c.match(/x|o|c/)||(a==b)){this.end()}else{if((c=="p")||(a==37)){if(this.activeImage!=0){this.disableKeyboardNav();this.changeImage(this.activeImage-1)}}else{if((c=="n")||(a==39)){if(this.activeImage!=(this.imageArray.length-1)){this.disableKeyboardNav();this.changeImage(this.activeImage+1)}}}}},preloadNeighborImages:function(){var a,b;if(this.imageArray.length>this.activeImage+1){a=new Image();a.src=this.imageArray[this.activeImage+1][0]}if(this.activeImage>0){b=new Image();b.src=this.imageArray[this.activeImage-1][0]}},end:function(){this.disableKeyboardNav();this.lightbox.hide();new Effect.Fade(this.overlay,{duration:this.overlayDuration});$$("select","object","embed").each(function(a){a.style.visibility="visible"})},getPageSize:function(){var c,a;if(window.innerHeight&&window.scrollMaxY){c=window.innerWidth+window.scrollMaxX;a=window.innerHeight+window.scrollMaxY}else{if(document.body.scrollHeight>document.body.offsetHeight){c=document.body.scrollWidth;a=document.body.scrollHeight}else{c=document.body.offsetWidth;a=document.body.offsetHeight}}var b,d;if(self.innerHeight){if(document.documentElement.clientWidth){b=document.documentElement.clientWidth}else{b=self.innerWidth}d=self.innerHeight}else{if(document.documentElement&&document.documentElement.clientHeight){b=document.documentElement.clientWidth;d=document.documentElement.clientHeight}else{if(document.body){b=document.body.clientWidth;d=document.body.clientHeight}}}if(a<d){pageHeight=d}else{pageHeight=a}if(c<b){pageWidth=c}else{pageWidth=b}return[pageWidth,pageHeight]}};document.observe("dom:loaded",function(){new Lightbox()});