﻿/* Lightbox v2.02 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/>. */
function Lightbox(borderSize){this.borderSize=borderSize||0;this.effectImageDetails=null;this.effectImage=null;this.effectNav=null;this.effectOverlay=null;this.imageArray=[];this.imageCurrent=null;var anchor,anchors=document.getElementsBySelector('a[rel^="lightbox"]'),context=this,i;for(i=0;(anchor=anchors[i]);i+=1){anchor.addEvent('click',function(event){context.start(this);event.preventDefault()})}document.body.appendChild(document.set('div',{'id':'overlay','style':'filter: alpha(opacity=60); -moz-opacity: 0.6; opacity: 0.6;','onclick':function(event){context.end();event.preventDefault()}}));document.body.appendChild(document.set('div',{'id':'lightbox'},[document.set('div',{'id':'lightboxImageContainer'},[document.set('div',{'id':'lightboxFrame'},[document.set('img',{'id':'lightboxImage'}),document.set('div',{'id':'lightboxNav'},[document.set('a',{'id':'lightboxPrevLink','href':'#'}),document.set('a',{'id':'lightboxNextLink','href':'#'})]),document.set('div',{'id':'lightboxLoading'},[document.set('a',{'id':'lightboxLoadingLink','href':'#','onclick':function(event){context.end();event.preventDefault()}})])])]),document.set('div',{'id':'lightboxDataContainer','class':'clear'},[document.set('div',{'id':'lightboxData'},[document.set('div',{'id':'lightboxClose'},[document.set('a',{'id':'lightboxCloseLink','href':'#','onclick':function(event){context.end();event.preventDefault()}})]),document.set('div',{'id':'lightboxDetails'},[document.set('span',{'id':'lightboxCaption'}),document.set('span',{'id':'lightboxImageSet'})])])])]));document.get('overlay').style.display='none';this.effectNav=new Animate(document.get('lightboxNav'),'opacity',Animate.snapIn,0,100,0.1,'');this.effectNav.hide=function(){this.obj.style.display='none'};this.effectNav.hide();this.effectImageDetails=new Animate(document.get('lightboxDataContainer'),'opacity',Animate.snapIn,0,100,0.6,'');this.effectImageDetails.onfinish=function(){document.get('lightboxNav').style.display='block';context.effectNav.start()};this.effectImageDetails.hide=function(){this.obj.style.display='none'};this.effectImageDetails.hide();this.effectImage=new Animate(document.get('lightboxImage'),'opacity',Animate.snapIn,0,100,0.3,'');this.effectImage.onfinish=function(){document.get('lightboxDataContainer').style.display='block';context.effectImageDetails.start()};this.effectImage.hide=function(){this.obj.style.display='none'};this.effectImage.hide()}Lightbox.getPageScroll=function(){var yScroll;if(self.pageYOffset){yScroll=self.pageYOffset}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop}else if(document.body){yScroll=document.body.scrollTop}return['',yScroll]};Lightbox.getPageSize=function(){var pageHeight,pageWidth,windowHeight,windowWidth,xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY){xScroll=document.body.scrollWidth;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){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=windowWidth}else{pageWidth=xScroll}return[pageWidth,pageHeight,windowWidth,windowHeight]};Lightbox.prototype={change:function(imageNumber){var context=this,imgPreloader;this.imageCurrent=imageNumber;this.effectImageDetails.hide();this.effectImage.hide();this.effectNav.hide();document.get('lightboxPrevLink').style.display='none';document.get('lightboxNextLink').style.display='none';imgPreloader=new Image();imgPreloader.onload=function(){document.get('lightboxImage').src=context.imageArray[context.imageCurrent][0];context.resize(imgPreloader.width,imgPreloader.height)};imgPreloader.src=this.imageArray[this.imageCurrent][0]},end:function(){document.onkeydown=function(){};document.get('lightbox').style.display='none';if(this.imageArray.length==1){document.get('lightboxImageContainer').setProperty('style','height: 250px; width: 250px')}this.effectImage.hide();this.effectOverlay=new Animate(document.get('overlay'),'opacity',Animate.snapOut,80,0,0.3,'');this.effectOverlay.start();this.effectOverlay.onfinish=function(){document.get('overlay').style.display='none'}},onkeydown:function(){var context=this,escape;document.onkeydown=function(e){var key,keycode;if(!e){keycode=event.keyCode;escape=27}else{keycode=e.which;escape=e.DOM_VK_ESCAPE}key=String.fromCharCode(keycode).toLowerCase();if((key=='x')||(key=='o')||(key=='c')||(keycode==escape)){context.end()}else if((key=='p')||(keycode==8)||(keycode==37)){if(context.imageCurrent!==0){document.onkeydown=function(){};context.change(context.imageCurrent-1)}}else if((key=='n')||(keycode==32)||(keycode==39)){if(context.imageCurrent!=(context.imageArray.length-1)){document.onkeydown=function(){};context.change(context.imageCurrent+1)}}}},preload: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]}},pause:function(milliseconds){var current,date=new Date();do{current=new Date()}while(current-date<milliseconds)},resize:function(width,height){var context=this,lightboxImageContainer=document.get('lightboxImageContainer'),heightEffect,heightDifference,widthEffect,widthDifference;widthDifference=(lightboxImageContainer.offsetWidth-this.borderSize*2)-width;heightDifference=(lightboxImageContainer.offsetHeight-this.borderSize*2)-height;heightEffect=new Animate(lightboxImageContainer.style,'height',Animate.easeIn,lightboxImageContainer.offsetHeight,height+(context.borderSize*2),0.6,'px');heightEffect.start();heightEffect.onfinish=function(){heightEffect=null};widthEffect=new Animate(lightboxImageContainer.style,'width',Animate.easeIn,lightboxImageContainer.offsetWidth,width+(context.borderSize*2),0.6,'px');widthEffect.start();widthEffect.onfinish=function(){document.get('lightboxImage').style.display='block';context.effectImage.start();widthEffect=null};if((heightDifference===0)&&(widthDifference===0)){if(window.msie){this.pause(500)}else{this.pause(100)}}document.get('lightboxPrevLink').style.height=height+'px';document.get('lightboxNextLink').style.height=height+'px';document.get('lightboxDataContainer').style.width=(width+(this.borderSize*2))+'px';document.get('lightboxNav').style.width=(width+(this.borderSize*2))+'px';document.get('lightboxLoading').style.display='none';this.update();this.preload()},start:function(link){var anchor,anchors=document.getElementsByTagName('a'),i,ii,imageNumber=0,lightbox=document.getElementById('lightbox'),pageScroll=Lightbox.getPageScroll(),pageSize=Lightbox.getPageSize();document.getElementById('overlay').style.height=pageSize[1]+'px';document.get('overlay').style.display='block';this.effectOverlay=new Animate(document.get('overlay'),'opacity',Animate.easeIn,0,80,0.3,'');this.effectOverlay.start();this.imageArray=[];if((link.getAttribute('rel')=='lightbox')){this.imageArray.push([link.getAttribute('href'),link.getAttribute('title')])}else{for(i=0,ii=anchors.length;i<ii;i+=1){anchor=anchors[i];if(anchor.getAttribute('href')&&(anchor.getAttribute('rel')==link.getAttribute('rel'))){this.imageArray.push([anchor.getAttribute('href'),anchor.getAttribute('title')])}}while(this.imageArray[imageNumber][0]!=link.getAttribute('href')){imageNumber+=1}}lightbox.style.top=(pageScroll[1]+(pageSize[3]/30))+'px';lightbox.style.display='block';this.change(imageNumber)},update:function(){var lightboxCaption=document.get('lightboxCaption'),context=this,lightboxNextLink=document.get('lightboxNextLink'),lightboxImageSet=document.get('lightboxImageSet'),lightboxPrevLink=document.get('lightboxPrevLink');lightboxCaption.style.display='block';lightboxCaption.innerHTML=this.imageArray[this.imageCurrent][1];if(this.imageArray.length>1){lightboxImageSet.style.display='block';lightboxImageSet.innerHTML='Image '+(this.imageCurrent+1)+' of '+this.imageArray.length}if(this.imageCurrent!==0){lightboxPrevLink.style.display='block';lightboxPrevLink.onclick=function(){context.change(context.imageCurrent-1);return false}}if(this.imageCurrent!=(this.imageArray.length-1)){lightboxNextLink.style.display='block';lightboxNextLink.onclick=function(){context.change(context.imageCurrent+1);return false}}this.onkeydown()}};