/*! Lity - v2.2.2 - 2017-07-17
* http://sorgalla.com/lity/
* Copyright (c) 2015-2017 Jan Sorgalla; Licensed MIT */
!function(a, b) {
"function" == typeof define && define.amd ? define(["jquery"], function($) {
return b(a, $)
}) : "object" == typeof module && "object" == typeof module.exports ? module.exports = b(a, require("jquery")) : a.lity = b(a, a.jQuery || a.Zepto)
}("undefined" != typeof window ? window : this, function(b, $) {
"use strict";
var e = b.document
, i = $(b)
, j = $.Deferred
, k = $("html")
, l = []
, f = "aria-hidden"
, m = "lity-" + f
, c = {
esc: !0,
handler: null,
handlers: {
image: g,
inline: function(c, d) {
var a, b, e;
try {
a = $(c)
} catch (f) {
return !1
}
return !!a.length && (b = $(''),
e = a.hasClass("lity-hide"),
d.element().one("lity:remove", function() {
b.before(a).remove(),
e && !a.closest(".lity-content").length && a.addClass("lity-hide")
}),
a.removeClass("lity-hide").after(b))
},
youtube: function(b) {
var a = o.exec(b);
return !!a && x(w(b, v("https://www.youtube" + (a[2] || "") + ".com/embed/" + a[4], $.extend({
autoplay: 1
}, u(a[5] || "")))))
},
vimeo: function(b) {
var a = p.exec(b);
return !!a && x(w(b, v("https://player.vimeo.com/video/" + a[3], $.extend({
autoplay: 1
}, u(a[4] || "")))))
},
googlemaps: function(b) {
var a = q.exec(b);
return !!a && x(w(b, v("https://www.google." + a[3] + "/maps?" + a[6], {
output: a[6].indexOf("layer=c") > 0 ? "svembed" : "embed"
})))
},
facebookvideo: function(a) {
var b = r.exec(a);
return !!b && (0 !== a.indexOf("http") && (a = "https:" + a),
x(w(a, v("https://www.facebook.com/plugins/video.php?href=" + a, $.extend({
autoplay: 1
}, u(b[4] || ""))))))
},
iframe: x
},
template: '
'
}
, n = /(^data:image\/)|(\.(png|jpe?g|gif|svg|webp|bmp|ico|tiff?)(\?\S*)?$)/i
, o = /(youtube(-nocookie)?\.com|youtu\.be)\/(watch\?v=|v\/|u\/|embed\/?)?([\w-]{11})(.*)?/i
, p = /(vimeo(pro)?.com)\/(?:[^\d]+)?(\d+)\??(.*)?$/
, q = /((maps|www)\.)?google\.([^\/\?]+)\/?((maps\/?)?\?)(.*)/i
, r = /(facebook\.com)\/([a-z0-9_-]*)\/videos\/([0-9]*)(.*)?$/i
, s = function() {
var c = e.createElement("div")
, a = {
WebkitTransition: "webkitTransitionEnd",
MozTransition: "transitionend",
OTransition: "oTransitionEnd otransitionend",
transition: "transitionend"
};
for (var b in a)
if (void 0 !== c.style[b])
return a[b];
return !1
}();
function t(b) {
var a = j();
return s && b.length ? (b.one(s, a.resolve),
setTimeout(a.resolve, 500)) : a.resolve(),
a.promise()
}
function d(a, b, c) {
if (1 === arguments.length)
return $.extend({}, a);
if ("string" == typeof b) {
if (void 0 === c)
return void 0 === a[b] ? null : a[b];
a[b] = c
} else
$.extend(a, b);
return this
}
function u(e) {
for (var c, b = decodeURI(e.split("#")[0]).split("&"), d = {}, a = 0, f = b.length; a < f; a++)
b[a] && (d[(c = b[a].split("="))[0]] = c[1]);
return d
}
function v(a, b) {
return a + (a.indexOf("?") > -1 ? "&" : "?") + $.param(b)
}
function w(a, c) {
var b = a.indexOf("#");
return -1 === b ? c : (b > 0 && (a = a.substr(b)),
c + a)
}
function g(b, a) {
var c = $('
')
, d = j()
, e = function() {
var a;
d.reject((a = "Failed loading image",
$('').append(a)))
};
return c.on("load", function() {
if (0 === this.naturalWidth)
return e();
d.resolve(c)
}).on("error", e),
d.promise()
}
function x(a) {
var c = a && 0 === a.indexOf("https://player.vimeo.com/")
, b = "";
return !0 == c && (b = 'allow="autoplay; fullscreen; picture-in-picture"'),
''
}
function y() {
return e.documentElement.clientHeight ? e.documentElement.clientHeight : Math.round(i.height())
}
function z(b) {
var a = h();
a && (27 === b.keyCode && a.options("esc") && a.close(),
9 === b.keyCode && A(b, a))
}
function A(b, d) {
var a = d.element().find('a[href],area[href],input:not([disabled]),select:not([disabled]),textarea:not([disabled]),button:not([disabled]),iframe,object,embed,[contenteditable],[tabindex]:not([tabindex^="-"])')
, c = a.index(e.activeElement);
b.shiftKey && c <= 0 ? (a.get(a.length - 1).focus(),
b.preventDefault()) : b.shiftKey || c !== a.length - 1 || (a.get(0).focus(),
b.preventDefault())
}
function B() {
$.each(l, function(b, a) {
a.resize()
})
}
function h() {
return 0 === l.length ? null : l[0]
}
function C(w, b, x, A) {
var n, q, C, r, s, u, g, v, o, h, p, a = this, D = !1, E = !1;
b = $.extend({}, c, b),
q = $(b.template),
a.element = function() {
return q
}
,
a.opener = function() {
return x
}
,
a.options = $.proxy(d, a, b),
a.handlers = $.proxy(d, a, b.handlers),
a.resize = function() {
D && !E && C.css("max-height", y() + "px").trigger("lity:resize", [a])
}
,
a.close = function() {
if (D && !E) {
E = !0,
(c = a).element().attr(f, "true"),
1 === l.length && (k.removeClass("lity-active"),
i.off({
resize: B,
keydown: z
})),
((l = $.grep(l, function(a) {
return c !== a
})).length ? l[0].element() : $(".lity-hidden")).removeClass("lity-hidden").each(function() {
var a = $(this)
, b = a.data(m);
b ? a.attr(f, b) : a.removeAttr(f),
a.removeData(m)
});
var c, b = j();
if (A && (e.activeElement === q[0] || $.contains(q[0], e.activeElement)))
try {
A.focus()
} catch (d) {}
return C.trigger("lity:close", [a]),
q.removeClass("lity-opened").addClass("lity-closed"),
t(C.add(q)).always(function() {
C.trigger("lity:remove", [a]),
q.remove(),
q = void 0,
b.resolve()
}),
b.promise()
}
}
,
n = (r = w,
s = a,
u = b.handlers,
g = b.handler,
o = "inline",
h = $.extend({}, u),
g && h[g] ? (v = h[g](r, s),
o = g) : ($.each(["inline", "iframe"], function(b, a) {
delete h[a],
h[a] = u[a]
}),
$.each(h, function(b, a) {
return !(a && (!a.test || a.test(r, s))) || (!1 !== (v = a(r, s)) ? (o = b,
!1) : void 0)
})),
{
handler: o,
content: v || ""
}),
q.attr(f, "false").addClass("lity-loading lity-opened lity-" + n.handler).appendTo("body").focus().on("click", "[data-lity-close]", function(b) {
$(b.target).is("[data-lity-close]") && a.close()
}).trigger("lity:open", [a]),
p = a,
1 === l.unshift(p) && (k.addClass("lity-active"),
i.on({
resize: B,
keydown: z
})),
$("body > *").not(p.element()).addClass("lity-hidden").each(function() {
var a = $(this);
void 0 === a.data(m) && a.data(m, a.attr(f) || null)
}).attr(f, "true"),
$.when(n.content).always(function(b) {
C = $(b).css("max-height", y() + "px"),
q.find(".lity-loader").each(function() {
var a = $(this);
t(a).always(function() {
a.remove()
})
}),
q.removeClass("lity-loading").find(".lity-content").empty().append(C),
D = !0,
C.trigger("lity:ready", [a])
})
}
function a(b, c, a) {
b.preventDefault ? (b.preventDefault(),
b = (a = $(this)).data("lity-target") || a.attr("href") || a.attr("src")) : a = $(a);
var d = new C(b,$.extend({}, a.data("lity-options") || a.data("lity"), c),a,e.activeElement);
if (!b.preventDefault)
return d
}
return g.test = function(a) {
return n.test(a)
}
,
a.version = "2.2.2",
a.options = $.proxy(d, a, c),
a.handlers = $.proxy(d, a, c.handlers),
a.current = h,
$(e).on("click.lity", "[data-lity]", a),
a
})