1// ================================================== 2// fancyBox v3.5.7 3// 4// Licensed GPLv3 for open source use 5// or fancyBox Commercial License for commercial use 6// 7// http://fancyapps.com/fancybox/ 8// Copyright 2019 fancyApps 9// 10// ================================================== 11!(function (t, e, n, o) { 12 "use strict"; 13 function i(t, e) { 14 var o, 15 i, 16 a, 17 s = [], 18 r = 0; 19 (t && t.isDefaultPrevented()) || (t.preventDefault(), (e = e || {}), t && t.data && (e = h(t.data.options, e)), (o = e.$target || n(t.currentTarget).trigger("blur")), ((a = n.fancybox.getInstance()) && a.$trigger && a.$trigger.is(o)) || (e.selector ? (s = n(e.selector)) : ((i = o.attr("data-fancybox") || ""), i ? ((s = t.data ? t.data.items : []), (s = s.length ? s.filter('[data-fancybox="' + i + '"]') : n('[data-fancybox="' + i + '"]'))) : (s = [o])), (r = n(s).index(o)), r < 0 && (r = 0), (a = n.fancybox.open(s, e, r)), (a.$trigger = o))); 20 } 21 if (((t.console = t.console || { info: function (t) {} }), n)) { 22 if (n.fn.fancybox) return void console.info("fancyBox already initialized"); 23 var a = { 24 closeExisting: !1, 25 loop: !1, 26 gutter: 50, 27 keyboard: !0, 28 preventCaptionOverlap: !0, 29 arrows: !0, 30 infobar: !0, 31 smallBtn: "auto", 32 toolbar: "auto", 33 buttons: ["zoom", "slideShow", "thumbs", "close"], 34 idleTime: 3, 35 protect: !1, 36 modal: !1, 37 image: { preload: !1 }, 38 ajax: { settings: { data: { fancybox: !0 } } }, 39 iframe: { tpl: '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" allowfullscreen="allowfullscreen" allow="autoplay; fullscreen" src=""></iframe>', preload: !0, css: {}, attr: { scrolling: "auto" } }, 40 video: { tpl: '<video class="fancybox-video" controls controlsList="nodownload" poster="{{poster}}"><source src="{{src}}" type="{{format}}" />Sorry, your browser doesn\'t support embedded videos, <a href="{{src}}">download</a> and watch with your favorite video player!</video>', format: "", autoStart: !0 }, 41 defaultType: "image", 42 animationEffect: "zoom", 43 animationDuration: 366, 44 zoomOpacity: "auto", 45 transitionEffect: "fade", 46 transitionDuration: 366, 47 slideClass: "", 48 baseClass: "", 49 baseTpl: '<div class="fancybox-container" role="dialog" tabindex="-1"><div class="fancybox-bg"></div><div class="fancybox-inner"><div class="fancybox-infobar"><span data-fancybox-index></span> / <span data-fancybox-count></span></div><div class="fancybox-toolbar">{{buttons}}</div><div class="fancybox-navigation">{{arrows}}</div><div class="fancybox-stage"></div><div class="fancybox-caption"><div class="fancybox-caption__body"></div></div></div></div>', 50 spinnerTpl: '<div class="fancybox-loading"></div>', 51 errorTpl: '<div class="fancybox-error"><p>{{ERROR}}</p></div>', 52 btnTpl: { 53 download: '<a download data-fancybox-download class="fancybox-button fancybox-button--download" title="{{DOWNLOAD}}" href="javascript:;"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.62 17.09V19H5.38v-1.91zm-2.97-6.96L17 11.45l-5 4.87-5-4.87 1.36-1.32 2.68 2.64V5h1.92v7.77z"/></svg></a>', 54 zoom: '<button data-fancybox-zoom class="fancybox-button fancybox-button--zoom" title="{{ZOOM}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.7 17.3l-3-3a5.9 5.9 0 0 0-.6-7.6 5.9 5.9 0 0 0-8.4 0 5.9 5.9 0 0 0 0 8.4 5.9 5.9 0 0 0 7.7.7l3 3a1 1 0 0 0 1.3 0c.4-.5.4-1 0-1.5zM8.1 13.8a4 4 0 0 1 0-5.7 4 4 0 0 1 5.7 0 4 4 0 0 1 0 5.7 4 4 0 0 1-5.7 0z"/></svg></button>', 55 close: '<button data-fancybox-close class="fancybox-button fancybox-button--close" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 10.6L6.6 5.2 5.2 6.6l5.4 5.4-5.4 5.4 1.4 1.4 5.4-5.4 5.4 5.4 1.4-1.4-5.4-5.4 5.4-5.4-1.4-1.4-5.4 5.4z"/></svg></button>', 56 arrowLeft: '<button data-fancybox-prev class="fancybox-button fancybox-button--arrow_left" title="{{PREV}}"><div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
56<path d="M11.28 15.7l-1.34 1.37L5 12l4.94-5.07 1.34 1.38-2.68 2.72H19v1.94H8.6z"/></svg></div></button>', 57 arrowRight: '<button data-fancybox-next class="fancybox-button fancybox-button--arrow_right" title="{{NEXT}}"><div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.4 12.97l-2.68 2.72 1.34 1.38L19 12l-4.94-5.07-1.34 1.38 2.68 2.72H5v1.94z"/></svg></div></button>', 58 smallBtn: '<button type="button" data-fancybox-close class="fancybox-button fancybox-close-small" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" version="1" viewBox="0 0 24 24"><path d="M13 12l5-5-1-1-5 5-5-5-1 1 5 5-5 5 1 1 5-5 5 5 1-1z"/></svg></button>', 59 }, 60 parentEl: "body", 61 hideScrollbar: !0, 62 autoFocus: !0, 63 backFocus: !0, 64 trapFocus: !0, 65 fullScreen: { autoStart: !1 }, 66 touch: { vertical: !0, momentum: !0 }, 67 hash: null, 68 media: {}, 69 slideShow: { autoStart: !1, speed: 3e3 }, 70 thumbs: { autoStart: !1, hideOnClose: !0, parentEl: ".fancybox-container", axis: "y" }, 71 wheel: "auto", 72 onInit: n.noop, 73 beforeLoad: n.noop, 74 afterLoad: n.noop, 75 beforeShow: n.noop, 76 afterShow: n.noop, 77 beforeClose: n.noop, 78 afterClose: n.noop, 79 onActivate: n.noop, 80 onDeactivate: n.noop, 81 clickContent: function (t, e) { 82 return "image" === t.type && "zoom"; 83 }, 84 clickSlide: "close", 85 clickOutside: "close", 86 dblclickContent: !1, 87 dblclickSlide: !1, 88 dblclickOutside: !1, 89 mobile: { 90 preventCaptionOverlap: !1, 91 idleTime: !1, 92 clickContent: function (t, e) { 93 return "image" === t.type && "toggleControls"; 94 }, 95 clickSlide: function (t, e) { 96 return "image" === t.type ? "toggleControls" : "close"; 97 }, 98 dblclickContent: function (t, e) { 99 return "image" === t.type && "zoom"; 100 }, 101 dblclickSlide: function (t, e) { 102 return "image" === t.type && "zoom"; 103 }, 104 }, 105 lang: "en", 106 i18n: { en: { CLOSE: "Close", NEXT: "Next", PREV: "Previous", ERROR: "The requested content cannot be loaded. <br/> Please try again later.", PLAY_START: "Start slideshow", PLAY_STOP: "Pause slideshow", FULL_SCREEN: "Full screen", THUMBS: "Thumbnails", DOWNLOAD: "Download", SHARE: "Share", ZOOM: "Zoom" }, de: { CLOSE: "Schließen", NEXT: "Weiter", PREV: "Zurück", ERROR: "Die angeforderten Daten konnten nicht geladen werden. <br/> Bitte versuchen Sie es später nochmal.", PLAY_START: "Diaschau starten", PLAY_STOP: "Diaschau beenden", FULL_SCREEN: "Vollbild", THUMBS: "Vorschaubilder", DOWNLOAD: "Herunterladen", SHARE: "Teilen", ZOOM: "Vergrößern" } }, 107 }, 108 s = n(t), 109 r = n(e), 110 c = 0, 111 l = function (t) { 112 return t && t.hasOwnProperty && t instanceof n; 113 }, 114 d = (function () { 115 return ( 116 t.requestAnimationFrame || 117 t.webkitRequestAnimationFrame || 118 t.mozRequestAnimationFrame || 119 t.oRequestAnimationFrame || 120 function (e) { 121 return t.setTimeout(e, 1e3 / 60); 122 } 123 ); 124 })(), 125 u = (function () { 126 return ( 127 t.cancelAnimationFrame || 128 t.webkitCancelAnimationFrame || 129 t.mozCancelAnimationFrame || 130 t.oCancelAnimationFrame || 131 function (e) { 132 t.clearTimeout(e); 133 } 134 ); 135 })(), 136 f = (function () { 137 var t, 138 n = e.createElement("fakeelement"), 139 o = { transition: "transitionend", OTransition: "oTransitionEnd", MozTransition: "transitionend", WebkitTransition: "webkitTransitionEnd" }; 140 for (t in o) if (void 0 !== n.style[t]) return o[t]; 141 return "transitionend"; 142 })(), 143 p = function (t) { 144 return t && t.length && t[0].offsetHeight; 145 }, 146 h = function (t, e) { 147 var o = n.extend(!0, {}, t, e); 148 return ( 149 n.each(e, function (t, e) { 150 n.isArray(e) && (o[t] = e); 151 }), 152 o 153 ); 154 }, 155 g = function (t) { 156 var o, i; 157 return !(!t || t.ownerDocument !== e) && (n(".fancybox-container").css("pointer-events", "none"), (o = { x: t.getBoundingClientRect().left + t.offsetWidth / 2, y: t.getBoundingClientRect().top + t.offsetHeight / 2 }), (i = e.elementFromPoint(o.x, o.y) === t), n(".fancybox-container").css("pointer-events", ""), i); 158 }, 159 b = function (t, e, o) { 160 var i = this; 161 (i.opts = h({ index: o }, n.fancybox.defaults)), n.isPlainObject(e) && (i.opts = h(i.opts, e)), n.fancybox.isMobile && (i.opts = h(i.opts, i.opts.mobile)), (i.id = i.opts.id || ++c), (i.currIndex = parseInt(i.opts.index, 10) || 0), (i.prevIndex = null), (i.prevPos = null), (i.currPos = 0), (i.firstRun = !0), (i.group = []), (i.slides = {}), i.addContent(t), i.group.length && i.init(); 162 }; 163 n.extend(b.prototype, { 164 init: function () { 165 var o, 166 i, 167 a = this, 168 s = a.group[a.currIndex], 169 r = s.opts; 170 r.closeExisting && n.fancybox.close(!0), 171 n("body").addClass("fancybox-active"), 172 !n.fancybox.getInstance() && !1 !== r.hideScrollbar && !n.fancybox.isMobile && e.body.scrollHeight >
172 t.innerHeight && (n("head").append('<style id="fancybox-style-noscroll" type="text/css">.compensate-for-scrollbar{margin-right:' + (t.innerWidth - e.documentElement.clientWidth) + "px;}</style>"), n("body").addClass("compensate-for-scrollbar")), 173 (i = ""), 174 n.each(r.buttons, function (t, e) { 175 i += r.btnTpl[e] || ""; 176 }), 177 (o = n(a.translate(a, r.baseTpl.replace("{{buttons}}", i).replace("{{arrows}}", r.btnTpl.arrowLeft + r.btnTpl.arrowRight))) 178 .attr("id", "fancybox-container-" + a.id) 179 .addClass(r.baseClass) 180 .data("FancyBox", a) 181 .appendTo(r.parentEl)), 182 (a.$refs = { container: o }), 183 ["bg", "inner", "infobar", "toolbar", "stage", "caption", "navigation"].forEach(function (t) { 184 a.$refs[t] = o.find(".fancybox-" + t); 185 }), 186 a.trigger("onInit"), 187 a.activate(), 188 a.jumpTo(a.currIndex); 189 }, 190 translate: function (t, e) { 191 var n = t.opts.i18n[t.opts.lang] || t.opts.i18n.en; 192 return e.replace(/\{\{(\w+)\}\}/g, function (t, e) { 193 return void 0 === n[e] ? t : n[e]; 194 }); 195 }, 196 addContent: function (t) { 197 var e, 198 o = this, 199 i = n.makeArray(t); 200 n.each(i, function (t, e) { 201 var i, 202 a, 203 s, 204 r, 205 c, 206 l = {}, 207 d = {}; 208 n.isPlainObject(e) ? ((l = e), (d = e.opts || e)) : "object" === n.type(e) && n(e).length ? ((i = n(e)), (d = i.data() || {}), (d = n.extend(!0, {}, d, d.options)), (d.$orig = i), (l.src = o.opts.src || d.src || i.attr("href")), l.type || l.src || ((l.type = "inline"), (l.src = e))) : (l = { type: "html", src: e + "" }), 209 (l.opts = n.extend(!0, {}, o.opts, d)), 210 n.isArray(d.buttons) && (l.opts.buttons = d.buttons), 211 n.fancybox.isMobile && l.opts.mobile && (l.opts = h(l.opts, l.opts.mobile)), 212 (a = l.type || l.opts.type), 213 (r = l.src || ""), 214 !a && r && ((s = r.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i)) ? ((a = "video"), l.opts.video.format || (l.opts.video.format = "video/" + ("ogv" === s[1] ? "ogg" : s[1]))) : r.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i) ? (a = "image") : r.match(/\.(pdf)((\?|#).*)?$/i) ? ((a = "iframe"), (l = n.extend(!0, l, { contentType: "pdf", opts: { iframe: { preload: !1 } } }))) : "#" === r.charAt(0) && (a = "inline")), 215 a ? (l.type = a) : o.trigger("objectNeedsType", l), 216 l.contentType || (l.contentType = n.inArray(l.type, ["html", "inline", "ajax"]) > -1 ? "html" : l.type), 217 (l.index = o.group.length), 218 "auto" == l.opts.smallBtn && (l.opts.smallBtn = n.inArray(l.type, ["html", "inline", "ajax"]) > -1), 219 "auto" === l.opts.toolbar && (l.opts.toolbar = !l.opts.smallBtn), 220 (l.$thumb = l.opts.$thumb || null), 221 l.opts.$trigger && l.index === o.opts.index && ((l.$thumb = l.opts.$trigger.find("img:first")), l.$thumb.length && (l.opts.$orig = l.opts.$trigger)), 222 (l.$thumb && l.$thumb.length) || !l.opts.$orig || (l.$thumb = l.opts.$orig.find("img:first")), 223 l.$thumb && !l.$thumb.length && (l.$thumb = null), 224 (l.thumb = l.opts.thumb || (l.$thumb ? l.$thumb[0].src : null)), 225 "function" === n.type(l.opts.caption) && (l.opts.caption = l.opts.caption.apply(e, [o, l])), 226 "function" === n.type(o.opts.caption) && (l.opts.caption = o.opts.caption.apply(e, [o, l])), 227 l.opts.caption instanceof n || (l.opts.caption = void 0 === l.opts.caption ? "" : l.opts.caption + ""), 228 "ajax" === l.type && ((c = r.split(/\s+/, 2)), c.length > 1 && ((l.src = c.shift()), (l.opts.filter = c.shift()))), 229 l.opts.modal && (l.opts = n.extend(!0, l.opts, { trapFocus: !0, infobar: 0, toolbar: 0, smallBtn: 0, keyboard: 0, slideShow: 0, fullScreen: 0, thumbs: 0, touch: 0, clickContent: !1, clickSlide: !1, clickOutside: !1, dblclickContent: !1, dblclickSlide: !1, dblclickOutside: !1 })), 230 o.group.push(l); 231 }), 232 Object.keys(o.slides).length && (o.updateControls(), (e = o.Thumbs
232) && e.isActive && (e.create(), e.focus())); 233 }, 234 addEvents: function () { 235 var e = this; 236 e.removeEvents(), 237 e.$refs.container 238 .on("click.fb-close", "[data-fancybox-close]", function (t) { 239 t.stopPropagation(), t.preventDefault(), e.close(t); 240 }) 241 .on("touchstart.fb-prev click.fb-prev", "[data-fancybox-prev]", function (t) { 242 t.stopPropagation(), t.preventDefault(), e.previous(); 243 }) 244 .on("touchstart.fb-next click.fb-next", "[data-fancybox-next]", function (t) { 245 t.stopPropagation(), t.preventDefault(), e.next(); 246 }) 247 .on("click.fb", "[data-fancybox-zoom]", function (t) { 248 e[e.isScaledDown() ? "scaleToActual" : "scaleToFit"](); 249 }), 250 s.on("orientationchange.fb resize.fb", function (t) { 251 t && t.originalEvent && "resize" === t.originalEvent.type 252 ? (e.requestId && u(e.requestId), 253 (e.requestId = d(function () { 254 e.update(t); 255 }))) 256 : (e.current && "iframe" === e.current.type && e.$refs.stage.hide(), 257 setTimeout( 258 function () { 259 e.$refs.stage.show(), e.update(t); 260 }, 261 n.fancybox.isMobile ? 600 : 250 262 )); 263 }),
264 r.on("keydown.fb", function (t) { 265 var o = n.fancybox ? n.fancybox.getInstance() : null, 266 i = o.current, 267 a = t.keyCode || t.which; 268 if (9 == a) return void (i.opts.trapFocus && e.focus(t)); 269 if (!(!i.opts.keyboard || t.ctrlKey || t.altKey || t.shiftKey || n(t.target).is("input,textarea,video,audio,select"))) return 8 === a || 27 === a ? (t.preventDefault(), void e.close(t)) : 37 === a || 38 === a ? (t.preventDefault(), void e.previous()) : 39 === a || 40 === a ? (t.preventDefault(), void e.next()) : void e.trigger("afterKeydown", t, a); 270 }), 271 e.group[e.currIndex].opts.idleTime && 272 ((e.idleSecondsCounter = 0), 273 r.on("mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle", function (t) { 274 (e.idleSecondsCounter = 0), e.isIdle && e.showControls(), (e.isIdle = !1); 275 }), 276 (e.idleInterval = t.setInterval(function () { 277 ++e.idleSecondsCounter >= e.group[e.currIndex].opts.idleTime && !e.isDragging && ((e.isIdle = !0), (e.idleSecondsCounter = 0), e.hideControls()); 278 }, 1e3))); 279 }, 280 removeEvents: function () { 281 var e = this; 282 s.off("orientationchange.fb resize.fb"), r.off("keydown.fb .fb-idle"), this.$refs.container.off(".fb-close .fb-prev .fb-next"), e.idleInterval && (t.clearInterval(e.idleInterval), (e.idleInterval = null)); 283 }, 284 previous: function (t) { 285 return this.jumpTo(this.currPos - 1, t); 286 }, 287 next: function (t) { 288 return this.jumpTo(this.currPos + 1, t); 289 }, 290 jumpTo: function (t, e) { 291 var o, 292 i, 293 a, 294 s, 295 r, 296 c, 297 l, 298 d, 299 u, 300 f = this, 301 h = f.group.length; 302 if (!(f.isDragging || f.isClosing || (f.isAnimating && f.firstRun))) { 303 if (((t = parseInt(t, 10)), !(a = f.current ? f.current.opts.loop : f.opts.loop) && (t < 0 || t >= h))) return !1; 304 if (((o = f.firstRun = !Object.keys(f.slides).length), (r = f.current), (f.prevIndex = f.currIndex), (f.prevPos = f.currPos), (s = f.createSlide(t)), h > 1 && ((a || s.index < h - 1) && f.createSlide(t + 1), (a || s.index > 0) && f.createSlide(t - 1)), (f.current = s), (f.currIndex = s.index), (f.currPos = s.pos), f.trigger("beforeShow", o), f.updateControls(), (s.forcedDuration = void 0), n.isNumeric(e) ? (s.forcedDuration = e) : (e = s.opts[o ? "animationDuration" : "transitionDuration"]), (e = parseInt(e, 10)), (i = f.isMoved(s)), s.$slide.addClass("fancybox-slide--current"), o)) return s.opts.animationEffect && e && f.$refs.container.css("transition-duration", e + "ms"), f.$refs.container.addClass("fancybox-is-open").trigger("focus"), f.loadSlide(s), void f.preload("image"); 305 (c = n.fancybox.getTranslate(r.$slide)), 306 (l = n.fancybox.getTranslate(f.$refs.stage)), 307 n.each(f.slides, function (t, e) { 308 n.fancybox.stop(e.$slide, !0); 309 }), 310 r.pos !== s.pos && (r.isComplete = !1), 311 r.$slide.removeClass("fancybox-slide--complete fancybox-slide--current"), 312 i 313 ? ((u = c.left - (r.pos * c.width + r.pos * r.opts.gutter)), 314 n.each(f.slides, function (t, o) { 315 o.$slide.removeClass("fancybox-animated").removeClass(function (t, e) { 316 return (e.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" "); 317 }); 318 var i = o.pos * c.width + o.pos * o.opts.gutter; 319 n.fancybox.setTranslate(o.$slide, { top: 0, left: i - l.left + u }), 320 o.pos !== s.pos && o.$slide.addClass("fancybox-slide--" + (o.pos > s.pos ? "next" : "previous")), 321 p(o.$slide), 322 n.fancybox.animate(o.$slide, { top: 0, left: (o.pos - s.pos) * c.width + (o.pos - s.pos) * o.opts.gutter }, e, function () { 323 o.$slide.css({ transform: "", opacity: "" }).removeClass("fancybox-slide--next fancybox-slide--previous"), o.pos === f.currPos && f.complete(); 324 }); 325 })) 326 : e && 327 s.opts.transitionEffect && 328 ((d = "fancybox-animated fancybox-fx-" + s.opts.transitionEffect), 329 r.$slide.addClass("fancybox-slide--" + (r.pos > s.pos ? "next" : "previous")), 330 n.fancybox.animate( 331 r.$slide, 332 d, 333 e, 334 function () { 335 r.$slide.removeClass(d).removeClass("fancybox-slide--next fancybox-slide--previous"); 336 }, 337 !1 338 )), 339 s.isLoaded ? f.revealContent(s) : f.loadSlide(s), 340 f.preload("image"); 341 } 342 }, 343 createSlide: function (t) { 344 var e, 345 o, 346 i = this; 347 return (o = t % i.group.length), (o = o < 0 ? i.group.length + o : o), !i.slides[t] && i.group[o] && ((e = n('<div class="fancybox-slide"></div>').appendTo(i.$refs.stage)), (i.slides[t] = n.extend(!0, {}, i.group[o], { pos: t, $slide: e, isLoaded: !1 })), i.updateSlide(i.slides[t])), i.slides[t]; 348 }, 349 scaleToActual: function (t, e, o) { 350 var i, 351 a, 352 s, 353 r, 354 c, 355 l = this, 356 d = l.current, 357 u = d.$content, 358 f = n.fancybox.getTranslate(d.$slide).width, 359 p = n.fancybox.getTranslate(d.$slide).height, 360 h = d.width, 361 g = d.height; 362 l.isAnimating || 363 l.isMoved() || 364 !u || 365 "image" != d.type || 366 !d.isLoaded || 367 d.hasError || 368 ((l.isAnimating = !0), 369 n.fancybox.stop(u), 370 (t = void 0 === t ? 0.5 * f : t), 371 (e = void 0 === e ? 0.5 * p : e), 372 (i = n.fancybox.getTranslate(u)), 373 (i.top -= n.fancybox.getTranslate(d.$slide).top), 374 (i.left -= n.fancybox.getTranslate(d.$slide).left), 375 (r = h / i.width), 376 (c = g / i.height), 377 (a = 0.5 * f - 0.5 * h), 378 (s = 0.5 * p - 0.5 * g), 379 h > f && ((a = i.left * r - (t * r - t)), a > 0 && (a = 0), a < f - h && (a = f - h)), 380 g > p && ((s = i.top * c - (e * c - e)), s > 0 && (s = 0), s < p - g && (s = p - g)), 381 l.updateCursor(h, g), 382 n.fancybox.animate(u, { top: s, left: a, scaleX: r, scaleY: c }, o || 366, function () { 383 l.isAnimating = !1; 384 }), 385 l.SlideShow && l.SlideShow.isActive && l.SlideShow.stop()); 386 }, 387 scaleToFit: function (t) { 388 var e, 389 o = this, 390 i = o.current, 391 a = i.$content; 392 o.isAnimating || 393 o.isMoved() || 394 !a || 395 "image" != i.type || 396 !i.isLoaded || 397 i.hasError || 398 ((o.isAnimating = !0), 399 n.fancybox.stop(a), 400 (e = o.getFitPos(i)), 401 o.updateCursor(e.width, e.height), 402 n.fancybox.animate(a, { top: e.top, left: e.left, scaleX: e.width / a.width(), scaleY: e.height / a.height() }, t || 366, function () { 403 o.isAnimating = !1; 404 })); 405 }, 406 getFitPos: function (t) { 407 var e, 408 o, 409 i, 410 a, 411 s = this, 412 r = t.$content, 413 c = t.$slide, 414 l = t.width || t.opts.width, 415 d = t.height || t.opts.height, 416 u = {}; 417 return !!(t.isLoaded && r && r.length) && ((e = n.fancybox.getTranslate(s.$refs.stage).width), (o = n.fancybox.getTranslate(s.$refs.stage).height), (e -= parseFloat(c.css("paddingLeft")) + parseFloat(c.css("paddingRight")) + parseFloat(r.css("marginLeft")) + parseFloat(r.css("marginRight"))), (o -= parseFloat(c.css("paddingTop")) + parseFloat(c.css("paddingBottom")) + parseFloat(r.css("marginTop")) + parseFloat(r.css("marginBottom"))), (l && d) || ((l = e), (d = o)), (i = Math.min(1, e / l, o / d)), (l *= i), (d *= i), l > e - 0.5 && (l = e), d > o - 0.5 && (d = o), "image" === t.type ? ((u.top = Math.floor(0.5 * (o - d)) + parseFloat(c.css("paddingTop"))), (u.left = Math.floor(0.5 * (e - l)) + parseFloat(c.css("paddingLeft")))) : "video" === t.contentType && ((a = t.opts.width && t.opts.height ? l / d : t.opts.ratio || 16 / 9), d > l / a ? (d = l / a) : l > d * a && (l = d * a)), (u.width = l), (u.height = d), u); 418 }, 419 update: function (t) { 420 var e = this; 421 n.each(e.slides, function (n, o) { 422 e.updateSlide(o, t); 423 }); 424 }, 425 updateSlide: function (t, e) { 426 var o = this, 427 i = t && t.$content, 428 a = t.width || t.opts.width, 429 s = t.height || t.opts.height, 430 r = t.$slide; 431 o.adjustCaption(t), i && (a || s || "video" === t.contentType) && !t.hasError && (n.fancybox.stop(i), n.fancybox.setTranslate(i, o.getFitPos(t)), t.pos === o.currPos && ((o.isAnimating = !1), o.updateCursor(
431))), o.adjustLayout(t), r.length && (r.trigger("refresh"), t.pos === o.currPos && o.$refs.toolbar.add(o.$refs.navigation.find(".fancybox-button--arrow_right")).toggleClass("compensate-for-scrollbar", r.get(0).scrollHeight > r.get(0).clientHeight)), o.trigger("onUpdate", t, e); 432 }, 433 centerSlide: function (t) { 434 var e = this, 435 o = e.current, 436 i = o.$slide; 437 !e.isClosing && 438 o && 439 (i.siblings().css({ transform: "", opacity: "" }), 440 i.parent().children().removeClass("fancybox-slide--previous fancybox-slide--next"), 441 n.fancybox.animate( 442 i, 443 { top: 0, left: 0, opacity: 1 }, 444 void 0 === t ? 0 : t, 445 function () { 446 i.css({ transform: "", opacity: "" }), o.isComplete || e.complete(); 447 }, 448 !1 449 )); 450 }, 451 isMoved: function (t) { 452 var e, 453 o, 454 i = t || this.current; 455 return !!i && ((o = n.fancybox.getTranslate(this.$refs.stage)), (e = n.fancybox.getTranslate(i.$slide)), !i.$slide.hasClass("fancybox-animated") && (Math.abs(e.top - o.top) > 0.5 || Math.abs(e.left - o.left) > 0.5)); 456 }, 457 updateCursor: function (t, e) { 458 var o, 459 i, 460 a = this, 461 s = a.current, 462 r = a.$refs.container; 463 s && !a.isClosing && a.Guestures && (r.removeClass("fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan"), (o = a.canPan(t, e)), (i = !!o || a.isZoomable()), r.toggleClass("fancybox-is-zoomable", i), n("[data-fancybox-zoom]").prop("disabled", !i), o ? r.addClass("fancybox-can-pan") : i && ("zoom" === s.opts.clickContent || (n.isFunction(s.opts.clickContent) && "zoom" == s.opts.clickContent(s))) ? r.addClass("fancybox-can-zoomIn") : s.opts.touch && (s.opts.touch.vertical || a.group.length > 1) && "video" !== s.contentType && r.addClass("fancybox-can-swipe")); 464 }, 465 isZoomable: function () { 466 var t, 467 e = this, 468 n = e.current; 469 if (n && !e.isClosing && "image" === n.type && !n.hasError) { 470 if (!n.isLoaded) return !0; 471 if ((t = e.getFitPos(n)) && (n.width > t.width || n.height > t.height)) return !0; 472 } 473 return !1; 474 }, 475 isScaledDown: function (t, e) { 476 var o = this, 477 i = !1, 478 a = o.current, 479 s = a.$content; 480 return void 0 !== t && void 0 !== e ? (i = t < a.width && e < a.height) : s && ((i = n.fancybox.getTranslate(s)), (i = i.width < a.width && i.height < a.height)), i; 481 }, 482 canPan: function (t, e) { 483 var o = this, 484 i = o.current, 485 a = null, 486 s = !1; 487 return "image" === i.type && (i.isComplete || (t && e)) && !i.hasError && ((s = o.getFitPos(i)), void 0 !== t && void 0 !== e ? (a = { width: t, height: e }) : i.isComplete && (a = n.fancybox.getTranslate(i.$content)), a && s && (s = Math.abs(a.width - s.width) > 1.5 || Math.abs(a.height - s.height) > 1.5)), s; 488 }, 489 loadSlide: function (t) { 490 var e, 491 o, 492 i, 493 a = this; 494 if (!t.isLoading && !t.isLoaded) { 495 if (((t.isLoading = !0), !1 === a.trigger("beforeLoad", t))) return (t.isLoading = !1), !1; 496 switch (((e = t.type), (o = t.$slide), o.off("refresh").trigger("onReset").addClass(t.opts.slideClass), e)) { 497 case "image": 498 a.setImage(t); 499 break; 500 case "iframe": 501 a.setIframe(t); 502 break; 503 case "html": 504 a.setContent(t, t.src || t.content); 505 break; 506 case "video": 507 a.setContent( 508 t, 509 t.opts.video.tpl 510 .replace(/\{\{src\}\}/gi, t.src) 511 .replace("{{format}}", t.opts.videoFormat || t.opts.video.format || "") 512 .replace("{{poster}}", t.thumb || "") 513 ); 514 break; 515 case "inline": 516 n(t.src).length ? a.setContent(t, n(t.src)) : a.setError(t); 517 break; 518 case "ajax": 519 a.showLoading(t), 520 (i = n.ajax( 521 n.extend({}, t.opts.ajax.settings, { 522 url: t.src, 523 success: function (e, n) { 524 "success" === n && a.setContent(t, e); 525 }, 526 error: function (e, n) { 527 e && "abort" !== n && a.setError(t); 528 }, 529 }) 530 )), 531 o.one("onReset", function () { 532 i.abort(); 533 }); 534 break; 535 default: 536 a.setError(t); 537 } 538 return !0; 539 } 540 }, 541 setImage: function (t) { 542 var o, 543 i = this; 544 setTimeout(function () { 545 var e = t.$image; 546 i.isClosing || !t.isLoading || (e && e.length && e[0].complete) || t.hasError || i.showLoading(t); 547 }, 50), 548 i.checkSrcset(t), 549 (t.$content = n('<div class="fancybox-content"></div>').addClass("fancybox-is-hidden").appendTo(t.$slide.addClass("fancybox-slide--image"))), 550 !1 !== t.opts.preload && 551 t.opts.width && 552 t.opts.height && 553 t.thumb && 554 ((t.width = t.opts.width), 555 (t.height = t.opts.height), 556 (o = e.createElement("img")), 557 (o.onerror = function () { 558 n(this).remove(), (t.$ghost = null); 559 }), 560 (o.onload = function () { 561 i.afterLoad(t); 562 }), 563 (t.$ghost = n(o).addClass("fancybox-image").appendTo(t.$content).attr("src", t.thumb))), 564 i.setBigImage(t); 565 }, 566 checkSrcset: function (e) { 567 var n, 568 o, 569 i, 570 a, 571 s = e.opts.srcset || e.opts.image.srcset; 572 if (s) { 573 (i = t.devicePixelRatio || 1), 574 (a = t.innerWidth * i), 575 (o = s.split(",").map(function (t) { 576 var e = {}; 577 return ( 578 t 579 .trim() 580 .split(/\s+/) 581 .forEach(function (t, n) { 582 var o = parseInt(t.substring(0, t.length - 1), 10); 583 if (0 === n) return (e.url = t); 584 o && ((e.value = o), (e.postfix = t[t.length - 1])); 585 }), 586 e 587 ); 588 })), 589 o.sort(function (t, e) { 590 return t.value - e.value; 591 }); 592 for (var r = 0; r < o.length; r++) { 593 var c = o[r]; 594 if (("w" === c.postfix && c.value >= a) || ("x" === c.postfix && c.value >= i)) { 595 n = c; 596 break; 597 } 598 } 599 !n && o.length && (n = o[o.length - 1]), n && ((e.src = n.url), e.width && e.height && "w" == n.postfix && ((e.height = (e.width / e.height) * n.value), (e.width = n.value)), (e.opts.srcset = s)); 600 } 601 }, 602 setBigImage: function (t) { 603 var o = this, 604 i = e.createElement("img"), 605 a = n(i); 606 (t.$image = a 607 .one("error", function () { 608 o.setError(t); 609 }) 610 .one("load", function () { 611 var e; 612 t.$ghost || (o.resolveImageSlideSize(t, this.naturalWi
612dth, this.naturalHeight), o.afterLoad(t)), 613 o.isClosing || 614 (t.opts.srcset && ((e = t.opts.sizes), (e && "auto" !== e) || (e = (t.width / t.height > 1 && s.width() / s.height() > 1 ? "100" : Math.round((t.width / t.height) * 100)) + "vw"), a.attr("sizes", e).attr("srcset", t.opts.srcset)), 615 t.$ghost && 616 setTimeout(function () { 617 t.$ghost && !o.isClosing && t.$ghost.hide(); 618 }, Math.min(300, Math.max(1e3, t.height / 1600))), 619 o.hideLoading(t)); 620 }) 621 .addClass("fancybox-image") 622 .attr("src", t.src) 623 .appendTo(t.$content)), 624 (i.complete || "complete" == i.readyState) && a.naturalWidth && a.naturalHeight ? a.trigger("load") : i.error && a.trigger("error"); 625 }, 626 resolveImageSlideSize: function (t, e, n) { 627 var o = parseInt(t.opts.width, 10), 628 i = parseInt(t.opts.height, 10); 629 (t.width = e), (t.height = n), o > 0 && ((t.width = o), (t.height = Math.floor((o * n) / e))), i > 0 && ((t.width = Math.floor((i * e) / n)), (t.height = i)); 630 }, 631 setIframe: function (t) { 632 var e, 633 o = this, 634 i = t.opts.iframe, 635 a = t.$slide; 636 (t.$content = n('<div class="fancybox-content' + (i.preload ? " fancybox-is-hidden" : "") + '"></div>') 637 .css(i.css) 638 .appendTo(a)), 639 a.addClass("fancybox-slide--" + t.contentType), 640 (t.$iframe = e = 641 n(i.tpl.replace(/\{rnd\}/g, new Date().getTime())) 642 .attr(i.attr) 643 .appendTo(t.$content)), 644 i.preload 645 ? (o.showLoading(t), 646 e.on("load.fb error.fb", function (e) { 647 (this.isReady = 1), t.$slide.trigger("refresh"), o.afterLoad(t); 648 }), 649 a.on("refresh.fb", function () { 650 var n, 651 o, 652 s = t.$content, 653 r = i.css.width, 654 c = i.css.height; 655 if (1 === e[0].isReady) { 656 try { 657 (n = e.contents()), (o = n.find("body")); 658 } catch (t) {} 659 o && o.length && o.children().length && (a.css("overflow", "visible"), s.css({ width: "100%", "max-width": "100%", height: "9999px" }), void 0 === r && (r = Math.ceil(Math.max(o[0].clientWidth, o.outerWidth(!0)))), s.css("width", r || "").css("max-width", ""), void 0 === c && (c = Math.ceil(Math.max(o[0].clientHeight, o.outerHeight(!0)))), s.css("height", c || ""), a.css("overflow", "auto")), s.removeClass("fancybox-is-hidden"); 660 } 661 })) 662 : o.afterLoad(t), 663 e.attr("src", t.src), 664 a.one("onReset", function () { 665 try { 666 n(this).find("iframe").hide().unbind().attr("src", "//about:blank"); 667 } catch (t) {} 668 n(this).off("refresh.fb").empty(), (t.isLoaded = !1), (t.isRevealed = !1); 669 }); 670 }, 671 setContent: function (t, e) { 672 var o = this; 673 o.isClosing || 674 (o.hideLoading(t), 675 t.$content && n.fancybox.stop(t.$content), 676 t.$slide.empty(), 677 l(e) && e.parent().length ? ((e.hasClass("fancybox-content") || e.parent().hasClass("fancybox-content")) && e.parents(".fancybox-slide").trigger("onReset"), (t.$placeholder = n("<div>").hide().insertAfter(e)), e.css("display", "inline-block")) : t.hasError || ("string" === n.type(e) && (e = n("<div>").append(n.trim(e)).contents()), t.opts.filter && (e = n("<div>").html(e).find(t.opts.filter))), 678 t.$slide.one("onReset", function () { 679 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)); 680 }), 681 n(e).appendTo(t.$slide), 682 n(e).is("video,audio") && (n(e).addClass("fancybox-video"), n(e).wrap("<div></div>"), (t.contentType = "video"), (t.opts.width = t.opts.width || n(e).attr("width")), (t.opts.height = t.opts.height || n(e).attr("height"))), 683 (t.$content = t.$slide.children().filter("div,form,main,video,audio,article,.fancybox-content").first()), 684 t.$content.siblings().hide(), 685 t.$content.length || (t.$content = t.$slide.wrapInner("<div></div>").children().first()), 686 t.$content.addClass("fancybox-content"), 687 t.$slide.addClass("fancybox-slide--" + t.contentType), 688 o.afterLoad(t)); 689 }, 690 setError: function (t) { 691 (t.hasError = !0), 692 t.$slide 693 .trigger("onReset") 694 .removeClass("fancybox-slide--" + t.contentType) 695 .addClass("fancybox-slide--error"), 696 (t.contentType = "html"), 697 this.setContent(t, this.translate(t, t.opts.errorTpl)), 698 t.pos === this.currPos && (this.isAnimating = !1); 699 }, 700 showLoading: function (t) { 701 var e = this; 702 (t = t || e.current) && !t.$spinner && (t.$spinner = n(e.translate(e, e.opts.spinnerTpl)).appendTo(t.$slide).hide().fadeIn("fast")); 703 }, 704 hideLoading: function (t) { 705 var e = this; 706 (t = t || e.current) && t.$spinner && (t.$spinner.stop().remove(), delete t.$spinner); 707 }, 708 afterLoad: function (t) { 709 var e = this; 710 e.isClosing || 711 ((t.isLoading = !1), 712 (t.isLoaded = !0), 713 e.trigger("afterLoad", t), 714 e.hideLoading(t), 715 !t.opts.smallBtn || (t.$smallBtn && t.$smallBtn.length) || (t.$smallBtn = n(e.translate(t, t.opts.btnTpl.smallBtn)).appendTo(t.$content)), 716 t.opts.protect && 717 t.$content && 718 !t.hasError && 719 (t.$content.on("contextmenu.fb", function (t) { 720 return 2 == t.button && t.preventDefault(), !0; 721 }), 722 "image" === t.type && n('<div class="fancybox-spaceball"></div>').appendTo(t.$content)), 723 e.adjustCaption(t), 724 e.adjustLayout(t),
725 t.pos === e.currPos && e.updateCursor(), 726 e.revealContent(t)); 727 }, 728 adjustCaption: function (t) { 729 var e, 730 n = this, 731 o = t || n.current, 732 i = o.opts.caption, 733 a = o.opts.preventCaptionOverlap, 734 s = n.$refs.caption, 735 r = !1; 736 s.toggleClass("fancybox-caption--separate", a), a && i && i.length && (o.pos !== n.currPos ? ((e = s.clone().appendTo(s.parent())), e.children().eq(0).empty().html(i), (r = e.outerHeight(!0)), e.empty().remove()) : n.$caption && (r = n.$caption.outerHeight(!0)), o.$slide.css("padding-bottom", r || "")); 737 }, 738 adjustLayout: function (t) { 739 var e, 740 n, 741 o, 742 i, 743 a = this, 744 s = t || a.current; 745 s.isLoaded && !0 !== s.opts.disableLayoutFix && (s.$content.css("margin-bottom", ""), s.$content.outerHeight() > s.$slide.height() + 0.5 && ((o = s.$slide[0].style["padding-bottom"]), (i = s.$slide.css("padding-bottom")), parseFloat(i) > 0 && ((e = s.$slide[0].scrollHeight), s.$slide.css("padding-bottom", 0), Math.abs(e - s.$slide[0].scrollHeight) < 1 && (n = i), s.$slide.css("padding-bottom", o))), s.$content.css("margin-bottom", n)); 746 }, 747 revealContent: function (t) { 748 var e, 749 o, 750 i, 751 a, 752 s = this, 753 r = t.$slide, 754 c = !1, 755 l = !1, 756 d = s.isMoved(t), 757 u = t.isRevealed; 758 return ( 759 (t.isRevealed = !0), 760 (e = t.opts[s.firstRun ? "animationEffect" : "transitionEffect"]), 761 (i = t.opts[s.firstRun ? "animationDuration" : "transitionDuration"]), 762 (i = parseInt(void 0 === t.forcedDuration ? i : t.forcedDuration, 10)), 763 (!d && t.pos === s.currPos && i) || (e = !1), 764 "zoom" === e && (t.pos === s.currPos && i && "image" === t.type && !t.hasError && (l = s.getThumbPos(t)) ? (c = s.getFitPos(t)) : (e = "fade")), 765 "zoom" === e 766 ? ((s.isAnimating = !0), 767 (c.scaleX = c.width / l.width), 768 (c.scaleY = c.height / l.height), 769 (a = t.opts.zoomOpacity), 770 "auto" == a && (a = Math.abs(t.width / t.height - l.width / l.height) > 0.1), 771 a && ((l.opacity = 0.1), (c.opacity = 1)), 772 n.fancybox.setTranslate(t.$content.removeClass("fancybox-is-hidden"), l), 773 p(t.$content), 774 void n.fancybox.animate(t.$content, c, i, function () { 775 (s.isAnimating = !1), s.complete(); 776 })) 777 : (s.updateSlide(t), 778 e 779 ? (n.fancybox.stop(r), 780 (o = "fancybox-slide--" + (t.pos >= s.prevPos ? "next" : "previous") + " fancybox-animated fancybox-fx-" + e), 781 r.addClass(o).removeClass("fancybox-slide--current"), 782 t.$content.removeClass("fancybox-is-hidden"), 783 p(r), 784 "image" !== t.type && t.$content.hide().show(0), 785 void n.fancybox.animate( 786 r, 787 "fancybox-slide--current", 788 i, 789 function () { 790 r.removeClass(o).css({ transform: "", opacity: "" }), t.pos === s.currPos && s.complete(); 791 }, 792 !0 793 )) 794 : (t.$content.removeClass("fancybox-is-hidden"), u || !d || "image" !== t.type || t.hasError || t.$content.hide().fadeIn("fast"), void (t.pos === s.currPos && s.complete()))) 795 ); 796 }, 797 getThumbPos: function (t) { 798 var e, 799 o, 800 i, 801 a, 802 s, 803 r = !1, 804 c = t.$thumb; 805 return !(!c || !g(c[0])) && ((e = n.fancybox.getTranslate(c)), (o = parseFloat(c.css("border-top-width") || 0)), (i = parseFloat(c.css("border-right-width") || 0)), (a = 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 - i - s, height: e.height - o - a, scaleX: 1, scaleY: 1 }
805), e.width > 0 && e.height > 0 && r); 806 }, 807 complete: function () { 808 var t, 809 e = this, 810 o = e.current, 811 i = {}; 812 !e.isMoved() && 813 o.isLoaded && 814 (o.isComplete || 815 ((o.isComplete = !0), 816 o.$slide.siblings().trigger("onReset"), 817 e.preload("inline"), 818 p(o.$slide), 819 o.$slide.addClass("fancybox-slide--complete"), 820 n.each(e.slides, function (t, o) { 821 o.pos >= e.currPos - 1 && o.pos <= e.currPos + 1 ? (i[o.pos] = o) : o && (n.fancybox.stop(o.$slide), o.$slide.off().remove()); 822 }), 823 (e.slides = i)), 824 (e.isAnimating = !1), 825 e.updateCursor(), 826 e.trigger("afterShow"), 827 o.opts.video.autoStart && 828 o.$slide 829 .find("video,audio") 830 .filter(":visible:first") 831 .trigger("play") 832 .one("ended", function () { 833 Document.exitFullscreen ? Document.exitFullscreen() : this.webkitExitFullscreen && this.webkitExitFullscreen(), e.next(); 834 }), 835 o.opts.autoFocus && "html" === o.contentType && ((t = o.$content.find("input[autofocus]:enabled:visible:first")), t.length ? t.trigger("focus") : e.focus(null, !0)), 836 o.$slide.scrollTop(0).scrollLeft(0)); 837 }, 838 preload: function (t) { 839 var e, 840 n, 841 o = this; 842 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)); 843 }, 844 focus: function (t, o) { 845 var i, 846 a, 847 s = this, 848 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", "video", "audio", "[contenteditable]", '[tabindex]:not([tabindex^="-"])'].join(","); 849 s.isClosing || 850 ((i = !t && s.current && s.current.isComplete ? s.current.$slide.find("*:visible" + (o ? ":not(.fancybox-close-small)" : "")) : s.$refs.container.find("*:visible")), 851 (i = i.filter(r).filter(function () { 852 return "hidden" !== n(this).css("visibility") && !n(this).hasClass("disabled"); 853 })), 854 i.length ? ((a = i.index(e.activeElement)), t && t.shiftKey ? (a < 0 || 0 == a) && (t.preventDefault(), i.eq(i.length - 1).trigger("focus")) : (a < 0 || a == i.length - 1) && (t && t.preventDefault(), i.eq(0).trigger("focus"))) : s.$refs.container.trigger("focus")); 855 }, 856 activate: function () { 857 var t = this; 858 n(".fancybox-container").each(function () { 859 var e = n(this).data("FancyBox"); 860 e && e.id !== t.id && !e.isClosing && (e.trigger("onDeactivate"), e.removeEvents(), (e.isVisible = !1)); 861 }), 862 (t.isVisible = !0), 863 (t.current || t.isIdle) && (t.update(), t.updateControls()), 864 t.trigger("onActivate"), 865 t.addEvents(); 866 }, 867 close: function (t, e) { 868 var o, 869 i, 870 a, 871 s, 872 r, 873 c, 874 l, 875 u = this, 876 f = u.current, 877 h = function () { 878 u.cleanUp(t); 879 }; 880 return ( 881 !u.isClosing && 882 ((u.isClosing = !0), 883 !1 === u.trigger("beforeClose", t) 884 ? ((u.isClosing = !1), 885 d(function () { 886 u.update(); 887 }), 888 !1) 889 : (u.removeEvents(), 890 (a = f.$content), 891 (o = f.opts.animationEffect), 892 (i = n.isNumeric(e) ? e : o ? f.opts.animationDuration : 0), 893 f.$slide.removeClass("fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated"), 894 !0 !== t ? n.fancybox.stop(f.$slide) : (o = !1), 895 f.$slide.siblings().trigger("onReset").remove(), 896 i && 897 u.$refs.container 898 .removeClass("fancybox-is-open") 899 .addClass("fancybox-is-closing") 900 .css("transition-duration", i + "ms"), 901 u.hideLoading(f), 902 u.hideControls(!0),
903 u.updateCursor(), 904 "zoom" !== o || (a && i && "image" === f.type && !u.isMoved() && !f.hasError && (l = u.getThumbPos(f))) || (o = "fade"), 905 "zoom" === o ? (n.fancybox.stop(a), (s = n.fancybox.getTranslate(a)), (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) > 0.1), r && (l.opacity = 0), n.fancybox.setTranslate(a, c), p(a), n.fancybox.animate(a, l, i, h), !0) : (o && i ? n.fancybox.animate(f.$slide.addClass("fancybox-slide--previous").removeClass("fancybox-slide--current"), "fancybox-animated fancybox-fx-" + o, i, h) : !0 === t ? setTimeout(h, i) : h(), !0))) 906 ); 907 }, 908 cleanUp: function (e) { 909 var o, 910 i, 911 a, 912 s = this, 913 r = s.current.opts.$orig; 914 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 && ((i = t.scrollX), (a = t.scrollY), r.trigger("focus"), n("html, body").scrollTop(a).scrollLeft(i))), (s.current = null), (o = n.fancybox.getInstance()), o ? o.activate() : (n("body").removeClass("fancybox-active compensate-for-scrollbar"), n("#fancybox-style-noscroll").remove()); 915 }, 916 trigger: function (t, e) { 917 var o, 918 i = Array.prototype.slice.call(arguments, 1), 919 a = this, 920 s = e && e.opts ? e : a.current; 921 if ((s ? i.unshift(s) : (s = a), i.unshift(a), n.isFunction(s.opts[t]) && (o = s.opts[t].apply(s, i)), !1 === o)) return o; 922 "afterClose" !== t && a.$refs ? a.$refs.container.trigger(t + ".fb", i) : r.trigger(t + ".fb", i); 923 }, 924 updateControls: function () { 925 var t = this, 926 o = t.current, 927 i = o.index, 928 a = t.$refs.container, 929 s = t.$refs.caption, 930 r = o.opts.caption; 931 o.$slide.trigger("refresh"), 932 r && r.length ? ((t.$caption = s), s.children().eq(0).html(r)) : (t.$caption = null), 933 t.hasHiddenControls || t.isIdle || t.showControls(), 934 a.find("[data-fancybox-count]").html(t.group.length), 935 a.find("[data-fancybox-index]").html(i + 1), 936 a.find("[data-fancybox-prev]").prop("disabled", !o.opts.loop && i <= 0), 937 a.find("[data-fancybox-next]").prop("disabled", !o.opts.loop && i >= t.group.length - 1), 938 "image" === o.type 939 ? a 940 .find("[data-fancybox-zoom]") 941 .show() 942 .end() 943 .find("[data-fancybox-download]") 944 .attr("href", o.opts.image.src || o.src) 945 .show() 946 : o.opts.toolbar && a.find("[data-fancybox-download],[data-fancybox-zoom]").hide(), 947 n(e.activeElement).is(":hidden,[disabled]") && t.$refs.container.trigger("focus"); 948 }, 949 hideControls: function (t) { 950 var e = this, 951 n = ["infobar", "toolbar", "nav"]; 952 (!t && e.current.opts.preventCaptionOverlap) || n.push("caption"), 953 this.$refs.container.removeClass( 954 n 955 .map(function (t) { 956 return "fancybox-show-" + t; 957 }) 958 .join(" ") 959 ), 960 (this.hasHiddenControls = !0); 961 }, 962 showControls: function () { 963 var t = this, 964 e = t.current ? t.current.opts : t.opts, 965 n = t.$refs.container; 966 (t.hasHiddenControls = !1), 967 (t.idleSecondsCounter = 0), 968 n 969 .toggleClass("fancybox-show-toolbar", !(!e.toolbar || !e.buttons)) 970 .toggleClass("fancybox-show-infobar", !!(e.infobar && t.group.length > 1)) 971 .toggleClass("fancybox-show-caption", !!t.$caption) 972 .toggleClass("fancybox-show-nav", !!(e.arrows && t.group.length > 1)) 973 .toggleClass("fancybox-is-modal", !!e.modal); 974 }, 975 toggleControls: function () {
976 this.hasHiddenControls ? this.showControls() : this.hideControls(); 977 }, 978 }), 979 (n.fancybox = { 980 version: "3.5.7", 981 defaults: a, 982 getInstance: function (t) { 983 var e = n('.fancybox-container:not(".fancybox-is-closing"):last').data("FancyBox"), 984 o = Array.prototype.slice.call(arguments, 1); 985 return e instanceof b && ("string" === n.type(t) ? e[t].apply(e, o) : "function" === n.type(t) && t.apply(e, o), e); 986 }, 987 open: function (t, e, n) { 988 return new b(t, e, n); 989 }, 990 close: function (t) { 991 var e = this.getInstance(); 992 e && (e.close(), !0 === t && this.close(t)); 993 }, 994 destroy: function () { 995 this.close(!0), r.add("body").off("click.fb-start", "**"); 996 }, 997 isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent), 998 use3d: (function () { 999 var n = e.createElement("div"); 1000 return t.getComputedStyle && t.getComputedStyle(n) && t.getComputedStyle(n).getPropertyValue("transform") && !(e.documentMode && e.documentMode < 11); 1001 })(), 1002 getTranslate: function (t) { 1003 var e; 1004 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")) }); 1005 }, 1006 setTranslate: function (t, e) { 1007 var n = "", 1008 o = {}; 1009 if (t && e) return (void 0 === e.left && void 0 === e.top) || ((n = (void 0 === e.left ? t.position().left : e.left) + "px, " + (void 0 === e.top ? t.position().top : e.top) + "px"), (n = this.use3d ? "translate3d(" + n + ", 0px)" : "translate(" + n + ")")), void 0 !== e.scaleX && void 0 !== e.scaleY ? (n += " scale(" + e.scaleX + ", " + e.scaleY + ")") : void 0 !== e.scaleX && (n += " scaleX(" + e.scaleX + ")"), n.length && (o.transform = n), void 0 !== e.opacity && (o.opacity = e.opacity), void 0 !== e.width && (o.width = e.width), void 0 !== e.height && (o.height = e.height), t.css(o); 1010 }, 1011 animate: function (t, e, o, i, a) { 1012 var s, 1013 r = this; 1014 n.isFunction(o) && ((i = o), (o = null)), 1015 r.stop(t), 1016 (s = r.getTranslate(t)), 1017 t.on(f, function (c) { 1018 (!c || !c.originalEvent || (t.is(c.originalEvent.target) && "z-index" != c.originalEvent.propertyName)) && (r.stop(t), n.isNumeric(o) && t.css("transition-duration", ""), n.isPlainObject(e) ? void 0 !== e.scaleX && void 0 !== e.scaleY && r.setTranslate(t, { top: e.top, left: e.left, width: s.width * e.scaleX, height: s.height * e.scaleY, scaleX: 1, scaleY: 1 }) : !0 !== a && t.removeClass(e), n.isFunction(i) && i(c)); 1019 }), 1020 n.isNumeric(o) && t.css("transition-duration", o + "ms"), 1021 n.isPlainObject(e) ? (void 0 !== e.scaleX && void 0 !== e.scaleY && (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), 1022 t.data( 1023 "timer", 1024 setTimeout(function () { 1025 t.trigger(f); 1026 }, o + 33) 1027 ); 1028 }, 1029 stop: function (t, e) { 1030 t && t.length && (clearTimeout(t.data("timer")), e && t.trigger(f), t.off(f).css("transition-duration", ""), t.parent().removeClass("fancybox-is-scaling")); 1031 }, 1032 }), 1033 (n.fn.fancybox = function (t) { 1034 var e; 1035 return (t = t || {}), (e = t.selector || !1), e ? n("body").off("click.fb-start", e).on("click.fb-start", e, { options: t }, i) : this.off("click.fb-start").on("click.fb-start", { items: this, options: t }, i), this; 1036 }), 1037 r.on("click.fb-start", "[data-fancybox]", i), 1038 r.on("click.fb-start", "[data-fancybox-trigger]", function (t) { 1039 n('[data-fancybox="' + n(this).attr("data-fancybox-trigger") + '"]') 1040 .eq(n(this).attr("data-fancybox-index") || 0) 1041 .trigger("click.fb-start", { $trigger: n(this) }); 1042 }), 1043 (function () { 1044 var t = null; 1045 r.on("mousedown mouseup focus blur", ".fancybox-button", function (e) { 1046 switch (e.type) { 1047 case "mousedown": 1048 t = n(this); 1049 break; 1050 case "mouseup": 1051 t = null; 1052 break; 1053 case "focusin": 1054 n(".fancybox-button").removeClass("fancybox-focus"), n(this).is(t) || n(this).is("[disabled]") || n(this).addClass("fancybox-focus"); 1055 break; 1056 case "focusout": 1057 n(".fancybox-button").removeClass("fancybox-focus"); 1058 } 1059 }); 1060 })(); 1061 } 1062})(window, document, jQuery), 1063 (function (t) { 1064 "use strict"; 1065 var e = { 1066 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: "https://www.youtube-nocookie.com/embed/$4", thumb: "https://img.youtube.com/vi/$4/hqdefault.jpg" }, 1067 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" }, 1068 instagram: { matcher: /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i, type: "image", url: "//$1/p/$2/media/?size=l" }, 1069 gmap_place: { 1070 matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i, 1071 type: "iframe", 1072 url: function (t) { 1073 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"); 1074 }, 1075 }, 1076 gmap_search: { 1077 matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i, 1078 type: "iframe", 1079 url: function (t) { 1080 return "//maps.google." + t[2] + "/maps?q=" + t[5].replace("query=", "q=").replace("api=1", "") + "&output=embed"; 1081 }, 1082 }, 1083 }, 1084 n = function (e, n, o) { 1085 if (e) 1086 return ( 1087 (o = o || ""), 1088 "object" === t.type(o) && (o = t.param(o, !0)), 1089 t.each(n, function (t, n) { 1090 e = e.replace("$" + t, n || ""); 1091 }), 1092 o.length && (e += (e.indexOf("?") > 0 ? "&" : "?") + o), 1093 e 1094 ); 1095 }; 1096 t(document).on("objectNeedsType.fb", function (o, i, a) { 1097 var s, 1098 r, 1099 c, 1100 l, 1101 d, 1102 u, 1103 f, 1104 p = a.src || "", 1105 h = !1; 1106 (s = t.extend(!0, {}, e, a.opts.media)), 1107 t.each(s, function (e, o) { 1108 if ((c = p.match(o.matcher))) { 1109 if (((h = o.type), (f = e), (u = {}), o.paramPlace && c[o.paramPlace])) { 1110 (d = c[o.paramPlace]), "?" == d[0] && (d = d.substring(1)), (d = d.split("&")); 1111 for (var i = 0; i < d.length; ++i) { 1112 var s = d[i].split("=", 2); 1113 2 == s.length && (u[s[0]] = decodeURIComponent(s[1].replace(/\+/g, " "))); 1114 } 1115 } 1116 return ( 1117 (l = t.extend(!0, {}, o.params, a.opts[e], u)), 1118 (p = "function" === t.type(o.url) ? o.url.call(this, c, l, a) : n(o.url, c, l)), 1119 (r = "function" === t.type(o.thumb) ? o.thumb.call(this, c, l, a) : n(o.thumb, c)), 1120 "youtube" === e 1121 ? (p = p.replace(/&t=((\d+)m)?(\d+)s/, function (t, e, n, o) { 1122 return "&start=" + ((n ? 60 * parseInt(n, 10) : 0) + parseInt(o, 10)); 1123 })) 1124 : "vimeo" === e && (p = p.replace("&%23", "#")), 1125 !1 1126 ); 1127 } 1128 }), 1129 h ? (a.opts.thumb || (a.opts.$thumb && a.opts.$thumb.length) || (a.opts.thumb = r), "iframe" === h && (a.opts = t.extend(!0, a.opts, { iframe: { preload: !1, attr: { scrolling: "no" } } })), t.extend(a, { type: h, src: p, origSrc: a.src, contentSource: f, contentType: "image" === h ? "image" : "gmap_place" == f || "gmap_search" == f ? "map" : "video" })) : p && (a.type = a.opts.defaultType); 1130 }); 1131 var o = { 1132 youtube: { src: "https://www.youtube.com/iframe_api", class: "YT", loading: !1, loaded: !1 }, 1133 vimeo: { src: "https://player.vimeo.com/api/player.js", class: "Vimeo", loading: !1, loaded: !1 }, 1134 load: function (t) { 1135 var e, 1136 n = this; 1137 if (this[t].loaded) 1138 return void setTimeout(function () { 1139 n.done(t); 1140 }); 1141 this[t].loading || 1142 ((this[t].loading = !0), 1143 (e = document.createElement("script")), 1144 (e.type = "text/javascript"), 1145 (e.src = this[t].src), 1146 "youtube" === t 1147 ? (window.onYouTubeIframeAPIReady = function () { 1148 (n[t].loaded = !0), n.done(t); 1149 }) 1150 : (e.onload = function () { 1151 (n[t].loaded = !0), n.done(t); 1152 }), 1153 document.body.appendChild(e)); 1154 }, 1155 done: function (e) { 1156 var n, o, i; 1157 "youtube" === e && delete window.onYouTubeIframeAPIReady, 1158 (n = t.fancybox.getInstance()) && 1159 ((o = n.current.$content.find("iframe")), 1160 "youtube" === e && void 0 !== YT && YT 1161 ? (i = new YT.Player(o.attr("id"), { 1162 events: { 1163 onStateChange: function (t) { 1164 0 == t.data && n.next(); 1165 }, 1166 }, 1167 })) 1168 : "vimeo" === e && 1169 void 0 !== Vimeo && 1170 Vimeo && 1171 ((i = new Vimeo.Player(o)), 1172 i.on("ended", function () { 1173 n.next(); 1174 }))); 1175 }, 1176 }; 1177 t(document).on({ 1178 "afterShow.fb": function (t, e, n) { 1179 e.group.length > 1 && ("youtube" === n.contentSource || "vimeo" === n.contentSource) && o.load(n.contentSource); 1180 }, 1181 }); 1182 })(jQuery), 1183 (function (t, e, n) { 1184 "use strict"; 1185 var o = (function () { 1186 return ( 1187 t.requestAnimationFrame || 1188 t.webkitRequestAnimationFrame || 1189 t.mozRequestAnimationFrame || 1190 t.oRequestAnimationFrame || 1191 function (e) { 1192 return t.setTimeout(e, 1e3 / 60); 1193 } 1194 ); 1195 })(), 1196 i = (function () { 1197 return ( 1198 t.cancelAnimationFrame || 1199 t.webkitCancelAnimationFrame || 1200 t.mozCancelAnimationFrame || 1201 t.oCancelAnimationFrame || 1202 function (e) { 1203 t.clearTimeout(e); 1204 } 1205 ); 1206 })(), 1207 a = function (e) { 1208 var n = []; 1209 (e = e.originalEvent || e || t.e), (e = e.touches && e.touches.length ? e.touches : e.changedTouches && e.changedTouches.length ? e.changedTouches : [e]); 1210 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 }); 1211 return n; 1212 }, 1213 s = function (t, e, n) { 1214 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; 1215 }, 1216 r = function (t) { 1217 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; 1218 for (var e = 0, o = t[0].attributes, i = o.length; e < i; e++) if ("data-fancybox-" === o[e].nodeName.substr(0, 14)) return !0; 1219 return !1; 1220 }, 1221 c = function (e) { 1222 var n = t.getComputedStyle(e)["overflow-y"], 1223 o = t.getComputedStyle(e)["overflow-x"], 1224 i = ("scroll" === n || "auto" === n) && e.scrollHeight > e.clientHeight, 1225 a = ("scroll" === o || "auto" === o) && e.scrollWidth > e.clientWidth; 1226 return i || a; 1227 }, 1228 l = function (t) { 1229 for (var e = !1; ; ) { 1230 if ((e = c(t.get(0)))) break; 1231 if (((t = t.parent()), !t.length || t.hasClass("fancybox-stage") || t.is("body"))) break; 1232 } 1233 return e; 1234 }, 1235 d = function (t) { 1236 var e = this; 1237 (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")); 1238 }; 1239 (d.prototype.destroy = function () { 1240 var t = this; 1241 t.$container.off(".fb.touch"), n(e).off(".fb.touch"), t.requestId && (i(t.requestId), (t.requestId = null)), t.tapped && (clearTimeout(t.tapped), (t.tapped = null)); 1242 }), 1243 (d.prototype.ontouchstart = function (o) { 1244 var i = this, 1245 c = n(o.target), 1246 d = i.instance, 1247 u = d.current, 1248 f = u.$slide, 1249 p = u.$content,
1250 h = "touchstart" == o.type; 1251 if ((h && i.$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)))) { 1252 if (!u || d.isAnimating || u.$slide.hasClass("fancybox-animated")) return o.stopPropagation(), void o.preventDefault(); 1253 (i.realPoints = i.startPoints = a(o)), 1254 i.startPoints.length && 1255 (u.touch && o.stopPropagation(), 1256 (i.startEvent = o), 1257 (i.canTap = !0), 1258 (i.$target = c), 1259 (i.$content = p), 1260 (i.opts = u.opts.touch), 1261 (i.isPanning = !1), 1262 (i.isSwiping = !1), 1263 (i.isZooming = !1), 1264 (i.isScrolling = !1), 1265 (i.canPan = d.canPan()), 1266 (i.startTime = new Date().getTime()), 1267 (i.distanceX = i.distanceY = i.distance = 0), 1268 (i.canvasWidth = Math.round(f[0].clientWidth)), 1269 (i.canvasHeight = Math.round(f[0].clientHeight)), 1270 (i.contentLastPos = null), 1271 (i.contentStartPos = n.fancybox.getTranslate(i.$content) || { top: 0, left: 0 }), 1272 (i.sliderStartPos = n.fancybox.getTranslate(f)), 1273 (i.stagePos = n.fancybox.getTranslate(d.$refs.stage)), 1274 (i.sliderStartPos.top -= i.stagePos.top), 1275 (i.sliderStartPos.left -= i.stagePos.left), 1276 (i.contentStartPos.top -= i.stagePos.top), 1277 (i.contentStartPos.left -= i.stagePos.left), 1278 n(e) 1279 .off(".fb.touch") 1280 .on(h ? "touchend.fb.touch touchcancel.fb.touch" : "mouseup.fb.touch mouseleave.fb.touch", n.proxy(i, "ontouchend")) 1281 .on(h ? "touchmove.fb.touch" : "mousemove.fb.touch", n.proxy(i, "ontouchmove")), 1282 n.fancybox.isMobile && e.addEventListener("scroll", i.onscroll, !0), 1283 (((i.opts || i.canPan) && (c.is(i.$stage) || i.$stage.find(c).length)) || (c.is(".fancybox-image") && o.preventDefault(), n.fancybox.isMobile && c.parents(".fancybox-caption").length)) && ((i.isScrollable = l(c) || l(c.parent())), (n.fancybox.isMobile && i.isScrollable) || o.preventDefault(), (1 === i.startPoints.length || u.hasError) && (i.canPan ? (n.fancybox.stop(i.$content), (i.isPanning = !0)) : (i.isSwiping = !0), i.$container.addClass("fancybox-is-grabbing")), 2 === i.startPoints.length && "image" === u.type && (u.isLoaded || u.$ghost) && ((i.canTap = !1), (i.isSwiping = !1), (i.isPanning = !1), (i.isZooming = !0), n.fancybox.stop(i.$content), (i.centerPointStartX = 0.5 * (i.startPoints[0].x + i.startPoints[1].x) - n(t).scrollLeft()), (i.centerPointStartY = 0.5 * (i.startPoints[0].y + i.startPoints[1].y) - n(t).scrollTop()), (i.percentageOfImageAtPinchPointX = (i.centerPointStartX - i.contentStartPos.left) / i.contentStartPos.width), (i.percentageOfImageAtPinchPointY = (i.centerPointStartY - i.contentStartPos.top) / i.contentStartPos.height), (i.startDistanceBetweenFingers = s(i.startPoints[0], i.startPoints[1]))))); 1284 } 1285 }), 1286 (d.prototype.onscroll = function (t) { 1287 var n = this; 1288 (n.isScrolling = !0), e.removeEventListener("scroll", n.onscroll, !0); 1289 }), 1290 (d.prototype.ontouchmove = function (t) { 1291 var e = this; 1292 return void 0 !== t.originalEvent.buttons && 0 === t.originalEvent.buttons ? void e.ontouchend(t) : e.isScrolling ? void (e.canTap = !1) : ((e.newPoints = a(t)), void ((e.opts || e.canPan) && e.newPoints.length && e.newPoints.length && ((e.isSwiping && !0 === e.isSwiping) || 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())))); 1293 }), 1294 (d.prototype.onSwipe = function (e) { 1295 var a, 1296 s = this, 1297 r = s.instance, 1298 c = s.isSwiping, 1299 l = s.sliderStartPos.left || 0; 1300 if (!0 !== c) 1301 "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, 0.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, 0.8)) : (l += s.distanceX)), 1302 (s.sliderLastPos = { top: "x" == c ? 0 : s.sliderStartPos.top + s.distanceY, left: l }), 1303 s.requestId && (i(s.requestId), (s.requestId = null)), 1304 (s.requestId = o(function () { 1305 s.sliderLastPos && 1306 (n.each(s.instance.slides, function (t, e) { 1307 var o = e.pos - s.instance.currPos; 1308 n.fancybox.setTranslate(e.$slide, { top: s.sliderLastPos.top, left: s.sliderLastPos.left + o * s.canvasWidth + o * e.opts.gutter }); 1309 }), 1310 s.$container.addClass("fancybox-is-sliding")); 1311 })); 1312 else if (Math.abs(s.distance) > 10) { 1313 if (((s.canTap = !1), r.group.length < 2 && s.opts.vertical ? (s.isSwiping = "y") : r.isDragging || !1 === s.opts.vertical || ("auto" === s.opts.vertical && n(t).width() > 800) ? (s.isSwiping = "x") : ((a = Math.abs((180 * Math.atan2(s.distanceY, s.distanceX)) / Math.PI)), (s.isSwiping = a >
1313 45 && a < 135 ? "y" : "x")), "y" === s.isSwiping && n.fancybox.isMobile && s.isScrollable)) return void (s.isScrolling = !0); 1314 (r.isDragging = s.isSwiping), 1315 (s.startPoints = s.newPoints), 1316 n.each(r.slides, function (t, e) { 1317 var o, i; 1318 n.fancybox.stop(e.$slide), 1319 (o = n.fancybox.getTranslate(e.$slide)), 1320 (i = n.fancybox.getTranslate(r.$refs.stage)), 1321 e.$slide 1322 .css({ transform: "", opacity: "", "transition-duration": "" }) 1323 .removeClass("fancybox-animated") 1324 .removeClass(function (t, e) { 1325 return (e.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" "); 1326 }), 1327 e.pos === r.current.pos && ((s.sliderStartPos.top = o.top - i.top), (s.sliderStartPos.left = o.left - i.left)), 1328 n.fancybox.setTranslate(e.$slide, { top: o.top - i.top, left: o.left - i.left }); 1329 }), 1330 r.SlideShow && r.SlideShow.isActive && r.SlideShow.stop(); 1331 } 1332 }), 1333 (d.prototype.onPan = function () { 1334 var t = this; 1335 if (s(t.newPoints[0], t.realPoints[0]) < (n.fancybox.isMobile ? 10 : 5)) return void (t.startPoints = t.newPoints); 1336 (t.canTap = !1), 1337 (t.contentLastPos = t.limitMovement()), 1338 t.requestId && i(t.requestId), 1339 (t.requestId = o(function () { 1340 n.fancybox.setTranslate(t.$content, t.contentLastPos); 1341 })); 1342 }), 1343 (d.prototype.limitMovement = function () { 1344 var t, 1345 e, 1346 n, 1347 o, 1348 i, 1349 a, 1350 s = this, 1351 r = s.canvasWidth, 1352 c = s.canvasHeight, 1353 l = s.distanceX, 1354 d = s.distanceY, 1355 u = s.contentStartPos, 1356 f = u.left, 1357 p = u.top, 1358 h = u.width, 1359 g = u.height; 1360 return (i = h > r ? f + l : f), (a = p + d), (t = Math.max(0, 0.5 * r - 0.5 * h)), (e = Math.max(0, 0.5 * c - 0.5 * g)), (n = Math.min(r - h, 0.5 * r - 0.5 * h)), (o = Math.min(c - g, 0.5 * c - 0.5 * g)), l > 0 && i > t && (i = t - 1 + Math.pow(-t + f + l, 0.8) || 0), l < 0 && i < n && (i = n + 1 - Math.pow(n - f - l, 0.8) || 0), d > 0 && a > e && (a = e - 1 + Math.pow(-e + p + d, 0.8) || 0), d < 0 && a < o && (a = o + 1 - Math.pow(o - p - d, 0.8) || 0), { top: a, left: i }; 1361 }), 1362 (d.prototype.limitPosition = function (t, e, n, o) { 1363 var i = this, 1364 a = i.canvasWidth, 1365 s = i.canvasHeight; 1366 return n > a ? ((t = t > 0 ? 0 : t), (t = t < a - n ? a - n : t)) : (t = Math.max(0, a / 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 }; 1367 }), 1368 (d.prototype.onZoom = function () { 1369 var e = this, 1370 a = e.contentStartPos, 1371 r = a.width, 1372 c = a.height, 1373 l = a.left, 1374 d = a.top, 1375 u = s(e.newPoints[0], e.newPoints[1]), 1376 f = u / e.startDistanceBetweenFingers, 1377 p = Math.floor(r * f), 1378 h = Math.floor(c * f), 1379 g = (r - p) * e.percentageOfImageAtPinchPointX, 1380 b = (c - h) * e.percentageOfImageAtPinchPointY, 1381 m = (e.newPoints[0].x + e.newPoints[1].x) / 2 - n(t).scrollLeft(), 1382 v = (e.newPoints[0].y + e.newPoints[1].y) / 2 - n(t).scrollTop(), 1383 y = m - e.centerPointStartX, 1384 x = v - e.centerPointStartY, 1385 w = l + (g + y), 1386 $ = d + (b + x), 1387 S = { top: $, left: w, scaleX: f, scaleY: f }; 1388 (e.canTap = !1), 1389 (e.newWidth = p), 1390 (e.newHeight = h), 1391 (e.contentLastPos = S), 1392 e.requestId && i(e.requestId), 1393 (e.requestId = o(function () { 1394 n.fancybox.setTranslate(e.$content, e.contentLastPos); 1395 })); 1396 }), 1397 (d.prototype.ontouchend = function (t) { 1398 var o = this, 1399 s = o.isSwiping, 1400 r = o.isPanning, 1401 c = o.isZooming, 1402 l = o.isScrolling; 1403 if (((o.endPoints = a(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 && (i(o.requestId), (o.requestId = null)), (o.isSwiping = !1), (o.isPanning = !1), (o.isZooming = !1), (o.isScrolling = !1), (o.instance.isDragging = !1), o.canTap)) return o.onTap(t); 1404 (o.speed = 100), (o.velocityX = (o.distanceX / o.dMs) * 0.5), (o.velocityY = (o.distanceY / o.dMs) * 0.5), r ? o.endPanning() : c ? o.endZooming() : o.endSwiping(s, l); 1405 }), 1406 (d.prototype.endSwiping = function (t, e) { 1407 var o = this, 1408 i = !1, 1409 a = o.instance.group.length, 1410 s = Math.abs(o.distanceX), 1411 r = "x" == t && a > 1 && ((o.dMs > 130 && s > 10) || s > 50); 1412 (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), (i = o.instance.close(!0, 250))) : r && o.distanceX > 0 ? (i = o.instance.previous(300)) : r && o.distanceX < 0 && (i = o.instance.next(300)), !1 !== i || ("x" != t && "y" != t) || o.instance.centerSlide(200), o.$container.removeClass("fancybox-is-sliding"); 1413 }), 1414 (d.prototype.endPanning = function () { 1415 var t, 1416 e, 1417 o, 1418 i = this; 1419 i.contentLastPos && (!1 === i.opts.momentum || i.dMs > 350 ? ((t = i.contentLastPos.left), (e = i.contentLastPos.top)) : ((t = i.contentLastPos.left + 500 * i.velocityX), (e = i.contentLastPos.top + 500 * i.velocityY)), (o = i.limitPosition(t, e, i.c
1419ontentStartPos.width, i.contentStartPos.height)), (o.width = i.contentStartPos.width), (o.height = i.contentStartPos.height), n.fancybox.animate(i.$content, o, 366)); 1420 }), 1421 (d.prototype.endZooming = function () { 1422 var t, 1423 e, 1424 o, 1425 i, 1426 a = this, 1427 s = a.instance.current, 1428 r = a.newWidth, 1429 c = a.newHeight; 1430 a.contentLastPos && ((t = a.contentLastPos.left), (e = a.contentLastPos.top), (i = { top: e, left: t, width: r, height: c, scaleX: 1, scaleY: 1 }), n.fancybox.setTranslate(a.$content, i), r < a.canvasWidth && c < a.canvasHeight ? a.instance.scaleToFit(150) : r > s.width || c > s.height ? a.instance.scaleToActual(a.centerPointStartX, a.centerPointStartY, 150) : ((o = a.limitPosition(t, e, r, c)), n.fancybox.animate(a.$content, o, 150))); 1431 }), 1432 (d.prototype.onTap = function (e) { 1433 var o, 1434 i = this, 1435 s = n(e.target), 1436 r = i.instance, 1437 c = r.current, 1438 l = (e && a(e)) || i.startPoints, 1439 d = l[0] ? l[0].x - n(t).scrollLeft() - i.stagePos.left : 0, 1440 u = l[0] ? l[0].y - n(t).scrollTop() - i.stagePos.top : 0, 1441 f = function (t) { 1442 var o = c.opts[t]; 1443 if ((n.isFunction(o) && (o = o.apply(r, [c, e])), o)) 1444 switch (o) { 1445 case "close": 1446 r.close(i.startEvent); 1447 break; 1448 case "toggleControls": 1449 r.toggleControls(); 1450 break; 1451 case "next": 1452 r.next(); 1453 break; 1454 case "nextOrClose": 1455 r.group.length > 1 ? r.next() : r.close(i.startEvent); 1456 break; 1457 case "zoom": 1458 "image" == c.type && (c.isLoaded || c.$ghost) && (r.canPan() ? r.scaleToFit() : r.isScaledDown() ? r.scaleToActual(d, u) : r.group.length < 2 && r.close(i.startEvent)); 1459 } 1460 }; 1461 if ((!e.originalEvent || 2 != e.originalEvent.button) && (s.is("img") || !(d > s[0].clientWidth + s.offset().left))) { 1462 if (s.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container")) o = "Outside"; 1463 else if (s.is(".fancybox-slide")) o = "Slide"; 1464 else { 1465 if (!r.current.$content || !r.current.$content.find(s).addBack().filter(s).length) return; 1466 o = "Content"; 1467 } 1468 if (i.tapped) { 1469 if ((clearTimeout(i.tapped), (i.tapped = null), Math.abs(d - i.tapX) > 50 || Math.abs(u - i.tapY) > 50)) return this; 1470 f("dblclick" + o); 1471 } else 1472 (i.tapX = d), 1473 (i.tapY = u), 1474 c.opts["dblclick" + o] && c.opts["dblclick" + o] !== c.opts["click" + o] 1475 ? (i.tapped = setTimeout(function () { 1476 (i.tapped = null), r.isAnimating || f("click" + o); 1477 }, 500)) 1478 : f("click" + o); 1479 return this; 1480 } 1481 }), 1482 n(e) 1483 .on("onActivate.fb", function (t, e) { 1484 e && !e.Guestures && (e.Guestures = new d(e)); 1485 }) 1486 .on("beforeClose.fb", function (t, e) { 1487 e && e.Guestures && e.Guestures.destroy(); 1488 }); 1489 })(window, document, jQuery), 1490 (function (t, e) { 1491 "use strict"; 1492 e.extend(!0, e.fancybox.defaults, { btnTpl: { slideShow: '<button data-fancybox-play class="fancybox-button fancybox-button--play" title="{{PLAY_START}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 5.4v13.2l11-6.6z"/></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.33 5.75h2.2v12.5h-2.2V5.75zm5.15 0h2.2v12.5h-2.2V5.75z"/></svg></button>' }, slideShow: { autoStart: !1, speed: 3e3, progress: !0 } }); 1493 var n = function (t) { 1494 (this.instance = t), this.init(); 1495 }; 1496 e.extend(n.prototype, { 1497 timer: null, 1498 isActive: !1, 1499 $button: null, 1500 init: function () { 1501 var t = this, 1502 n = t.instance, 1503 o = n.group[n.currIndex].opts.slideShow; 1504 (t.$button = n.$refs.toolbar.find("[data-fancybox-play]").on("click", function () {
1505 t.toggle(); 1506 })), 1507 n.group.length < 2 || !o ? t.$button.hide() : o.progress && (t.$progress = e('<div class="fancybox-progress"></div>').appendTo(n.$refs.inner)); 1508 }, 1509 set: function (t) { 1510 var n = this, 1511 o = n.instance, 1512 i = o.current; 1513 i && (!0 === t || i.opts.loop || o.currIndex < o.group.length - 1) 1514 ? n.isActive && 1515 "video" !== i.contentType && 1516 (n.$progress && e.fancybox.animate(n.$progress.show(), { scaleX: 1 }, i.opts.slideShow.speed), 1517 (n.timer = setTimeout(function () { 1518 o.current.opts.loop || o.current.index != o.group.length - 1 ? o.next() : o.jumpTo(0); 1519 }, i.opts.slideShow.speed))) 1520 : (n.stop(), (o.idleSecondsCounter = 0), o.showControls()); 1521 }, 1522 clear: function () { 1523 var t = this; 1524 clearTimeout(t.timer), (t.timer = null), t.$progress && t.$progress.removeAttr("style").hide(); 1525 }, 1526 start: function () { 1527 var t = this, 1528 e = t.instance.current; 1529 e && 1530 (t.$button 1531 .attr("title", (e.opts.i18n[e.opts.lang] || e.opts.i18n.en).PLAY_STOP) 1532 .removeClass("fancybox-button--play") 1533 .addClass("fancybox-button--pause"), 1534 (t.isActive = !0), 1535 e.isComplete && t.set(!0), 1536 t.instance.trigger("onSlideShowChange", !0)); 1537 }, 1538 stop: function () { 1539 var t = this, 1540 e = t.instance.current; 1541 t.clear(), 1542 t.$button 1543 .attr("title", (e.opts.i18n[e.opts.lang] || e.opts.i18n.en).PLAY_START) 1544 .removeClass("fancybox-button--pause") 1545 .addClass("fancybox-button--play"), 1546 (t.isActive = !1), 1547 t.instance.trigger("onSlideShowChange", !1), 1548 t.$progress && t.$progress.removeAttr("style").hide(); 1549 }, 1550 toggle: function () { 1551 var t = this; 1552 t.isActive ? t.stop() : t.start(); 1553 }, 1554 }), 1555 e(t).on({ 1556 "onInit.fb": function (t, e) { 1557 e && !e.SlideShow && (e.SlideShow = new n(e)); 1558 }, 1559 "beforeShow.fb": function (t, e, n, o) { 1560 var i = e && e.SlideShow; 1561 o ? i && n.opts.slideShow.autoStart && i.start() : i && i.isActive && i.clear(); 1562 }, 1563 "afterShow.fb": function (t, e, n) { 1564 var o = e && e.SlideShow; 1565 o && o.isActive && o.set(); 1566 }, 1567 "afterKeydown.fb": function (n, o, i, a, s) { 1568 var r = o && o.SlideShow; 1569 !r || !i.opts.slideShow || (80 !== s && 32 !== s) || e(t.activeElement).is("button,a,input") || (a.preventDefault(), r.toggle()); 1570 }, 1571 "beforeClose.fb onDeactivate.fb": function (t, e) { 1572 var n = e && e.SlideShow; 1573 n && n.stop(); 1574 }, 1575 }), 1576 e(t).on("visibilitychange", function () { 1577 var n = e.fancybox.getInstance(), 1578 o = n && n.SlideShow; 1579 o && o.isActive && (t.hidden ? o.clear() : o.set()); 1580 }); 1581 })(document, jQuery), 1582 (function (t, e) { 1583 "use strict"; 1584 var n = (function () { 1585 for ( 1586 var e = [ 1587 ["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"], 1588 ["webkitRequestFullscreen", "webkitExitFullscreen", "webkitFullscreenElement", "webkitFullscreenEnabled", "webkitfullscreenchange", "webkitfullscreenerror"], 1589 ["webkitRequestFullScreen", "webkitCancelFullScreen", "webkitCurrentFullScreenElement", "webkitCancelFullScreen", "webkitfullscreenchange", "webkitfullscreenerror"], 1590 ["mozRequestFullScreen", "mozCancelFullScreen", "mozFullScreenElement", "mozFullScreenEnabled", "mozfullscreenchange", "mozfullscreenerror"], 1591 ["msRequestFullscreen", "msExitFullscreen", "msFullscreenElement", "msFullscreenEnabled", "MSFullscreenChange", "MSFullscreenError"], 1592 ], 1593 n = {}, 1594 o = 0; 1595 o < e.length; 1596 o++ 1597 ) { 1598 var i = e[o]; 1599 if (i && i[1] in t) { 1600 for (var a = 0; a < i.length; a++) n[e[0][a]] = i[a]; 1601 return n; 1602 } 1603 } 1604 return !1; 1605 })(); 1606 if (n) { 1607 var o = { 1608 request: function (e) { 1609 (e = e || t.documentElement), e[n.requestFullscreen](e.ALLOW_KEYBOARD_INPUT); 1610 }, 1611 exit: function () { 1612 t[n.exitFullscreen](); 1613 }, 1614 toggle: function (e) { 1615 (e = e || t.documentElement), this.isFullscreen() ? this.exit() : this.request(e); 1616 }, 1617 isFullscreen: function () { 1618 return Boolean(t[n.fullscreenElement]); 1619 }, 1620 enabled: function () { 1621 return Boolean(t[n.fullscreenEnabled]); 1622 }, 1623 }; 1624 e.extend(!0, e.fancybox.defaults, { btnTpl: { fullScreen: '<button data-fancybox-fullscreen class="fancybox-button fancybox-button--fsenter" title="{{FULL_SCREEN}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
1624<path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"/></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 16h3v3h2v-5H5zm3-8H5v2h5V5H8zm6 11h2v-3h3v-2h-5zm2-11V5h-2v5h5V8z"/></svg></button>' }, fullScreen: { autoStart: !1 } }), 1625 e(t).on(n.fullscreenchange, function () { 1626 var t = o.isFullscreen(), 1627 n = e.fancybox.getInstance(); 1628 n && (n.current && "image" === n.current.type && n.isAnimating && ((n.isAnimating = !1), n.update(!0, !0, 0), n.isComplete || n.complete()), 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)); 1629 }); 1630 } 1631 e(t).on({ 1632 "onInit.fb": function (t, e) { 1633 var i; 1634 if (!n) return void e.$refs.toolbar.find("[data-fancybox-fullscreen]").remove(); 1635 e && e.group[e.currIndex].opts.fullScreen 1636 ? ((i = e.$refs.container), 1637 i.on("click.fb-fullscreen", "[data-fancybox-fullscreen]", function (t) { 1638 t.stopPropagation(), t.preventDefault(), o.toggle(); 1639 }), 1640 e.opts.fullScreen && !0 === e.opts.fullScreen.autoStart && o.request(), 1641 (e.FullScreen = o)) 1642 : e && e.$refs.toolbar.find("[data-fancybox-fullscreen]").hide(); 1643 }, 1644 "afterKeydown.fb": function (t, e, n, o, i) { 1645 e && e.FullScreen && 70 === i && (o.preventDefault(), e.FullScreen.toggle()); 1646 }, 1647 "beforeClose.fb": function (t, e) { 1648 e && e.FullScreen && e.$refs.container.hasClass("fancybox-is-fullscreen") && o.exit(); 1649 }, 1650 }); 1651 })(document, jQuery), 1652 (function (t, e) { 1653 "use strict"; 1654 var n = "fancybox-thumbs"; 1655 e.fancybox.defaults = e.extend(!0, { btnTpl: { thumbs: '<button data-fancybox-thumbs class="fancybox-button fancybox-button--thumbs" title="{{THUMBS}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.59 14.59h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76H5.65V5.65z"/></svg></button>' }, thumbs: { autoStart: !1, hideOnClose: !0, parentEl: ".fancybox-container", axis: "y" } }, e.fancybox.defaults); 1656 var o = function (t) { 1657 this.init(t); 1658 }; 1659 e.extend(o.prototype, { 1660 $button: null, 1661 $grid: null, 1662 $list: null, 1663 isVisible: !1, 1664 isActive: !1, 1665 init: function (t) { 1666 var e = this, 1667 n = t.group, 1668 o = 0; 1669 (e.instance = t), (e.opts = n[t.currIndex].opts.thumbs), (t.Thumbs = e), (e.$button = t.$refs.toolbar.find("[data-fancybox-thumbs]")); 1670 for (var i = 0, a = n.length; i < a && (n[i].thumb && o++, !(o > 1)); i++); 1671 o > 1 && e.opts 1672 ? (e.$button.removeAttr("style").on("click", function () { 1673 e.toggle(); 1674 }), 1675 (e.isActive = !0)) 1676 : e.$button.hide(); 1677 }, 1678 create: function () { 1679 var t, 1680 o = this, 1681 i = o.instance, 1682 a = o.opts.parentEl, 1683 s = []; 1684 o.$grid || 1685 ((o.$grid = e('<div class="' + n + " " + n + "-" + o.opts.axis + '"></div>').appendTo(i.$refs.container.find(a).addBack().filter(a))), 1686 o.$grid.on("click", "a", function () { 1687 i.jumpTo(e(this).attr("data-index")); 1688 })), 1689 o.$list || (o.$list = e('<div class="' + n + '__list">').appendTo(o.$grid)), 1690 e.each(i.group, function (e, n) { 1691 (t = n.thumb), t || "image" !== n.type || (t = n.src), s.push('<a href="javascript:;" tabindex="0" data-index="' + e + '"' + (t && t.length ? ' style="background-image:url(' + t + ')"' : 'class="fancybox-thumbs-missing"') + "></a>"); 1692 }), 1693 (o.$list[0].innerHTML = s.join("")), 1694 "x" === o.opts.axis && o.$list.width(parseInt(o.$grid.css("padding-right"), 10) + i.group.length * o.$list.children().eq(0).outerWidth(!0)); 1695 }, 1696 focus: function (t) { 1697 var e, 1698 n, 1699 o = this, 1700 i = o.$list, 1701 a = o.$grid; 1702 o.instance.current && 1703 ((e = i 1704 .children() 1705 .removeClass("fancybox-thumbs-active") 1706 .filter('[data-index="' + o.instance.current.index + '"]') 1707 .addClass("fancybox-thumbs-active")), 1708 (n = e.position()), 1709 "y" === o.opts.axis && (n.top < 0 || n.top > i.height() - e.outerHeight()) ? i.stop().animate({ scrollTop: i.scrollTop() + n.top }, t) : "x" === o.opts.axis && (n.left < a.scrollLeft() || n.left > a.scrollLeft() + (a.width() - e.outerWidth())) && i.parent().stop().animate({ scrollLeft: n.left }, t)); 1710 }, 1711 update: function () { 1712 var t = this; 1713 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(
1713); 1714 }, 1715 hide: function () { 1716 (this.isVisible = !1), this.update(); 1717 }, 1718 show: function () { 1719 (this.isVisible = !0), this.update(); 1720 }, 1721 toggle: function () { 1722 (this.isVisible = !this.isVisible), this.update(); 1723 }, 1724 }), 1725 e(t).on({ 1726 "onInit.fb": function (t, e) { 1727 var n; 1728 e && !e.Thumbs && ((n = new o(e)), n.isActive && !0 === n.opts.autoStart && n.show()); 1729 }, 1730 "beforeShow.fb": function (t, e, n, o) { 1731 var i = e && e.Thumbs; 1732 i && i.isVisible && i.focus(o ? 0 : 250); 1733 }, 1734 "afterKeydown.fb": function (t, e, n, o, i) { 1735 var a = e && e.Thumbs; 1736 a && a.isActive && 71 === i && (o.preventDefault(), a.toggle()); 1737 }, 1738 "beforeClose.fb": function (t, e) { 1739 var n = e && e.Thumbs; 1740 n && n.isVisible && !1 !== n.opts.hideOnClose && n.$grid.hide(); 1741 }, 1742 }); 1743 })(document, jQuery), 1744 (function (t, e) { 1745 "use strict"; 1746 function n(t) { 1747 var e = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'", "/": "/", "`": "`", "=": "=" }; 1748 return String(t).replace(/[&<>"'`=\/]/g, function (t) { 1749 return e[t]; 1750 }); 1751 } 1752 e.extend(!0, e.fancybox.defaults, { 1753 btnTpl: { share: '<button data-fancybox-share class="fancybox-button fancybox-button--share" title="{{SHARE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M2.55 19c1.4-8.4 9.1-9.8 11.9-9.8V5l7 7-7 6.3v-3.5c-2.8 0-10.5 2.1-11.9 4.2z"/></svg></button>' }, 1754 share: { 1755 url: function (t, e) { 1756 return (!t.currentHash && "inline" !== e.type && "html" !== e.type && (e.origSrc || e.src)) || window.location; 1757 }, 1758 tpl: '<div class="fancybox-share"><h1>{{SHARE}}</h1><p><a class="fancybox-share__button fancybox-share__button--fb" href="https://www.facebook.com/sharer/sharer.php?u={{url}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m287 456v-299c0-21 6-35 35-35h38v-63c-7-1-29-3-55-3-54 0-91 33-91 94v306m143-254h-205v72h196" /></svg><span>Facebook</span></a><a class="fancybox-share__button fancybox-share__button--tw" href="https://twitter.com/intent/tweet?url={{url}}&text={{descr}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m456 133c-14 7-31 11-47 13 17-10 30-27 37-46-15 10-34 16-52 20-61-62-157-7-141 75-68-3-129-35-169-85-22 37-11 86 26 109-13 0-26-4-37-9 0 39 28 72 65 80-12 3-25 4-37 2 10 33 41 57 77 57-42 30-77 38-122 34 170 111 378-32 359-208 16-11 30-25 41-42z" /></svg><span>Twitter</span></a><a class="fancybox-share__button fancybox-share__button--pt" href="https://www.pinterest.com/pin/create/button/?url={{url}}&description={{descr}}&media={{media}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m265 56c-109 0-164 78-164 144 0 39 15 74 47 87 5 2 10 0 12-5l4-19c2-6 1-8-3-13-9-11-15-25-15-45 0-58 43-110 113-110 62 0 96 38 96 88 0 67-30 122-73 122-24 0-42-19-36-44 6-29 20-60 20-81 0-19-10-35-31-35-25 0-44 26-44 60 0 21 7 36 7 36l-30 125c-8 37-1 83 0 87 0 3 4 4 5 2 2-3 32-39 42-75l16-64c8 16 31 29 56 29 74 0 124-67 124-157 0-69-58-132-146-132z" fill="#fff"/></svg><span>Pinterest</span></a></p><p><input class="fancybox-share__input" type="text" value="{{url_raw}}" onclick="select()" /></p></div>', 1759 }, 1760 }), 1761 e(t).on("click", "[data-fancybox-share]", function () { 1762 var t, 1763 o, 1764 i = e.fancybox.getInstance(), 1765 a = i.current || null; 1766 a && 1767 ("function" === e.type(a.opts.share.url) && (t = a.opts.share.url.apply(a, [i, a])), 1768 (o = a.opts.share.tpl 1769 .replace(/\{\{media\}\}/g, "image" === a.type ? encodeURIComponent(a.src) : "") 1770 .replace(/\{\{url\}\}/g, encodeURIComponent(t)) 1771 .replace(/\{\{url_raw\}\}/g, n(t)) 1772 .replace(/\{\{descr\}\}/g, i.$caption ? encodeURIComponent(i.$caption.text()) : "")), 1773 e.fancybox.open({ 1774 src: i.translate(i, o), 1775 type: "html", 1776 opts: { 1777 touch: !1, 1778 animationEffect: !1, 1779 afterLoad: function (t, e) { 1780 i.$refs.container.one("beforeClose.fb", function () { 1781 t.close(null, 0); 1782 }), 1783 e.$content.find(".fancybox-share__button").click(function () { 1784 return window.open(this.href, "Share", "width=550, height=450"), !1; 1785 }); 1786 }, 1787 mobile: { autoFocus: !1 }, 1788 }, 1789 })); 1790 }); 1791 })(document, jQuery), 1792 (function (t, e, n) { 1793 "use strict"; 1794 function o() { 1795 var e = t.location.hash.substr(1), 1796 n = e.split("-"), 1797 o = n.length > 1 && /^\+?\d+$/.test(n[n.length - 1]) ? parseInt(n.pop(-1), 10) || 1 : 1, 1798 i = n.join("-"); 1799 return { hash: e, index: o < 1 ? 1 : o, gallery: i }; 1800 } 1801 function i(t) { 1802 "" !== t.gallery && 1803 n("[data-fancybox='" + n.escapeSelector(t.gallery) + "']") 1804 .eq(t.index - 1) 1805 .focus() 1806 .trigger("click.fb-start"); 1807 } 1808 function a(t) { 1809 var e, n; 1810 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); 1811 } 1812 n.escapeSelector || 1813 (n.escapeSelector = function (t) { 1814 return (t + "").replace(/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g, function (t, e) { 1815 return e ? ("\0" === t ? "�" : t.slice(0, -1) + "\\" + t.charCodeAt(t.length - 1).toString(16) + " ") : "\\" + t; 1816 }); 1817 }), 1818 n(function () { 1819 !1 !== n.fancybox.defaults.hash && 1820 (n(e).on({ 1821 "onInit.fb": function (t, e) { 1822 var n, i; 1823 !1 !== e.group[e.currIndex].opts.hash && ((n = o()), (i = a(e)) && n.gallery && i == n.gallery && (e.currIndex = n.index - 1)); 1824 }, 1825 "beforeShow.fb": function (n, o, i, s) { 1826 var r; 1827 i && 1828 !1 !== i.opts.hash && 1829 (r = a(o)) && 1830 ((o.currentHash = r + (o.group.length > 1 ? "-" + (i.index + 1) : "")), 1831 t.location.hash !== "#" + o.currentHash && 1832 (s && !o.origHash && (o.origHash = t.location.hash), 1833 o.hashTimer && clearTimeout(o.hashTimer), 1834 (o.hashTimer = setTimeout(function () { 1835 "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); 1836 }, 300)))); 1837 }, 1838 "beforeClose.fb": function (n, o, i) { 1839 i && !1 !== i.opts.hash && (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)); 1840 }, 1841 }), 1842 n(t).on("hashchange.fb", function () { 1843 var t = o(), 1844 e = null; 1845 n.each(n(".fancybox-container").get().reverse(), function (t, o) { 1846 var i = n(o).data("FancyBox"); 1847 if (i && i.currentHash) return (e = i), !1; 1848 }), 1849 e ? e.currentHash === t.gallery + "-" + t.index || (1 === t.index && e.currentHash == t.gallery) || ((e.currentHash = null), e.close()) : "" !== t.gallery && i(t); 1850 }), 1851 setTimeout(function () { 1852 n.fancybox.getInstance() || i(o()); 1853 }, 50)); 1854 }); 1855 })(window, document, jQuery), 1856 (function (t, e) { 1857 "use strict"; 1858 var n = new Date().getTime(); 1859 e(t).on({ 1860 "onInit.fb": function (t, e, o) { 1861 e.$refs.stage.on("mousewheel DOMMouseScroll wheel MozMousePixelScroll", function (t) { 1862 var o = e.current, 1863 i = new Date().getTime(); 1864 e.group.length < 2 || !1 === o.opts.wheel || ("auto" === o.opts.wheel && "image" !== o.type) || (t.preventDefault(), t.stopPropagation(), o.$slide.hasClass("fancybox-animated") || ((t = t.originalEvent || t), i - n < 250 || ((n = i), e[(-t.deltaY || -t.deltaX || t.wheelDelta || -t.detail) < 0 ? "next" : "previous"]()))); 1865 }); 1866 }, 1867 }); 1868 })(document, jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.