(function($){ var glo_obj,glo_opts; $.fn.scrollPagination=function(options){ var opts=$.extend($.fn.scrollPagination.defaults,options); var target=opts.scrollTarget; if(target==null){ target=obj;} opts.scrollTarget=target; return this.each(function(){ $.fn.scrollPagination.init($(this),opts);});}; $.fn.stopScrollPagination=function(){ return this.each(function(){ $(this).attr('scrollPagination','disabled');});}; $.fn.restartScrollPagination=function(){ $.fn.scrollPagination.loadContent(glo_obj,glo_opts); this.each(function(){ $(this).attr('scrollPagination','enabled');});}; $.fn.enableScrollPagination=function(){ this.each(function(){ $(this).attr('scrollPagination','enabled');});}; $.fn.scrollPagination.loadContent=function(obj,opts,isFisLoad){ var target=opts.scrollTarget; var a=$(target).scrollTop(); var b=$(document).height(); var c=$(target).height(); var mayLoadContent=$(target).scrollTop()+opts.heightOffset>=$(document).height()-$(target).height(); if(mayLoadContent){ if(opts.beforeLoad!=null){ if(!opts.beforeLoad()) return;} $(obj).children().attr('rel','loaded'); $.ajax({ type:'GET', url:opts.contentPage, data:opts.contentData, success:function(data){ $(obj).append(data); opts.childSum=$(obj).children().size() var objectsRendered=$(obj).children('[rel!=loaded]'); if(opts.afterLoad!=null){ if(opts.afterLoad(objectsRendered,isFisLoad)) return; if((opts.childSum/opts.contentData.pcount)%3==0&&opts.funforarest()){ return;} if(00?1:0); $.fn.scrollPagination.loadContent(obj,opts);}}}, error:function(httpRequest,textStatus,errorThrown){ if(opts.errorHandler!=null) opts.errorHandler(textStatus);}, dataType:'html', timeout:opts.maxWaitTime});}}; $.fn.scrollPagination.init=function(obj,opts){ glo_obj=obj; glo_opts=opts; var target=opts.scrollTarget; $(obj).attr('scrollPagination','enabled'); $(target).unbind('scroll'); $(target).bind('scroll',(function(event){ if($(obj).attr('scrollPagination')=='enabled'){ $.fn.scrollPagination.loadContent(glo_obj,glo_opts);} else{ event.stopPropagation();}})); $.fn.scrollPagination.loadContent(glo_obj,glo_opts,true);}; $.fn.scrollPagination.defaults={ 'contentPage':null, 'contentData':{}, 'beforeLoad':null, 'afterLoad':null, 'errorHandler':null, 'scrollTarget':null, 'heightOffset':0, 'childSum':0, 'waiting':0, 'maxWaitTime':15000, 'isRunning':false};})(jQuery);