﻿// Lightbox v2.04 by Lokesh Dhakar <http://www.huddletogether.com>. Modifications by Analogue Web Design, LLC <http://www.analogueweb.com>. Licensed under the Creative Commons Attribution 2.5 License <http://creativecommons.org/licenses/by/2.5/>.
var lightbox=function(){var bind=analogue.bind,getPageScroll=function(){return[window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft,window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop]},getPageSize=function(){var pageHeight,pageWidth,windowHeight,windowWidth,xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY){xScroll=window.innerWidth+window.scrollMaxX;yScroll=window.innerHeight+window.scrollMaxY}else if(document.body.scrollHeight>document.body.offsetHeight){xScroll=document.body.scrollWidth;yScroll=document.body.scrollHeight}else{xScroll=document.body.offsetWidth;yScroll=document.body.offsetHeight}if(self.innerHeight){if(document.documentElement.clientWidth){windowWidth=document.documentElement.clientWidth}else{windowWidth=self.innerWidth}windowHeight=self.innerHeight}else if(document.documentElement&&document.documentElement.clientHeight){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight}else if(document.body){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight}if(yScroll<windowHeight){pageHeight=windowHeight}else{pageHeight=yScroll}if(xScroll<windowWidth){pageWidth=xScroll}else{pageWidth=windowWidth}return[pageWidth,pageHeight,windowWidth,windowHeight]},pause=function(milliseconds){var current,date=new Date();do{current=new Date()}while(current-date<milliseconds)};return{changeImage:function(imageNumber){this.imageCurrent=imageNumber;this.lightboxImage.style.display='none';var imgPreloader=new Image((getPageSize()[2]-100),(getPageSize()[3]-100)),temp;imgPreloader.onload=bind(this,function(){var factor,pageSize=getPageSize(),width,height;if(imgPreloader.naturalWidth&&imgPreloader.naturalHeight){if(imgPreloader.naturalWidth>imgPreloader.naturalHeight){factor=imgPreloader.naturalWidth/imgPreloader.naturalHeight;width=(pageSize[2]-225);height=(pageSize[2]-225)/factor}else{factor=imgPreloader.naturalHeight/imgPreloader.naturalWidth;width=(pageSize[3]-100)/factor;height=(pageSize[3]-50)}}else{temp=new Image();temp.src=this.imageArray[this.imageCurrent][0];if(temp.width>temp.height){factor=temp.width/temp.height;width=(pageSize[2]-225);height=(pageSize[2]-225)/factor}else{factor=temp.height/temp.width;height=(pageSize[3]-50);width=(pageSize[3]-100)/factor}temp=null}this.lightboxImage.src=this.imageArray[this.imageCurrent][0];this.lightboxImage.style.height=height+'px';this.lightboxImage.style.width=width+'px';this.resizeContainer(width,height);panzoom.add(this.lightboxImage)});imgPreloader.src=this.imageArray[this.imageCurrent][0]},end:function(){this.lightbox.style.display='none';this.lightboxFrame.setProperty('style','height: 480px; width: 640px');this.lightboxImage.style.display='none';this.lightboxImage.src='/assets/img/clear.gif';this.lightboxImage.width='1px';this.lightboxImage.height='1px';this.overlayEffect=new Animate(this.overlay,'opacity',Animate.easeIn,this.overlayOpacity,0,this.resizeDuration/2,'');this.overlayEffect.start();this.overlayEffect.onfinish=bind(this,function(){this.overlay.style.display='none'});panzoom.remove(this.lightboxImage)},getImages:function(){var anchor,anchors=document.get('a[rel^="zoom"]'),i;for(i=0;(anchor=anchors[i]);i+=1){anchor.addEvent('click',bind(this,function(anchor){return function(event){this.start(anchor);event.preventDefault()}}(anchor)))}},initialize:function(borderWidth,overlayOpacity,resizeSpeed){var i,id,ids='overlay,lightbox,lightboxCloseLink,lightboxFrame,lightboxImage'.split(',');this.getImages();this.borderWidth=borderWidth||0;this.overlayOpacity=overlayOpacity||80;if(this.overlayOpacity>100){this.overlayOpacity=100}else if(this.overlayOpacity<0){this.overlayOpacity=0}this.resizeSpeed=resizeSpeed||8;if(this.resizeSpeed>10){this.resizeSpeed=10}else if(this.resizeSpeed<1){this.resizeSpeed=1}this.resizeDuration=(11-this.resizeSpeed)*0.15;document.body.appendChild(document.set('div',{'id':'overlay','style':'filter: alpha(opacity=80); -moz-opacity: 0.8; opacity: 0.8;','onclick':function(event){this.end();event.preventDefault()}.bind(this)}));document.body.appendChild(document.set('div',{'id':'lightbox'},[document.set('div',{'id':'lightboxFrame'},[document.set('img',{'id':'lightboxImage'})])]));for(i=0;(id=ids[i]);i+=1){this[id]=document.get([id])}this.lightboxImageEffect=new Animate(this.lightboxImage,'opacity',Animate.snapOut,0,100,this.resizeDuration,'');this.lightboxImageEffect.onfinish=bind(this,function(){this.overlay.style.height=getPageSize()[1]+'px'})},preloadImages:function(){var preloadNextImage,preloadPrevImage;if((this.imageArray.length-1)>this.imageCurrent){preloadNextImage=new Image();preloadNextImage.src=this.imageArray[this.imageCurrent+1][0]}if(this.imageCurrent>0){preloadPrevImage=new Image();preloadPrevImage.src=this.imageArray[this.imageCurrent-1][0]}},resizeContainer:function(width,height){var heightDifference=(this.lightboxFrame.offsetHeight-this.borderWidth*2)-height,widthDifference=(this.lightboxFrame.offsetWidth-this.borderWidth*2)-width;if((heightDifference===0)&&(widthDifference===0)){if(window.msie){pause(500)}else{pause(100)}}this.lightboxFrame.style.width=width+(this.borderWidth*2)+'px';this.lightboxFrame.style.height=height+(this.borderWidth*2)+'px';this.lightboxImage.style.display='block';this.overlay.style.height=getPageSize()[1]+'px';this.preloadImages()},start:function(link){var anchor,anchors,i,imageNumber=0,pageScroll=getPageScroll(),pageSize=getPageSize();this.overlay.setProperty('style','display: block; height:'+pageSize[1]+'px;');this.overlayEffect=new Animate(this.overlay,'opacity',Animate.easeOut,0,this.overlayOpacity,this.resizeDuration,'');this.overlayEffect.start();this.imageArray=[];if(typeof link=='string'&&link.match(/flickrSet/i)){this.imageArray=window[link]}else if((link.getProperty('rel')=='zoom')){this.imageArray.push([link.getProperty('href'),link.getProperty('title')])}else{anchors=document.get('a[rel="'+link.getProperty('rel')+'"]');for(i=0;(anchor=anchors[i]);i+=1){this.imageArray.push([anchor.getProperty('href'),anchor.getProperty('title')])}while(this.imageArray[imageNumber][0]!=link.getProperty('href')){imageNumber+=1}}this.lightbox.setProperty('style','display: block; left:'+pageScroll[0]+'px;');this.changeImage(imageNumber)}}}();