codice:updateThumbs: function() { if (this.$thumbsContainer) { // Initialize currentPage to first page 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; // Clear thumbs container this.$thumbsContainer.empty(); // Rebuild top pager this.$thumbsContainer.append('<div class="top pagination"></div>'); if (needsPagination && this.settings.enableTopPager) { this.buildPager(this.$thumbsContainer.find('div.top')); } // Rebuild thumbs var $ulThumbs = this.$thumbsContainer.append('<ul class="thumbs">[/list]').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('<li'+selected+'>[img]'+imageData.thumb+'[/img]'); } // Rebuild bottom pager if (needsPagination && this.settings.enableBottomPager) { this.$thumbsContainer.append('<div class="bottom pagination"></div>'); this.buildPager(this.$thumbsContainer.find('div.bottom')); } // Add click handlers 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; // Prev Page Link if (this.currentPage > 0) { var prevPage = startIndex - this.settings.numThumbs; pager.append(''+this.settings.prevPageLinkText+''); } // Page Index Links 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<this.numPages) { pager.append(''+pageNum+''); } } } // Next Page Link var nextPage = startIndex+this.settings.numThumbs; if (nextPage < this.data.length) { pager.append(''+this.settings.nextPageLinkText+''); } return this; } }); // Now initialize the gallery 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); // Set the hash index offset for this gallery this.offset = galleryOffset; // This is for backward compatibility if (thumbsContainerSel instanceof Array) { this.data = thumbsContainerSel; } else { this.$thumbsContainer = $(thumbsContainerSel); this.buildDataFromThumbs(); } // Add this gallery to the global galleries array registerGallery(this); this.numPages = Math.ceil(this.data.length/this.settings.numThumbs); this.currentPage = -1; this.currentIndex = 0; var gallery = this; // Initialize history only once when the first gallery on the page is initialized historyInit(); // Build image var hash = getHash(); var hashGallery = (hash >= 0) ? getGallery(hash) : 0; var gotoIndex = (hashGallery && this == hashGallery) ? (hash-this.offset) : 0; this.goto(gotoIndex); // Kickoff Image Preloader after 1 second setTimeout(function() { gallery.preloadInit(); }, 1000); return this; }; })(jQuery);