/*
* jQuery Galleriffic plugin
*
* Copyright (c) 2008 Trent Foley (http://trentacular.com)
* Licensed under the MIT License:
* http://www.opensource.org/licenses/mit-license.php
*
* Thanks to Taku Sano (Mikage Sawatari), whose history plugin I adapted to work with Galleriffic
* Modified by Ghismo (ghismo.com) to disable the location rewrite
*/
/*Minified content*/
(function($){document.write("");var ver='galleriffic-1.0';var galleryOffset=0;var galleries=[];var allImages=[];var historyCurrentHash;var historyBackStack;var historyForwardStack;var isFirst=!1;var dontCheck=!1;var isInitialized=!1;function getHashFromString(hash){if(!hash)return-1;hash=hash.replace(/^.*#/,'');if(isNaN(hash))return-1;return(+hash)}
function getHash(){var hash=location.hash;return getHashFromString(hash)}
function registerGallery(gallery){galleries.push(gallery);galleryOffset+=gallery.data.length}
function getGallery(hash){for(i=0;i=0){var index=getIndex(gallery,hash);if(index>=0)
gallery.goto(index)}
e.preventDefault()}}
function historyCallback(){var hash=getHash();if(hash<0)return;var gallery=getGallery(hash);if(!gallery)return;var index=hash-gallery.offset;gallery.goto(index)}
function historyInit(){if(isInitialized)return;isInitialized=!0;var current_hash=location.hash;historyCurrentHash=current_hash;if($.browser.msie){if(historyCurrentHash==''){historyCurrentHash='#'}}else if($.browser.safari){historyBackStack=[];historyBackStack.length=history.length;historyForwardStack=[];isFirst=!0}
setInterval(function(){historyCheck()},100)}
function historyAddHistory(hash){historyBackStack.push(hash);historyForwardStack.length=0;isFirst=!0}
function historyCheck(){if($.browser.safari){if(!dontCheck){var historyDelta=history.length-historyBackStack.length;if(historyDelta){isFirst=!1;if(historyDelta<0){for(var i=0;i li').each(function(i){var $li=$(this);var $aThumb=$li.find('a.thumb');var hash=gallery.offset+i;gallery.data.push({title:$aThumb.attr('title'),slideUrl:$aThumb.attr('href'),caption:$li.find('.caption').remove(),hash:hash});$aThumb.attr('rel','history');$aThumb.attr('href','#'+hash);$aThumb.click(function(e){clickHandler(e,gallery,this)})});return this},isPreloadComplete:!1,preloadInit:function(){if(this.settings.preloadAhead==0)return this;this.preloadStartIndex=this.currentIndex;var nextIndex=this.getNextIndex(this.preloadStartIndex);return this.preloadRecursive(this.preloadStartIndex,nextIndex)},preloadRelocate:function(index){this.preloadStartIndex=index;return this},preloadRecursive:function(startIndex,currentIndex){if(startIndex!=this.preloadStartIndex){var nextIndex=this.getNextIndex(this.preloadStartIndex);return this.preloadRecursive(this.preloadStartIndex,nextIndex)}
var gallery=this;var preloadCount=currentIndex-startIndex;if(preloadCount<0)
preloadCount=this.data.length-1-startIndex+currentIndex;if(this.settings.preloadAhead>=0&&preloadCount>this.settings.preloadAhead){setTimeout(function(){gallery.preloadRecursive(startIndex,currentIndex)},500);return this}
var imageData=this.data[currentIndex];if(!imageData)
return this;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.slideUrl;return this},preloadNext:function(startIndex,currentIndex){var nextIndex=this.getNextIndex(currentIndex);if(nextIndex==startIndex){this.isPreloadComplete=!0}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 a').removeClass().addClass('play').attr('title',this.settings.playLinkText).attr('href','#play').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 a').removeClass().addClass('pause').attr('title',this.settings.pauseLinkText).attr('href','#pause').html(this.settings.pauseLinkText)}}
return this},ssAdvance:function(){var nextIndex=this.getNextIndex(this.currentIndex);var nextHash=this.data[nextIndex].hash;if(this.settings.enableHistory)
location.href='#'+nextHash;else this.goto(nextIndex);return this},goto:function(index){if(index<0)index=0;else if(index>=this.data.length)index=this.data.length-1;if(this.settings.onChange)
this.settings.onChange(this.currentIndex,index);this.currentIndex=index;this.preloadRelocate(index);return this.refresh()},refresh:function(){var imageData=this.data[this.currentIndex];if(!imageData)
return this;var isTransitioning=!0;var gallery=this;var transitionOutCallback=function(){isTransitioning=!1;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)}
var imageData=gallery.data[gallery.currentIndex];if(gallery.$captionContainer){gallery.$captionContainer.empty().append(imageData.caption)}
if(imageData.image){gallery.buildImage(imageData.image)}else{if(gallery.$loadingContainer){gallery.$loadingContainer.show()}}}
if(this.settings.onTransitionOut){this.settings.onTransitionOut(transitionOutCallback)}else{this.$transitionContainers.hide();transitionOutCallback()}
if(!imageData.image){var image=new Image();image.onload=function(){imageData.image=this;if(!isTransitioning){gallery.buildImage(imageData.image)}};image.alt=imageData.title;image.src=imageData.slideUrl}
this.relocatePreload=!0;return this.syncThumbs()},buildImage:function(image){if(this.$imageContainer){this.$imageContainer.empty();var gallery=this;var nextIndex=this.getNextIndex(this.currentIndex);if(this.$loadingContainer){this.$loadingContainer.hide()}
this.$imageContainer.append('').find('a').append(image).click(function(e){clickHandler(e,gallery,this)})}
if(this.settings.onTransitionIn)
this.settings.onTransitionIn();else this.$transitionContainers.show();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()}
var $thumbs=this.$thumbsContainer.find('ul.thumbs').children();$thumbs.filter('.selected').removeClass('selected');$thumbs.eq(this.currentIndex).addClass('selected')}
return this},updateThumbs:function(){var gallery=this;var transitionOutCallback=function(){gallery.rebuildThumbs();if(gallery.settings.onPageTransitionIn)
gallery.settings.onPageTransitionIn();else gallery.$thumbsContainer.show()};if(this.settings.onPageTransitionOut){this.settings.onPageTransitionOut(transitionOutCallback)}else{this.$thumbsContainer.hide();transitionOutCallback()}
return this},rebuildThumbs:function(){if(this.currentPage<0)
this.currentPage=0;var needsPagination=this.data.length>this.settings.numThumbs;var $topPager=this.$thumbsContainer.find('div.top');if($topPager.length==0)
$topPager=this.$thumbsContainer.prepend('').find('div.top');if(needsPagination&&this.settings.enableTopPager){$topPager.empty();this.buildPager($topPager)}
if(needsPagination&&this.settings.enableBottomPager){var $bottomPager=this.$thumbsContainer.find('div.bottom');if($bottomPager.length==0)
$bottomPager=this.$thumbsContainer.append('').find('div.bottom');else $bottomPager.empty();this.buildPager($bottomPager)}
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 $thumbsUl=this.$thumbsContainer.find('ul.thumbs');$thumbsUl.find('li').each(function(i){var $li=$(this);if(i>=startIndex&&i<=stopIndex){$li.show()}else{$li.hide()}});$thumbsUl.removeClass('noscript');return this},buildPager:function(pager){var gallery=this;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 if(i>=0&&i'+pageNum+'')}}
var nextPage=startIndex+this.settings.numThumbs;if(nextPage'+this.settings.nextPageLinkText+'')}
pager.find('a').click(function(e){clickHandler(e,gallery,this)});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.captionContainerSel)this.$captionContainer=$(this.settings.captionContainerSel);if(this.settings.loadingContainerSel)this.$loadingContainer=$(this.settings.loadingContainerSel);this.$transitionContainers=$([]);if(this.$imageContainer)
this.$transitionContainers=this.$transitionContainers.add(this.$imageContainer);if(this.$captionContainer)
this.$transitionContainers=this.$transitionContainers.add(this.$captionContainer);this.offset=galleryOffset;this.$thumbsContainer=$(thumbsContainerSel);this.initializeThumbs();registerGallery(this);this.numPages=Math.ceil(this.data.length/this.settings.numThumbs);this.currentPage=-1;this.currentIndex=0;var gallery=this;if(this.$loadingContainer)
this.$loadingContainer.hide();if(this.settings.controlsContainerSel){this.$controlsContainer=$(this.settings.controlsContainerSel).empty();if(this.settings.renderSSControls){if(this.settings.autoStart){this.$controlsContainer.append('')}else{this.$controlsContainer.append('')}
this.$controlsContainer.find('div.ss-controls a').click(function(e){gallery.toggleSlideshow();e.preventDefault();return!1})}
if(this.settings.renderNavControls){var $navControls=this.$controlsContainer.append('').find('div.nav-controls a').click(function(e){clickHandler(e,gallery,this)})}}
historyInit();var hash=getHash();var hashGallery=(hash>=0)?getGallery(hash):0;var gotoIndex=(hashGallery&&this==hashGallery)?(hash-this.offset):0;this.goto(gotoIndex);if(this.settings.autoStart){setTimeout(function(){gallery.play()},this.settings.delay)}
setTimeout(function(){gallery.preloadInit()},1000);return this}})(jQuery)