// jquery.page version 0.8.1
(function($){$.fn.page=function(options){var params=$.extend({},defaultParams,options);return this.each(function(){this.params=params;var that=this;if($.isFunction(this.params.loading)){this.params.loading.apply(this);};$.event.trigger('paging-loading',[this]);if($(this).children().length>this.params.items||this.params.itemOptions!==false){this.data={currentPage:1};this.$container=$(this).find('.container');if(this.params.navHTML){$(this).parent().append(this.params.navHTML);}else{$(this).parent()[that.params.navLocation==='bottom'?'append':'prepend'](['<div class="pagingSelector">',' <div class="pagingSelector-left move"><a href="#prev" class="prev"><span></span>'+this.params.prevText+'</a></div>',' <div class="pagingSelector-mid"></div>',' <div class="pagingSelector-right move"><a href="#next" class="next">'+this.params.nextText+'<span></span></a></div>','</div>',].join(''));};this.selector={left:$(this).parent().find('.pagingSelector-left'),mid:$(this).parent().find('.pagingSelector-mid'),right:$(this).parent().find('.pagingSelector-right'),select:false};if(this.params.itemOptions!==false){$(this).parent().find('.pagingSelector').append('<select class="pagingSelector-itemOptions"></select>');this.selector.select=$(this).parent().find('.pagingSelector-itemOptions');var itemSelector='';var options=this.params.itemOptions.split('|');$.each(options,function(i,v){if(parseInt(v)===that.params.items){itemSelector+='<option value="'+v+'" selected="selected">'+v+'</option>';}else{itemSelector+='<option value="'+v+'">'+v+'</option>';};});that.selector.select.append(itemSelector);};$(this).before($(this).clone(true).html(''));this.$target=$(this).prev();$(this).css({display:'none'}).appendTo($(this).parent().find('.pagingSelector'));if($.isFunction(this.params.created)){params.created.apply(this);};$.event.trigger('paging-created');this.data.totalPages=calcPages.apply(this);numberPages.apply(this);populate.apply(this,[1]);$(this).parent().find('div.move a').click(function(event){event.preventDefault();if($(this).hasClass('next')){populate.apply(that,[that.data.currentPage+1]);}else if($(this).hasClass('prev')){populate.apply(that,[that.data.currentPage-1]);};});$(this).parent().delegate('.pageLink','click',function(event){event.preventDefault();populate.apply(that,[parseInt($(this).text())]);});if(this.params.itemOptions!==false){this.selector.select.change(function(){that.params.items=parseInt($(this).val());that.data.totalPages=calcPages.call(that);numberPages.apply(that);populate.apply(that,[1]);});};if($.isFunction(this.params.events)){this.params.events.apply(this);};$.event.trigger('paging-events');};this.populate=populate;if($.isFunction(this.params.loaded)){this.params.loaded.apply(this);};$.event.trigger('paging-loaded');});};var populate=function(page){if(typeof(page)==='undefined'){page=1;};if(page>0&&page<=this.data.totalPages){if($.isFunction(this.params.populating)){this.params.populating.apply(this,[this.$target]);};$.event.trigger('paging-populating');if(page===1){this.selector.left.addClass('pagingSelector-disabled');this.selector.right.removeClass('pagingSelector-disabled');}else if(page===this.data.totalPages){this.selector.left.removeClass('pagingSelector-disabled');this.selector.right.addClass('pagingSelector-disabled');}else{this.selector.left.removeClass('pagingSelector-disabled');this.selector.right.removeClass('pagingSelector-disabled');};if(typeof(this.pageNumber)!=='undefined'){this.pageNumber.text(page);};if($(this).parent().find('.pageLink').length>0){$(this).parent().find('.pageLink.active').removeClass('active');$(this).parent().find('.pageLink:eq('+(page-1)+')').addClass('active');};this.$target.html('');if($.isFunction(this.params.sort)){var set=this.params.sort.apply(this,[$(this).children().clone(true)]);if(typeof(set)==='undefined'){set=$(this).children().clone(true);}else{this.data.totalPages=recalculatePages.apply(this,[set.length]);numberPages.apply(this,[]);};if(typeof(this.pageNumber)!=='undefined'){this.selector.mid.find('.pageTotal').text(this.data.totalPages);};}else{var set=$(this).children().clone(true);};$.event.trigger('paging-sorted');for(i=(page*this.params.items)-this.params.items;i<((page+1)*this.params.items)-this.params.items;i++){this.$target.append($(set[i]));};if(set.length<=this.params.items){this.selector.right.addClass('pagingSelector-disabled');};this.data.currentPage=page;if($.isFunction(this.params.populated)){this.params.populated.apply(this,[this.$target]);};$.event.trigger('paging-populated');};};var recalculatePages=function(collectionSize){var children=collectionSize;var pages=children/this.params.items;var trunc=parseInt(pages);if(pages>trunc){return trunc+1}else{return pages;};};var calcPages=function(){var children=$(this).children().length;var pages=children/this.params.items;var trunc=parseInt(pages);if(pages>trunc){return trunc+1}else{return pages;};};var numberPages=function(){switch(this.params.type){case'total':this.selector.mid.html('<span class="thisPage"></span> of <span class="pageTotal"></span>');this.pageNumber=this.selector.mid.find('.thisPage');this.selector.mid.find('.pageTotal').text(this.data.totalPages);break;case'pageList':this.selector.mid.html('');for(i=1;i<=this.data.totalPages;i++){this.selector.mid.append('<a href="#'+i+'" class="pageLink">'+i+'</a>');};break;};};var defaultParams={prevText:'Previous',nextText:'Next',type:'pageList',items:10,navHTML:false,itemOptions:false,navHTML:false,navLocation:'bottom'};})(jQuery);
