/*--------------------------------------------------------------------------*
 *-- GZipped/Cached by ScripZip (c)2006-2007( http://www.php-vision.de/ ) --*
 *--------------------------------------------------------------------------*
 *   Orginal Script Filesize: 22778    Bytes             
 *   GZipped Script Filesize: 3242    Bytes             
 *   GZip Compression Level : 9 GZip Compression Rate : 14.23% of Org. File *
 *   Last Time File Changed : Tue, 07 Sep 2010 11:30:11 GMT                 *
 *   Last Browser Load File : Thu, 09 Sep 2010 09:35:28 GMT                 *
 *   Cached File Expires on : Thu, 16 Sep 2010 09:35:28 GMT                 *
 *--------------------------------------------------------------------------*
 *-- Download ScripZip and speed up your Page on http://www.php-vision.de/  *
 *--------------------------------------------------------------------------*/



var fileLoadingImage = "../images/loading.gif";var fileBottomNavCloseImage = "../images/closelabel.gif";
var overlayOpacity = 0.7;var animate = true; var resizeSpeed = 9;var borderSize = 10;
var imageArray = new Array;var activeImage;
if(animate == true){
 overlayDuration = 0.2; if(resizeSpeed > 10){ resizeSpeed = 10;}
 if(resizeSpeed < 1){ resizeSpeed = 1;}
 resizeDuration = (11 - resizeSpeed) * 0.15;} else { 
 overlayDuration = 0; resizeDuration = 0;}


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 = 0; i < this.length; i++){
 for(j = this.length-1; j>i; j--){ 
 if(this[i][0] == this[j][0]){
 this.splice(j,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'); var areas = document.getElementsByTagName('area');
 for (var i=0; i<anchors.length; i++){
 var anchor = anchors[i]; 
 var relAttribute = String(anchor.getAttribute('rel')); 
 if (anchor.getAttribute('href') && (relAttribute.toLowerCase().match('lightbox'))){
 anchor.onclick = function () {myLightbox.start(this); return false;}
 }
 }

 for (var i=0; i< areas.length; i++){
 var area = areas[i]; 
 var relAttribute = String(area.getAttribute('rel')); 
 if (area.getAttribute('href') && (relAttribute.toLowerCase().match('lightbox'))){
 area.onclick = function () {myLightbox.start(this); return false;}
 }
 }

 

 var objBody = document.getElementsByTagName("body").item(0); 
 var objOverlay = document.createElement("div"); objOverlay.setAttribute('id','overlay'); objOverlay.style.display = 'none'; objOverlay.onclick = function() { myLightbox.end(); }
 objBody.appendChild(objOverlay); 
 var objLightbox = document.createElement("div"); objLightbox.setAttribute('id','lightbox'); objLightbox.style.display = 'none'; objLightbox.onclick = function(e) { if (!e) var e = window.event; var clickObj = Event.element(e).id; if ( clickObj == 'lightbox') {
 myLightbox.end(); }
 }; objBody.appendChild(objLightbox); 
 var objOuterImageContainer = document.createElement("div"); objOuterImageContainer.setAttribute('id','outerImageContainer'); objLightbox.appendChild(objOuterImageContainer);
 if(animate){
 Element.setWidth('outerImageContainer', 250); Element.setHeight('outerImageContainer', 250); } else {
 Element.setWidth('outerImageContainer', 1); Element.setHeight('outerImageContainer', 1); }

 var objImageContainer = document.createElement("div"); objImageContainer.setAttribute('id','imageContainer'); objOuterImageContainer.appendChild(objImageContainer); 
 var objLightboxImage = document.createElement("img"); objLightboxImage.setAttribute('id','lightboxImage'); objImageContainer.appendChild(objLightboxImage); 
 var objHoverNav = document.createElement("div"); objHoverNav.setAttribute('id','hoverNav'); objImageContainer.appendChild(objHoverNav); 
 var objPrevLink = document.createElement("a"); objPrevLink.setAttribute('id','prevLink'); objPrevLink.setAttribute('href','#'); objHoverNav.appendChild(objPrevLink); 
 var objNextLink = document.createElement("a"); objNextLink.setAttribute('id','nextLink'); objNextLink.setAttribute('href','#'); objHoverNav.appendChild(objNextLink); 
 var objLoading = document.createElement("div"); objLoading.setAttribute('id','loading'); objImageContainer.appendChild(objLoading); 
 var objLoadingLink = document.createElement("a"); objLoadingLink.setAttribute('id','loadingLink'); objLoadingLink.setAttribute('href','#'); objLoadingLink.onclick = function() { myLightbox.end(); return false; }
 objLoading.appendChild(objLoadingLink); 
 var objLoadingImage = document.createElement("img"); objLoadingImage.setAttribute('src', fileLoadingImage); objLoadingLink.appendChild(objLoadingImage);
 var objImageDataContainer = document.createElement("div"); objImageDataContainer.setAttribute('id','imageDataContainer'); objLightbox.appendChild(objImageDataContainer);
 var objImageData = document.createElement("div"); objImageData.setAttribute('id','imageData'); objImageDataContainer.appendChild(objImageData); 
 var objImageDetails = document.createElement("div"); objImageDetails.setAttribute('id','imageDetails'); objImageData.appendChild(objImageDetails); 
 var objCaption = document.createElement("span"); objCaption.setAttribute('id','caption'); objImageDetails.appendChild(objCaption); 
 var objNumberDisplay = document.createElement("span"); objNumberDisplay.setAttribute('id','numberDisplay'); objImageDetails.appendChild(objNumberDisplay); 
 var objBottomNav = document.createElement("div"); objBottomNav.setAttribute('id','bottomNav'); objImageData.appendChild(objBottomNav); 
 var objBottomNavCloseLink = document.createElement("a"); objBottomNavCloseLink.setAttribute('id','bottomNavClose'); objBottomNavCloseLink.setAttribute('href','#'); objBottomNavCloseLink.onclick = function() { myLightbox.end(); return false; }
 objBottomNav.appendChild(objBottomNavCloseLink); 
 var objBottomNavCloseImage = document.createElement("img"); objBottomNavCloseImage.setAttribute('src', fileBottomNavCloseImage); objBottomNavCloseLink.appendChild(objBottomNavCloseImage); },
 
 start: function(imageLink) { 

 hideSelectBoxes(); hideFlash();
 var arrayPageSize = getPageSize(); Element.setHeight('overlay', arrayPageSize[1]);
 new Effect.Appear('overlay', { duration: overlayDuration, from: 0.0, to: overlayOpacity });
 imageArray = []; imageNum = 0;
 if (!document.getElementsByTagName){ return; }
 var anchors = document.getElementsByTagName( imageLink.tagName);
 if((imageLink.getAttribute('rel') == 'lightbox')){
 imageArray.push(new Array(imageLink.getAttribute('href'), imageLink.getAttribute('title'))); } else {
 
 for (var i=0; i<anchors.length; i++){
 var anchor = anchors[i]; if (anchor.getAttribute('href') && (anchor.getAttribute('rel') == imageLink.getAttribute('rel'))){
 imageArray.push(new Array(anchor.getAttribute('href'), anchor.getAttribute('title'))); }
 }
 imageArray.removeDuplicates(); while(imageArray[imageNum][0] != imageLink.getAttribute('href')) { imageNum++;}
 }

 var arrayPageScroll = getPageScroll(); var lightboxTop = arrayPageScroll[1] + (arrayPageSize[3] / 10);
 Element.setTop('lightbox', lightboxTop); Element.show('lightbox'); 
 this.changeImage(imageNum); },

 changeImage: function(imageNum) { 
 
 activeImage = imageNum; if(animate){ Element.show('loading');}
 Element.hide('lightboxImage'); Element.hide('hoverNav'); Element.hide('prevLink'); Element.hide('nextLink'); Element.hide('imageDataContainer'); Element.hide('numberDisplay'); 
 imgPreloader = new Image(); 
 imgPreloader.onload=function(){
 Element.setSrc('lightboxImage', imageArray[activeImage][0]); myLightbox.resizeImageContainer(imgPreloader.width, imgPreloader.height); }
 imgPreloader.src = imageArray[activeImage][0]; },

 resizeImageContainer: function( imgWidth, imgHeight) {

 this.widthCurrent = Element.getWidth('outerImageContainer'); this.heightCurrent = Element.getHeight('outerImageContainer');
 var widthNew = (imgWidth + (borderSize * 2)); var heightNew = (imgHeight + (borderSize * 2));
 this.xScale = ( widthNew / this.widthCurrent) * 100; this.yScale = ( heightNew / this.heightCurrent) * 100;
 wDiff = this.widthCurrent - widthNew; hDiff = this.heightCurrent - heightNew;
 if(!( hDiff == 0)){ new Effect.Scale('outerImageContainer', this.yScale, {scaleX: false, duration: resizeDuration, queue: 'front'}); }
 if(!( wDiff == 0)){ new Effect.Scale('outerImageContainer', this.xScale, {scaleY: false, delay: resizeDuration, duration: resizeDuration}); }

 if((hDiff == 0) && (wDiff == 0)){
 if (navigator.appVersion.indexOf("MSIE")!=-1){ pause(250); } else { pause(100);} 
 }

 Element.setHeight('prevLink', imgHeight); Element.setHeight('nextLink', imgHeight); Element.setWidth( 'imageDataContainer', widthNew);
 this.showImage(); },
 
 showImage: function(){
 Element.hide('loading'); new Effect.Appear('lightboxImage', { duration: resizeDuration, queue: 'end', afterFinish: function(){ myLightbox.updateDetails(); } }); this.preloadNeighborImages(); },

 updateDetails: function() {
 
 Element.show('caption'); Element.setInnerHTML( 'caption', imageArray[activeImage][1]); 
 if(imageArray.length > 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, from: 0.0, to: 1.0 }), 
  new Effect.Appear('imageDataContainer', { sync: true, duration: resizeDuration }) ], 
 { duration: resizeDuration, afterFinish: function() {
 var arrayPageSize = getPageSize(); Element.setHeight('overlay', arrayPageSize[1]); myLightbox.updateNav(); }
 } 
 ); },

 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; escapeKey = 27; } else {  keycode = e.keyCode; escapeKey = e.DOM_VK_ESCAPE; }

 key = String.fromCharCode(keycode).toLowerCase(); 
 if((key == 'x') || (key == 'o') || (key == 'c') || (keycode == escapeKey)){ myLightbox.end(); } else if((key == 'p') || (keycode == 37)){ if(activeImage != 0){
 myLightbox.disableKeyboardNav(); myLightbox.changeImage(activeImage - 1); }
 } else if((key == 'n') || (keycode == 39)){ 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: overlayDuration}); showSelectBoxes(); showFlash(); }
}


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(){
 var selects = document.getElementsByTagName("select"); for (i = 0; i != selects.length; i++) {
 selects[i].style.visibility = "visible"; }
}


function hideSelectBoxes(){
 var selects = document.getElementsByTagName("select"); for (i = 0; i != selects.length; i++) {
 selects[i].style.visibility = "hidden"; }
}


function showFlash(){
 var flashObjects = document.getElementsByTagName("object"); for (i = 0; i < flashObjects.length; i++) {
 flashObjects[i].style.visibility = "visible"; }

 var flashEmbeds = document.getElementsByTagName("embed"); for (i = 0; i < flashEmbeds.length; i++) {
 flashEmbeds[i].style.visibility = "visible"; }
}


function hideFlash(){
 var flashObjects = document.getElementsByTagName("object"); for (i = 0; i < flashObjects.length; i++) {
 flashObjects[i].style.visibility = "hidden"; }

 var flashEmbeds = document.getElementsByTagName("embeds"); for (i = 0; i < flashEmbeds.length; i++) {
 flashEmbeds[i].style.visibility = "hidden"; }

}




function pause(ms){
 var date = new Date(); curDate = null; do{var curDate = new Date();}
 while( curDate - date < ms);}




function initLightbox() { myLightbox = new Lightbox(); }
Event.observe(window, 'load', initLightbox, false);