/*
 * jQuery Galleriffic plugin with billiton Modifications
 * Version 1.0-billiton1
 *
 * Copyright (c) 2008 Trent Foley (http://trentacular.com)
 * and Copyright (c) 2009 Sebastian Busch, billiton internet services GmbH (http://www.billiton.de)
 *
 * Original license:
 * ---
 * 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 
 */
(function(e){document.write('<style type="text/css">.noscript{display:none}</style>');var d="galleriffic-1.0";var g=0;var a=[];var o=[];var n;var c;var b;var l=false;var w=false;var u=false;function p(x){if(!x){return -1}x=x.replace(/^.*#/,"");if(isNaN(x)){return -1}return(+x)}function q(){var x=location.hash;return p(x)}function f(x){a.push(x);g+=x.data.length}function t(y){for(i=0;i<a.length;i++){var x=a[i];if(y<(x.data.length+x.offset)){return x}}return 0}function v(x,y){return y-x.offset}function k(B,x,z){x.pause();if(!x.settings.enableHistory){if(B.data!==undefined){var A=B.data}else{var A=p(z.href)}if(A>=0){var y=v(x,A);if(y>=0){x.mygoto(y)}}B.preventDefault()}}function h(){var z=q();if(z<0){return}var x=t(z);if(!x){return}var y=z-x.offset;x.mygoto(y)}function r(){if(u){return}u=true;var x=location.hash;n=x;if(e.browser.msie){if(n==""){n="#"}}else{if(e.browser.safari){c=[];c.length=history.length;b=[];l=true}}setInterval(function(){m()},100)}function s(x){c.push(x);b.length=0;l=true}function m(){if(e.browser.safari){if(!w){var x=history.length-c.length;if(x){l=false;if(x<0){for(var y=0;y<Math.abs(x);y++){b.unshift(c.pop())}}else{for(var y=0;y<x;y++){c.push(b.shift())}}var z=c[c.length-1];if(z!=undefined){n=location.hash;h()}}else{if(c[c.length-1]==undefined&&!l){h();l=true}}}}else{var A=location.hash;if(A!=n){n=A;h()}}}var j={delay:3000,numThumbs:20,preloadAhead:40,thumbnailItemsSel:"ul.thumbs > li",pagerContainerSel:"",removeUnusedPagerContainers:false,enableTopPager:false,removeUnusedTopPager:false,enableBottomPager:true,removeUnusedBottomPager:false,imageContainerSel:"",captionContainerSel:"",controlsContainerSel:"",loadingContainerSel:"",renderSSControls:true,renderNavControls:true,playLinkText:"Play",pauseLinkText:"Pause",buildPrevNextPageLinks:true,prevLinkText:"Previous",nextLinkText:"Next",nextPageLinkText:"Next &rsaquo;",prevPageLinkText:"&lsaquo; Prev",prevPageLinkPosition:"before",enableHistory:false,enableArrowKeys:true,autoStart:false,onChange:undefined,onTransitionOut:undefined,onTransitionIn:undefined,onPageTransitionOut:undefined,onPageTransitionIn:undefined,onParseThumbnailItem:undefined,onImageClick:undefined,onKeydown:undefined};e.fn.galleriffic=function(y,A){this.addClass("galleriffic-js-initializing");e.extend(this,{ver:function(){return d},getThumbnailItems:function(){return this.$thumbsContainer.find(this.settings.thumbnailItemsSel)},parseThumbnailItem:function(E){var F=E.find("a.thumb");return{clickableAnchor:F,title:F.attr("title"),slideUrl:F.attr("href"),caption:E.find(".caption").remove()}},initializeThumbs:function(){this.data=[];var E=this;E.getThumbnailItems().each(function(H){var F=e(this);if(E.settings.onParseThumbnailItem){var G=E.settings.onParseThumbnailItem.call(E,F)}else{var G=E.parseThumbnailItem.call(E,F)}var I=E.offset+H;e.extend(G,{hash:I});E.data.push(G);G.clickableAnchor.bind("click",I,function(J){k(J,E,this)})})},isPreloadComplete:false,preloadInit:function(){if(this.settings.preloadAhead==0){return}this.preloadStartIndex=this.currentIndex;var E=this.getNextIndex(this.preloadStartIndex);this.preloadRecursive(this.preloadStartIndex,E)},preloadRelocate:function(E){this.preloadStartIndex=E},preloadRecursive:function(J,G){if(J!=this.preloadStartIndex){var E=this.getNextIndex(this.preloadStartIndex);this.preloadRecursive(this.preloadStartIndex,E);return}var F=this;var H=G-J;if(H<0){H=this.data.length-1-J+G}if(this.settings.preloadAhead>=0&&H>this.settings.preloadAhead){setTimeout(function(){F.preloadRecursive(J,G)},500);return}var K=this.data[G];if(!K){return}if(K.image){this.preloadNext(J,G);return}var I=new Image();I.onload=function(){K.image=this;F.preloadNext(J,G)};I.title=K.title;I.src=K.slideUrl},preloadNext:function(H,G){var E=this.getNextIndex(G);if(E==H){this.isPreloadComplete=true}else{var F=this;setTimeout(function(){F.preloadRecursive(H,E)},100)}},getNextIndex:function(F){var E=F+1;if(E>=this.data.length){E=0}return E},getPrevIndex:function(E){var F=E-1;if(F<0){F=this.data.length-1}return F},pause:function(){this.stopSlideshow()},play:function(){this.startSlideshow()},startSlideshow:function(){if(this.interval){return}this.ssAdvance();var E=this;this.interval=setInterval(function(){E.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)}},stopSlideshow:function(){if(!this.interval){return}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)}},toggleSlideshow:function(){if(!this.interval){this.startSlideshow()}else{this.stopSlideshow()}},ssAdvance:function(){var E=this.getNextIndex(this.currentIndex);var F=this.data[E].hash;if(this.settings.enableHistory){location.href="#"+F}else{this.mygoto(E)}},ssRegress:function(){var F=this.getPrevIndex(this.currentIndex);var E=this.data[F].hash;if(this.settings.enableHistory){location.href="#"+E}else{this.mygoto(F)}},mygoto:function(E){if(E<0){E=0}else{if(E>=this.data.length){E=this.data.length-1}}if(this.settings.onChange){this.settings.onChange(this.currentIndex,E)}this.currentIndex=E;this.preloadRelocate(E);this.refresh()},refresh:function(){var I=this.data[this.currentIndex];if(!I){return}var H=true;var E=this;var G=function(){H=false;if(E.$controlsContainer){E.$controlsContainer.find("div.nav-controls a.prev").attr("href","#"+E.data[E.getPrevIndex(E.currentIndex)].hash).end().find("div.nav-controls a.next").attr("href","#"+E.data[E.getNextIndex(E.currentIndex)].hash)}var J=E.data[E.currentIndex];if(E.$captionContainer){E.$captionContainer.empty().append(J.caption)}if(J.image){E.buildImage(J)}else{if(E.$loadingContainer){E.$loadingContainer.show()}}};if(this.settings.onTransitionOut){this.settings.onTransitionOut(G)}else{this.$transitionContainers.hide();G()}if(!I.image){var F=new Image();F.onload=function(){I.image=this;if(!H){E.buildImage(I)}};F.title=I.title;F.src=I.slideUrl}this.relocatePreload=true;this.syncThumbs()},buildImage:function(H){var G=H.image;if(this.$imageContainer){this.$imageContainer.empty();var F=this;var E=this.getNextIndex(this.currentIndex);if(this.$loadingContainer){this.$loadingContainer.hide()}this.$imageContainer.append('<span class="image-wrapper"><a class="advance-link" rel="history" href="#'+this.data[E].hash+'" title="'+G.title+'"></a></span>').find("a").append(G).bind("click",function(I){var J=true;if(F.settings.onImageClick){J=(F.settings.onImageClick.call(F,I,H)!==false)}if(J){k(I,F,this)}})}if(this.settings.onTransitionIn){this.settings.onTransitionIn()}else{this.$transitionContainers.show()}},syncThumbs:function(){if(!this.$thumbsContainer){return}var F=Math.floor(this.currentIndex/this.settings.numThumbs);if(F!=this.currentPage){this.currentPage=F;this.updateThumbs()}var E=this.getThumbnailItems();E.filter(".selected").removeClass("selected");E.eq(this.currentIndex).addClass("selected")},updateThumbs:function(){var E=this;var F=function(){E.rebuildThumbs();if(E.settings.onPageTransitionIn){E.settings.onPageTransitionIn()}else{E.$thumbsContainer.show()}};if(this.settings.onPageTransitionOut){this.settings.onPageTransitionOut(F)}else{this.$thumbsContainer.hide();F()}},rebuildThumbs:function(){if(this.currentPage<0){this.currentPage=0}var H=this.data.length>this.settings.numThumbs;if(this.settings.pagerContainerSel){if(H){var F=this;this.$thumbsContainer.find(this.settings.pagerContainerSel).each(function(){var K=e(this);K.empty();F.buildPager(F,K)})}else{if(this.settings.removeUnusedPagerContainers){this.$thumbsContainer.find(this.settings.pagerContainerSel).remove()}}}if(H&&this.settings.enableTopPager){var E=this.$thumbsContainer.find("div.top");if(E.length==0){E=this.$thumbsContainer.prepend('<div class="top pagination"></div>').find("div.top")}else{E.empty()}this.buildPager(this,E)}else{if(this.settings.removeUnusedTopPager){this.$thumbsContainer.find("div.top").remove()}}if(H&&this.settings.enableBottomPager){var I=this.$thumbsContainer.find("div.bottom");if(I.length==0){I=this.$thumbsContainer.append('<div class="bottom pagination"></div>').find("div.bottom")}else{I.empty()}this.buildPager(this,I)}else{if(this.settings.removeUnusedBottomPager){this.$thumbsContainer.find("div.bottom").remove()}}var J=this.currentPage*this.settings.numThumbs;var G=J+this.settings.numThumbs-1;if(G>=this.data.length){G=this.data.length-1}this.getThumbnailItems().each(function(K){if(K>=J&&K<=G){e(this).show()}else{e(this).hide()}})},buildPager:function(H,G){var L=H.currentPage*H.settings.numThumbs;if(H.settings.buildPrevNextPageLinks&&(H.currentPage>0)){var I=L-H.settings.numThumbs;var K='<a rel="history" href="#'+H.data[I].hash+'">'+H.settings.prevPageLinkText+"</a>"}if(H.settings.buildPrevNextPageLinks&&(H.currentPage>0)&&(H.settings.prevPageLinkPosition!="after")){G.append(K)}for(i=H.currentPage-3;i<=H.currentPage+3;i++){var J=i+1;if(i==H.currentPage){G.append('<span class="current">'+J+"</span>")}else{if(i>=0&&i<H.numPages){var E=i*H.settings.numThumbs;G.append('<a rel="history" href="#'+H.data[E].hash+'" title="'+J+'">'+J+"</a>")}}}if(H.settings.buildPrevNextPageLinks&&(H.currentPage>0)&&(H.settings.prevPageLinkPosition=="after")){G.append(K)}if(H.settings.buildPrevNextPageLinks){var F=L+H.settings.numThumbs;if(F<H.data.length){G.append('<a rel="history" href="#'+H.data[F].hash+'">'+H.settings.nextPageLinkText+"</a>")}}G.find("a").bind("click",function(M){k(M,H,this)})}});this.settings=e.extend({},j,A);this.$thumbsContainer=e(y);if(this.interval){clearInterval(this.interval)}this.interval=0;if(this.settings.imageContainerSel){this.$imageContainer=e(this.settings.imageContainerSel)}if(this.settings.captionContainerSel){this.$captionContainer=e(this.settings.captionContainerSel)}if(this.settings.loadingContainerSel){this.$loadingContainer=e(this.settings.loadingContainerSel)}this.$transitionContainers=e([]);if(this.$imageContainer){this.$transitionContainers=this.$transitionContainers.add(this.$imageContainer)}if(this.$captionContainer){this.$transitionContainers=this.$transitionContainers.add(this.$captionContainer)}this.offset=g;this.initializeThumbs();f(this);this.numPages=Math.ceil(this.data.length/this.settings.numThumbs);this.currentPage=-1;this.currentIndex=0;var x=this;if(this.$loadingContainer){this.$loadingContainer.hide()}if(this.settings.controlsContainerSel){this.$controlsContainer=e(this.settings.controlsContainerSel).empty();if(this.settings.renderSSControls){if(this.settings.autoStart){this.$controlsContainer.append('<div class="ss-controls"><a href="#pause" class="pause" title="'+this.settings.pauseLinkText+'">'+this.settings.pauseLinkText+"</a></div>")}else{this.$controlsContainer.append('<div class="ss-controls"><a href="#play" class="play" title="'+this.settings.playLinkText+'">'+this.settings.playLinkText+"</a></div>")}this.$controlsContainer.find("div.ss-controls a").bind("click",function(E){x.toggleSlideshow();E.preventDefault();return false})}if(this.settings.renderNavControls){var D=this.$controlsContainer.append('<div class="nav-controls"><a class="prev" rel="history" title="'+this.settings.prevLinkText+'">'+this.settings.prevLinkText+'</a><a class="next" rel="history" title="'+this.settings.nextLinkText+'">'+this.settings.nextLinkText+"</a></div>").find("div.nav-controls a").bind("click dblclick",function(E){k(E,x,this)})}}r();var B=q();var C=(B>=0)?t(B):0;var z=(C&&this==C)?(B-this.offset):0;this.mygoto(z);if(this.settings.autoStart){setTimeout(function(){x.play()},this.settings.delay)}setTimeout(function(){x.preloadInit()},1000);this.$thumbsContainer.find(".noscript").removeClass("noscript");if(x.settings.enableArrowKeys){e(document).bind("keydown",function(E){var F=true;if(x.settings.onKeydown){F=(x.settings.onKeydown.call(x,E,E.keyCode)!==false)}if(!F){return}switch(E.keyCode){case 37:x.ssRegress();break;case 39:x.ssAdvance();break;case 38:case 40:default:}})}this.removeClass("galleriffic-js-initializing");this.addClass("galleriffic-js-initialized");return this}})(jQuery);
