Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

/*!
 * Infinite Ajax Scroll v2.0.0
 * A jQuery plugin for infinite scrolling
 * http://infiniteajaxscroll.com
 *
 * Commercial use requires one-time purchase of a commercial license
 * http://infiniteajaxscroll.com/docs/license.html
 *
 * Non-commercial use is licensed under the MIT License
 *
 * Copyright (c) 2014 Webcreate (Jeroen Fiege)
 */
var IASCallbacks=function(){return this.list=[],this.fireStack=[],this.isFiring=!1,this.add=function(a){return this.list.push(a),this},this.remove=function(a){for(var b;(b=jQuery.inArray(a,this.list,b))>-1;)this.list.splice(b,1);return this},this.has=function(a){return jQuery.inArray(a,this.list)},this.fire=function(a){var b=a[0],c=a[1],d=a[2];this.isFiring=!0;for(var e=0,f=this.list.length;f>e;e++)if(!1===this.list[e].apply(b,d)){c.reject();break}this.isFiring=!1,c.resolve(),this.fireStack.length&&this.fire(this.fireStack.shift())},this.fireWith=function(a,b){var c=$.Deferred();return b=b||[],b=[a,c,b.slice?b.slice():b],this.isFiring?this.fireStack.push(b):this.fire(b),c},this},IASNoneLeftExtension=function(a){return a=$.extend({},this.defaults,a),this.ias=null,this.uid=(new Date).getTime(),this.text=a.text,this.html=a.html,this.html=this.html.replace("{text}",this.text),this.showNoneLeft=function(){var a=$(this.html).attr("id","ias_noneleft_"+this.uid),b=this.ias.getLastItem();b.after(a),a.fadeIn()},this};IASNoneLeftExtension.prototype.bind=function(a){this.ias=a,a.on("noneLeft",$.proxy(this.showNoneLeft,this))},IASNoneLeftExtension.prototype.defaults={text:"You reached the end.",html:'<div class="ias-noneleft" style="text-align: center;">{text}</div>'};var IASPagingExtension=function(){return this.ias=null,this.currentScrollOffset=0,this.pagebreaks=[[0,document.location.toString()]],this.lastPageNum=1,this.listeners={pageChange:new IASCallbacks},this.onScroll=function(a){var b,c=this.getCurrentPageNum(a),d=this.getCurrentPagebreak(a);this.currentScrollOffset=a,this.lastPageNum!==c&&(b=d[1],this.ias.fire("pageChange",[c,a,b])),this.lastPageNum=c},this.onNext=function(a){this.pagebreaks.push([this.currentScrollOffset,a]);var b=this.getCurrentPageNum(this.currentScrollOffset)+1;this.ias.fire("pageChange",[b,this.currentScrollOffset,a]),this.lastPageNum=b},this};IASPagingExtension.prototype.bind=function(a){this.ias=a,a.on("next",$.proxy(this.onNext,this)),a.on("scroll",$.proxy(this.onScroll,this)),jQuery.extend(a.listeners,this.listeners)},IASPagingExtension.prototype.getCurrentPageNum=function(a){for(var b=this.pagebreaks.length-1;b>0;b--)if(a>this.pagebreaks[b][0])return b+1;return 1},IASPagingExtension.prototype.getCurrentPagebreak=function(a){for(var b=this.pagebreaks.length-1;b>=0;b--)if(a>this.pagebreaks[b][0])return this.pagebreaks[b];return null};var IASSpinnerExtension=function(a){return a=$.extend({},this.defaults,a),this.ias=null,this.uid=(new Date).getTime(),this.src=a.src,this.html=a.html,this.html=this.html.replace("{src}",this.src),this.showSpinner=function(){var a=this.getSpinner()||this.createSpinner(),b=this.ias.getLastItem();b.after(a),a.fadeIn()},this.removeSpinner=function(){this.hasSpinner()&&this.getSpinner().remove()},this.getSpinner=function(){var a=$("#ias_spinner_"+this.uid);return a.size()>0?a:!1},this.hasSpinner=function(){var a=$("#ias_spinner_"+this.uid);return a.size()>0},this.createSpinner=function(){var a=$(this.html).attr("id","ias_spinner_"+this.uid);return a.hide(),a},this};IASSpinnerExtension.prototype.bind=function(a){this.ias=a,a.on("next",$.proxy(this.showSpinner,this)),a.on("render",$.proxy(this.removeSpinner,this))},IASSpinnerExtension.prototype.defaults={src:"data:image/gif;base64,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",html:'<div class="ias-spinner" style="text-align: center;"><img src="{src}"/></div>'};var IASTriggerExtension=function(a){return a=$.extend({},this.defaults,a),this.ias=null,this.uid=(new Date).getTime(),this.text=a.text,this.html=a.html,this.enabled=!0,this.count=0,this.offset=a.offset,this.html=this.html.replace("{text}",this.text),this.showTrigger=function(){if(!this.enabled)return!0;if(this.offset&&++this.count<this.offset)return!0;var a=this.getTrigger()||this.createTrigger(),b=this.ias.getLastItem();return b.after(a),a.fadeIn(),!1},this.removeTrigger=function(){this.hasTrigger()&&this.getTrigger().remove()},this.getTrigger=function(){var a=$("#ias_trigger_"+this.uid);return a.size()>0?a:!1},this.hasTrigger=function(){var a=$("#ias_trigger_"+this.uid);return a.size()>0},this.createTrigger=function(){var a=$(this.html).attr("id","ias_trigger_"+this.uid);return a.hide(),a.on("click",$.proxy(this.next,this)),a},this};IASTriggerExtension.prototype.bind=function(a){var b=this;this.ias=a,this.ias.on("next",$.proxy(this.showTrigger,this)),this.ias.on("render",function(){b.enabled=!0})},IASTriggerExtension.prototype.next=function(){this.enabled=!1,this.ias.unbind(),this.removeTrigger(),this.ias.next()},IASTriggerExtension.prototype.defaults={text:"Load more items",html:'<div class="ias-trigger" style="text-align: center; cursor: pointer;"><a>{text}</a></div>',offset:0},function(a){"use strict";var b=-1,c=function(c,d){return this.itemsContainerSelector=d.container,this.itemSelector=d.item,this.nextSelector=d.next,this.paginationSelector=d.pagination,this.$scrollContainer=c,this.$itemsContainer=a(this.itemsContainerSelector),this.$container=window===c.get(0)?a(document):c,this.defaultDelay=d.delay,this.negativeMargin=d.negativeMargin,this.nextUrl=null,this.isBound=!1,this.listeners={next:new IASCallbacks,load:new IASCallbacks,didLoad:new IASCallbacks,render:new IASCallbacks,scroll:new IASCallbacks,noneLeft:new IASCallbacks},this.extensions=[],this.scrollHandler=function(){var a=this.getCurrentScrollOffset(this.$scrollContainer),c=this.getScrollThreshold();this.isBound&&b!=c&&(this.fire("scroll",[a,c]),a>=c&&this.next())},this.getLastItem=function(){return a(this.itemSelector,this.$itemsContainer.get(0)).last()},this.getScrollThreshold=function(a){var c;return a=a||this.negativeMargin,a=a>=0?-1*a:a,c=this.getLastItem(),0===c.size()?b:c.offset().top+c.height()+a},this.getCurrentScrollOffset=function(a){var b=0,c=a.height();return b=window===a.get(0)?a.scrollTop():a.offset().top,(-1!=navigator.platform.indexOf("iPhone")||-1!=navigator.platform.indexOf("iPod"))&&(c+=80),b+c},this.getNextUrl=function(b){return b||(b=this.$container),a(this.nextSelector,b).last().attr("href")},this.load=function(b,c,d){var e,f,g=this,h=[],i=+new Date;return d=d||this.defaultDelay,a.get(b,null,a.proxy(function(b){e=a(this.itemsContainerSelector,b).eq(0),0===e.length&&(e=a(b).filter(this.itemsContainerSelector).eq(0)),e&&e.find(this.itemSelector).each(function(){h.push(this)}),g.fire("load",[b,h]),c&&(f=+new Date-i,d>f?setTimeout(function(){c.call(g,b,h)},d-f):c.call(g,b,h))},g),"html")},this.render=function(b){var c=this.getLastItem();this.fire("render",[b]),a(b).hide(),c.after(b),a(b).fadeIn()},this.hidePagination=function(){this.paginationSelector&&a(this.paginationSelector,this.$container).hide()},this.restorePagination=function(){this.paginationSelector&&a(this.paginationSelector,this.$container).show()},this.throttle=function(b,c){var d,e,f=0;return d=function(){function a(){f=+new Date,b.apply(d,g)}var d=this,g=arguments,h=+new Date-f;e?clearTimeout(e):a(),h>c?a():e=setTimeout(a,c)},a.guid&&(d.guid=b.guid=b.guid||a.guid++),d},this.fire=function(a,b){return this.listeners[a].fireWith(this,b)},this};c.prototype.initialize=function(){var a=this.getCurrentScrollOffset(this.$scrollContainer),b=this.getScrollThreshold();return this.hidePagination(),this.bind(),this.nextUrl=this.getNextUrl(),a>=b&&this.next(),this},c.prototype.bind=function(){this.isBound||(this.$scrollContainer.on("scroll",a.proxy(this.throttle(this.scrollHandler,150),this)),this.isBound=!0)},c.prototype.unbind=function(){this.isBound&&(this.$scrollContainer.off("scroll",this.scrollHandler),this.isBound=!1)},c.prototype.destroy=function(){this.unbind()},c.prototype.on=function(b,c){if("undefined"==typeof this.listeners[b])throw new Error('There is no event called "'+b+'"');return this.listeners[b].add(a.proxy(c,this)),this},c.prototype.off=function(a,b){if("undefined"==typeof this.listeners[a])throw new Error('There is no event called "'+a+'"');return this.listeners[a].remove(b),this},c.prototype.next=function(){var a=this.nextUrl,b=this;if(this.unbind(),!a)return this.fire("noneLeft",[this.getLastItem()]),!1;var c=this.fire("next",[a]);return c.done(function(){b.load(a,function(a,c){b.render(c),b.nextUrl=b.getNextUrl(a),b.bind()})}),c.fail(function(){b.bind()}),!0},c.prototype.extension=function(a){if("undefined"==typeof a.bind)throw new Error('Extension doesn\'t have required method "bind"');return a.bind(this),this.extensions.push(a),this},a.ias=function(){var b=a(window);return b.ias.apply(b,arguments)},a.fn.ias=function(b){var d=Array.prototype.slice.call(arguments),e=this;return this.each(function(){var f=a(this),g=f.data("ias"),h=a.extend({},a.fn.ias.defaults,f.data(),"object"==typeof b&&b);if(g||(f.data("ias",g=new c(f,h)),a(document).ready(a.proxy(g.initialize,g))),"string"==typeof b){if("function"!=typeof g[b])throw new Error('There is no method called "'+b+'"');d.shift(),g[b].apply(g,d),"destroy"===b&&f.data("ias",null)}e=f.data("ias")}),e},a.fn.ias.defaults={item:".item",container:".listing",next:".next",pagination:!1,delay:600,negativeMargin:10}}(jQuery);