// (c) 2008 Trent Foley ;(function($){document.write("");var ver='galleriffic-0.7';var galleryOffset=0;var galleries=[];var allImages=[];var historyCurrentHash;var historyBackStack;var historyForwardStack;var isFirst=false;var dontCheck=false;var isInitialized=false;function getHash(){var hash=location.hash;if(!hash)return-1;hash=hash.replace(/^.*#/,'');if(isNaN(hash))return-1;return(+hash);} function registerGallery(gallery){galleries.push(gallery);galleryOffset+=gallery.data.length;} function getGallery(hash){for(i=0;i=0&&preloadCount>this.settings.preloadAhead){setTimeout(function(){gallery.preloadRecursive(startIndex,currentIndex);},500);return this;} var imageData=this.data[currentIndex];if(imageData.$image) return this.preloadNext(startIndex,currentIndex);var image=new Image();image.onload=function(){imageData.$image=this;gallery.preloadNext(startIndex,currentIndex);};image.alt=imageData.title;image.src=imageData.slide;return this;},preloadNext:function(startIndex,currentIndex){var nextIndex=this.getNextIndex(currentIndex);if(nextIndex==startIndex){this.isPreloadComplete=true;}else{var gallery=this;setTimeout(function(){gallery.preloadRecursive(startIndex,nextIndex);},100);} return this;},getNextIndex:function(index){var nextIndex=index+1;if(nextIndex>=this.data.length) nextIndex=0;return nextIndex;},getPrevIndex:function(index){var prevIndex=index-1;if(prevIndex<0) prevIndex=this.data.length-1;return prevIndex;},pause:function(){if(this.interval) this.toggleSlideshow();return this;},play:function(){if(!this.interval) this.toggleSlideshow();return this;},toggleSlideshow:function(){if(this.interval){clearInterval(this.interval);this.interval=0;if(this.$controlsContainer){this.$controlsContainer.find('div.ss-controls span').removeClass().addClass('play').attr('title',this.settings.playLinkText).html(this.settings.playLinkText);}}else{this.ssAdvance();var gallery=this;this.interval=setInterval(function(){gallery.ssAdvance();},this.settings.delay);if(this.$controlsContainer){this.$controlsContainer.find('div.ss-controls span').removeClass().addClass('pause').attr('title',this.settings.pauseLinkText).html(this.settings.pauseLinkText);}} return this;},ssAdvance:function(){var nextIndex=this.getNextIndex(this.currentIndex);var nextHash=this.data[nextIndex].hash;location.href='#'+nextHash;if($.browser.msie){this.goto(nextIndex);} return this;},goto:function(index){if(index<0)index=0;else if(index>=this.data.length)index=this.data.length-1;this.currentIndex=index;this.preloadRelocate(index);return this.refresh();},refresh:function(){if(this.$imageContainer){var imageData=this.data[this.currentIndex];var isFading=1;var gallery=this;this.$imageContainer.fadeOut('normal',function(){isFading=0;if(gallery.$controlsContainer){gallery.$controlsContainer.find('div.nav-controls a.prev').attr('href','#'+gallery.data[gallery.getPrevIndex(gallery.currentIndex)].hash).end().find('div.nav-controls a.next').attr('href','#'+gallery.data[gallery.getNextIndex(gallery.currentIndex)].hash);} if(gallery.$titleContainer){gallery.$titleContainer.empty().html(imageData.title);} if(gallery.$descContainer){gallery.$descContainer.empty().html(imageData.description);} if(gallery.$downloadLink){gallery.$downloadLink.attr('href',imageData.original);} if(imageData.$image){gallery.buildImage(imageData.$image);}});if(this.onFadeOut)this.onFadeOut();if(!imageData.$image){var image=new Image();image.onload=function(){imageData.$image=this;if(!isFading){gallery.buildImage(imageData.$image);}};image.alt=imageData.title;image.src=imageData.slide;} this.relocatePreload=true;} return this.syncThumbs();},buildImage:function(image){if(this.$imageContainer){this.$imageContainer.empty();var gallery=this;this.$imageContainer.append('').find('a').append(image).click(function(){clickHandler(gallery);}).end().fadeIn('normal');if(this.onFadeIn)this.onFadeIn();} return this;},syncThumbs:function(){if(this.$thumbsContainer){var page=Math.floor(this.currentIndex/this.settings.numThumbs);if(page!=this.currentPage){this.currentPage=page;this.updateThumbs();}else{var selectedThumb=this.currentIndex%this.settings.numThumbs;this.$thumbsContainer.find('ul.thumbs li.selected').removeClass('selected').end().find('ul.thumbs li').eq(selectedThumb).addClass('selected');}} return this;},updateThumbs:function(){if(this.$thumbsContainer){if(this.currentPage<0) this.currentPage=0;var startIndex=this.currentPage*this.settings.numThumbs;var stopIndex=startIndex+this.settings.numThumbs-1;if(stopIndex>=this.data.length) stopIndex=this.data.length-1;var needsPagination=this.data.length>this.settings.numThumbs;this.$thumbsContainer.empty();this.$thumbsContainer.append('');if(needsPagination&&this.settings.enableTopPager){this.buildPager(this.$thumbsContainer.find('div.top'));} var $ulThumbs=this.$thumbsContainer.append('').find('ul.thumbs');for(i=startIndex;i<=stopIndex;i++){var selected='';if(i==this.currentIndex) selected=' class="selected"';var imageData=this.data[i];$ulThumbs.append(''+imageData.title+'');} if(needsPagination&&this.settings.enableBottomPager){this.$thumbsContainer.append('');this.buildPager(this.$thumbsContainer.find('div.bottom'));} var gallery=this;this.$thumbsContainer.find('a[@rel="history"]').click(function(){clickHandler(gallery);});} return this;},buildPager:function(pager){var startIndex=this.currentPage*this.settings.numThumbs;if(this.currentPage>0){var prevPage=startIndex-this.settings.numThumbs;pager.append(''+this.settings.prevPageLinkText+'');} for(i=this.currentPage-3;i<=this.currentPage+3;i++){var pageNum=i+1;if(i==this.currentPage) pager.append(''+pageNum+'');else{var imageIndex=i*this.settings.numThumbs;if(i>=0&&i'+pageNum+'');}}} var nextPage=startIndex+this.settings.numThumbs;if(nextPage'+this.settings.nextPageLinkText+'');} return this;}});this.settings=$.extend({},defaults,settings);if(this.interval) clearInterval(this.interval);this.interval=0;if(this.settings.imageContainerSel)this.$imageContainer=$(this.settings.imageContainerSel);if(this.settings.thumbsContainerSel)this.$thumbsContainer=$(this.settings.thumbsContainerSel);if(this.settings.titleContainerSel)this.$titleContainer=$(this.settings.titleContainerSel);if(this.settings.descContainerSel)this.$descContainer=$(this.settings.descContainerSel);if(this.settings.downloadLinkSel)this.$downloadLink=$(this.settings.downloadLinkSel);this.offset=galleryOffset;if(thumbsContainerSel instanceof Array){this.data=thumbsContainerSel;}else{this.$thumbsContainer=$(thumbsContainerSel);this.buildDataFromThumbs();} registerGallery(this);this.numPages=Math.ceil(this.data.length/this.settings.numThumbs);this.currentPage=-1;this.currentIndex=0;var gallery=this;if(this.settings.controlsContainerSel){this.$controlsContainer=$(this.settings.controlsContainerSel).empty();if(this.settings.renderSSControls){this.$controlsContainer.append('
'+this.settings.playLinkText+'
').find('div.ss-controls span').click(function(){gallery.toggleSlideshow();});} if(this.settings.renderNavControls){this.$controlsContainer.append('').find('a[@rel="history"]').click(function(){clickHandler(gallery);});}} historyInit();var hash=getHash();var hashGallery=(hash>=0)?getGallery(hash):0;var gotoIndex=(hashGallery&&this==hashGallery)?(hash-this.offset):0;this.goto(gotoIndex);setTimeout(function(){gallery.preloadInit();},1000);return