/*! * jQuery pagination plugin v1.2.3 * http://esimakin.github.io/twbs-pagination/ * * Copyright 2014, Eugene Simakin * Released under Apache 2.0 license * http://apache.org/licenses/LICENSE-2.0.html */ ;(function(e,t,n,r){"use strict";var i=e.fn.twbsPagination;var s=function(t,n){this.$element=e(t);this.options=e.extend({},e.fn.twbsPagination.defaults,n);if(this.options.startPage<1||this.options.startPage>this.options.totalPages){throw new Error("Start page option is incorrect")}this.options.totalPages=parseInt(this.options.totalPages);if(isNaN(this.options.totalPages)){throw new Error("Total pages option is not correct!")}this.options.visiblePages=parseInt(this.options.visiblePages);if(isNaN(this.options.visiblePages)){throw new Error("Visible pages option is not correct!")}if(this.options.totalPages")}this.$listContainer.addClass(this.options.paginationClass);if(r!=="UL"){this.$element.append(this.$listContainer)}this.render(this.getPages(this.options.startPage));this.setupEvents();return this};s.prototype={constructor:s,destroy:function(){this.$element.empty();this.$element.removeData("twbs-pagination");this.$element.unbind("page");return this},show:function(e){if(e<1||e>this.options.totalPages){throw new Error("Page is incorrect.")}this.render(this.getPages(e));this.setupEvents();this.$element.trigger("page",e);return this},buildListItems:function(t){var n=e();if(this.options.first){n=n.add(this.buildItem("first",1,this.options.firstClass))}if(this.options.prev){var r=t.currentPage>1?t.currentPage-1:this.options.loop?this.options.totalPages:1;n=n.add(this.buildItem("prev",r,this.options.prevClass))}for(var i=0;i"),s=e(""),o=null;i.addClass(r);i.data("page",n);switch(t){case"page":o=n;break;case"first":o=this.options.first;break;case"prev":o=this.options.prev;break;case"next":o=this.options.next;break;case"last":o=this.options.last;break;default:break}i.append(s.attr("href",this.href(n)).html(o));return i},getPages:function(e){var t=[];var n=Math.floor(this.options.visiblePages/2);var r=e-n+1-this.options.visiblePages%2;var i=e+n;if(r<=0){r=1;i=this.options.visiblePages}if(i>this.options.totalPages){r=this.options.totalPages-this.options.visiblePages+1;i=this.options.totalPages}var s=r;while(s<=i){t.push(s);s++}return{currentPage:e,numeric:t}},render:function(t){this.$listContainer.children().remove();this.$listContainer.append(this.buildListItems(t));this.$listContainer.find("."+this.options.pageClass).removeClass(this.options.activeClass).filter(function(){return e(this).data("page")===t.currentPage}).addClass(this.options.activeClass);this.$listContainer.find("."+this.options.firstClass).toggleClass(this.options.disabledClass,t.currentPage===1);this.$listContainer.find("."+this.options.lastClass).toggleClass(this.options.disabledClass,t.currentPage===this.options.totalPages);this.$listContainer.find("."+this.options.prevClass).toggleClass(this.options.disabledClass,!this.options.loop&&t.currentPage===1);this.$listContainer.find("."+this.options.nextClass).toggleClass(this.options.disabledClass,!this.options.loop&&t.currentPage===this.options.totalPages)},setupEvents:function(){var t=this;this.$listContainer.find("li").each(function(){var n=e(this);n.off();if(n.hasClass(t.options.disabledClass)||n.hasClass(t.options.activeClass))return;n.click(function(e){!t.options.href&&e.preventDefault();t.show(parseInt(n.data("page"),10))})})},href:function(e){return this.options.href?this.options.href.replace(this.options.hrefVariable,e):"#"}};e.fn.twbsPagination=function(t){var n=Array.prototype.slice.call(arguments,1);var i;var o=e(this);var u=o.data("twbs-pagination");var a=typeof t==="object"&&t;if(!u)o.data("twbs-pagination",u=new s(this,a));if(typeof t==="string")i=u[t].apply(u,n);return i===r?o:i};e.fn.twbsPagination.defaults={totalPages:0,startPage:1,visiblePages:5,href:false,hrefVariable:"{{number}}",first:"First",prev:"Previous",next:"Next",last:"Last",loop:false,onPageClick:null,paginationClass:"pagination",nextClass:"next",prevClass:"prev",lastClass:"last",firstClass:"first",pageClass:"page",activeClass:"active",disabledClass:"disabled"};e.fn.twbsPagination.Constructor=s;e.fn.twbsPagination.noConflict=function(){e.fn.twbsPagination=i;return this}})(jQuery,window,document);