//Infinite Scroll (function(e, t, n) { "use strict"; t.infinitescroll = function(n, r, i) { this.element = t(i); if (!this._create(n, r)) { this.failed = true } } ; t.infinitescroll.defaults = { loading: { finished: n, finishedMsg: "Congratulations, you've reached the end of the internet.", img: "data:image/gif;base64,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", msg: null, msgText: "Loading the next set of posts...", selector: null, speed: "fast", start: n }, state: { isDuringAjax: false, isInvalidPage: false, isDestroyed: false, isDone: false, isPaused: false, isBeyondMaxPage: false, currPage: 1 }, debug: false, behavior: n, binder: t(e), nextSelector: "div.navigation a:first", navSelector: "div.navigation", contentSelector: null, extraScrollPx: 150, itemSelector: "div.post", animate: false, pathParse: n, dataType: "html", appendCallback: true, bufferPx: 40, errorCallback: function() {}, infid: 0, pixelsFromNavToBottom: n, path: n, prefill: false, maxPage: n }; t.infinitescroll.prototype = { _binding: function(t) { var r = this , i = r.options; i.v = "2.0b2.120520"; if (!!i.behavior && this["_binding_" + i.behavior] !== n) { this["_binding_" + i.behavior].call(this); return } if (t !== "bind" && t !== "unbind") { this._debug("Binding value " + t + " not valid"); return false } if (t === "unbind") { this.options.binder.unbind("smartscroll.infscr." + r.options.infid) } else { this.options.binder[t]("smartscroll.infscr." + r.options.infid, function() { r.scroll() }) } this._debug("Binding", t) }, _create: function(i, s) { var o = t.extend(true, {}, t.infinitescroll.defaults, i); this.options = o; var u = t(e); var a = this; if (!a._validate(i)) { return false } var f = t(o.nextSelector).attr("href"); if (!f) { this._debug("Navigation selector not found"); return false } o.path = o.path || this._determinepath(f); o.contentSelector = o.contentSelector || this.element; o.loading.selector = o.loading.selector || o.contentSelector; o.loading.msg = o.loading.msg || t('
Loading...
' + o.loading.msgText + "
"); (new Image).src = o.loading.img; if (o.pixelsFromNavToBottom === n) { o.pixelsFromNavToBottom = t(document).height() - t(o.navSelector).offset().top; this._debug("pixelsFromNavToBottom: " + o.pixelsFromNavToBottom) } var l = this; o.loading.start = o.loading.start || function() { t(o.navSelector).hide(); o.loading.msg.appendTo(o.loading.selector).show(o.loading.speed, t.proxy(function() { this.beginAjax(o) }, l)) } ; o.loading.finished = o.loading.finished || function() { if (!o.state.isBeyondMaxPage) o.loading.msg.fadeOut(o.loading.speed) } ; o.callback = function(e, r, i) { if (!!o.behavior && e["_callback_" + o.behavior] !== n) { e["_callback_" + o.behavior].call(t(o.contentSelector)[0], r, i) } if (s) { s.call(t(o.contentSelector)[0], r, o, i) } if (o.prefill) { u.bind("resize.infinite-scroll", e._prefill) } } ; if (i.debug) { if (Function.prototype.bind && (typeof console === "object" || typeof console === "function") && typeof console.log === "object") { ["log", "info", "warn", "error", "assert", "dir", "clear", "profile", "profileEnd"].forEach(function(e) { console[e] = this.call(console[e], console) }, Function.prototype.bind) } } this._setup(); if (o.prefill) { this._prefill() } return true }, _prefill: function() { function s() { return r.options.contentSelector.height() <= i.height() } var r = this; var i = t(e); this._prefill = function() { if (s()) { r.scroll() } i.bind("resize.infinite-scroll", function() { if (s()) { i.unbind("resize.infinite-scroll"); r.scroll() } }) } ; this._prefill() }, _debug: function() { if (true !== this.options.debug) { return } if (typeof console !== "undefined" && typeof console.log === "function") { if (Array.prototype.slice.call(arguments).length === 1 && typeof Array.prototype.slice.call(arguments)[0] === "string") { console.log(Array.prototype.slice.call(arguments).toString()) } else { console.log(Array.prototype.slice.call(arguments)) } } else if (!Function.prototype.bind && typeof console !== "undefined" && typeof console.log === "object") { Function.prototype.call.call(console.log, console, Array.prototype.slice.call(arguments)) } }, _determinepath: function(t) { var r = this.options; if (!!r.behavior && this["_determinepath_" + r.behavior] !== n) { return this["_determinepath_" + r.behavior].call(this, t) } if (!!r.pathParse) { this._debug("pathParse manual"); return r.pathParse(t, this.options.state.currPage + 1) } else if (t.match(/^(.*?)\b2\b(.*?$)/)) { t = t.match(/^(.*?)\b2\b(.*?$)/).slice(1) } else if (t.match(/^(.*?)2(.*?$)/)) { if (t.match(/^(.*?page=)2(\/.*|$)/)) { t = t.match(/^(.*?page=)2(\/.*|$)/).slice(1); return t } t = t.match(/^(.*?)2(.*?$)/).slice(1) } else { if (t.match(/^(.*?page=)1(\/.*|$)/)) { t = t.match(/^(.*?page=)1(\/.*|$)/).slice(1); return t } else { this._debug("Sorry, we couldn't parse your Next (Previous Posts) URL. Verify your the css selector points to the correct A tag. If you still get this error: yell, scream, and kindly ask for help at infinite-scroll.com."); r.state.isInvalidPage = true } } this._debug("determinePath", t); return t }, _error: function(t) { var r = this.options; if (!!r.behavior && this["_error_" + r.behavior] !== n) { this["_error_" + r.behavior].call(this, t); return } if (t !== "destroy" && t !== "end") { t = "unknown" } this._debug("Error", t); if (t === "end" || r.state.isBeyondMaxPage) { this._showdonemsg() } r.state.isDone = true; r.state.currPage = 1; r.state.isPaused = false; r.state.isBeyondMaxPage = false; this._binding("unbind") }, _loadcallback: function(i, s, o) { var u = this.options, a = this.options.callback, f = u.state.isDone ? "done" : !u.appendCallback ? "no-append" : "append", l; if (!!u.behavior && this["_loadcallback_" + u.behavior] !== n) { this["_loadcallback_" + u.behavior].call(this, i, s); return } switch (f) { case "done": this._showdonemsg(); return false; case "no-append": if (u.dataType === "html") { s = "
" + s + "
"; s = t(s).find(u.itemSelector) } break; case "append": var c = i.children(); if (c.length === 0) { return this._error("end") } l = document.createDocumentFragment(); while (i[0].firstChild) { l.appendChild(i[0].firstChild) } this._debug("contentSelector", t(u.contentSelector)[0]); t(u.contentSelector)[0].appendChild(l); s = c.get(); break } u.loading.finished.call(t(u.contentSelector)[0], u); if (u.animate) { var h = t(e).scrollTop() + t(u.loading.msg).height() + u.extraScrollPx + "px"; t("html,body").animate({ scrollTop: h }, 800, function() { u.state.isDuringAjax = false }) } if (!u.animate) { u.state.isDuringAjax = false } a(this, s, o); if (u.prefill) { this._prefill() } }, _nearbottom: function() { var i = this.options , s = 0 + t(document).height() - i.binder.scrollTop() - t(e).height(); if (!!i.behavior && this["_nearbottom_" + i.behavior] !== n) { return this["_nearbottom_" + i.behavior].call(this) } this._debug("math:", s, i.pixelsFromNavToBottom); return s - i.bufferPx < i.pixelsFromNavToBottom }, _pausing: function(t) { var r = this.options; if (!!r.behavior && this["_pausing_" + r.behavior] !== n) { this["_pausing_" + r.behavior].call(this, t); return } if (t !== "pause" && t !== "resume" && t !== null) { this._debug("Invalid argument. Toggling pause value instead") } t = t && (t === "pause" || t === "resume") ? t : "toggle"; switch (t) { case "pause": r.state.isPaused = true; break; case "resume": r.state.isPaused = false; break; case "toggle": r.state.isPaused = !r.state.isPaused; break } this._debug("Paused", r.state.isPaused); return false }, _setup: function() { var t = this.options; if (!!t.behavior && this["_setup_" + t.behavior] !== n) { this["_setup_" + t.behavior].call(this); return } this._binding("bind"); return false }, _showdonemsg: function() { var r = this.options; if (!!r.behavior && this["_showdonemsg_" + r.behavior] !== n) { this["_showdonemsg_" + r.behavior].call(this); return } r.loading.msg.find("img").hide().parent().find("div").html(r.loading.finishedMsg).animate({ opacity: 1 }, 2e3, function() { t(this).parent().fadeOut(r.loading.speed) }); r.errorCallback.call(t(r.contentSelector)[0], "done") }, _validate: function(n) { for (var r in n) { if (r.indexOf && r.indexOf("Selector") > -1 && t(n[r]).length === 0) { this._debug("Your " + r + " found no elements."); return false } } return true }, bind: function() { this._binding("bind") }, destroy: function() { this.options.state.isDestroyed = true; this.options.loading.finished(); return this._error("destroy") }, pause: function() { this._pausing("pause") }, resume: function() { this._pausing("resume") }, beginAjax: function(r) { var i = this, s = r.path, o, u, a, f; r.state.currPage++; if (r.maxPage != n && r.state.currPage > r.maxPage) { r.state.isBeyondMaxPage = true; this.destroy(); return } o = t(r.contentSelector).is("table, tbody") ? t("") : t("
"); u = typeof s === "function" ? s(r.state.currPage) : s.join(r.state.currPage); i._debug("heading into ajax", u); a = r.dataType === "html" || r.dataType === "json" ? r.dataType : "html+callback"; if (r.appendCallback && r.dataType === "html") { a += "+callback" } switch (a) { case "html+callback": i._debug("Using HTML via .load() method"); o.load(u + " " + r.itemSelector, n, function(t) { i._loadcallback(o, t, u) }); break; case "html": i._debug("Using " + a.toUpperCase() + " via $.ajax() method"); t.ajax({ url: u, dataType: r.dataType, complete: function(t, n) { f = typeof t.isResolved !== "undefined" ? t.isResolved() : n === "success" || n === "notmodified"; if (f) { i._loadcallback(o, t.responseText, u) } else { i._error("end") } } }); break; case "json": i._debug("Using " + a.toUpperCase() + " via $.ajax() method"); t.ajax({ dataType: "json", type: "GET", url: u, success: function(e, t, s) { f = typeof s.isResolved !== "undefined" ? s.isResolved() : t === "success" || t === "notmodified"; if (r.appendCallback) { if (r.template !== n) { var a = r.template(e); o.append(a); if (f) { i._loadcallback(o, a) } else { i._error("end") } } else { i._debug("template must be defined."); i._error("end") } } else { if (f) { i._loadcallback(o, e, u) } else { i._error("end") } } }, error: function() { i._debug("JSON ajax request failed."); i._error("end") } }); break } }, retrieve: function(r) { r = r || null; var i = this , s = i.options; if (!!s.behavior && this["retrieve_" + s.behavior] !== n) { this["retrieve_" + s.behavior].call(this, r); return } if (s.state.isDestroyed) { this._debug("Instance is destroyed"); return false } s.state.isDuringAjax = true; s.loading.start.call(t(s.contentSelector)[0], s) }, scroll: function() { var t = this.options , r = t.state; if (!!t.behavior && this["scroll_" + t.behavior] !== n) { this["scroll_" + t.behavior].call(this); return } if (r.isDuringAjax || r.isInvalidPage || r.isDone || r.isDestroyed || r.isPaused) { return } if (!this._nearbottom()) { return } this.retrieve() }, toggle: function() { this._pausing() }, unbind: function() { this._binding("unbind") }, update: function(n) { if (t.isPlainObject(n)) { this.options = t.extend(true, this.options, n) } } }; t.fn.infinitescroll = function(n, r) { var i = typeof n; switch (i) { case "string": var s = Array.prototype.slice.call(arguments, 1); this.each(function() { var e = t.data(this, "infinitescroll"); if (!e) { return false } if (!t.isFunction(e[n]) || n.charAt(0) === "_") { return false } e[n].apply(e, s) }); break; case "object": this.each(function() { var e = t.data(this, "infinitescroll"); if (e) { e.update(n) } else { e = new t.infinitescroll(n,r,this); if (!e.failed) { t.data(this, "infinitescroll", e) } } }); break } return this } ; var r = t.event, i; r.special.smartscroll = { setup: function() { t(this).bind("scroll", r.special.smartscroll.handler) }, teardown: function() { t(this).unbind("scroll", r.special.smartscroll.handler) }, handler: function(e, n) { var r = this , s = arguments; e.type = "smartscroll"; if (i) { clearTimeout(i) } i = setTimeout(function() { t(r).trigger("smartscroll", s) }, n === "execAsap" ? 0 : 100) } }; t.fn.smartscroll = function(e) { return e ? this.bind("smartscroll", e) : this.trigger("smartscroll", ["execAsap"]) } } )(window, jQuery) /*! * Masonry PACKAGED v3.1.2 * Cascading grid layout library * http://masonry.desandro.com * MIT License * by David DeSandro */ /*! * getStyleProperty by kangax * http://perfectionkills.com/feature-testing-css-properties/ */ /*jshint browser: true, strict: true, undef: true */ /*globals define: false */ !function(t) { "use strict"; function e(t) { if (t) { if ("string" == typeof n[t]) return t; t = t.charAt(0).toUpperCase() + t.slice(1); for (var e, o = 0, r = i.length; r > o; o++) if (e = i[o] + t, "string" == typeof n[e]) return e } } var i = "Webkit Moz ms Ms O".split(" ") , n = document.documentElement.style; "function" == typeof define && define.amd ? define(function() { return e }) : t.getStyleProperty = e }(window), function(t, e) { "use strict"; function i(t) { var e = parseFloat(t) , i = -1 === t.indexOf("%") && !isNaN(e); return i && e } function n() { for (var t = { width: 0, height: 0, innerWidth: 0, innerHeight: 0, outerWidth: 0, outerHeight: 0 }, e = 0, i = h.length; i > e; e++) { var n = h[e]; t[n] = 0 } return t } function o(t) { function e(t) { if ("string" == typeof t && (t = document.querySelector(t)), t && "object" == typeof t && t.nodeType) { var e = a(t); if ("none" === e.display) return n(); var s = {}; s.width = t.offsetWidth, s.height = t.offsetHeight; for (var u = s.isBorderBox = !(!p || !e[p] || "border-box" !== e[p]), f = 0, c = h.length; c > f; f++) { var l = h[f] , d = e[l]; d = o(t, d); var m = parseFloat(d); s[l] = isNaN(m) ? 0 : m } var y = s.paddingLeft + s.paddingRight , g = s.paddingTop + s.paddingBottom , v = s.marginLeft + s.marginRight , _ = s.marginTop + s.marginBottom , b = s.borderLeftWidth + s.borderRightWidth , E = s.borderTopWidth + s.borderBottomWidth , L = u && r , S = i(e.width); S !== !1 && (s.width = S + (L ? 0 : y + b)); var T = i(e.height); return T !== !1 && (s.height = T + (L ? 0 : g + E)), s.innerWidth = s.width - (y + b), s.innerHeight = s.height - (g + E), s.outerWidth = s.width + v, s.outerHeight = s.height + _, s } } function o(t, e) { if (s || -1 === e.indexOf("%")) return e; var i = t.style , n = i.left , o = t.runtimeStyle , r = o && o.left; return r && (o.left = t.currentStyle.left), i.left = e, e = i.pixelLeft, i.left = n, r && (o.left = r), e } var r, p = t("boxSizing"); return function() { if (p) { var t = document.createElement("div"); t.style.width = "200px", t.style.padding = "1px 2px 3px 4px", t.style.borderStyle = "solid", t.style.borderWidth = "1px 2px 3px 4px", t.style[p] = "border-box"; var e = document.body || document.documentElement; e.appendChild(t); var n = a(t); r = 200 === i(n.width), e.removeChild(t) } }(), e } var r = document.defaultView , s = r && r.getComputedStyle , a = s ? function(t) { return r.getComputedStyle(t, null) } : function(t) { return t.currentStyle } , h = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"]; "function" == typeof define && define.amd ? define(["get-style-property/get-style-property"], o) : t.getSize = o(t.getStyleProperty) }(window), function(t) { "use strict"; var e = document.documentElement , i = function() {}; e.addEventListener ? i = function(t, e, i) { t.addEventListener(e, i, !1) } : e.attachEvent && (i = function(e, i, n) { e[i + n] = n.handleEvent ? function() { var e = t.event; e.target = e.target || e.srcElement, n.handleEvent.call(n, e) } : function() { var i = t.event; i.target = i.target || i.srcElement, n.call(e, i) } , e.attachEvent("on" + i, e[i + n]) } ); var n = function() {}; e.removeEventListener ? n = function(t, e, i) { t.removeEventListener(e, i, !1) } : e.detachEvent && (n = function(t, e, i) { t.detachEvent("on" + e, t[e + i]); try { delete t[e + i] } catch (n) { t[e + i] = void 0 } } ); var o = { bind: i, unbind: n }; "function" == typeof define && define.amd ? define(o) : t.eventie = o }(this), function(t) { "use strict"; function e(t) { "function" == typeof t && (e.isReady ? t() : r.push(t)) } function i(t) { var i = "readystatechange" === t.type && "complete" !== o.readyState; if (!e.isReady && !i) { e.isReady = !0; for (var n = 0, s = r.length; s > n; n++) { var a = r[n]; a() } } } function n(n) { return n.bind(o, "DOMContentLoaded", i), n.bind(o, "readystatechange", i), n.bind(t, "load", i), e } var o = t.document , r = []; e.isReady = !1, "function" == typeof define && define.amd ? (e.isReady = "function" == typeof requirejs, define(["eventie/eventie"], n)) : t.docReady = n(t.eventie) }(this), function() { "use strict"; function t() {} function e(t, e) { for (var i = t.length; i--; ) if (t[i].listener === e) return i; return -1 } function i(t) { return function() { return this[t].apply(this, arguments) } } var n = t.prototype; n.getListeners = function(t) { var e, i, n = this._getEvents(); if ("object" == typeof t) { e = {}; for (i in n) n.hasOwnProperty(i) && t.test(i) && (e[i] = n[i]) } else e = n[t] || (n[t] = []); return e } , n.flattenListeners = function(t) { var e, i = []; for (e = 0; e < t.length; e += 1) i.push(t[e].listener); return i } , n.getListenersAsObject = function(t) { var e, i = this.getListeners(t); return i instanceof Array && (e = {}, e[t] = i), e || i } , n.addListener = function(t, i) { var n, o = this.getListenersAsObject(t), r = "object" == typeof i; for (n in o) o.hasOwnProperty(n) && -1 === e(o[n], i) && o[n].push(r ? i : { listener: i, once: !1 }); return this } , n.on = i("addListener"), n.addOnceListener = function(t, e) { return this.addListener(t, { listener: e, once: !0 }) } , n.once = i("addOnceListener"), n.defineEvent = function(t) { return this.getListeners(t), this } , n.defineEvents = function(t) { for (var e = 0; e < t.length; e += 1) this.defineEvent(t[e]); return this } , n.removeListener = function(t, i) { var n, o, r = this.getListenersAsObject(t); for (o in r) r.hasOwnProperty(o) && (n = e(r[o], i), -1 !== n && r[o].splice(n, 1)); return this } , n.off = i("removeListener"), n.addListeners = function(t, e) { return this.manipulateListeners(!1, t, e) } , n.removeListeners = function(t, e) { return this.manipulateListeners(!0, t, e) } , n.manipulateListeners = function(t, e, i) { var n, o, r = t ? this.removeListener : this.addListener, s = t ? this.removeListeners : this.addListeners; if ("object" != typeof e || e instanceof RegExp) for (n = i.length; n--; ) r.call(this, e, i[n]); else for (n in e) e.hasOwnProperty(n) && (o = e[n]) && ("function" == typeof o ? r.call(this, n, o) : s.call(this, n, o)); return this } , n.removeEvent = function(t) { var e, i = typeof t, n = this._getEvents(); if ("string" === i) delete n[t]; else if ("object" === i) for (e in n) n.hasOwnProperty(e) && t.test(e) && delete n[e]; else delete this._events; return this } , n.removeAllListeners = i("removeEvent"), n.emitEvent = function(t, e) { var i, n, o, r, s = this.getListenersAsObject(t); for (o in s) if (s.hasOwnProperty(o)) for (n = s[o].length; n--; ) i = s[o][n], i.once === !0 && this.removeListener(t, i.listener), r = i.listener.apply(this, e || []), r === this._getOnceReturnValue() && this.removeListener(t, i.listener); return this } , n.trigger = i("emitEvent"), n.emit = function(t) { var e = Array.prototype.slice.call(arguments, 1); return this.emitEvent(t, e) } , n.setOnceReturnValue = function(t) { return this._onceReturnValue = t, this } , n._getOnceReturnValue = function() { return this.hasOwnProperty("_onceReturnValue") ? this._onceReturnValue : !0 } , n._getEvents = function() { return this._events || (this._events = {}) } , "function" == typeof define && define.amd ? define(function() { return t }) : "object" == typeof module && module.exports ? module.exports = t : this.EventEmitter = t } .call(this), function(t) { "use strict"; function e() {} function i(t) { function i(e) { e.prototype.option || (e.prototype.option = function(e) { t.isPlainObject(e) && (this.options = t.extend(!0, this.options, e)) } ) } function o(e, i) { t.fn[e] = function(o) { if ("string" == typeof o) { for (var s = n.call(arguments, 1), a = 0, h = this.length; h > a; a++) { var p = this[a] , u = t.data(p, e); if (u) if (t.isFunction(u[o]) && "_" !== o.charAt(0)) { var f = u[o].apply(u, s); if (void 0 !== f) return f } else r("no such method '" + o + "' for " + e + " instance"); else r("cannot call methods on " + e + " prior to initialization; attempted to call '" + o + "'") } return this } return this.each(function() { var n = t.data(this, e); n ? (n.option(o), n._init()) : (n = new i(this,o), t.data(this, e, n)) }) } } if (t) { var r = "undefined" == typeof console ? e : function(t) { console.error(t) } ; t.bridget = function(t, e) { i(e), o(t, e) } } } var n = Array.prototype.slice; "function" == typeof define && define.amd ? define(["jquery"], i) : i(t.jQuery) }(window), function(t, e) { "use strict"; function i(t, e) { return t[a](e) } function n(t) { if (!t.parentNode) { var e = document.createDocumentFragment(); e.appendChild(t) } } function o(t, e) { n(t); for (var i = t.parentNode.querySelectorAll(e), o = 0, r = i.length; r > o; o++) if (i[o] === t) return !0; return !1 } function r(t, e) { return n(t), i(t, e) } var s, a = function() { if (e.matchesSelector) return "matchesSelector"; for (var t = ["webkit", "moz", "ms", "o"], i = 0, n = t.length; n > i; i++) { var o = t[i] , r = o + "MatchesSelector"; if (e[r]) return r } }(); if (a) { var h = document.createElement("div") , p = i(h, "div"); s = p ? i : r } else s = o; "function" == typeof define && define.amd ? define(function() { return s }) : window.matchesSelector = s }(this, Element.prototype), function(t) { "use strict"; function e(t, e) { for (var i in e) t[i] = e[i]; return t } function i(t) { for (var e in t) return !1; return e = null, !0 } function n(t) { return t.replace(/([A-Z])/g, function(t) { return "-" + t.toLowerCase() }) } function o(t, o, r) { function a(t, e) { t && (this.element = t, this.layout = e, this.position = { x: 0, y: 0 }, this._create()) } var h = r("transition") , p = r("transform") , u = h && p , f = !!r("perspective") , c = { WebkitTransition: "webkitTransitionEnd", MozTransition: "transitionend", OTransition: "otransitionend", transition: "transitionend" }[h] , l = ["transform", "transition", "transitionDuration", "transitionProperty"] , d = function() { for (var t = {}, e = 0, i = l.length; i > e; e++) { var n = l[e] , o = r(n); o && o !== n && (t[n] = o) } return t }(); e(a.prototype, t.prototype), a.prototype._create = function() { this._transition = { ingProperties: {}, clean: {}, onEnd: {} }, this.css({ position: "absolute" }) } , a.prototype.handleEvent = function(t) { var e = "on" + t.type; this[e] && this[e](t) } , a.prototype.getSize = function() { this.size = o(this.element) } , a.prototype.css = function(t) { var e = this.element.style; for (var i in t) { var n = d[i] || i; e[n] = t[i] } } , a.prototype.getPosition = function() { var t = s(this.element) , e = this.layout.options , i = e.isOriginLeft , n = e.isOriginTop , o = parseInt(t[i ? "left" : "right"], 10) , r = parseInt(t[n ? "top" : "bottom"], 10); o = isNaN(o) ? 0 : o, r = isNaN(r) ? 0 : r; var a = this.layout.size; o -= i ? a.paddingLeft : a.paddingRight, r -= n ? a.paddingTop : a.paddingBottom, this.position.x = o, this.position.y = r } , a.prototype.layoutPosition = function() { var t = this.layout.size , e = this.layout.options , i = {}; e.isOriginLeft ? (i.left = this.position.x + t.paddingLeft + "px", i.right = "") : (i.right = this.position.x + t.paddingRight + "px", i.left = ""), e.isOriginTop ? (i.top = this.position.y + t.paddingTop + "px", i.bottom = "") : (i.bottom = this.position.y + t.paddingBottom + "px", i.top = ""), this.css(i), this.emitEvent("layout", [this]) } ; var m = f ? function(t, e) { return "translate3d(" + t + "px, " + e + "px, 0)" } : function(t, e) { return "translate(" + t + "px, " + e + "px)" } ; a.prototype._transitionTo = function(t, e) { this.getPosition(); var i = this.position.x , n = this.position.y , o = parseInt(t, 10) , r = parseInt(e, 10) , s = o === this.position.x && r === this.position.y; if (this.setPosition(t, e), s && !this.isTransitioning) return void this.layoutPosition(); var a = t - i , h = e - n , p = {} , u = this.layout.options; a = u.isOriginLeft ? a : -a, h = u.isOriginTop ? h : -h, p.transform = m(a, h), this.transition({ to: p, onTransitionEnd: { transform: this.layoutPosition }, isCleaning: !0 }) } , a.prototype.goTo = function(t, e) { this.setPosition(t, e), this.layoutPosition() } , a.prototype.moveTo = u ? a.prototype._transitionTo : a.prototype.goTo, a.prototype.setPosition = function(t, e) { this.position.x = parseInt(t, 10), this.position.y = parseInt(e, 10) } , a.prototype._nonTransition = function(t) { this.css(t.to), t.isCleaning && this._removeStyles(t.to); for (var e in t.onTransitionEnd) t.onTransitionEnd[e].call(this) } , a.prototype._transition = function(t) { if (!parseFloat(this.layout.options.transitionDuration)) return void this._nonTransition(t); var e = this._transition; for (var i in t.onTransitionEnd) e.onEnd[i] = t.onTransitionEnd[i]; for (i in t.to) e.ingProperties[i] = !0, t.isCleaning && (e.clean[i] = !0); if (t.from) { this.css(t.from); var n = this.element.offsetHeight; n = null } this.enableTransition(t.to), this.css(t.to), this.isTransitioning = !0 } ; var y = p && n(p) + ",opacity"; a.prototype.enableTransition = function() { this.isTransitioning || (this.css({ transitionProperty: y, transitionDuration: this.layout.options.transitionDuration }), this.element.addEventListener(c, this, !1)) } , a.prototype.transition = a.prototype[h ? "_transition" : "_nonTransition"], a.prototype.onwebkitTransitionEnd = function(t) { this.ontransitionend(t) } , a.prototype.onotransitionend = function(t) { this.ontransitionend(t) } ; var g = { "-webkit-transform": "transform", "-moz-transform": "transform", "-o-transform": "transform" }; a.prototype.ontransitionend = function(t) { if (t.target === this.element) { var e = this._transition , n = g[t.propertyName] || t.propertyName; if (delete e.ingProperties[n], i(e.ingProperties) && this.disableTransition(), n in e.clean && (this.element.style[t.propertyName] = "", delete e.clean[n]), n in e.onEnd) { var o = e.onEnd[n]; o.call(this), delete e.onEnd[n] } this.emitEvent("transitionEnd", [this]) } } , a.prototype.disableTransition = function() { this.removeTransitionStyles(), this.element.removeEventListener(c, this, !1), this.isTransitioning = !1 } , a.prototype._removeStyles = function(t) { var e = {}; for (var i in t) e[i] = ""; this.css(e) } ; var v = { transitionProperty: "", transitionDuration: "" }; return a.prototype.removeTransitionStyles = function() { this.css(v) } , a.prototype.removeElem = function() { this.element.parentNode.removeChild(this.element), this.emitEvent("remove", [this]) } , a.prototype.remove = function() { if (!h || !parseFloat(this.layout.options.transitionDuration)) return void this.removeElem(); var t = this; this.on("transitionEnd", function() { return t.removeElem(), !0 }), this.hide() } , a.prototype.reveal = function() { delete this.isHidden, this.css({ display: "" }); var t = this.layout.options; this.transition({ from: t.hiddenStyle, to: t.visibleStyle, isCleaning: !0 }) } , a.prototype.hide = function() { this.isHidden = !0, this.css({ display: "" }); var t = this.layout.options; this.transition({ from: t.visibleStyle, to: t.hiddenStyle, isCleaning: !0, onTransitionEnd: { opacity: function() { this.css({ display: "none" }) } } }) } , a.prototype.destroy = function() { this.css({ position: "", left: "", right: "", top: "", bottom: "", transition: "", transform: "" }) } , a } var r = document.defaultView , s = r && r.getComputedStyle ? function(t) { return r.getComputedStyle(t, null) } : function(t) { return t.currentStyle } ; "function" == typeof define && define.amd ? define(["eventEmitter/EventEmitter", "get-size/get-size", "get-style-property/get-style-property"], o) : (t.Outlayer = {}, t.Outlayer.Item = o(t.EventEmitter, t.getSize, t.getStyleProperty)) }(window), function(t) { "use strict"; function e(t, e) { for (var i in e) t[i] = e[i]; return t } function i(t) { return "[object Array]" === f.call(t) } function n(t) { var e = []; if (i(t)) e = t; else if (t && "number" == typeof t.length) for (var n = 0, o = t.length; o > n; n++) e.push(t[n]); else e.push(t); return e } function o(t, e) { var i = l(e, t); -1 !== i && e.splice(i, 1) } function r(t) { return t.replace(/(.)([A-Z])/g, function(t, e, i) { return e + "-" + i }).toLowerCase() } function s(i, s, f, l, d, m) { function y(t, i) { if ("string" == typeof t && (t = a.querySelector(t)), !t || !c(t)) return void (h && h.error("Bad " + this.settings.namespace + " element: " + t)); this.element = t, this.options = e({}, this.options), this.option(i); var n = ++v; this.element.outlayerGUID = n, _[n] = this, this._create(), this.options.isInitLayout && this.layout() } function g(t, i) { t.prototype[i] = e({}, y.prototype[i]) } var v = 0 , _ = {}; return y.prototype.settings = { namespace: "outlayer", item: m }, y.prototype.options = { containerStyle: { position: "relative" }, isInitLayout: !0, isOriginLeft: !0, isOriginTop: !0, isResizeBound: !0, transitionDuration: "0.4s", hiddenStyle: { opacity: 0, transform: "scale(0.001)" }, visibleStyle: { opacity: 1, transform: "scale(1)" } }, e(y.prototype, f.prototype), y.prototype.option = function(t) { e(this.options, t) } , y.prototype._create = function() { this.reloadItems(), this.stamps = [], this.stamp(this.options.stamp), e(this.element.style, this.options.containerStyle), this.options.isResizeBound && this.bindResize() } , y.prototype.reloadItems = function() { this.items = this._itemize(this.element.children) } , y.prototype._itemize = function(t) { for (var e = this._filterFindItemElements(t), i = this.settings.item, n = [], o = 0, r = e.length; r > o; o++) { var s = e[o] , a = new i(s,this); n.push(a) } return n } , y.prototype._filterFindItemElements = function(t) { t = n(t); for (var e = this.options.itemSelector, i = [], o = 0, r = t.length; r > o; o++) { var s = t[o]; if (c(s)) if (e) { d(s, e) && i.push(s); for (var a = s.querySelectorAll(e), h = 0, p = a.length; p > h; h++) i.push(a[h]) } else i.push(s) } return i } , y.prototype.getItemElements = function() { for (var t = [], e = 0, i = this.items.length; i > e; e++) t.push(this.items[e].element); return t } , y.prototype.layout = function() { this._resetLayout(), this._manageStamps(); var t = void 0 !== this.options.isLayoutInstant ? this.options.isLayoutInstant : !this._isLayoutInited; this.layoutItems(this.items, t), this._isLayoutInited = !0 } , y.prototype._init = y.prototype.layout, y.prototype._resetLayout = function() { this.getSize() } , y.prototype.getSize = function() { this.size = l(this.element) } , y.prototype._getMeasurement = function(t, e) { var i, n = this.options[t]; n ? ("string" == typeof n ? i = this.element.querySelector(n) : c(n) && (i = n), this[t] = i ? l(i)[e] : n) : this[t] = 0 } , y.prototype.layoutItems = function(t, e) { t = this._getItemsForLayout(t), this._layoutItems(t, e), this._postLayout() } , y.prototype._getItemsForLayout = function(t) { for (var e = [], i = 0, n = t.length; n > i; i++) { var o = t[i]; o.isIgnored || e.push(o) } return e } , y.prototype._layoutItems = function(t, e) { if (!t || !t.length) return void this.emitEvent("layoutComplete", [this, t]); this._itemsOn(t, "layout", function() { this.emitEvent("layoutComplete", [this, t]) }); for (var i = [], n = 0, o = t.length; o > n; n++) { var r = t[n] , s = this._getItemLayoutPosition(r); s.item = r, s.isInstant = e, i.push(s) } this._processLayoutQueue(i) } , y.prototype._getItemLayoutPosition = function() { return { x: 0, y: 0 } } , y.prototype._processLayoutQueue = function(t) { for (var e = 0, i = t.length; i > e; e++) { var n = t[e]; this._positionItem(n.item, n.x, n.y, n.isInstant) } } , y.prototype._positionItem = function(t, e, i, n) { n ? t.goTo(e, i) : t.moveTo(e, i) } , y.prototype._postLayout = function() { var t = this._getContainerSize(); t && (this._setContainerMeasure(t.width, !0), this._setContainerMeasure(t.height, !1)) } , y.prototype._getContainerSize = u, y.prototype._setContainerMeasure = function(t, e) { if (void 0 !== t) { var i = this.size; i.isBorderBox && (t += e ? i.paddingLeft + i.paddingRight + i.borderLeftWidth + i.borderRightWidth : i.paddingBottom + i.paddingTop + i.borderTopWidth + i.borderBottomWidth), t = Math.max(t, 0), this.element.style[e ? "width" : "height"] = t + "px" } } , y.prototype._itemsOn = function(t, e, i) { function n() { return o++, o === r && i.call(s), !0 } for (var o = 0, r = t.length, s = this, a = 0, h = t.length; h > a; a++) { var p = t[a]; p.on(e, n) } } , y.prototype.ignore = function(t) { var e = this.getItem(t); e && (e.isIgnored = !0) } , y.prototype.unignore = function(t) { var e = this.getItem(t); e && delete e.isIgnored } , y.prototype.stamp = function(t) { if (t = this._find(t)) { this.stamps = this.stamps.concat(t); for (var e = 0, i = t.length; i > e; e++) { var n = t[e]; this.ignore(n) } } } , y.prototype.unstamp = function(t) { if (t = this._find(t)) for (var e = 0, i = t.length; i > e; e++) { var n = t[e]; o(n, this.stamps), this.unignore(n) } } , y.prototype._find = function(t) { return t ? ("string" == typeof t && (t = this.element.querySelectorAll(t)), t = n(t)) : void 0 } , y.prototype._manageStamps = function() { if (this.stamps && this.stamps.length) { this._getBoundingRect(); for (var t = 0, e = this.stamps.length; e > t; t++) { var i = this.stamps[t]; this._manageStamp(i) } } } , y.prototype._getBoundingRect = function() { var t = this.element.getBoundingClientRect() , e = this.size; this._boundingRect = { left: t.left + e.paddingLeft + e.borderLeftWidth, top: t.top + e.paddingTop + e.borderTopWidth, right: t.right - (e.paddingRight + e.borderRightWidth), bottom: t.bottom - (e.paddingBottom + e.borderBottomWidth) } } , y.prototype._manageStamp = u, y.prototype._getElementOffset = function(t) { var e = t.getBoundingClientRect() , i = this._boundingRect , n = l(t) , o = { left: e.left - i.left - n.marginLeft, top: e.top - i.top - n.marginTop, right: i.right - e.right - n.marginRight, bottom: i.bottom - e.bottom - n.marginBottom }; return o } , y.prototype.handleEvent = function(t) { var e = "on" + t.type; this[e] && this[e](t) } , y.prototype.bindResize = function() { this.isResizeBound || (i.bind(t, "resize", this), this.isResizeBound = !0) } , y.prototype.unbindResize = function() { i.unbind(t, "resize", this), this.isResizeBound = !1 } , y.prototype.onresize = function() { function t() { e.resize(), delete e.resizeTimeout } this.resizeTimeout && clearTimeout(this.resizeTimeout); var e = this; this.resizeTimeout = setTimeout(t, 100) } , y.prototype.resize = function() { var t = l(this.element) , e = this.size && t; e && t.innerWidth === this.size.innerWidth || this.layout() } , y.prototype.addItems = function(t) { var e = this._itemize(t); return e.length && (this.items = this.items.concat(e)), e } , y.prototype.appended = function(t) { var e = this.addItems(t); e.length && (this.layoutItems(e, !0), this.reveal(e)) } , y.prototype.prepended = function(t) { var e = this._itemize(t); if (e.length) { var i = this.items.slice(0); this.items = e.concat(i), this._resetLayout(), this._manageStamps(), this.layoutItems(e, !0), this.reveal(e), this.layoutItems(i) } } , y.prototype.reveal = function(t) { if (t && t.length) for (var e = 0, i = t.length; i > e; e++) { var n = t[e]; n.reveal() } } , y.prototype.hide = function(t) { if (t && t.length) for (var e = 0, i = t.length; i > e; e++) { var n = t[e]; n.hide() } } , y.prototype.getItem = function(t) { for (var e = 0, i = this.items.length; i > e; e++) { var n = this.items[e]; if (n.element === t) return n } } , y.prototype.getItems = function(t) { if (t && t.length) { for (var e = [], i = 0, n = t.length; n > i; i++) { var o = t[i] , r = this.getItem(o); r && e.push(r) } return e } } , y.prototype.remove = function(t) { t = n(t); var e = this.getItems(t); if (e && e.length) { this._itemsOn(e, "remove", function() { this.emitEvent("removeComplete", [this, e]) }); for (var i = 0, r = e.length; r > i; i++) { var s = e[i]; s.remove(), o(s, this.items) } } } , y.prototype.destroy = function() { var t = this.element.style; t.height = "", t.position = "", t.width = ""; for (var e = 0, i = this.items.length; i > e; e++) { var n = this.items[e]; n.destroy() } this.unbindResize(), delete this.element.outlayerGUID, p && p.removeData(this.element, this.settings.namespace) } , y.data = function(t) { var e = t && t.outlayerGUID; return e && _[e] } , y.create = function(t, i) { function n() { y.apply(this, arguments) } return e(n.prototype, y.prototype), g(n, "options"), g(n, "settings"), e(n.prototype.options, i), n.prototype.settings.namespace = t, n.data = y.data, n.Item = function() { m.apply(this, arguments) } , n.Item.prototype = new m, n.prototype.settings.item = n.Item, s(function() { for (var e = r(t), i = a.querySelectorAll(".js-" + e), o = "data-" + e + "-options", s = 0, u = i.length; u > s; s++) { var f, c = i[s], l = c.getAttribute(o); try { f = l && JSON.parse(l) } catch (d) { h && h.error("Error parsing " + o + " on " + c.nodeName.toLowerCase() + (c.id ? "#" + c.id : "") + ": " + d); continue } var m = new n(c,f); p && p.data(c, t, m) } }), p && p.bridget && p.bridget(t, n), n } , y.Item = m, y } var a = t.document , h = t.console , p = t.jQuery , u = function() {} , f = Object.prototype.toString , c = "object" == typeof HTMLElement ? function(t) { return t instanceof HTMLElement } : function(t) { return t && "object" == typeof t && 1 === t.nodeType && "string" == typeof t.nodeName } , l = Array.prototype.indexOf ? function(t, e) { return t.indexOf(e) } : function(t, e) { for (var i = 0, n = t.length; n > i; i++) if (t[i] === e) return i; return -1 } ; "function" == typeof define && define.amd ? define(["eventie/eventie", "doc-ready/doc-ready", "eventEmitter/EventEmitter", "get-size/get-size", "matches-selector/matches-selector", "./item"], s) : t.Outlayer = s(t.eventie, t.docReady, t.EventEmitter, t.getSize, t.matchesSelector, t.Outlayer.Item) }(window), function(t) { "use strict"; function e(t, e) { var n = t.create("masonry"); return n.prototype._resetLayout = function() { this.getSize(), this._getMeasurement("columnWidth", "outerWidth"), this._getMeasurement("gutter", "outerWidth"), this.measureColumns(); var t = this.cols; for (this.colYs = []; t--; ) this.colYs.push(0); this.maxY = 0 } , n.prototype.measureColumns = function() { if (this.getContainerWidth(), !this.columnWidth) { var t = this.items[0] , i = t && t.element; this.columnWidth = i && e(i).outerWidth || this.containerWidth } this.columnWidth += this.gutter, this.cols = Math.floor((this.containerWidth + this.gutter) / this.columnWidth), this.cols = Math.max(this.cols, 1) } , n.prototype.getContainerWidth = function() { var t = this.options.isFitWidth ? this.element.parentNode : this.element , i = e(t); this.containerWidth = i && i.innerWidth } , n.prototype._getItemLayoutPosition = function(t) { t.getSize(); var e = Math.ceil(t.size.outerWidth / this.columnWidth); e = Math.min(e, this.cols); for (var n = this._getColGroup(e), o = Math.min.apply(Math, n), r = i(n, o), s = { x: this.columnWidth * r, y: o }, a = o + t.size.outerHeight, h = this.cols + 1 - n.length, p = 0; h > p; p++) this.colYs[r + p] = a; return s } , n.prototype._getColGroup = function(t) { if (2 > t) return this.colYs; for (var e = [], i = this.cols + 1 - t, n = 0; i > n; n++) { var o = this.colYs.slice(n, n + t); e[n] = Math.max.apply(Math, o) } return e } , n.prototype._manageStamp = function(t) { var i = e(t) , n = this._getElementOffset(t) , o = this.options.isOriginLeft ? n.left : n.right , r = o + i.outerWidth , s = Math.floor(o / this.columnWidth); s = Math.max(0, s); var a = Math.floor(r / this.columnWidth); a = Math.min(this.cols - 1, a); for (var h = (this.options.isOriginTop ? n.top : n.bottom) + i.outerHeight, p = s; a >= p; p++) this.colYs[p] = Math.max(h, this.colYs[p]) } , n.prototype._getContainerSize = function() { this.maxY = Math.max.apply(Math, this.colYs); var t = { height: this.maxY }; return this.options.isFitWidth && (t.width = this._getContainerFitWidth()), t } , n.prototype._getContainerFitWidth = function() { for (var t = 0, e = this.cols; --e && 0 === this.colYs[e]; ) t++; return (this.cols - t) * this.columnWidth - this.gutter } , n.prototype.resize = function() { var t = this.containerWidth; this.getContainerWidth(), t !== this.containerWidth && this.layout() } , n } var i = Array.prototype.indexOf ? function(t, e) { return t.indexOf(e) } : function(t, e) { for (var i = 0, n = t.length; n > i; i++) { var o = t[i]; if (o === e) return i } return -1 } ; "function" == typeof define && define.amd ? define(["outlayer/outlayer", "get-size/get-size"], e) : t.Masonry = e(t.Outlayer, t.getSize) }(window); /*! * imagesLoaded PACKAGED v3.0.4 * JavaScript is all like "You images are done yet or what?" */ (function() { "use strict"; function e() {} function t(e, t) { for (var n = e.length; n--; ) if (e[n].listener === t) return n; return -1 } var n = e.prototype; n.getListeners = function(e) { var t, n, i = this._getEvents(); if ("object" == typeof e) { t = {}; for (n in i) i.hasOwnProperty(n) && e.test(n) && (t[n] = i[n]) } else t = i[e] || (i[e] = []); return t } , n.flattenListeners = function(e) { var t, n = []; for (t = 0; e.length > t; t += 1) n.push(e[t].listener); return n } , n.getListenersAsObject = function(e) { var t, n = this.getListeners(e); return n instanceof Array && (t = {}, t[e] = n), t || n } , n.addListener = function(e, n) { var i, r = this.getListenersAsObject(e), o = "object" == typeof n; for (i in r) r.hasOwnProperty(i) && -1 === t(r[i], n) && r[i].push(o ? n : { listener: n, once: !1 }); return this } , n.on = n.addListener, n.addOnceListener = function(e, t) { return this.addListener(e, { listener: t, once: !0 }) } , n.once = n.addOnceListener, n.defineEvent = function(e) { return this.getListeners(e), this } , n.defineEvents = function(e) { for (var t = 0; e.length > t; t += 1) this.defineEvent(e[t]); return this } , n.removeListener = function(e, n) { var i, r, o = this.getListenersAsObject(e); for (r in o) o.hasOwnProperty(r) && (i = t(o[r], n), -1 !== i && o[r].splice(i, 1)); return this } , n.off = n.removeListener, n.addListeners = function(e, t) { return this.manipulateListeners(!1, e, t) } , n.removeListeners = function(e, t) { return this.manipulateListeners(!0, e, t) } , n.manipulateListeners = function(e, t, n) { var i, r, o = e ? this.removeListener : this.addListener, s = e ? this.removeListeners : this.addListeners; if ("object" != typeof t || t instanceof RegExp) for (i = n.length; i--; ) o.call(this, t, n[i]); else for (i in t) t.hasOwnProperty(i) && (r = t[i]) && ("function" == typeof r ? o.call(this, i, r) : s.call(this, i, r)); return this } , n.removeEvent = function(e) { var t, n = typeof e, i = this._getEvents(); if ("string" === n) delete i[e]; else if ("object" === n) for (t in i) i.hasOwnProperty(t) && e.test(t) && delete i[t]; else delete this._events; return this } , n.emitEvent = function(e, t) { var n, i, r, o, s = this.getListenersAsObject(e); for (r in s) if (s.hasOwnProperty(r)) for (i = s[r].length; i--; ) n = s[r][i], o = n.listener.apply(this, t || []), (o === this._getOnceReturnValue() || n.once === !0) && this.removeListener(e, s[r][i].listener); return this } , n.trigger = n.emitEvent, n.emit = function(e) { var t = Array.prototype.slice.call(arguments, 1); return this.emitEvent(e, t) } , n.setOnceReturnValue = function(e) { return this._onceReturnValue = e, this } , n._getOnceReturnValue = function() { return this.hasOwnProperty("_onceReturnValue") ? this._onceReturnValue : !0 } , n._getEvents = function() { return this._events || (this._events = {}) } , "function" == typeof define && define.amd ? define(function() { return e }) : "undefined" != typeof module && module.exports ? module.exports = e : this.EventEmitter = e } ).call(this), function(e) { "use strict"; var t = document.documentElement , n = function() {}; t.addEventListener ? n = function(e, t, n) { e.addEventListener(t, n, !1) } : t.attachEvent && (n = function(t, n, i) { t[n + i] = i.handleEvent ? function() { var t = e.event; t.target = t.target || t.srcElement, i.handleEvent.call(i, t) } : function() { var n = e.event; n.target = n.target || n.srcElement, i.call(t, n) } , t.attachEvent("on" + n, t[n + i]) } ); var i = function() {}; t.removeEventListener ? i = function(e, t, n) { e.removeEventListener(t, n, !1) } : t.detachEvent && (i = function(e, t, n) { e.detachEvent("on" + t, e[t + n]); try { delete e[t + n] } catch (i) { e[t + n] = void 0 } } ); var r = { bind: n, unbind: i }; "function" == typeof define && define.amd ? define(r) : e.eventie = r }(this), function(e) { "use strict"; function t(e, t) { for (var n in t) e[n] = t[n]; return e } function n(e) { return "[object Array]" === c.call(e) } function i(e) { var t = []; if (n(e)) t = e; else if ("number" == typeof e.length) for (var i = 0, r = e.length; r > i; i++) t.push(e[i]); else t.push(e); return t } function r(e, n) { function r(e, n, s) { if (!(this instanceof r)) return new r(e,n); "string" == typeof e && (e = document.querySelectorAll(e)), this.elements = i(e), this.options = t({}, this.options), "function" == typeof n ? s = n : t(this.options, n), s && this.on("always", s), this.getImages(), o && (this.jqDeferred = new o.Deferred); var a = this; setTimeout(function() { a.check() }) } function c(e) { this.img = e } r.prototype = new e, r.prototype.options = {}, r.prototype.getImages = function() { this.images = []; for (var e = 0, t = this.elements.length; t > e; e++) { var n = this.elements[e]; "IMG" === n.nodeName && this.addImage(n); for (var i = n.querySelectorAll("img"), r = 0, o = i.length; o > r; r++) { var s = i[r]; this.addImage(s) } } } , r.prototype.addImage = function(e) { var t = new c(e); this.images.push(t) } , r.prototype.check = function() { function e(e, r) { return t.options.debug && a && s.log("confirm", e, r), t.progress(e), n++, n === i && t.complete(), !0 } var t = this , n = 0 , i = this.images.length; if (this.hasAnyBroken = !1, !i) return this.complete(), void 0; for (var r = 0; i > r; r++) { var o = this.images[r]; o.on("confirm", e), o.check() } } , r.prototype.progress = function(e) { this.hasAnyBroken = this.hasAnyBroken || !e.isLoaded; var t = this; setTimeout(function() { t.emit("progress", t, e), t.jqDeferred && t.jqDeferred.notify(t, e) }) } , r.prototype.complete = function() { var e = this.hasAnyBroken ? "fail" : "done"; this.isComplete = !0; var t = this; setTimeout(function() { if (t.emit(e, t), t.emit("always", t), t.jqDeferred) { var n = t.hasAnyBroken ? "reject" : "resolve"; t.jqDeferred[n](t) } }) } , o && (o.fn.imagesLoaded = function(e, t) { var n = new r(this,e,t); return n.jqDeferred.promise(o(this)) } ); var f = {}; return c.prototype = new e, c.prototype.check = function() { var e = f[this.img.src]; if (e) return this.useCached(e), void 0; if (f[this.img.src] = this, this.img.complete && void 0 !== this.img.naturalWidth) return this.confirm(0 !== this.img.naturalWidth, "naturalWidth"), void 0; var t = this.proxyImage = new Image; n.bind(t, "load", this), n.bind(t, "error", this), t.src = this.img.src } , c.prototype.useCached = function(e) { if (e.isConfirmed) this.confirm(e.isLoaded, "cached was confirmed"); else { var t = this; e.on("confirm", function(e) { return t.confirm(e.isLoaded, "cache emitted confirmed"), !0 }) } } , c.prototype.confirm = function(e, t) { this.isConfirmed = !0, this.isLoaded = e, this.emit("confirm", this, t) } , c.prototype.handleEvent = function(e) { var t = "on" + e.type; this[t] && this[t](e) } , c.prototype.onload = function() { this.confirm(!0, "onload"), this.unbindProxyEvents() } , c.prototype.onerror = function() { this.confirm(!1, "onerror"), this.unbindProxyEvents() } , c.prototype.unbindProxyEvents = function() { n.unbind(this.proxyImage, "load", this), n.unbind(this.proxyImage, "error", this) } , r } var o = e.jQuery , s = e.console , a = s !== void 0 , c = Object.prototype.toString; "function" == typeof define && define.amd ? define(["eventEmitter/EventEmitter", "eventie/eventie"], r) : e.imagesLoaded = r(e.EventEmitter, e.eventie) }(window);