/** * jQuery pagination plugin v1.1.1 * 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);this.init(this.options)};s.prototype={constructor:s,init:function(t){this.options=e.extend({},this.options,t);if(this.options.startPage<1||this.options.startPage>this.options.totalPages){throw new Error("Start page option is incorrect")}if(this.options.totalPages<=0){throw new Error("Total pages option cannot be less 1 (one)!")}if(this.options.totalPages")}this.$listContainer.addClass(this.options.paginationClass);if(n!=="UL"){this.$element.append(this.$listContainer)}this.render(this.getPages(this.options.startPage));this.setupEvents();this.$element.trigger("page",this.options.startPage);return this},destroy:function(){this.$element.empty();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))}if(this.options.prev){var r=t.currentPage>1?t.currentPage-1:1;n=n.add(this.buildItem("prev",r))}for(var i=0;i=this.options.totalPages?this.options.totalPages:t.currentPage+1;n=n.add(this.buildItem("next",s))}if(this.options.last){n=n.add(this.buildItem("last",this.options.totalPages))}return n},buildItem:function(t,n){var r=e("
  • "),i=e(""),s=null;r.addClass(t);r.data("page",n);switch(t){case"page":s=n;break;case"first":s=this.options.first;break;case"prev":s=this.options.prev;break;case"next":s=this.options.next;break;case"last":s=this.options.last;break;default:break}r.append(i.attr("href",this.href(n)).html(s));return r},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(".page").removeClass("active");this.$listContainer.find(".page").filter(function(){return e(this).data("page")===t.currentPage}).addClass("active");if(t.currentPage===1){this.$listContainer.find(".prev a,.first a").attr("href","javascript:void(0);")}if(t.currentPage===this.options.totalPages){this.$listContainer.find(".next a,.last a").attr("href","javascript:void(0);")}this.$listContainer.find(".first").toggleClass("disabled",t.currentPage===1);this.$listContainer.find(".last").toggleClass("disabled",t.currentPage===this.options.totalPages);this.$listContainer.find(".prev").toggleClass("disabled",t.currentPage===1);this.$listContainer.find(".next").toggleClass("disabled",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("disabled")||n.hasClass("active"))return;n.click(function(){t.show(parseInt(n.data("page"),10))})})},equals:function(e,t){var n=0;while(n