1/*!* Infinite Ajax Scroll v2.2.1* 2 * A jQuery plugin for infinite scrolling 3 * 4 * http://infiniteajaxscroll.com 5 * Commercial use requires one-time purchase of a commercial license 6 * http://infiniteajaxscroll.com/docs/license.html 7 * Non-commercial use is licensed under the MIT License 8 * Copyright (c) 2015 Webcreate (Jeroen Fiege) 9 * */ 10var IASCallbacks = function () { 11 return this.list = [], this.fireStack = [], this.isFiring = !1, this.isDisabled = !1, this.fire = function (a) { 12 var b = a[0], 13 c = a[1], 14 d = a[2]; 15 this.isFiring = !0; 16 for (var e = 0, f = this.list.length; f > e; e++) 17 if (void 0 != this.list[e] && !1 === this.list[e].fn.apply(b, d)) { 18 c.reject(); 19 break 20 } 21 this.isFiring = !1, c.resolve(), this.fireStack.length && this.fire(this.fireStack.shift()) 22 }, this.inList = function (a, b) { 23 b = b || 0; 24 for (var c = b, d = this.list.length; d > c; c++) 25 if (this.list[c].fn === a || a.guid && this.list[c].fn.guid && a.guid === this.list[c].fn.guid) 26 return c; 27 return -1 28 }, this 29}; 30IASCallbacks.prototype = { 31 add: function (a, b) { 32 var c = { 33 fn: a, 34 priority: b 35 }; 36 b = b || 0; 37 for (var d = 0, e = this.list.length; e > d; d++) 38 if (b > this.list[d].priority) 39 return this.list.splice(d, 0, c), this; 40 return this.list.push(c), this 41 }, 42 remove: function (a) { 43 for (var b = 0; 44 (b = this.inList(a, b)) > - 1; ) 45 this.list.splice(b, 1); 46 return this 47 }, 48 has: function (a) { 49 return this.inList(a) > -1 50 }, 51 fireWith: function (a, b) { 52 var c = jQuery.Deferred(); 53 return this.isDisabled ? c.reject() : (b = b || [], b = [a, c, b.slice ? b.slice() : b], this.isFiring ? this.fireStack.push(b) : this.fire(b), c) 54 }, 55 disable: function () { 56 this.isDisabled = !0 57 }, 58 enable: function () { 59 this.isDisabled = !1 60 } 61}, 62function (a) { 63 "use strict"; 64 var b = -1, 65 c = function (c, d) { 66 return this.itemsContainerSelector = d.container, this.itemSelector = d.item, this.nextSelector = d.next, this.paginationSelector = d.pagination, this.$scrollContainer = c, this.$container = window === c.get(0) ? a(document) : c, this.defaultDelay = d.delay, this.negativeMargin = d.negativeMargin, this.nextUrl = null, this.isBound = !1, this.isPaused = !1, this.isInitialized = !1, this.listeners = { 67 next: new IASCallbacks, 68 load: new IASCallbacks, 69 loaded: new IASCallbacks, 70 render: new IASCallbacks, 71 rendered: new IASCallbacks, 72 scroll: new IASCallbacks, 73 noneLeft: new IASCallbacks, 74 ready: new IASCallbacks 75 }, this.extensions = [], this.scrollHandler = function () { 76 if (this.isBound && !this.isPaused) { 77 var a = this.getCurrentScrollOffset(this.$scrollContainer), 78 c = this.getScrollThreshold(); 79 b != c && (this.fire("scroll", [a, c]), a >= c && this.next()) 80 } 81 }, this.getItemsContainer = function () { 82 return a(this.itemsContainerSelector) 83 }, this.getLastItem = function () { 84 return a(this.itemSelector, this.getItemsContainer().get(0)).last() 85 }, this.getFirstItem = function () { 86 return a(this.itemSelector, this.getItemsContainer().get(0)).first() 87 }, this.getScrollThreshold = function (a) { 88 var c; 89 return a = a || this.negativeMargin, a = a >= 0 ? -1 * a : a, c = this.getLastItem(), 0 === c.length ? b : c.offset().top + c.height() + a 90 }, this.getCurrentScrollOffset = function (a) { 91 var b = 0, 92 c = a.height(); 93 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 94 }, this.getNextUrl = function (b) { 95 return b = b || this.$container, a(this.nextSelector, b).last().attr("href") 96 }, this.load = function (b, c, d) { 97 var e, f, g = this, 98 h = [], 99 i = +new Date; 100 d = d || this.defaultDelay; 101 var j = { 102 url: b 103 }; 104 return g.fire("load", [j]), a.get(j.url, null, a.proxy(function (b) { 105 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 () { 106 h.push(this) 107 }), g.fire("loaded", [b, h]), c && (f = +new Date - i, d > f ? setTimeout(function () { 108 c.call(g, b, h) 109 }, d - f) : c.call(g, b, h)) 110 }, g), "html") 111 }, this.render = function (b, c) { 112 var d = this, 113 e = this.getLastItem(), 114 f = 0, 115 g = this.fire("render", [b]); 116 g.done(function () { 117 a(b).hide(), e.after(b), a(b).fadeIn(400, function () { 118 ++f < b.length || (d.fire("rendered", [b]), c && c()) 119 }) 120 }) 121 }, this.hidePagination = function () { 122 this.paginationSelector && a(this.paginationSelector, this.$container).hide() 123 }, this.restorePagination = function () { 124 this.paginationSelector && a(this.paginationSelector, this.$container).show() 125 }, this.throttle = function (b, c) { 126 var d, e, f = 0; 127 return d = function () { 128 function a() { 129 f = +new Date, b.apply(d, g) 130 } 131 var d = this, 132 g = arguments, 133 h = +new Date - f; 134 e ? clearTimeout(e) : a(), h > c ? a() : e = setTimeout(a, c) 135 }, a.guid && (d.guid = b.guid = b.guid || a.guid++), d 136 }, this.fire = function (a, b) { 137 return this.listeners[a].fireWith(this, b) 138 }, this.pause = function () { 139 this.isPaused = !0 140 }, this.resume = function () { 141 this.isPaused = !1 142 }, this 143 }; 144 c.prototype.initialize = function () { 145 if (this.isInitialized) 146 return !1;
147 var a = !!("onscroll" in this.$scrollContainer.get(0)), 148 b = this.getCurrentScrollOffset(this.$scrollContainer), 149 c = this.getScrollThreshold(); 150 return a ? (this.hidePagination(), this.bind(), this.fire("ready"), this.nextUrl = this.getNextUrl(), b >= c ? (this.next(), this.one("rendered", function () { 151 this.isInitialized = !0 152 })) : this.isInitialized = !0, this) : !1 153 }, c.prototype.reinitialize = function () { 154 this.isInitialized = !1, this.unbind(), this.initialize() 155 }, c.prototype.bind = function () { 156 if (!this.isBound) { 157 this.$scrollContainer.on("scroll", a.proxy(this.throttle(this.scrollHandler, 150), this)); 158 for (var b = 0, c = this.extensions.length; c > b; b++) 159 this.extensions[b].bind(this); 160 this.isBound = !0, this.resume() 161 } 162 }, c.prototype.unbind = function () { 163 if (this.isBound) { 164 this.$scrollContainer.off("scroll", this.scrollHandler); 165 for (var a = 0, b = this.extensions.length; b > a; a++) 166 "undefined" != typeof this.extensions[a].unbind && this.extensions[a].unbind(this); 167 this.isBound = !1 168 } 169 }, c.prototype.destroy = function () { 170 this.unbind(), this.$scrollContainer.data("ias", null) 171 }, c.prototype.on = function (b, c, d) { 172 if ("undefined" == typeof this.listeners[b]) 173 throw new Error('There is no event called "' + b + '"'); 174 return d = d || 0, this.listeners[b].add(a.proxy(c, this), d), this 175 }, c.prototype.one = function (a, b) { 176 var c = this, 177 d = function () { 178 c.off(a, b), c.off(a, d) 179 }; 180 return this.on(a, b), this.on(a, d), this 181 }, c.prototype.off = function (a, b) { 182 if ("undefined" == typeof this.listeners[a]) 183 throw new Error('There is no event called "' + a + '"'); 184 return this.listeners[a].remove(b), this 185 }, c.prototype.next = function () { 186 var a = this.nextUrl, 187 b = this; 188 if (this.pause(), !a) 189 return this.fire("noneLeft", [this.getLastItem()]), this.listeners.noneLeft.disable(), b.resume(), !1; 190 var c = this.fire("next", [a]); 191 return c.done(function () { 192 b.load(a, function (a, c) { 193 b.render(c, function () { 194 b.nextUrl = b.getNextUrl(a), b.resume() 195 }) 196 }) 197 }), c.fail(function () { 198 b.resume() 199 }), !0 200 }, c.prototype.extension = function (a) { 201 if ("undefined" == typeof a.bind) 202 throw new Error('Extension doesn\'t have required method "bind"'); 203 return "undefined" != typeof a.initialize && a.initialize(this), this.extensions.push(a), this.isInitialized && this.reinitialize(), this 204 }, a.ias = function (b) { 205 var c = a(window); 206 return c.ias.apply(c, arguments) 207 }, a.fn.ias = function (b) { 208 var d = Array.prototype.slice.call(arguments), 209 e = this; 210 return this.each(function () { 211 var f = a(this), 212 g = f.data("ias"), 213 h = a.extend({}, a.fn.ias.defaults, f.data(), "object" == typeof b && b); 214 if (g || (f.data("ias", g = new c(f, h)), a(document).ready(a.proxy(g.initialize, g))), "string" == typeof b) { 215 if ("function" != typeof g[b]) 216 throw new Error('There is no method called "' + b + '"'); 217 d.shift(), g[b].apply(g, d) 218 } 219 e = g 220 }), e 221 }, a.fn.ias.defaults = { 222 item: ".item", 223 container: ".listing", 224 next: ".next", 225 pagination: !1, 226 delay: 600, 227 negativeMargin: 10 228 } 229}(jQuery); 230var IASHistoryExtension = function (a) { 231 return a = jQuery.extend({}, this.defaults, a), this.ias = null, this.prevSelector = a.prev, this.prevUrl = null, this.listeners = { 232 prev: new IASCallbacks 233 }, this.onPageChange = function (a, b, c) { 234 if (window.history && window.history.replaceState) { 235 var d = history.state; 236 history.replaceState(d, document.title, c) 237 } 238 }, this.onScroll = function (a, b) {
239 var c = this.getScrollThresholdFirstItem(); 240 this.prevUrl && (a -= this.ias.$scrollContainer.height(), c >= a && this.prev()) 241 }, this.onReady = function () { 242 var a = this.ias.getCurrentScrollOffset(this.ias.$scrollContainer), 243 b = this.getScrollThresholdFirstItem(); 244 a -= this.ias.$scrollContainer.height(), b >= a && this.prev() 245 }, this.getPrevUrl = function (a) { 246 return a || (a = this.ias.$container), jQuery(this.prevSelector, a).last().attr("href") 247 }, this.getScrollThresholdFirstItem = function () { 248 var a; 249 return a = this.ias.getFirstItem(), 0 === a.length ? -1 : a.offset().top 250 }, this.renderBefore = function (a, b) { 251 var c = this.ias, 252 d = c.getFirstItem(), 253 e = 0; 254 c.fire("render", [a]), jQuery(a).hide(), d.before(a), jQuery(a).fadeIn(400, function () { 255 ++e < a.length || (c.fire("rendered", [a]), b && b()) 256 }) 257 }, this 258}; 259IASHistoryExtension.prototype.initialize = function (a) { 260 var b = this; 261 this.ias = a, jQuery.extend(a.listeners, this.listeners), a.prev = function () { 262 return b.prev() 263 }, this.prevUrl = this.getPrevUrl() 264}, IASHistoryExtension.prototype.bind = function (a) { 265 a.on("pageChange", jQuery.proxy(this.onPageChange, this)), a.on("scroll", jQuery.proxy(this.onScroll, this)), a.on("ready", jQuery.proxy(this.onReady, this)) 266}, IASHistoryExtension.prototype.unbind = function (a) { 267 a.off("pageChange", this.onPageChange), a.off("scroll", this.onScroll), a.off("ready", this.onReady) 268}, IASHistoryExtension.prototype.prev = function () { 269 var a = this.prevUrl, 270 b = this, 271 c = this.ias; 272 if (!a) 273 return !1; 274 c.pause(); 275 var d = c.fire("prev", [a]); 276 return d.done(function () { 277 c.load(a, function (a, d) { 278 b.renderBefore(d, function () { 279 b.prevUrl = b.getPrevUrl(a), c.resume(), b.prevUrl && b.prev() 280 }) 281 }) 282 }), d.fail(function () { 283 c.resume() 284 }), !0 285}, IASHistoryExtension.prototype.defaults = { 286 prev: ".prev" 287}; 288var IASNoneLeftExtension = function (a) { 289 return a = jQuery.extend({}, this.defaults, a), this.ias = null, this.uid = (new Date).getTime(), this.html = a.html.replace("{text}", a.text), this.showNoneLeft = function () { 290 var a = jQuery(this.html).attr("id", "ias_noneleft_" + this.uid), 291 b = this.ias.getLastItem(); 292 b.after(a), a.fadeIn() 293 }, this 294}; 295IASNoneLeftExtension.prototype.bind = function (a) { 296 this.ias = a, a.on("noneLeft", jQuery.proxy(this.showNoneLeft, this)) 297}, IASNoneLeftExtension.prototype.unbind = function (a) { 298 a.off("noneLeft", this.showNoneLeft) 299}, IASNoneLeftExtension.prototype.defaults = { 300 text: "You reached the end.", 301 html: '<div class="ias-noneleft" style="text-align: center;">{text}</div>' 302}; 303var IASPagingExtension = function () { 304 return this.ias = null, this.pagebreaks = [ 305 [0, document.location.toString()] 306 ], this.lastPageNum = 1, this.enabled = !0, this.listeners = { 307 pageChange: new IASCallbacks 308 }, this.onScroll = function (a, b) { 309 if (this.enabled) { 310 var c, d = this.ias, 311 e = this.getCurrentPageNum(a), 312 f = this.getCurrentPagebreak(a); 313 this.lastPageNum !== e && (c = f[1], d.fire("pageChange", [e, a, c])), this.lastPageNum = e 314 } 315 }, this.onNext = function (a) { 316 var b = this.ias.getCurrentScrollOffset(this.ias.$scrollContainer); 317 this.pagebreaks.push([b, a]); 318 var c = this.getCurrentPageNum(b) + 1; 319 this.ias.fire("pageChange", [c, b, a]), this.lastPageNum = c 320 }, this.onPrev = function (a) { 321 var b = this, 322 c = b.ias, 323 d = c.getCurrentScrollOffset(c.$scrollContainer), 324 e = d - c.$scrollContainer.height(), 325 f = c.getFirstItem(); 326 this.enabled = !1, this.pagebreaks.unshift([0, a]), c.one("rendered", function () { 327 for (var d = 1, g = b.pagebreaks.length; g > d; d++) 328 b.pagebreaks[d][0] = b.pagebreaks[d][0] + f.offset().top;
329 var h = b.getCurrentPageNum(e) + 1; 330 c.fire("pageChange", [h, e, a]), b.lastPageNum = h, b.enabled = !0 331 }) 332 }, this 333}; 334IASPagingExtension.prototype.initialize = function (a) { 335 this.ias = a, jQuery.extend(a.listeners, this.listeners) 336}, IASPagingExtension.prototype.bind = function (a) { 337 try { 338 a.on("prev", jQuery.proxy(this.onPrev, this), this.priority) 339 } catch (b) { 340 } 341 a.on("next", jQuery.proxy(this.onNext, this), this.priority), a.on("scroll", jQuery.proxy(this.onScroll, this), this.priority) 342}, IASPagingExtension.prototype.unbind = function (a) { 343 try { 344 a.off("prev", this.onPrev) 345 } catch (b) { 346 } 347 a.off("next", this.onNext), a.off("scroll", this.onScroll) 348}, IASPagingExtension.prototype.getCurrentPageNum = function (a) { 349 for (var b = this.pagebreaks.length - 1; b > 0; b--) 350 if (a > this.pagebreaks[b][0]) 351 return b + 1; 352 return 1 353}, IASPagingExtension.prototype.getCurrentPagebreak = function (a) { 354 for (var b = this.pagebreaks.length - 1; b >= 0; b--) 355 if (a > this.pagebreaks[b][0]) 356 return this.pagebreaks[b]; 357 return null 358}, IASPagingExtension.prototype.priority = 500; 359var IASSpinnerExtension = function (a) { 360 return a = jQuery.extend({}, this.defaults, a), this.ias = null, this.uid = (new Date).getTime(), this.src = a.src, this.html = a.html.replace("{src}", this.src), this.showSpinner = function () { 361 var a = this.getSpinner() || this.createSpinner(), 362 b = this.ias.getLastItem(); 363 b.after(a), a.fadeIn() 364 }, this.showSpinnerBefore = function () { 365 var a = this.getSpinner() || this.createSpinner(), 366 b = this.ias.getFirstItem(); 367 b.before(a), a.fadeIn() 368 }, this.removeSpinner = function () {
369 this.hasSpinner() && this.getSpinner().remove() 370 }, this.getSpinner = function () { 371 var a = jQuery("#ias_spinner_" + this.uid); 372 return a.length > 0 ? a : !1 373 }, this.hasSpinner = function () { 374 var a = jQuery("#ias_spinner_" + this.uid); 375 return a.length > 0 376 }, this.createSpinner = function () { 377 var a = jQuery(this.html).attr("id", "ias_spinner_" + this.uid); 378 return a.hide(), a 379 }, this 380}; 381IASSpinnerExtension.prototype.bind = function (a) { 382 this.ias = a, a.on("next", jQuery.proxy(this.showSpinner, this)), a.on("render", jQuery.proxy(this.removeSpinner, this)); 383 try { 384 a.on("prev", jQuery.proxy(this.showSpinnerBefore, this)) 385 } catch (b) { 386 } 387}, IASSpinnerExtension.prototype.unbind = function (a) { 388 a.off("next", this.showSpinner), a.off("render", this.removeSpinner); 389 try { 390 a.off("prev", this.showSpinnerBefore) 391 } catch (b) { 392 } 393}, IASSpinnerExtension.prototype.defaults = { 394 src: "data:image/gif;base64,R0lGODlhEAAQAPQAAP///wAAAPDw8IqKiuDg4
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", 395 html: '<div class="ias-spinner"><i class="t4p-icon-repeat infinite-rotation-icon"></i></div>' 396}; 397var IASTriggerExtension = function (a) { 398 return a = jQuery.extend({}, this.defaults, a), this.ias = null, this.html = a.html.replace("{text}", a.text), this.htmlPrev = a.htmlPrev.replace("{text}", a.textPrev), this.enabled = !0, this.count = 0, this.offset = a.offset, this.$triggerNext = null, this.$triggerPrev = null, this.showTriggerNext = function () { 399 if (!this.enabled) 400 return !0; 401 if (!1 === this.offset || ++this.count < this.offset) 402 return !0; 403 var a = this.$triggerNext || (this.$triggerNext = this.createTrigger(this.next, this.html)), 404 b = this.ias.getLastItem(); 405 return b.after(a), a.fadeIn(), !1 406 }, this.showTriggerPrev = function () { 407 if (!this.enabled) 408 return !0; 409 var a = this.$triggerPrev || (this.$triggerPrev = this.createTrigger(this.prev, this.htmlPrev)), 410 b = this.ias.getFirstItem(); 411 return b.before(a), a.fadeIn(), !1 412 }, this.onRendered = function () { 413 this.enabled = !0 414 }, this.createTrigger = function (a, b) { 415 var c, d = (new Date).getTime(); 416 return b = b || this.html, c = jQuery(b).attr("id", "ias_trigger_" + d), c.hide(), c.on("click", jQuery.proxy(a, this)), c 417 }, this 418}; 419IASTriggerExtension.prototype.bind = function (a) { 420 this.ias = a, a.on("next", jQuery.proxy(this.showTriggerNext, this), this.priority), a.on("rendered", jQuery.proxy(this.onRendered, this), this.priority); 421 try { 422 a.on("prev", jQuery.proxy(this.showTriggerPrev, this), this.priority) 423 } catch (b) { 424 } 425}, IASTriggerExtension.prototype.unbind = function (a) { 426 a.off("next", this.showTriggerNext), a.off("rendered", this.onRendered); 427 try { 428 a.off("prev", this.showTriggerPrev) 429 } catch (b) { 430 } 431}, IASTriggerExtension.prototype.next = function () { 432 this.enabled = !1, this.ias.pause(), this.$triggerNext && (this.$triggerNext.remove(), this.$triggerNext = null), this.ias.next() 433}, IASTriggerExtension.prototype.prev = function () { 434 this.enabled = !1, this.ias.pause(), this.$triggerPrev && (this.$triggerPrev.remove(), this.$triggerPrev = null), this.ias.prev() 435}, IASTriggerExtension.prototype.defaults = { 436 text: "Load more items", 437 html: '<div class="ias-trigger ias-trigger-next" style="text-align: center; cursor: pointer;"><a>{text}</a></div>', 438 textPrev: "Load previous items", 439 htmlPrev: '<div class="ias-trigger ias-trigger-prev" style="text-align: center; cursor: pointer;"><a>{text}</a></div>', 440 offset: 0 441}, IASTriggerExtension.prototype.priority = 1e3;
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.