//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('
' + 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);