(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory():typeof define==='function'&&define.amd?define(factory):(global.ChPaging=factory());}(this,(function(){'use strict';var defaults={first:false,last:false,viewNumber:false,current:1,viewOpt:[10,20,50,100],limit:10,jump:false,viewCountPage:false,viewCountNumber:false,classPrefix:'Ch',txtConfig:{first:'首页',last:'尾页',next:'下一页',prev:'上一页',jumpBtn:'go',jumpTxt:'跳转到{n}页',countPage:"共{n}页",countNumber:'共{n}条',viewNumber:'每页显示{n}条'}};var htmlReload={init:function(myThis){var _o=myThis.o;var html='';if(_o.first){html+=''+_o.txtConfig.first+'';} html+=''+_o.txtConfig.prev+''+_o.txtConfig.next+'';if(_o.last){html+=''+_o.txtConfig.last+'';} if(_o.viewNumber){var opts="";for(var i=0,ed=_o.limit,edStr='',len=_o.viewOpt.length,me;i'+me+'';} html+='';} if(_o.jump){html+='';} if(_o.viewCountPage){html+=''} if(_o.viewCountNumber){html+=''} myThis.$target.html(html);myThis.$pages=myThis.$target.find("#ChPagingBtns");},reloadPages:function(options,$pages,$target){var str='',choose='',i,len,indexLen,pageCount=options.pageCount,current=options.current;$target.find("#ChPagingCount").html(options.txtConfig.countPage.replace(/^(.+)\{n\}(.+)$/,"$1")+pageCount+options.txtConfig.countPage.replace(/^(.+)\{n\}(.+)$/,"$2"));$target.find("#ChPagingCountNumber").html(options.txtConfig.countNumber.replace(/^(.+)\{n\}(.+)$/,"$1")+options.count+options.txtConfig.countNumber.replace(/^(.+)\{n\}(.+)$/,"$2"));if(pageCount>10){indexLen=8;}else{indexLen=10;} if(current>=9){i=current-7;if(current==pageCount){i=current-9;indexLen=10}else if(current==(pageCount-1)){i=current-8;indexLen=9;}}else{i=1;} len=i+indexLen;if(pageCount<10){len=pageCount+1;} for(;i'+i+'';} if(pageCount>10&¤t!=pageCount-1&¤t!=pageCount){str+='...';} if(pageCount>10&¤t!=pageCount){str+=''+pageCount+'';} $pages.html(str);}};var operation={init:function(myThis,restart){var _o=myThis.o;myThis.static.start=(_o.current*_o.limit)-_o.limit+1;var msg={event:"reload",type:"reload"};msg.start=myThis.static.start;msg.end=myThis.static.end;if(_o.count){msg.count=_o.count;} if(_o.current){msg.current=_o.current;} if(_o.limit){msg.limit=_o.limit;} if(_o.xhr){this.xhrReload(myThis,msg);}else{_o.count=_o.data.length;myThis.static.end=_o.limit;htmlReload.init(myThis);this.reloadListCbk(myThis,msg);} if(!restart){this.eventBind(myThis);}},operationReady:function(myThis,m){var _o=myThis.o,msg=m||{event:"default",type:"default"};myThis.static.end=_o.current*_o.limit;myThis.static.end=(_o.count)?(myThis.static.end<=_o.count)?myThis.static.end:_o.count:_o.limit;var a=_o.current*_o.limit;var b=(_o.count)?(myThis.static.end<=_o.count)?myThis.static.end:_o.count:_o.limit;var c=a-b;if(c>0){myThis.static.start=myThis.static.end-_o.limit+c+1;}else{myThis.static.start=myThis.static.end-_o.limit+1;} msg.start=myThis.static.start;msg.end=myThis.static.end;if(_o.count){msg.count=_o.count;} if(_o.current){msg.current=_o.current;} if(_o.limit){msg.limit=_o.limit;} if(_o.operationReady){_o.operationReady(msg);} if(_o.xhr){this.xhrReload(myThis,msg);}else{this.reloadListCbk(myThis,msg);}},xhrReload:function(myThis,msg){var _this=this,_o=myThis.o;$.ajax(_o.xhr).then(function(res){var dataObj=_o.xhrSuccess(res);_o.data=dataObj.data;_o.count=dataObj.count;if(msg.event=="reload"){htmlReload.init(myThis);} _this.reloadListCbk(myThis,msg)});},reloadListCbk:function(myThis,m){var _o=myThis.o,data;this.reloadPages(myThis);if(!_o.xhr){data=[];for(var i=myThis.static.start-1;i_o.pageCount){_o.current=_o.pageCount;} htmlReload.reloadPages(_o,myThis.$pages,myThis.$target);},eventBind:function(myThis){var $myThis=$(myThis),_this=this,_o=myThis.o,eventFn=function(e,msg){_this.operationReady(myThis,msg)},msg={};$myThis.on("jump",eventFn).on("viewNum",eventFn);if(_o.viewNumber){myThis.$target.on("change","#ChPagingViewNum",function(){var $this=$(this),val=$this.val();_o.current=1;_o.limit=val;msg={event:"viewNum",type:"option"};$myThis.trigger("viewNum",[msg]);});} if(_o.jump){myThis.$target.on("click","#ChPagingJumpBtn",function(){var val=$("#ChPagingJumpNum").val();_o.current=val||_o.current;msg={event:"jump",type:"target"};$myThis.trigger("jump",[msg]);});} myThis.$target.on("click","#ChPagingBtns a",function(){var $this=$(this),val=$this.attr("name");if(val==="more"){var index=$this.attr("index");_o.current=index;msg={event:"jump",type:"more"};$myThis.trigger("jump",[msg]);}else{_o.current=val;msg={event:"jump",type:"target"};$myThis.trigger("jump",[msg]);}}).on("click","#ChPagingFirst",function(){if(_o.current==1){return false;} _o.current=1;msg={event:"jump",type:"first"};$myThis.trigger("jump",[msg]);}).on("click","#ChPagingLast",function(){if(_o.current==_o.pageCount){return false;} _o.current=_o.pageCount;msg={event:"jump",type:"last"};$myThis.trigger("jump",[msg]);}).on("click","#ChPagingNext",function(){if(_o.current==_o.pageCount){return false;} _o.current++;msg={event:"jump",type:"next"};$myThis.trigger("jump",[msg]);}).on("click","#ChPagingPrev",function(){if(_o.current==1){return false;} _o.current--;msg={event:"jump",type:"prev"};$myThis.trigger("jump",[msg]);});}};var ChPaging=function(target,options){this.$target=$(target);this.o=$.extend(true,{},defaults,options);this.static={};operation.init(this);};ChPaging.prototype={set:function(options,restart){$.extend(true,this.o,options);if(restart){operation.init(this,restart);}},get:function(str){return this.o[str]||this.static[str];}};return ChPaging;})));