var fileLoadingImage = "siteimages/loading.gif"; var fileBottomNavCloseImage = "siteimages/closelabel.gif"; var resizeSpeed = 10; var borderSize = 10; var imageArray = new Array; var activeImage; if(resizeSpeed > 10){ resizeSpeed = 10;} if(resizeSpeed < 1){ resizeSpeed = 1;} resizeDuration = (11 - resizeSpeed) * 0.15; Object.extend(Element, { getWidth: function(element) { element = $(element); return element.offsetWidth; }, setWidth: function(element,w) { element = $(element); element.style.width = w +"px"; }, setHeight: function(element,h) { element = $(element); element.style.height = h +"px"; }, setTop: function(element,t) { element = $(element); element.style.top = t +"px"; }, setSrc: function(element,src) { element = $(element); element.src = src; }, setHref: function(element,href) { element = $(element); element.href = href; }, setInnerHTML: function(element,content) { element = $(element); element.innerHTML = content; } }); Array.prototype.removeDuplicates = function () { for(i = 1; i < this.length; i++){ if(this[i][0] == this[i-1][0]){ this.splice(i,1); } } } Array.prototype.empty = function () { for(i = 0; i <= this.length; i++){ this.shift(); } } var Lightbox = Class.create(); Lightbox.prototype = { initialize: function() { if (!document.getElementsByTagName){ return; } var anchors = document.getElementsByTagName('a'); for (var i=0; i 1){ Element.show('numberDisplay'); Element.setInnerHTML( 'numberDisplay', "Image " + eval(activeImage + 1) + " of " + imageArray.length); } new Effect.Parallel( [ new Effect.SlideDown( 'imageDataContainer', { sync: true, duration: resizeDuration + 0.25, from: 0.0, to: 1.0 }), new Effect.Appear('imageDataContainer', { sync: true, duration: 1.0 }) ], { duration: 0.65, afterFinish: function() { myLightbox.updateNav();} } ); document.getElementById('picture').width=imgPreloader.width document.getElementById('picture').height=imgPreloader.height document.getElementById('gif').width=imgPreloader.width+1 document.getElementById('gif').height=imgPreloader.height+1 }, updateNav: function() { Element.show('hoverNav'); if(activeImage != 0){ Element.show('prevLink'); document.getElementById('prevLink').onclick = function() { myLightbox.changeImage(activeImage - 1); return false; } } if(activeImage != (imageArray.length - 1)){ Element.show('nextLink'); document.getElementById('nextLink').onclick = function() { myLightbox.changeImage(activeImage + 1); return false; } } this.enableKeyboardNav(); }, enableKeyboardNav: function() { document.onkeydown = this.keyboardAction; }, disableKeyboardNav: function() { document.onkeydown = ''; }, keyboardAction: function(e) { if (e == null) { keycode = event.keyCode; } else { keycode = e.which; } key = String.fromCharCode(keycode).toLowerCase(); if((key == 'x') || (key == 'o') || (key == 'q')){ myLightbox.end(); } else if(key == 'p'){ if(activeImage != 0){ myLightbox.disableKeyboardNav(); myLightbox.changeImage(activeImage - 1); } } else if(key == 'n'){ if(activeImage != (imageArray.length - 1)){ myLightbox.disableKeyboardNav(); myLightbox.changeImage(activeImage + 1); } } }, preloadNeighborImages: function(){ if((imageArray.length - 1) > activeImage){ preloadNextImage = new Image(); preloadNextImage.src = imageArray[activeImage + 1][0]; } if(activeImage > 0){ preloadPrevImage = new Image(); preloadPrevImage.src = imageArray[activeImage - 1][0]; } }, end: function() { this.disableKeyboardNav(); Element.hide('lightbox'); new Effect.Fade('overlay', { duration: 0.2}); showSelectBoxes(); } } function getPageScroll(){ 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; } arrayPageScroll = new Array('',yScroll) return arrayPageScroll; } function getPageSize(){ var 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; } var windowWidth, windowHeight; 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; } arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) return arrayPageSize; } function getKey(e){ if (e == null) { keycode = event.keyCode; } else { keycode = e.which; } key = String.fromCharCode(keycode).toLowerCase(); if(key == 'x'){ } } function listenKey () {document.onkeypress = getKey; } function showSelectBoxes(){ selects = document.getElementsByTagName("select"); for (i = 0; i != selects.length; i++) { selects[i].style.visibility = "visible"; } } function hideSelectBoxes(){ selects = document.getElementsByTagName("select"); for (i = 0; i != selects.length; i++) { selects[i].style.visibility = "hidden"; } } function pause(numberMillis) { var now = new Date(); var exitTime = now.getTime() + numberMillis; while (true) { now = new Date(); if (now.getTime() > exitTime) return; } } function initLightbox() { myLightbox = new Lightbox(); } Event.observe(window, 'load', initLightbox, false);