").html(e).find(t.opts.filter))),
t.$slide.one("onReset", function() {
n(this).find("video,audio").trigger("pause"),
t.$placeholder && (t.$placeholder.after(e.removeClass("fancybox-content").hide()).remove(),
t.$placeholder = null),
t.$smallBtn && (t.$smallBtn.remove(),
t.$smallBtn = null),
t.hasError || (n(this).empty(),
t.isLoaded = !1,
t.isRevealed = !1)
}),
n(e).appendTo(t.$slide),
n(e).is("video,audio") && (n(e).addClass("fancybox-video"),
n(e).wrap("
"),
t.contentType = "video",
t.opts.width = t.opts.width || n(e).attr("width"),
t.opts.height = t.opts.height || n(e).attr("height")),
t.$content = t.$slide.children().filter("div,form,main,video,audio,article,.fancybox-content").first(),
t.$content.siblings().hide(),
t.$content.length || (t.$content = t.$slide.wrapInner("
").children().first()),
t.$content.addClass("fancybox-content"),
t.$slide.addClass("fancybox-slide--" + t.contentType),
o.afterLoad(t))
},
setError: function(t) {
t.hasError = !0,
t.$slide.trigger("onReset").removeClass("fancybox-slide--" + t.contentType).addClass("fancybox-slide--error"),
t.contentType = "html",
this.setContent(t, this.translate(t, t.opts.errorTpl)),
t.pos === this.currPos && (this.isAnimating = !1)
},
showLoading: function(t) {
var e = this;
t = t || e.current,
t && !t.$spinner && (t.$spinner = n(e.translate(e, e.opts.spinnerTpl)).appendTo(t.$slide).hide().fadeIn("fast"))
},
hideLoading: function(t) {
var e = this;
t = t || e.current,
t && t.$spinner && (t.$spinner.stop().remove(),
delete t.$spinner)
},
afterLoad: function(t) {
var e = this;
e.isClosing || (t.isLoading = !1,
t.isLoaded = !0,
e.trigger("afterLoad", t),
e.hideLoading(t),
!t.opts.smallBtn || t.$smallBtn && t.$smallBtn.length || (t.$smallBtn = n(e.translate(t, t.opts.btnTpl.smallBtn)).appendTo(t.$content)),
t.opts.protect && t.$content && !t.hasError && (t.$content.on("contextmenu.fb", function(t) {
return 2 == t.button && t.preventDefault(),
!0
}),
"image" === t.type && n('
').appendTo(t.$content)),
e.adjustCaption(t),
e.adjustLayout(t),
t.pos === e.currPos && e.updateCursor(),
e.revealContent(t))
},
adjustCaption: function(t) {
var e = this
, n = t || e.current
, o = n.opts.caption
, a = e.$refs.caption
, i = !1;
n.opts.preventCaptionOverlap && o && o.length && (n.pos !== e.currPos ? (a = a.clone().empty().appendTo(a.parent()),
a.html(o),
i = a.outerHeight(!0),
a.empty().remove()) : e.$caption && (i = e.$caption.outerHeight(!0)),
n.$slide.css("padding-bottom", i || ""))
},
adjustLayout: function(t) {
var e, n, o, a, i = this, s = t || i.current;
s.isLoaded && s.opts.disableLayoutFix !== !0 && (s.$content.css("margin-bottom", ""),
s.$content.outerHeight() > s.$slide.height() + .5 && (o = s.$slide[0].style["padding-bottom"],
a = s.$slide.css("padding-bottom"),
parseFloat(a) > 0 && (e = s.$slide[0].scrollHeight,
s.$slide.css("padding-bottom", 0),
Math.abs(e - s.$slide[0].scrollHeight) < 1 && (n = a),
s.$slide.css("padding-bottom", o))),
s.$content.css("margin-bottom", n))
},
revealContent: function(t) {
var e, a, i, s, r = this, c = t.$slide, l = !1, d = !1, u = r.isMoved(t), f = t.isRevealed;
return t.isRevealed = !0,
e = t.opts[r.firstRun ? "animationEffect" : "transitionEffect"],
i = t.opts[r.firstRun ? "animationDuration" : "transitionDuration"],
i = parseInt(t.forcedDuration === o ? i : t.forcedDuration, 10),
!u && t.pos === r.currPos && i || (e = !1),
"zoom" === e && (t.pos === r.currPos && i && "image" === t.type && !t.hasError && (d = r.getThumbPos(t)) ? l = r.getFitPos(t) : e = "fade"),
"zoom" === e ? (r.isAnimating = !0,
l.scaleX = l.width / d.width,
l.scaleY = l.height / d.height,
s = t.opts.zoomOpacity,
"auto" == s && (s = Math.abs(t.width / t.height - d.width / d.height) > .1),
s && (d.opacity = .1,
l.opacity = 1),
n.fancybox.setTranslate(t.$content.removeClass("fancybox-is-hidden"), d),
p(t.$content),
void n.fancybox.animate(t.$content, l, i, function() {
r.isAnimating = !1,
r.complete()
})) : (r.updateSlide(t),
e ? (n.fancybox.stop(c),
a = "fancybox-slide--" + (t.pos >= r.prevPos ? "next" : "previous") + " fancybox-animated fancybox-fx-" + e,
c.addClass(a).removeClass("fancybox-slide--current"),
t.$content.removeClass("fancybox-is-hidden"),
p(c),
"image" !== t.type && t.$content.hide().show(0),
void n.fancybox.animate(c, "fancybox-slide--current", i, function() {
c.removeClass(a).css({
transform: "",
opacity: ""
}),
t.pos === r.currPos && r.complete()
}, !0)) : (t.$content.removeClass("fancybox-is-hidden"),
f || !u || "image" !== t.type || t.hasError || t.$content.hide().fadeIn("fast"),
void (t.pos === r.currPos && r.complete())))
},
getThumbPos: function(t) {
var e, o, a, i, s, r = !1, c = t.$thumb;
return !(!c || !g(c[0])) && (e = n.fancybox.getTranslate(c),
o = parseFloat(c.css("border-top-width") || 0),
a = parseFloat(c.css("border-right-width") || 0),
i = parseFloat(c.css("border-bottom-width") || 0),
s = parseFloat(c.css("border-left-width") || 0),
r = {
top: e.top + o,
left: e.left + s,
width: e.width - a - s,
height: e.height - o - i,
scaleX: 1,
scaleY: 1
},
e.width > 0 && e.height > 0 && r)
},
complete: function() {
var t, e = this, o = e.current, a = {};
!e.isMoved() && o.isLoaded && (o.isComplete || (o.isComplete = !0,
o.$slide.siblings().trigger("onReset"),
e.preload("inline"),
p(o.$slide),
o.$slide.addClass("fancybox-slide--complete"),
n.each(e.slides, function(t, o) {
o.pos >= e.currPos - 1 && o.pos <= e.currPos + 1 ? a[o.pos] = o : o && (n.fancybox.stop(o.$slide),
o.$slide.off().remove())
}),
e.slides = a),
e.isAnimating = !1,
e.updateCursor(),
e.trigger("afterShow"),
o.opts.video.autoStart && o.$slide.find("video,audio").filter(":visible:first").trigger("play").one("ended", function() {
this.webkitExitFullscreen && this.webkitExitFullscreen(),
e.next()
}),
o.opts.autoFocus && "html" === o.contentType && (t = o.$content.find("input[autofocus]:enabled:visible:first"),
t.length ? t.trigger("focus") : e.focus(null, !0)),
o.$slide.scrollTop(0).scrollLeft(0))
},
preload: function(t) {
var e, n, o = this;
o.group.length < 2 || (n = o.slides[o.currPos + 1],
e = o.slides[o.currPos - 1],
e && e.type === t && o.loadSlide(e),
n && n.type === t && o.loadSlide(n))
},
focus: function(t, o) {
var a, i, s = this, r = ["a[href]", "area[href]", 'input:not([disabled]):not([type="hidden"]):not([aria-hidden])', "select:not([disabled]):not([aria-hidden])", "textarea:not([disabled]):not([aria-hidden])", "button:not([disabled]):not([aria-hidden])", "iframe", "object", "embed", "[contenteditable]", '[tabindex]:not([tabindex^="-"])'].join(",");
s.isClosing || (a = !t && s.current && s.current.isComplete ? s.current.$slide.find("*:visible" + (o ? ":not(.fancybox-close-small)" : "")) : s.$refs.container.find("*:visible"),
a = a.filter(r).filter(function() {
return "hidden" !== n(this).css("visibility") && !n(this).hasClass("disabled")
}),
a.length ? (i = a.index(e.activeElement),
t && t.shiftKey ? (i < 0 || 0 == i) && (t.preventDefault(),
a.eq(a.length - 1).trigger("focus")) : (i < 0 || i == a.length - 1) && (t && t.preventDefault(),
a.eq(0).trigger("focus"))) : s.$refs.container.trigger("focus"))
},
activate: function() {
var t = this;
n(".fancybox-container").each(function() {
var e = n(this).data("FancyBox");
e && e.id !== t.id && !e.isClosing && (e.trigger("onDeactivate"),
e.removeEvents(),
e.isVisible = !1)
}),
t.isVisible = !0,
(t.current || t.isIdle) && (t.update(),
t.updateControls()),
t.trigger("onActivate"),
t.addEvents()
},
close: function(t, e) {
var o, a, i, s, r, c, l, u = this, f = u.current, h = function() {
u.cleanUp(t)
};
return !u.isClosing && (u.isClosing = !0,
u.trigger("beforeClose", t) === !1 ? (u.isClosing = !1,
d(function() {
u.update()
}),
!1) : (u.removeEvents(),
i = f.$content,
o = f.opts.animationEffect,
a = n.isNumeric(e) ? e : o ? f.opts.animationDuration : 0,
f.$slide.removeClass("fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated"),
t !== !0 ? n.fancybox.stop(f.$slide) : o = !1,
f.$slide.siblings().trigger("onReset").remove(),
a && u.$refs.container.removeClass("fancybox-is-open").addClass("fancybox-is-closing").css("transition-duration", a + "ms"),
u.hideLoading(f),
u.hideControls(!0),
u.updateCursor(),
"zoom" !== o || i && a && "image" === f.type && !u.isMoved() && !f.hasError && (l = u.getThumbPos(f)) || (o = "fade"),
"zoom" === o ? (n.fancybox.stop(i),
s = n.fancybox.getTranslate(i),
c = {
top: s.top,
left: s.left,
scaleX: s.width / l.width,
scaleY: s.height / l.height,
width: l.width,
height: l.height
},
r = f.opts.zoomOpacity,
"auto" == r && (r = Math.abs(f.width / f.height - l.width / l.height) > .1),
r && (l.opacity = 0),
n.fancybox.setTranslate(i, c),
p(i),
n.fancybox.animate(i, l, a, h),
!0) : (o && a ? n.fancybox.animate(f.$slide.addClass("fancybox-slide--previous").removeClass("fancybox-slide--current"), "fancybox-animated fancybox-fx-" + o, a, h) : t === !0 ? setTimeout(h, a) : h(),
!0)))
},
cleanUp: function(e) {
var o, a, i, s = this, r = s.current.opts.$orig;
s.current.$slide.trigger("onReset"),
s.$refs.container.empty().remove(),
s.trigger("afterClose", e),
s.current.opts.backFocus && (r && r.length && r.is(":visible") || (r = s.$trigger),
r && r.length && (a = t.scrollX,
i = t.scrollY,
r.trigger("focus"),
n("html, body").scrollTop(i).scrollLeft(a))),
s.current = null,
o = n.fancybox.getInstance(),
o ? o.activate() : (n("body").removeClass("fancybox-active compensate-for-scrollbar"),
n("#fancybox-style-noscroll").remove())
},
trigger: function(t, e) {
var o, a = Array.prototype.slice.call(arguments, 1), i = this, s = e && e.opts ? e : i.current;
return s ? a.unshift(s) : s = i,
a.unshift(i),
n.isFunction(s.opts[t]) && (o = s.opts[t].apply(s, a)),
o === !1 ? o : void ("afterClose" !== t && i.$refs ? i.$refs.container.trigger(t + ".fb", a) : r.trigger(t + ".fb", a))
},
updateControls: function() {
var t = this
, o = t.current
, a = o.index
, i = t.$refs.container
, s = t.$refs.caption
, r = o.opts.caption;
o.$slide.trigger("refresh"),
t.$caption = r && r.length ? s.html(r) : null,
t.hasHiddenControls || t.isIdle || t.showControls(),
i.find("[data-fancybox-count]").html(t.group.length),
i.find("[data-fancybox-index]").html(a + 1),
i.find("[data-fancybox-prev]").prop("disabled", !o.opts.loop && a <= 0),
i.find("[data-fancybox-next]").prop("disabled", !o.opts.loop && a >= t.group.length - 1),
"image" === o.type ? i.find("[data-fancybox-zoom]").show().end().find("[data-fancybox-download]").attr("href", o.opts.image.src || o.src).show() : o.opts.toolbar && i.find("[data-fancybox-download],[data-fancybox-zoom]").hide(),
n(e.activeElement).is(":hidden,[disabled]") && t.$refs.container.trigger("focus")
},
hideControls: function(t) {
var e = this
, n = ["infobar", "toolbar", "nav"];
!t && e.current.opts.preventCaptionOverlap || n.push("caption"),
this.$refs.container.removeClass(n.map(function(t) {
return "fancybox-show-" + t
}).join(" ")),
this.hasHiddenControls = !0
},
showControls: function() {
var t = this
, e = t.current ? t.current.opts : t.opts
, n = t.$refs.container;
t.hasHiddenControls = !1,
t.idleSecondsCounter = 0,
n.toggleClass("fancybox-show-toolbar", !(!e.toolbar || !e.buttons)).toggleClass("fancybox-show-infobar", !!(e.infobar && t.group.length > 1)).toggleClass("fancybox-show-caption", !!t.$caption).toggleClass("fancybox-show-nav", !!(e.arrows && t.group.length > 1)).toggleClass("fancybox-is-modal", !!e.modal)
},
toggleControls: function() {
this.hasHiddenControls ? this.showControls() : this.hideControls()
}
}),
n.fancybox = {
version: "3.5.2",
defaults: i,
getInstance: function(t) {
var e = n('.fancybox-container:not(".fancybox-is-closing"):last').data("FancyBox")
, o = Array.prototype.slice.call(arguments, 1);
return e instanceof b && ("string" === n.type(t) ? e[t].apply(e, o) : "function" === n.type(t) && t.apply(e, o),
e)
},
open: function(t, e, n) {
return new b(t,e,n)
},
close: function(t) {
var e = this.getInstance();
e && (e.close(),
t === !0 && this.close(t))
},
destroy: function() {
this.close(!0),
r.add("body").off("click.fb-start", "**")
},
isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),
use3d: function() {
var n = e.createElement("div");
return t.getComputedStyle && t.getComputedStyle(n) && t.getComputedStyle(n).getPropertyValue("transform") && !(e.documentMode && e.documentMode < 11)
}(),
getTranslate: function(t) {
var e;
return !(!t || !t.length) && (e = t[0].getBoundingClientRect(),
{
top: e.top || 0,
left: e.left || 0,
width: e.width,
height: e.height,
opacity: parseFloat(t.css("opacity"))
})
},
setTranslate: function(t, e) {
var n = ""
, a = {};
if (t && e)
return e.left === o && e.top === o || (n = (e.left === o ? t.position().left : e.left) + "px, " + (e.top === o ? t.position().top : e.top) + "px",
n = this.use3d ? "translate3d(" + n + ", 0px)" : "translate(" + n + ")"),
e.scaleX !== o && e.scaleY !== o ? n += " scale(" + e.scaleX + ", " + e.scaleY + ")" : e.scaleX !== o && (n += " scaleX(" + e.scaleX + ")"),
n.length && (a.transform = n),
e.opacity !== o && (a.opacity = e.opacity),
e.width !== o && (a.width = e.width),
e.height !== o && (a.height = e.height),
t.css(a)
},
animate: function(t, e, a, i, s) {
var r, c = this;
n.isFunction(a) && (i = a,
a = null),
c.stop(t),
r = c.getTranslate(t),
t.on(f, function(l) {
(!l || !l.originalEvent || t.is(l.originalEvent.target) && "z-index" != l.originalEvent.propertyName) && (c.stop(t),
n.isNumeric(a) && t.css("transition-duration", ""),
n.isPlainObject(e) ? e.scaleX !== o && e.scaleY !== o && c.setTranslate(t, {
top: e.top,
left: e.left,
width: r.width * e.scaleX,
height: r.height * e.scaleY,
scaleX: 1,
scaleY: 1
}) : s !== !0 && t.removeClass(e),
n.isFunction(i) && i(l))
}),
n.isNumeric(a) && t.css("transition-duration", a + "ms"),
n.isPlainObject(e) ? (e.scaleX !== o && e.scaleY !== o && (delete e.width,
delete e.height,
t.parent().hasClass("fancybox-slide--image") && t.parent().addClass("fancybox-is-scaling")),
n.fancybox.setTranslate(t, e)) : t.addClass(e),
t.data("timer", setTimeout(function() {
t.trigger(f)
}, a + 33))
},
stop: function(t, e) {
t && t.length && (clearTimeout(t.data("timer")),
e && t.trigger(f),
t.off(f).css("transition-duration", ""),
t.parent().removeClass("fancybox-is-scaling"))
}
},
n.fn.fancybox = function(t) {
var e;
return t = t || {},
e = t.selector || !1,
e ? n("body").off("click.fb-start", e).on("click.fb-start", e, {
options: t
}, a) : this.off("click.fb-start").on("click.fb-start", {
items: this,
options: t
}, a),
this
}
,
r.on("click.fb-start", "[data-fancybox]", a),
r.on("click.fb-start", "[data-fancybox-trigger]", function(t) {
n('[data-fancybox="' + n(this).attr("data-fancybox-trigger") + '"]').eq(n(this).attr("data-fancybox-index") || 0).trigger("click.fb-start", {
$trigger: n(this)
})
}),
function() {
var t = ".fancybox-button"
, e = "fancybox-focus"
, o = null;
r.on("mousedown mouseup focus blur", t, function(a) {
switch (a.type) {
case "mousedown":
o = n(this);
break;
case "mouseup":
o = null;
break;
case "focusin":
n(t).removeClass(e),
n(this).is(o) || n(this).is("[disabled]") || n(this).addClass(e);
break;
case "focusout":
n(t).removeClass(e)
}
})
}()
}
}(window, document, jQuery),
function(t) {
"use strict";
var e = {
youtube: {
matcher: /(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,
params: {
autoplay: 1,
autohide: 1,
fs: 1,
rel: 0,
hd: 1,
wmode: "transparent",
enablejsapi: 1,
html5: 1
},
paramPlace: 8,
type: "iframe",
url: "//www.youtube-nocookie.com/embed/$4",
thumb: "//img.youtube.com/vi/$4/hqdefault.jpg"
},
vimeo: {
matcher: /^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,
params: {
autoplay: 1,
hd: 1,
show_title: 1,
show_byline: 1,
show_portrait: 0,
fullscreen: 1
},
paramPlace: 3,
type: "iframe",
url: "//player.vimeo.com/video/$2"
},
instagram: {
matcher: /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,
type: "image",
url: "//$1/p/$2/media/?size=l"
},
gmap_place: {
matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,
type: "iframe",
url: function(t) {
return "//maps.google." + t[2] + "/?ll=" + (t[9] ? t[9] + "&z=" + Math.floor(t[10]) + (t[12] ? t[12].replace(/^\//, "&") : "") : t[12] + "").replace(/\?/, "&") + "&output=" + (t[12] && t[12].indexOf("layer=c") > 0 ? "svembed" : "embed")
}
},
gmap_search: {
matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i,
type: "iframe",
url: function(t) {
return "//maps.google." + t[2] + "/maps?q=" + t[5].replace("query=", "q=").replace("api=1", "") + "&output=embed"
}
}
}
, n = function(e, n, o) {
if (e)
return o = o || "",
"object" === t.type(o) && (o = t.param(o, !0)),
t.each(n, function(t, n) {
e = e.replace("$" + t, n || "")
}),
o.length && (e += (e.indexOf("?") > 0 ? "&" : "?") + o),
e
};
t(document).on("objectNeedsType.fb", function(o, a, i) {
var s, r, c, l, d, u, f, p = i.src || "", h = !1;
s = t.extend(!0, {}, e, i.opts.media),
t.each(s, function(e, o) {
if (c = p.match(o.matcher)) {
if (h = o.type,
f = e,
u = {},
o.paramPlace && c[o.paramPlace]) {
d = c[o.paramPlace],
"?" == d[0] && (d = d.substring(1)),
d = d.split("&");
for (var a = 0; a < d.length; ++a) {
var s = d[a].split("=", 2);
2 == s.length && (u[s[0]] = decodeURIComponent(s[1].replace(/\+/g, " ")))
}
}
return l = t.extend(!0, {}, o.params, i.opts[e], u),
p = "function" === t.type(o.url) ? o.url.call(this, c, l, i) : n(o.url, c, l),
r = "function" === t.type(o.thumb) ? o.thumb.call(this, c, l, i) : n(o.thumb, c),
"youtube" === e ? p = p.replace(/&t=((\d+)m)?(\d+)s/, function(t, e, n, o) {
return "&start=" + ((n ? 60 * parseInt(n, 10) : 0) + parseInt(o, 10))
}) : "vimeo" === e && (p = p.replace("&%23", "#")),
!1
}
}),
h ? (i.opts.thumb || i.opts.$thumb && i.opts.$thumb.length || (i.opts.thumb = r),
"iframe" === h && (i.opts = t.extend(!0, i.opts, {
iframe: {
preload: !1,
attr: {
scrolling: "no"
}
}
})),
t.extend(i, {
type: h,
src: p,
origSrc: i.src,
contentSource: f,
contentType: "image" === h ? "image" : "gmap_place" == f || "gmap_search" == f ? "map" : "video"
})) : p && (i.type = i.opts.defaultType)
});
var o = {
youtube: {
src: "https://www.youtube.com/iframe_api",
class: "YT",
loading: !1,
loaded: !1
},
vimeo: {
src: "https://player.vimeo.com/api/player.js",
class: "Vimeo",
loading: !1,
loaded: !1
},
load: function(t) {
var e, n = this;
return this[t].loaded ? void setTimeout(function() {
n.done(t)
}) : void (this[t].loading || (this[t].loading = !0,
e = document.createElement("script"),
e.type = "text/javascript",
e.src = this[t].src,
"youtube" === t ? window.onYouTubeIframeAPIReady = function() {
n[t].loaded = !0,
n.done(t)
}
: e.onload = function() {
n[t].loaded = !0,
n.done(t)
}
,
document.body.appendChild(e)))
},
done: function(e) {
var n, o, a;
"youtube" === e && delete window.onYouTubeIframeAPIReady,
n = t.fancybox.getInstance(),
n && (o = n.current.$content.find("iframe"),
"youtube" === e && void 0 !== YT && YT ? a = new YT.Player(o.attr("id"),{
events: {
onStateChange: function(t) {
0 == t.data && n.next()
}
}
}) : "vimeo" === e && void 0 !== Vimeo && Vimeo && (a = new Vimeo.Player(o),
a.on("ended", function() {
n.next()
})))
}
};
t(document).on({
"afterShow.fb": function(t, e, n) {
e.group.length > 1 && ("youtube" === n.contentSource || "vimeo" === n.contentSource) && o.load(n.contentSource)
}
})
}(jQuery),
function(t, e, n) {
"use strict";
var o = function() {
return t.requestAnimationFrame || t.webkitRequestAnimationFrame || t.mozRequestAnimationFrame || t.oRequestAnimationFrame || function(e) {
return t.setTimeout(e, 1e3 / 60)
}
}()
, a = function() {
return t.cancelAnimationFrame || t.webkitCancelAnimationFrame || t.mozCancelAnimationFrame || t.oCancelAnimationFrame || function(e) {
t.clearTimeout(e)
}
}()
, i = function(e) {
var n = [];
e = e.originalEvent || e || t.e,
e = e.touches && e.touches.length ? e.touches : e.changedTouches && e.changedTouches.length ? e.changedTouches : [e];
for (var o in e)
e[o].pageX ? n.push({
x: e[o].pageX,
y: e[o].pageY
}) : e[o].clientX && n.push({
x: e[o].clientX,
y: e[o].clientY
});
return n
}
, s = function(t, e, n) {
return e && t ? "x" === n ? t.x - e.x : "y" === n ? t.y - e.y : Math.sqrt(Math.pow(t.x - e.x, 2) + Math.pow(t.y - e.y, 2)) : 0
}
, r = function(t) {
if (t.is('a,area,button,[role="button"],input,label,select,summary,textarea,video,audio,iframe') || n.isFunction(t.get(0).onclick) || t.data("selectable"))
return !0;
for (var e = 0, o = t[0].attributes, a = o.length; e < a; e++)
if ("data-fancybox-" === o[e].nodeName.substr(0, 14))
return !0;
return !1
}
, c = function(e) {
var n = t.getComputedStyle(e)["overflow-y"]
, o = t.getComputedStyle(e)["overflow-x"]
, a = ("scroll" === n || "auto" === n) && e.scrollHeight > e.clientHeight
, i = ("scroll" === o || "auto" === o) && e.scrollWidth > e.clientWidth;
return a || i
}
, l = function(t) {
for (var e = !1; ; ) {
if (e = c(t.get(0)))
break;
if (t = t.parent(),
!t.length || t.hasClass("fancybox-stage") || t.is("body"))
break
}
return e
}
, d = function(t) {
var e = this;
e.instance = t,
e.$bg = t.$refs.bg,
e.$stage = t.$refs.stage,
e.$container = t.$refs.container,
e.destroy(),
e.$container.on("touchstart.fb.touch mousedown.fb.touch", n.proxy(e, "ontouchstart"))
};
d.prototype.destroy = function() {
var t = this;
t.$container.off(".fb.touch"),
n(e).off(".fb.touch"),
t.requestId && (a(t.requestId),
t.requestId = null),
t.tapped && (clearTimeout(t.tapped),
t.tapped = null)
}
,
d.prototype.ontouchstart = function(o) {
var a = this
, c = n(o.target)
, d = a.instance
, u = d.current
, f = u.$slide
, p = u.$content
, h = "touchstart" == o.type;
if (h && a.$container.off("mousedown.fb.touch"),
(!o.originalEvent || 2 != o.originalEvent.button) && f.length && c.length && !r(c) && !r(c.parent()) && (c.is("img") || !(o.originalEvent.clientX > c[0].clientWidth + c.offset().left))) {
if (!u || d.isAnimating || u.$slide.hasClass("fancybox-animated"))
return o.stopPropagation(),
void o.preventDefault();
a.realPoints = a.startPoints = i(o),
a.startPoints.length && (u.touch && o.stopPropagation(),
a.startEvent = o,
a.canTap = !0,
a.$target = c,
a.$content = p,
a.opts = u.opts.touch,
a.isPanning = !1,
a.isSwiping = !1,
a.isZooming = !1,
a.isScrolling = !1,
a.canPan = d.canPan(),
a.startTime = (new Date).getTime(),
a.distanceX = a.distanceY = a.distance = 0,
a.canvasWidth = Math.round(f[0].clientWidth),
a.canvasHeight = Math.round(f[0].clientHeight),
a.contentLastPos = null,
a.contentStartPos = n.fancybox.getTranslate(a.$content) || {
top: 0,
left: 0
},
a.sliderStartPos = n.fancybox.getTranslate(f),
a.stagePos = n.fancybox.getTranslate(d.$refs.stage),
a.sliderStartPos.top -= a.stagePos.top,
a.sliderStartPos.left -= a.stagePos.left,
a.contentStartPos.top -= a.stagePos.top,
a.contentStartPos.left -= a.stagePos.left,
n(e).off(".fb.touch").on(h ? "touchend.fb.touch touchcancel.fb.touch" : "mouseup.fb.touch mouseleave.fb.touch", n.proxy(a, "ontouchend")).on(h ? "touchmove.fb.touch" : "mousemove.fb.touch", n.proxy(a, "ontouchmove")),
n.fancybox.isMobile && e.addEventListener("scroll", a.onscroll, !0),
((a.opts || a.canPan) && (c.is(a.$stage) || a.$stage.find(c).length) || (c.is(".fancybox-image") && o.preventDefault(),
n.fancybox.isMobile && c.hasClass("fancybox-caption"))) && (a.isScrollable = l(c) || l(c.parent()),
n.fancybox.isMobile && a.isScrollable || o.preventDefault(),
(1 === a.startPoints.length || u.hasError) && (a.canPan ? (n.fancybox.stop(a.$content),
a.isPanning = !0) : a.isSwiping = !0,
a.$container.addClass("fancybox-is-grabbing")),
2 === a.startPoints.length && "image" === u.type && (u.isLoaded || u.$ghost) && (a.canTap = !1,
a.isSwiping = !1,
a.isPanning = !1,
a.isZooming = !0,
n.fancybox.stop(a.$content),
a.centerPointStartX = .5 * (a.startPoints[0].x + a.startPoints[1].x) - n(t).scrollLeft(),
a.centerPointStartY = .5 * (a.startPoints[0].y + a.startPoints[1].y) - n(t).scrollTop(),
a.percentageOfImageAtPinchPointX = (a.centerPointStartX - a.contentStartPos.left) / a.contentStartPos.width,
a.percentageOfImageAtPinchPointY = (a.centerPointStartY - a.contentStartPos.top) / a.contentStartPos.height,
a.startDistanceBetweenFingers = s(a.startPoints[0], a.startPoints[1]))))
}
}
,
d.prototype.onscroll = function(t) {
var n = this;
n.isScrolling = !0,
e.removeEventListener("scroll", n.onscroll, !0)
}
,
d.prototype.ontouchmove = function(t) {
var e = this;
return void 0 !== t.originalEvent.buttons && 0 === t.originalEvent.buttons ? void e.ontouchend(t) : e.isScrolling ? void (e.canTap = !1) : (e.newPoints = i(t),
void ((e.opts || e.canPan) && e.newPoints.length && e.newPoints.length && (e.isSwiping && e.isSwiping === !0 || t.preventDefault(),
e.distanceX = s(e.newPoints[0], e.startPoints[0], "x"),
e.distanceY = s(e.newPoints[0], e.startPoints[0], "y"),
e.distance = s(e.newPoints[0], e.startPoints[0]),
e.distance > 0 && (e.isSwiping ? e.onSwipe(t) : e.isPanning ? e.onPan() : e.isZooming && e.onZoom()))))
}
,
d.prototype.onSwipe = function(e) {
var i, s = this, r = s.instance, c = s.isSwiping, l = s.sliderStartPos.left || 0;
if (c !== !0)
"x" == c && (s.distanceX > 0 && (s.instance.group.length < 2 || 0 === s.instance.current.index && !s.instance.current.opts.loop) ? l += Math.pow(s.distanceX, .8) : s.distanceX < 0 && (s.instance.group.length < 2 || s.instance.current.index === s.instance.group.length - 1 && !s.instance.current.opts.loop) ? l -= Math.pow(-s.distanceX, .8) : l += s.distanceX),
s.sliderLastPos = {
top: "x" == c ? 0 : s.sliderStartPos.top + s.distanceY,
left: l
},
s.requestId && (a(s.requestId),
s.requestId = null),
s.requestId = o(function() {
s.sliderLastPos && (n.each(s.instance.slides, function(t, e) {
var o = e.pos - s.instance.currPos;
n.fancybox.setTranslate(e.$slide, {
top: s.sliderLastPos.top,
left: s.sliderLastPos.left + o * s.canvasWidth + o * e.opts.gutter
})
}),
s.$container.addClass("fancybox-is-sliding"))
});
else if (Math.abs(s.distance) > 10) {
if (s.canTap = !1,
r.group.length < 2 && s.opts.vertical ? s.isSwiping = "y" : r.isDragging || s.opts.vertical === !1 || "auto" === s.opts.vertical && n(t).width() > 800 ? s.isSwiping = "x" : (i = Math.abs(180 * Math.atan2(s.distanceY, s.distanceX) / Math.PI),
s.isSwiping = i > 45 && i < 135 ? "y" : "x"),
"y" === s.isSwiping && n.fancybox.isMobile && s.isScrollable)
return void (s.isScrolling = !0);
r.isDragging = s.isSwiping,
s.startPoints = s.newPoints,
n.each(r.slides, function(t, e) {
var o, a;
n.fancybox.stop(e.$slide),
o = n.fancybox.getTranslate(e.$slide),
a = n.fancybox.getTranslate(r.$refs.stage),
e.$slide.css({
transform: "",
opacity: "",
"transition-duration": ""
}).removeClass("fancybox-animated").removeClass(function(t, e) {
return (e.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" ")
}),
e.pos === r.current.pos && (s.sliderStartPos.top = o.top - a.top,
s.sliderStartPos.left = o.left - a.left),
n.fancybox.setTranslate(e.$slide, {
top: o.top - a.top,
left: o.left - a.left
})
}),
r.SlideShow && r.SlideShow.isActive && r.SlideShow.stop()
}
}
,
d.prototype.onPan = function() {
var t = this;
return s(t.newPoints[0], t.realPoints[0]) < (n.fancybox.isMobile ? 10 : 5) ? void (t.startPoints = t.newPoints) : (t.canTap = !1,
t.contentLastPos = t.limitMovement(),
t.requestId && a(t.requestId),
void (t.requestId = o(function() {
n.fancybox.setTranslate(t.$content, t.contentLastPos)
})))
}
,
d.prototype.limitMovement = function() {
var t, e, n, o, a, i, s = this, r = s.canvasWidth, c = s.canvasHeight, l = s.distanceX, d = s.distanceY, u = s.contentStartPos, f = u.left, p = u.top, h = u.width, g = u.height;
return a = h > r ? f + l : f,
i = p + d,
t = Math.max(0, .5 * r - .5 * h),
e = Math.max(0, .5 * c - .5 * g),
n = Math.min(r - h, .5 * r - .5 * h),
o = Math.min(c - g, .5 * c - .5 * g),
l > 0 && a > t && (a = t - 1 + Math.pow(-t + f + l, .8) || 0),
l < 0 && a < n && (a = n + 1 - Math.pow(n - f - l, .8) || 0),
d > 0 && i > e && (i = e - 1 + Math.pow(-e + p + d, .8) || 0),
d < 0 && i < o && (i = o + 1 - Math.pow(o - p - d, .8) || 0),
{
top: i,
left: a
}
}
,
d.prototype.limitPosition = function(t, e, n, o) {
var a = this
, i = a.canvasWidth
, s = a.canvasHeight;
return n > i ? (t = t > 0 ? 0 : t,
t = t < i - n ? i - n : t) : t = Math.max(0, i / 2 - n / 2),
o > s ? (e = e > 0 ? 0 : e,
e = e < s - o ? s - o : e) : e = Math.max(0, s / 2 - o / 2),
{
top: e,
left: t
}
}
,
d.prototype.onZoom = function() {
var e = this
, i = e.contentStartPos
, r = i.width
, c = i.height
, l = i.left
, d = i.top
, u = s(e.newPoints[0], e.newPoints[1])
, f = u / e.startDistanceBetweenFingers
, p = Math.floor(r * f)
, h = Math.floor(c * f)
, g = (r - p) * e.percentageOfImageAtPinchPointX
, b = (c - h) * e.percentageOfImageAtPinchPointY
, m = (e.newPoints[0].x + e.newPoints[1].x) / 2 - n(t).scrollLeft()
, v = (e.newPoints[0].y + e.newPoints[1].y) / 2 - n(t).scrollTop()
, y = m - e.centerPointStartX
, x = v - e.centerPointStartY
, w = l + (g + y)
, $ = d + (b + x)
, S = {
top: $,
left: w,
scaleX: f,
scaleY: f
};
e.canTap = !1,
e.newWidth = p,
e.newHeight = h,
e.contentLastPos = S,
e.requestId && a(e.requestId),
e.requestId = o(function() {
n.fancybox.setTranslate(e.$content, e.contentLastPos)
})
}
,
d.prototype.ontouchend = function(t) {
var o = this
, s = o.isSwiping
, r = o.isPanning
, c = o.isZooming
, l = o.isScrolling;
return o.endPoints = i(t),
o.dMs = Math.max((new Date).getTime() - o.startTime, 1),
o.$container.removeClass("fancybox-is-grabbing"),
n(e).off(".fb.touch"),
e.removeEventListener("scroll", o.onscroll, !0),
o.requestId && (a(o.requestId),
o.requestId = null),
o.isSwiping = !1,
o.isPanning = !1,
o.isZooming = !1,
o.isScrolling = !1,
o.instance.isDragging = !1,
o.canTap ? o.onTap(t) : (o.speed = 100,
o.velocityX = o.distanceX / o.dMs * .5,
o.velocityY = o.distanceY / o.dMs * .5,
void (r ? o.endPanning() : c ? o.endZooming() : o.endSwiping(s, l)))
}
,
d.prototype.endSwiping = function(t, e) {
var o = this
, a = !1
, i = o.instance.group.length
, s = Math.abs(o.distanceX)
, r = "x" == t && i > 1 && (o.dMs > 130 && s > 10 || s > 50)
, c = 300;
o.sliderLastPos = null,
"y" == t && !e && Math.abs(o.distanceY) > 50 ? (n.fancybox.animate(o.instance.current.$slide, {
top: o.sliderStartPos.top + o.distanceY + 150 * o.velocityY,
opacity: 0
}, 200),
a = o.instance.close(!0, 250)) : r && o.distanceX > 0 ? a = o.instance.previous(c) : r && o.distanceX < 0 && (a = o.instance.next(c)),
a !== !1 || "x" != t && "y" != t || o.instance.centerSlide(200),
o.$container.removeClass("fancybox-is-sliding")
}
,
d.prototype.endPanning = function() {
var t, e, o, a = this;
a.contentLastPos && (a.opts.momentum === !1 || a.dMs > 350 ? (t = a.contentLastPos.left,
e = a.contentLastPos.top) : (t = a.contentLastPos.left + 500 * a.velocityX,
e = a.contentLastPos.top + 500 * a.velocityY),
o = a.limitPosition(t, e, a.contentStartPos.width, a.contentStartPos.height),
o.width = a.contentStartPos.width,
o.height = a.contentStartPos.height,
n.fancybox.animate(a.$content, o, 330))
}
,
d.prototype.endZooming = function() {
var t, e, o, a, i = this, s = i.instance.current, r = i.newWidth, c = i.newHeight;
i.contentLastPos && (t = i.contentLastPos.left,
e = i.contentLastPos.top,
a = {
top: e,
left: t,
width: r,
height: c,
scaleX: 1,
scaleY: 1
},
n.fancybox.setTranslate(i.$content, a),
r < i.canvasWidth && c < i.canvasHeight ? i.instance.scaleToFit(150) : r > s.width || c > s.height ? i.instance.scaleToActual(i.centerPointStartX, i.centerPointStartY, 150) : (o = i.limitPosition(t, e, r, c),
n.fancybox.animate(i.$content, o, 150)))
}
,
d.prototype.onTap = function(e) {
var o, a = this, s = n(e.target), r = a.instance, c = r.current, l = e && i(e) || a.startPoints, d = l[0] ? l[0].x - n(t).scrollLeft() - a.stagePos.left : 0, u = l[0] ? l[0].y - n(t).scrollTop() - a.stagePos.top : 0, f = function(t) {
var o = c.opts[t];
if (n.isFunction(o) && (o = o.apply(r, [c, e])),
o)
switch (o) {
case "close":
r.close(a.startEvent);
break;
case "toggleControls":
r.toggleControls();
break;
case "next":
r.next();
break;
case "nextOrClose":
r.group.length > 1 ? r.next() : r.close(a.startEvent);
break;
case "zoom":
"image" == c.type && (c.isLoaded || c.$ghost) && (r.canPan() ? r.scaleToFit() : r.isScaledDown() ? r.scaleToActual(d, u) : r.group.length < 2 && r.close(a.startEvent))
}
};
if ((!e.originalEvent || 2 != e.originalEvent.button) && (s.is("img") || !(d > s[0].clientWidth + s.offset().left))) {
if (s.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container"))
o = "Outside";
else if (s.is(".fancybox-slide"))
o = "Slide";
else {
if (!r.current.$content || !r.current.$content.find(s).addBack().filter(s).length)
return;
o = "Content"
}
if (a.tapped) {
if (clearTimeout(a.tapped),
a.tapped = null,
Math.abs(d - a.tapX) > 50 || Math.abs(u - a.tapY) > 50)
return this;
f("dblclick" + o)
} else
a.tapX = d,
a.tapY = u,
c.opts["dblclick" + o] && c.opts["dblclick" + o] !== c.opts["click" + o] ? a.tapped = setTimeout(function() {
a.tapped = null,
r.isAnimating || f("click" + o)
}, 500) : f("click" + o);
return this
}
}
,
n(e).on("onActivate.fb", function(t, e) {
e && !e.Guestures && (e.Guestures = new d(e))
}).on("beforeClose.fb", function(t, e) {
e && e.Guestures && e.Guestures.destroy()
})
}(window, document, jQuery),
function(t, e) {
"use strict";
e.extend(!0, e.fancybox.defaults, {
btnTpl: {
slideShow: '
'
},
slideShow: {
autoStart: !1,
speed: 3e3,
progress: !0
}
});
var n = function(t) {
this.instance = t,
this.init()
};
e.extend(n.prototype, {
timer: null,
isActive: !1,
$button: null,
init: function() {
var t = this
, n = t.instance
, o = n.group[n.currIndex].opts.slideShow;
t.$button = n.$refs.toolbar.find("[data-fancybox-play]").on("click", function() {
t.toggle()
}),
n.group.length < 2 || !o ? t.$button.hide() : o.progress && (t.$progress = e('
').appendTo(n.$refs.inner))
},
set: function(t) {
var n = this
, o = n.instance
, a = o.current;
a && (t === !0 || a.opts.loop || o.currIndex < o.group.length - 1) ? n.isActive && "video" !== a.contentType && (n.$progress && e.fancybox.animate(n.$progress.show(), {
scaleX: 1
}, a.opts.slideShow.speed),
n.timer = setTimeout(function() {
o.current.opts.loop || o.current.index != o.group.length - 1 ? o.next() : o.jumpTo(0)
}, a.opts.slideShow.speed)) : (n.stop(),
o.idleSecondsCounter = 0,
o.showControls())
},
clear: function() {
var t = this;
clearTimeout(t.timer),
t.timer = null,
t.$progress && t.$progress.removeAttr("style").hide()
},
start: function() {
var t = this
, e = t.instance.current;
e && (t.$button.attr("title", (e.opts.i18n[e.opts.lang] || e.opts.i18n.en).PLAY_STOP).removeClass("fancybox-button--play").addClass("fancybox-button--pause"),
t.isActive = !0,
e.isComplete && t.set(!0),
t.instance.trigger("onSlideShowChange", !0))
},
stop: function() {
var t = this
, e = t.instance.current;
t.clear(),
t.$button.attr("title", (e.opts.i18n[e.opts.lang] || e.opts.i18n.en).PLAY_START).removeClass("fancybox-button--pause").addClass("fancybox-button--play"),
t.isActive = !1,
t.instance.trigger("onSlideShowChange", !1),
t.$progress && t.$progress.removeAttr("style").hide()
},
toggle: function() {
var t = this;
t.isActive ? t.stop() : t.start()
}
}),
e(t).on({
"onInit.fb": function(t, e) {
e && !e.SlideShow && (e.SlideShow = new n(e))
},
"beforeShow.fb": function(t, e, n, o) {
var a = e && e.SlideShow;
o ? a && n.opts.slideShow.autoStart && a.start() : a && a.isActive && a.clear()
},
"afterShow.fb": function(t, e, n) {
var o = e && e.SlideShow;
o && o.isActive && o.set()
},
"afterKeydown.fb": function(n, o, a, i, s) {
var r = o && o.SlideShow;
!r || !a.opts.slideShow || 80 !== s && 32 !== s || e(t.activeElement).is("button,a,input") || (i.preventDefault(),
r.toggle())
},
"beforeClose.fb onDeactivate.fb": function(t, e) {
var n = e && e.SlideShow;
n && n.stop()
}
}),
e(t).on("visibilitychange", function() {
var n = e.fancybox.getInstance()
, o = n && n.SlideShow;
o && o.isActive && (t.hidden ? o.clear() : o.set())
})
}(document, jQuery),
function(t, e) {
"use strict";
var n = function() {
for (var e = [["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"], ["webkitRequestFullscreen", "webkitExitFullscreen", "webkitFullscreenElement", "webkitFullscreenEnabled", "webkitfullscreenchange", "webkitfullscreenerror"], ["webkitRequestFullScreen", "webkitCancelFullScreen", "webkitCurrentFullScreenElement", "webkitCancelFullScreen", "webkitfullscreenchange", "webkitfullscreenerror"], ["mozRequestFullScreen", "mozCancelFullScreen", "mozFullScreenElement", "mozFullScreenEnabled", "mozfullscreenchange", "mozfullscreenerror"], ["msRequestFullscreen", "msExitFullscreen", "msFullscreenElement", "msFullscreenEnabled", "MSFullscreenChange", "MSFullscreenError"]], n = {}, o = 0; o < e.length; o++) {
var a = e[o];
if (a && a[1]in t) {
for (var i = 0; i < a.length; i++)
n[e[0][i]] = a[i];
return n
}
}
return !1
}();
if (n) {
var o = {
request: function(e) {
e = e || t.documentElement,
e[n.requestFullscreen](e.ALLOW_KEYBOARD_INPUT)
},
exit: function() {
t[n.exitFullscreen]()
},
toggle: function(e) {
e = e || t.documentElement,
this.isFullscreen() ? this.exit() : this.request(e)
},
isFullscreen: function() {
return Boolean(t[n.fullscreenElement])
},
enabled: function() {
return Boolean(t[n.fullscreenEnabled])
}
};
e.extend(!0, e.fancybox.defaults, {
btnTpl: {
fullScreen: '
'
},
fullScreen: {
autoStart: !1
}
}),
e(t).on(n.fullscreenchange, function() {
var t = o.isFullscreen()
, n = e.fancybox.getInstance();
n && (n.current && "image" === n.current.type && n.isAnimating && (n.current.$content.css("transition", "none"),
n.isAnimating = !1,
n.update(!0, !0, 0)),
n.trigger("onFullscreenChange", t),
n.$refs.container.toggleClass("fancybox-is-fullscreen", t),
n.$refs.toolbar.find("[data-fancybox-fullscreen]").toggleClass("fancybox-button--fsenter", !t).toggleClass("fancybox-button--fsexit", t))
})
}
e(t).on({
"onInit.fb": function(t, e) {
var a;
return n ? void (e && e.group[e.currIndex].opts.fullScreen ? (a = e.$refs.container,
a.on("click.fb-fullscreen", "[data-fancybox-fullscreen]", function(t) {
t.stopPropagation(),
t.preventDefault(),
o.toggle()
}),
e.opts.fullScreen && e.opts.fullScreen.autoStart === !0 && o.request(),
e.FullScreen = o) : e && e.$refs.toolbar.find("[data-fancybox-fullscreen]").hide()) : void e.$refs.toolbar.find("[data-fancybox-fullscreen]").remove()
},
"afterKeydown.fb": function(t, e, n, o, a) {
e && e.FullScreen && 70 === a && (o.preventDefault(),
e.FullScreen.toggle())
},
"beforeClose.fb": function(t, e) {
e && e.FullScreen && e.$refs.container.hasClass("fancybox-is-fullscreen") && o.exit()
}
})
}(document, jQuery),
function(t, e) {
"use strict";
var n = "fancybox-thumbs"
, o = n + "-active";
e.fancybox.defaults = e.extend(!0, {
btnTpl: {
thumbs: '
'
},
thumbs: {
autoStart: !1,
hideOnClose: !0,
parentEl: ".fancybox-container",
axis: "y"
}
}, e.fancybox.defaults);
var a = function(t) {
this.init(t)
};
e.extend(a.prototype, {
$button: null,
$grid: null,
$list: null,
isVisible: !1,
isActive: !1,
init: function(t) {
var e = this
, n = t.group
, o = 0;
e.instance = t,
e.opts = n[t.currIndex].opts.thumbs,
t.Thumbs = e,
e.$button = t.$refs.toolbar.find("[data-fancybox-thumbs]");
for (var a = 0, i = n.length; a < i && (n[a].thumb && o++,
!(o > 1)); a++)
;
o > 1 && e.opts ? (e.$button.removeAttr("style").on("click", function() {
e.toggle()
}),
e.isActive = !0) : e.$button.hide()
},
create: function() {
var t, o = this, a = o.instance, i = o.opts.parentEl, s = [];
o.$grid || (o.$grid = e('
').appendTo(a.$refs.container.find(i).addBack().filter(i)),
o.$grid.on("click", "a", function() {
a.jumpTo(e(this).attr("data-index"))
})),
o.$list || (o.$list = e('
').appendTo(o.$grid)),
e.each(a.group, function(e, n) {
t = n.thumb,
t || "image" !== n.type || (t = n.src),
s.push('
")
}),
o.$list[0].innerHTML = s.join(""),
"x" === o.opts.axis && o.$list.width(parseInt(o.$grid.css("padding-right"), 10) + a.group.length * o.$list.children().eq(0).outerWidth(!0))
},
focus: function(t) {
var e, n, a = this, i = a.$list, s = a.$grid;
a.instance.current && (e = i.children().removeClass(o).filter('[data-index="' + a.instance.current.index + '"]').addClass(o),
n = e.position(),
"y" === a.opts.axis && (n.top < 0 || n.top > i.height() - e.outerHeight()) ? i.stop().animate({
scrollTop: i.scrollTop() + n.top
}, t) : "x" === a.opts.axis && (n.left < s.scrollLeft() || n.left > s.scrollLeft() + (s.width() - e.outerWidth())) && i.parent().stop().animate({
scrollLeft: n.left
}, t))
},
update: function() {
var t = this;
t.instance.$refs.container.toggleClass("fancybox-show-thumbs", this.isVisible),
t.isVisible ? (t.$grid || t.create(),
t.instance.trigger("onThumbsShow"),
t.focus(0)) : t.$grid && t.instance.trigger("onThumbsHide"),
t.instance.update()
},
hide: function() {
this.isVisible = !1,
this.update()
},
show: function() {
this.isVisible = !0,
this.update()
},
toggle: function() {
this.isVisible = !this.isVisible,
this.update()
}
}),
e(t).on({
"onInit.fb": function(t, e) {
var n;
e && !e.Thumbs && (n = new a(e),
n.isActive && n.opts.autoStart === !0 && n.show())
},
"beforeShow.fb": function(t, e, n, o) {
var a = e && e.Thumbs;
a && a.isVisible && a.focus(o ? 0 : 250)
},
"afterKeydown.fb": function(t, e, n, o, a) {
var i = e && e.Thumbs;
i && i.isActive && 71 === a && (o.preventDefault(),
i.toggle())
},
"beforeClose.fb": function(t, e) {
var n = e && e.Thumbs;
n && n.isVisible && n.opts.hideOnClose !== !1 && n.$grid.hide()
}
})
}(document, jQuery),
function(t, e) {
"use strict";
function n(t) {
var e = {
"&": "&",
"<": "<",
">": ">",
'"': """,
"'": "'",
"/": "/",
"`": "`",
"=": "="
};
return String(t).replace(/[&<>"'`=\/]/g, function(t) {
return e[t]
})
}
e.extend(!0, e.fancybox.defaults, {
btnTpl: {
share: '
'
},
share: {
url: function(t, e) {
return !t.currentHash && "inline" !== e.type && "html" !== e.type && (e.origSrc || e.src) || window.location
},
tpl: '
'
}
}),
e(t).on("click", "[data-fancybox-share]", function() {
var t, o, a = e.fancybox.getInstance(), i = a.current || null;
i && ("function" === e.type(i.opts.share.url) && (t = i.opts.share.url.apply(i, [a, i])),
o = i.opts.share.tpl.replace(/\{\{media\}\}/g, "image" === i.type ? encodeURIComponent(i.src) : "").replace(/\{\{url\}\}/g, encodeURIComponent(t)).replace(/\{\{url_raw\}\}/g, n(t)).replace(/\{\{descr\}\}/g, a.$caption ? encodeURIComponent(a.$caption.text()) : ""),
e.fancybox.open({
src: a.translate(a, o),
type: "html",
opts: {
touch: !1,
animationEffect: !1,
afterLoad: function(t, e) {
a.$refs.container.one("beforeClose.fb", function() {
t.close(null, 0)
}),
e.$content.find(".fancybox-share__button").click(function() {
return window.open(this.href, "Share", "width=550, height=450"),
!1
})
},
mobile: {
autoFocus: !1
}
}
}))
})
}(document, jQuery),
function(t, e, n) {
"use strict";
function o() {
var e = t.location.hash.substr(1)
, n = e.split("-")
, o = n.length > 1 && /^\+?\d+$/.test(n[n.length - 1]) ? parseInt(n.pop(-1), 10) || 1 : 1
, a = n.join("-");
return {
hash: e,
index: o < 1 ? 1 : o,
gallery: a
}
}
function a(t) {
"" !== t.gallery && n("[data-fancybox='" + n.escapeSelector(t.gallery) + "']").eq(t.index - 1).focus().trigger("click.fb-start")
}
function i(t) {
var e, n;
return !!t && (e = t.current ? t.current.opts : t.opts,
n = e.hash || (e.$orig ? e.$orig.data("fancybox") || e.$orig.data("fancybox-trigger") : ""),
"" !== n && n)
}
n.escapeSelector || (n.escapeSelector = function(t) {
var e = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g
, n = function(t, e) {
return e ? "\0" === t ? "�" : t.slice(0, -1) + "\\" + t.charCodeAt(t.length - 1).toString(16) + " " : "\\" + t
};
return (t + "").replace(e, n)
}
),
n(function() {
n.fancybox.defaults.hash !== !1 && (n(e).on({
"onInit.fb": function(t, e) {
var n, a;
e.group[e.currIndex].opts.hash !== !1 && (n = o(),
a = i(e),
a && n.gallery && a == n.gallery && (e.currIndex = n.index - 1))
},
"beforeShow.fb": function(n, o, a, s) {
var r;
a && a.opts.hash !== !1 && (r = i(o),
r && (o.currentHash = r + (o.group.length > 1 ? "-" + (a.index + 1) : ""),
t.location.hash !== "#" + o.currentHash && (s && !o.origHash && (o.origHash = t.location.hash),
o.hashTimer && clearTimeout(o.hashTimer),
o.hashTimer = setTimeout(function() {
"replaceState"in t.history ? (t.history[s ? "pushState" : "replaceState"]({}, e.title, t.location.pathname + t.location.search + "#" + o.currentHash),
s && (o.hasCreatedHistory = !0)) : t.location.hash = o.currentHash,
o.hashTimer = null
}, 300))))
},
"beforeClose.fb": function(n, o, a) {
a.opts.hash !== !1 && (clearTimeout(o.hashTimer),
o.currentHash && o.hasCreatedHistory ? t.history.back() : o.currentHash && ("replaceState"in t.history ? t.history.replaceState({}, e.title, t.location.pathname + t.location.search + (o.origHash || "")) : t.location.hash = o.origHash),
o.currentHash = null)
}
}),
n(t).on("hashchange.fb", function() {
var t = o()
, e = null;
n.each(n(".fancybox-container").get().reverse(), function(t, o) {
var a = n(o).data("FancyBox");
if (a && a.currentHash)
return e = a,
!1
}),
e ? e.currentHash === t.gallery + "-" + t.index || 1 === t.index && e.currentHash == t.gallery || (e.currentHash = null,
e.close()) : "" !== t.gallery && a(t)
}),
setTimeout(function() {
n.fancybox.getInstance() || a(o())
}, 50))
})
}(window, document, jQuery),
function(t, e) {
"use strict";
var n = (new Date).getTime();
e(t).on({
"onInit.fb": function(t, e, o) {
e.$refs.stage.on("mousewheel DOMMouseScroll wheel MozMousePixelScroll", function(t) {
var o = e.current
, a = (new Date).getTime();
e.group.length < 2 || o.opts.wheel === !1 || "auto" === o.opts.wheel && "image" !== o.type || (t.preventDefault(),
t.stopPropagation(),
o.$slide.hasClass("fancybox-animated") || (t = t.originalEvent || t,
a - n < 250 || (n = a,
e[(-t.deltaY || -t.deltaX || t.wheelDelta || -t.detail) < 0 ? "next" : "previous"]())))
})
}
})
}(document, jQuery);