LightboxOptions=Object.extend({fileLoadingImage:'/lightbox/Images/loading.gif',fileBottomNavCloseImage:'/lightbox/Images/Lightbox/closelabel.gif',fileNextImage:'/lightbox/Images/Lightbox/nextlabel.gif',filePreviousImage:'/lightbox/Images/Lightbox/prevlabel.gif',overlayOpacity:0.8,animate:true,resizeSpeed:8,borderSize:10,labelImage_nl:'Afbeelding',labelOf_nl:'van',labelImage_be:'Afbeelding',labelOf_be:'van',labelImage_uk:'Image',labelOf_uk:'of',labelImage_com:'Image',labelOf_com:'of'},window.LightboxOptions||{});var Lightbox=Class.create();Lightbox.prototype={imageArray:[],activeImage:undefined,lang:'nl',buttons_on:true,initialize:function(){try{this.lang=Element.select(document,'meta[name="language"]').first().content;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 size=(LightboxOptions.animate?250:1)+'px';var objBody=$$('body')[0];objBody.appendChild(Builder.node('div',{id:'overlay',style:'position:absolute; top:0; left:0; z-index:90; width:100%; height:500px; background-color:#000;'}));objBody.appendChild(Builder.node('div',{id:'lightbox',style:'position:fixed; left:0; width:100%; z-index:100; text-align:center; line-height:0;'},[Builder.node('div',{id:'outerImageContainer',style:'position:relative; background-color:#fff; width:250px; height:250px; margin:0 auto;'},Builder.node('div',{id:'imageContainer',style:'padding:10px;'},[Builder.node('img',{id:'lightboxImage',style:'width:auto; height:auto;'}),Builder.node('div',{id:'hoverNav',style:'position:absolute; top:0; left:0; height:100%; width:100%; z-index:10;'},[Builder.node('a',{id:'prevLink',href:'#',style:'left:0; float:left; outline:none; width:49%; height:100%; background-image:url(data:image/gif;base64,AAAA); background-position:left 15%; background-repeat:no-repeat; display:block;'}),Builder.node('a',{id:'nextLink',href:'#',style:'right:0; float:right; outline:none; width:49%; height:100%; background-image:url(data:image/gif;base64,AAAA); background-position:right 15%; background-repeat:no-repeat; display:block;'})]),Builder.node('div',{id:'loading',style:'position:absolute; top:40%; left:0%; height:25%; width:100%; text-align:center; line-height:0;'},Builder.node('a',{id:'loadingLink',href:'#'},Builder.node('img',{src:LightboxOptions.fileLoadingImage,style:'width:auto; height:auto;'})))])),Builder.node('div',{id:'imageDataContainer',style:'background-color:#fff; margin:0 auto; line-height:1.4em; overflow:auto; width:100%;'},Builder.node('div',{id:'imageData',style:'padding:0 10px; color:#666;'},[Builder.node('div',{id:'imageDetails',style:'width:70%; float:left; text-align:left;'},[Builder.node('span',{id:'caption',style:'font-weight:bold;'}),Builder.node('span',{id:'numberDisplay',style:'display:block; clear:left; padding-bottom:1.0em;'})]),Builder.node('div',{id:'bottomNav',style:'height:40px'},Builder.node('a',{id:'bottomNavClose',href:'#',style:'width:66px; float:right;  padding-bottom:0.7em; outline:none;'},Builder.node('img',{src:LightboxOptions.fileBottomNavCloseImage,style:'width:auto; height:auto; border:#EEE 1px solid;'})))]))]));$('overlay').hide().observe('click',(function(){this.end();}).bind(this));$('lightbox').hide().observe('click',(function(event){if(event.element().id=='lightbox')this.end();}).bind(this));$('outerImageContainer').setStyle({width:size,height:size});$('prevLink').observe('click',(function(event){event.stop();this.changeImage(this.activeImage-1);}).bindAsEventListener(this));if(this.buttons_on){$('prevLink').setStyle({backgroundImage:'url('+LightboxOptions.filePreviousImage+')'});}else{$('prevLink').observe('mouseover',(function(event){$('prevLink').setStyle({backgroundImage:'url('+LightboxOptions.filePreviousImage+')'});}));$('prevLink').observe('mouseout',(function(event){$('prevLink').setStyle({backgroundImage:'url(data:image/gif;base64,AAAA)'});}));}
$('nextLink').observe('click',(function(event){event.stop();this.changeImage(this.activeImage+1);}).bindAsEventListener(this));if(this.buttons_on){$('nextLink').setStyle({backgroundImage:'url('+LightboxOptions.fileNextImage+')'});}else{$('nextLink').observe('mouseover',(function(event){$('nextLink').setStyle({backgroundImage:'url('+LightboxOptions.fileNextImage+')'});}));$('nextLink').observe('mouseout',(function(event){$('nextLink').setStyle({backgroundImage:'url(data:image/gif;base64,AAAA)'});}));}
$('loadingLink').observe('click',(function(event){event.stop();this.end();}).bind(this));$('bottomNavClose').observe('click',(function(event){event.stop();this.end();}).bind(this));var th=this;(function(){var ids='overlay lightbox outerImageContainer imageContainer lightboxImage hoverNav prevLink nextLink loading loadingLink '+'imageDataContainer imageData imageDetails caption numberDisplay bottomNav bottomNavClose';$w(ids).each(function(id){th[id]=$(id);});}).defer();}catch(e){alert(e);}},updateImageList:function(){try{this.updateImageList=Prototype.emptyFunction;document.observe('click',(function(event){try{var target=event.findElement('img[rel^=lightbox]')||event.findElement('a[rel^=lightbox]')||event.findElement('area[rel^=lightbox]');if(target){event.stop();this.start(target);}}catch(e){alert(e);}}).bind(this));}catch(e){alert(e);}},start:function(imageLink){$$('select','object','embed').each(function(node){node.style.visibility='hidden'});var arrayPageSize=this.getPageSize();$('overlay').setStyle({width:arrayPageSize[0]+'px',height:arrayPageSize[1]+'px'});new Effect.Appear(this.overlay,{duration:this.overlayDuration,from:0.0,to:LightboxOptions.overlayOpacity});this.imageArray=[];var imageNum=0;if(imageLink.nodeName=='IMG'){var url=imageLink.src;}else{var url=imageLink.href;}
try{if((imageLink.rel=='lightbox')){this.imageArray.push([url,imageLink.title]);}else{this.imageArray=$$(imageLink.tagName+'[href][rel="'+imageLink.rel+'"]').collect(function(anchor){return[(anchor.src||anchor.href),anchor.title];}).uniq();while(this.imageArray[imageNum][0]!=url){imageNum++;}}}catch(e){alert(e);}
var arrayPageScroll=document.viewport.getScrollOffsets();var lightboxTop=40;var lightboxLeft=arrayPageScroll[0];this.lightbox.setStyle({top:lightboxTop+'px',left:lightboxLeft+'px'}).show();this.changeImage(imageNum);},changeImage:function(imageNum){this.activeImage=imageNum;if(LightboxOptions.animate)this.loading.show();this.lightboxImage.hide();this.hoverNav.hide();this.prevLink.hide();this.nextLink.hide();this.imageDataContainer.setStyle({opacity:.0001});this.numberDisplay.hide();var imgPreloader=new Image();imgPreloader.onload=(function(){this.lightboxImage.src=this.imageArray[this.activeImage][0];this.resizeImageContainer(imgPreloader.width,imgPreloader.height);}).bind(this);imgPreloader.src=this.imageArray[this.activeImage][0];},resizeImageContainer:function(imgWidth,imgHeight){var widthCurrent=this.outerImageContainer.getWidth();var heightCurrent=this.outerImageContainer.getHeight();var widthNew=(imgWidth+LightboxOptions.borderSize*2);var heightNew=(imgHeight+LightboxOptions.borderSize*2);var xScale=(widthNew/widthCurrent)*100;var yScale=(heightNew/heightCurrent)*100;var wDiff=widthCurrent-widthNew;var hDiff=heightCurrent-heightNew;if(hDiff!=0)new Effect.Scale(this.outerImageContainer,yScale,{scaleX:false,duration:this.resizeDuration,queue:'front'});if(wDiff!=0)new Effect.Scale(this.outerImageContainer,xScale,{scaleY:false,duration:this.resizeDuration,delay:this.resizeDuration});var timeout=0;if((hDiff==0)&&(wDiff==0)){timeout=100;if(Prototype.Browser.IE)timeout=250;}
(function(){this.prevLink.setStyle({height:imgHeight+'px'});this.nextLink.setStyle({height:imgHeight+'px'});this.imageDataContainer.setStyle({width:widthNew+'px'});this.showImage();}).bind(this).delay(timeout/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.lang]+' '+(this.activeImage+1)+' '+LightboxOptions['labelOf_'+this.lang]+'  '+this.imageArray.length).show();}
new Effect.Parallel([new Effect.SlideDown(this.imageDataContainer,{sync:true,duration:this.resizeDuration,from:0.0,to:1.0}),new Effect.Appear(this.imageDataContainer,{sync:true,duration:this.resizeDuration})],{duration:this.resizeDuration,afterFinish:(function(){var arrayPageSize=this.getPageSize();this.overlay.setStyle({height:arrayPageSize[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(event){var keycode=event.keyCode;var escapeKey;if(event.DOM_VK_ESCAPE){escapeKey=event.DOM_VK_ESCAPE;}else{escapeKey=27;}
var key=String.fromCharCode(keycode).toLowerCase();if(key.match(/x|o|c/)||(keycode==escapeKey)){this.end();}else if((key=='p')||(keycode==37)){if(this.activeImage!=0){this.disableKeyboardNav();this.changeImage(this.activeImage-1);}}else if((key=='n')||(keycode==39)){if(this.activeImage!=(this.imageArray.length-1)){this.disableKeyboardNav();this.changeImage(this.activeImage+1);}}},preloadNeighborImages:function(){var preloadNextImage,preloadPrevImage;if(this.imageArray.length>this.activeImage+1){preloadNextImage=new Image();preloadNextImage.src=this.imageArray[this.activeImage+1][0];}
if(this.activeImage>0){preloadPrevImage=new Image();preloadPrevImage.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(node){node.style.visibility='visible'});},getPageSize:function(){var 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;}
var windowWidth,windowHeight;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];}}
document.observe('dom:loaded',function(){new Lightbox();});