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()) || 20 (t.preventDefault(), 21 (e = e || {}), 22 t && t.data && (e = h(t.data.options, e)), 23 (o = e.$target || n(t.currentTarget).trigger("blur")), 24 ((a = n.fancybox.getInstance()) && a.$trigger && a.$trigger.is(o)) || 25 (e.selector 26 ? (s = n(e.selector)) 27 : ((i = o.attr("data-fancybox") || ""), 28 i 29 ? ((s = t.data ? t.data.items : []), 30 (s = s.length 31 ? s.filter('[data-fancybox="' + i + '"]') 32 : n('[data-fancybox="' + i + '"]'))) 33 : (s = [o])), 34 (r = n(s).index(o)), 35 r < 0 && (r = 0), 36 (a = n.fancybox.open(s, e, r)), 37 (a.$trigger = o))); 38 } 39 if (((t.console = t.console || { info: function (t) {} }), n)) { 40 if (n.fn.fancybox) return void console.info("fancyBox already initialized"); 41 var a = { 42 closeExisting: !1, 43 loop: !1, 44 gutter: 50, 45 keyboard: !0, 46 preventCaptionOverlap: !0, 47 arrows: !0, 48 infobar: !0, 49 smallBtn: "auto", 50 toolbar: "auto", 51 buttons: ["zoom", "slideShow", "thumbs", "close"], 52 idleTime: 3, 53 protect: !1, 54 modal: !1, 55 image: { preload: !1 }, 56 ajax: { settings: { data: { fancybox: !0 } } }, 57 iframe: { 58 tpl: '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" allowfullscreen="allowfullscreen" allow="autoplay; fullscreen" src=""></iframe>', 59 preload: !0, 60 css: {}, 61 attr: { scrolling: "auto" }, 62 }, 63 video: { 64 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>', 65 format: "", 66 autoStart: !0, 67 }, 68 defaultType: "image", 69 animationEffect: "zoom", 70 animationDuration: 366, 71 zoomOpacity: "auto", 72 transitionEffect: "fade", 73 transitionDuration: 366, 74 slideClass: "", 75 baseClass: "", 76 baseTpl: 77 '<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>', 78 spinnerTpl: '<div class="fancybox-loading"></div>', 79 errorTpl: '<div class="fancybox-error"><p>{{ERROR}}</p></div>', 80 btnTpl: { 81 download: 82 '<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>', 83 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>', 84 close: 85 '<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">
85<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>', 86 arrowLeft: 87 '<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"><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>', 88 arrowRight: 89 '<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>', 90 smallBtn: 91 '<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>', 92 }, 93 parentEl: "body", 94 hideScrollbar: !0, 95 autoFocus: !0, 96 backFocus: !0, 97 trapFocus: !0, 98 fullScreen: { autoStart: !1 }, 99 touch: { vertical: !0, momentum: !0 }, 100 hash: null, 101 media: {}, 102 slideShow: { autoStart: !1, speed: 3e3 }, 103 thumbs: { 104 autoStart: !1, 105 hideOnClose: !0, 106 parentEl: ".fancybox-container", 107 axis: "y", 108 }, 109 wheel: "auto", 110 onInit: n.noop, 111 beforeLoad: n.noop, 112 afterLoad: n.noop, 113 beforeShow: n.noop, 114 afterShow: n.noop, 115 beforeClose: n.noop, 116 afterClose: n.noop, 117 onActivate: n.noop, 118 onDeactivate: n.noop, 119 clickContent: function (t, e) { 120 return "image" === t.type && "zoom"; 121 }, 122 clickSlide: "close", 123 clickOutside: "close", 124 dblclickContent: !1, 125 dblclickSlide: !1, 126 dblclickOutside: !1, 127 mobile: { 128 preventCaptionOverlap: !1, 129 idleTime: !1, 130 clickContent: function (t, e) { 131 return "image" === t.type && "toggleControls"; 132 }, 133 clickSlide: function (t, e) { 134 return "image" === t.type ? "toggleControls" : "close"; 135 }, 136 dblclickContent: function (t, e) { 137 return "image" === t.type && "zoom"; 138 }, 139 dblclickSlide: function (t, e) { 140 return "image" === t.type && "zoom"; 141 }, 142 }, 143 lang: "en", 144 i18n: { 145 en: { 146 CLOSE: "Close", 147 NEXT: "Next", 148 PREV: "Previous", 149 ERROR: 150 "The requested content cannot be loaded. <br/> Please try again later.", 151 PLAY_START: "Start slideshow", 152 PLAY_STOP: "Pause slideshow", 153 FULL_SCREEN: "Full screen", 154 THUMBS: "Thumbnails", 155 DOWNLOAD: "Download", 156 SHARE: "Share", 157 ZOOM: "Zoom", 158 }, 159 de: { 160 CLOSE: "Schließen", 161 NEXT: "Weiter", 162 PREV: "Zurück", 163 ERROR: 164 "Die angeforderten Daten konnten nicht geladen werden. <br/> Bitte versuchen Sie es später nochmal.", 165 PLAY_START: "Diaschau starten", 166 PLAY_STOP: "Diaschau beenden", 167 FULL_SCREEN: "Vollbild", 168 THUMBS: "Vorschaubilder", 169 DOWNLOAD: "Herunterladen", 170 SHARE: "Teilen", 171 ZOOM: "Vergrößern", 172 }, 173 }, 174 }, 175 s = n(t), 176 r = n(e), 177 c = 0, 178 l = function (t) { 179 return t && t.hasOwnProperty && t instanceof n; 180 }, 181 d = (function () { 182 return ( 183 t.requestAnimationFrame || 184 t.webkitRequestAnimationFrame || 185 t.mozRequestAnimationFrame || 186 t.oRequestAnimationFrame || 187 function (e) { 188 return t.setTimeout(e, 1e3 / 60); 189 } 190 ); 191 })(), 192 u = (function () { 193 return ( 194 t.cancelAnimationFrame || 195 t.webkitCancelAnimationFrame || 196 t.mozCancelAnimationFrame || 197 t.oCancelAnimationFrame || 198 function (e) { 199 t.clearTimeout(e); 200 } 201 ); 202 })(), 203 f = (function () { 204 var t, 205 n = e.createElement("fakeelement"), 206 o = { 207 transition: "transitionend", 208 OTransition: "oTransitionEnd", 209 MozTransition: "transitionend", 210 WebkitTransition: "webkitTransitionEnd", 211 }; 212 for (t in o) if (void 0 !== n.style[t]) return o[t]; 213 return "transitionend"; 214 })(), 215 p = function (t) { 216 return t && t.length && t[0].offsetHeight; 217 }, 218 h = function (t, e) { 219 var o = n.extend(!0, {}, t, e); 220 return ( 221 n.each(e, function (t, e) { 222 n.isArray(e) && (o[t] = e); 223 }), 224 o 225 ); 226 }, 227 g = function (t) { 228 var o, i; 229 return ( 230 !(!t || t.ownerDocument !== e) && 231 (n(".fancybox-container").css("pointer-events", "none"), 232 (o = { 233 x: t.getBoundingClientRect().left + t.offsetWidth / 2, 234 y: t.getBoundingClientRect().top + t.offsetHeight / 2, 235 }), 236 (i = e.elementFromPoint(o.x, o.y) === t), 237 n(".fancybox-container").css("pointer-events", ""), 238 i) 239 ); 240 }, 241 b = function (t, e, o) { 242 var i = this; 243 (i.opts = h({ index: o }, n.fancybox.defaults)), 244 n.isPlainObject(e) && (i.opts = h(i.opts, e)), 245 n.fancybox.isMobile && (i.opts = h(i.opts, i.opts.mobile)), 246 (i.id = i.opts.id || ++c), 247 (i.currIndex = parseInt(i.opts.index, 10) || 0), 248 (i.prevIndex = null), 249 (i.prevPos = null), 250 (i.currPos = 0), 251 (i.firstRun = !0), 252 (i.group = []), 253 (i.slides = {}), 254 i.addContent(t), 255 i.group.length && i.init(); 256 }; 257 n.extend(b.prototype, { 258 init: function () { 259 var o, 260 i, 261 a = this, 262 s = a.group[a.currIndex], 263 r = s.opts; 264 r.closeExisting && n.fancybox.close(!0), 265 n("body").addClass("fancybox-active"), 266 !n.fancybox.getInstance() && 267 !1 !== r.hideScrollbar && 268 !n.fancybox.isMobile && 269 e.body.scrollHeight >
269 t.innerHeight && 270 (n("head").append( 271 '<style id="fancybox-style-noscroll" type="text/css">.compensate-for-scrollbar{margin-right:' + 272 (t.innerWidth - e.documentElement.clientWidth) + 273 "px;}</style>" 274 ), 275 n("body").addClass("compensate-for-scrollbar")), 276 (i = ""), 277 n.each(r.buttons, function (t, e) { 278 i += r.btnTpl[e] || ""; 279 }), 280 (o = n( 281 a.translate( 282 a, 283 r.baseTpl 284 .replace("{{buttons}}", i) 285 .replace("{{arrows}}", r.btnTpl.arrowLeft + r.btnTpl.arrowRight) 286 ) 287 ) 288 .attr("id", "fancybox-container-" + a.id) 289 .addClass(r.baseClass) 290 .data("FancyBox", a) 291 .appendTo(r.parentEl)), 292 (a.$refs = { container: o }), 293 [ 294 "bg", 295 "inner", 296 "infobar", 297 "toolbar", 298 "stage", 299 "caption", 300 "navigation", 301 ].forEach(function (t) { 302 a.$refs[t] = o.find(".fancybox-" + t); 303 }), 304 a.trigger("onInit"), 305 a.activate(), 306 a.jumpTo(a.currIndex); 307 }, 308 translate: function (t, e) { 309 var n = t.opts.i18n[t.opts.lang] || t.opts.i18n.en; 310 return e.replace(/\{\{(\w+)\}\}/g, function (t, e) { 311 return void 0 === n[e] ? t : n[e]; 312 }); 313 }, 314 addContent: function (t) { 315 var e, 316 o = this, 317 i = n.makeArray(t); 318 n.each(i, function (t, e) { 319 var i, 320 a, 321 s, 322 r, 323 c, 324 l = {}, 325 d = {}; 326 n.isPlainObject(e) 327 ? ((l = e), (d = e.opts || e)) 328 : "object" === n.type(e) && n(e).length 329 ? ((i = n(e)), 330 (d = i.data() || {}), 331 (d = n.extend(!0, {}, d, d.options)), 332 (d.$orig = i), 333 (l.src = o.opts.src || d.src || i.attr("href")), 334 l.type || l.src || ((l.type = "inline"), (l.src = e))) 335 : (l = { type: "html", src: e + "" }), 336 (l.opts = n.extend(!0, {}, o.opts, d)), 337 n.isArray(d.buttons) && (l.opts.buttons = d.buttons), 338 n.fancybox.isMobile && 339 l.opts.mobile && 340 (l.opts = h(l.opts, l.opts.mobile)), 341 (a = l.type || l.opts.type), 342 (r = l.src || ""), 343 !a && 344 r && 345 ((s = r.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i)) 346 ? ((a = "video"), 347 l.opts.video.format || 348 (l.opts.video.format = 349 "video/" + ("ogv" === s[1] ? "ogg" : s[1]))) 350 : r.match( 351 /(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i 352 ) 353 ? (a = "image") 354 : r.match(/\.(pdf)((\?|#).*)?$/i) 355 ? ((a = "iframe"), 356 (l = n.extend(!0, l, { 357 contentType: "pdf", 358 opts: { iframe: { preload: !1 } }, 359 }))) 360 : "#" === r.charAt(0) && (a = "inline")), 361 a ? (l.type = a) : o.trigger("objectNeedsType", l), 362 l.contentType || 363 (l.contentType = 364 n.inArray(l.type, ["html", "inline", "ajax"]) > -1 365 ? "html" 366 : l.type), 367 (l.index = o.group.length), 368 "auto" == l.opts.smallBtn && 369 (l.opts.smallBtn = 370 n.inArray(l.type, ["html", "inline", "ajax"]) > -1), 371 "auto" === l.opts.toolbar && (l.opts.toolbar = !l.opts.smallBtn), 372 (l.$thumb = l.opts.$thumb || null), 373 l.opts.$trigger && 374 l.index === o.opts.index && 375 ((l.$thumb = l.opts.$trigger.find("img:first")), 376 l.$thumb.length && (l.opts.$orig = l.opts.$trigger)), 377 (l.$thumb && l.$thumb.length) || 378 !l.opts.$orig || 379 (l.$thumb = l.opts.$orig.find("img:first")), 380 l.$thumb && !l.$thumb.length && (l.$thumb = null), 381 (l.thumb = l.opts.thumb || (l.$thumb ? l.$thumb[0].src : null)), 382 "function" === n.type(l.opts.caption) && 383 (l.opts.caption = l.opts.caption.apply(e, [o, l])), 384 "function" === n.type(o.opts.caption) && 385 (l.opts.caption = o.opts.caption.apply(e, [o, l])), 386 l.opts.caption instanceof n || 387 (l.opts.caption = 388 void 0 === l.opts.caption ? "" : l.opts.caption + ""), 389 "ajax" === l.type && 390 ((c = r.split(/\s+/, 2)), 391 c.length > 1 && 392 ((l.src = c.shift()), (l.opts.filter = c.shift()))), 393 l.opts.modal && 394 (l.opts = n.extend(!0, l.opts, { 395 trapFocus: !0, 396 infobar: 0, 397 toolbar: 0, 398 smallBtn: 0, 399 keyboard: 0, 400 slideShow: 0, 401 fullScreen: 0, 402 thumbs: 0, 403 touch: 0, 404 clickContent: !1, 405 clickSlide: !1, 406 clickOutside: !1, 407 dblclickContent: !1, 408 dblclickSlide: !1, 409 dblclickOutside: !1, 410 })), 411 o.group.push(l); 412 }), 413 Object.keys(o.slides).length && 414 (o.updateControls(),
415 (e = o.Thumbs) && e.isActive && (e.create(), e.focus())); 416 }, 417 addEvents: function () { 418 var e = this; 419 e.removeEvents(), 420 e.$refs.container 421 .on("click.fb-close", "[data-fancybox-close]", function (t) { 422 t.stopPropagation(), t.preventDefault(), e.close(t); 423 }) 424 .on( 425 "touchstart.fb-prev click.fb-prev", 426 "[data-fancybox-prev]", 427 function (t) { 428 t.stopPropagation(), t.preventDefault(), e.previous(); 429 } 430 ) 431 .on( 432 "touchstart.fb-next click.fb-next", 433 "[data-fancybox-next]", 434 function (t) { 435 t.stopPropagation(), t.preventDefault(), e.next(); 436 } 437 ) 438 .on("click.fb", "[data-fancybox-zoom]", function (t) { 439 e[e.isScaledDown() ? "scaleToActual" : "scaleToFit"](); 440 }), 441 s.on("orientationchange.fb resize.fb", function (t) { 442 t && t.originalEvent && "resize" === t.originalEvent.type 443 ? (e.requestId && u(e.requestId), 444 (e.requestId = d(function () { 445 e.update(t); 446 }))) 447 : (e.current && 448 "iframe" === e.current.type && 449 e.$refs.stage.hide(), 450 setTimeout( 451 function () { 452 e.$refs.stage.show(), e.update(t); 453 }, 454 n.fancybox.isMobile ? 600 : 250 455 )); 456 }),
457 r.on("keydown.fb", function (t) { 458 var o = n.fancybox ? n.fancybox.getInstance() : null, 459 i = o.current, 460 a = t.keyCode || t.which; 461 if (9 == a) return void (i.opts.trapFocus && e.focus(t)); 462 if ( 463 !( 464 !i.opts.keyboard || 465 t.ctrlKey || 466 t.altKey || 467 t.shiftKey || 468 n(t.target).is("input,textarea,video,audio,select") 469 ) 470 ) 471 return 8 === a || 27 === a 472 ? (t.preventDefault(), void e.close(t)) 473 : 37 === a || 38 === a 474 ? (t.preventDefault(), void e.previous()) 475 : 39 === a || 40 === a 476 ? (t.preventDefault(), void e.next()) 477 : void e.trigger("afterKeydown", t, a); 478 }), 479 e.group[e.currIndex].opts.idleTime && 480 ((e.idleSecondsCounter = 0), 481 r.on( 482 "mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle", 483 function (t) { 484 (e.idleSecondsCounter = 0), 485 e.isIdle && e.showControls(), 486 (e.isIdle = !1); 487 } 488 ), 489 (e.idleInterval = t.setInterval(function () { 490 ++e.idleSecondsCounter >= e.group[e.currIndex].opts.idleTime && 491 !e.isDragging && 492 ((e.isIdle = !0), (e.idleSecondsCounter = 0), e.hideControls()); 493 }, 1e3))); 494 }, 495 removeEvents: function () { 496 var e = this; 497 s.off("orientationchange.fb resize.fb"), 498 r.off("keydown.fb .fb-idle"), 499 this.$refs.container.off(".fb-close .fb-prev .fb-next"), 500 e.idleInterval && 501 (t.clearInterval(e.idleInterval), (e.idleInterval = null)); 502 }, 503 previous: function (t) { 504 return this.jumpTo(this.currPos - 1, t); 505 }, 506 next: function (t) { 507 return this.jumpTo(this.currPos + 1, t); 508 }, 509 jumpTo: function (t, e) { 510 var o, 511 i, 512 a, 513 s, 514 r, 515 c, 516 l, 517 d, 518 u, 519 f = this, 520 h = f.group.length; 521 if (!(f.isDragging || f.isClosing || (f.isAnimating && f.firstRun))) { 522 if ( 523 ((t = parseInt(t, 10)), 524 !(a = f.current ? f.current.opts.loop : f.opts.loop) && 525 (t < 0 || t >= h)) 526 ) 527 return !1; 528 if ( 529 ((o = f.firstRun = !Object.keys(f.slides).length), 530 (r = f.current), 531 (f.prevIndex = f.currIndex), 532 (f.prevPos = f.currPos), 533 (s = f.createSlide(t)), 534 h > 1 && 535 ((a || s.index < h - 1) && f.createSlide(t + 1), 536 (a || s.index > 0) && f.createSlide(t - 1)), 537 (f.current = s), 538 (f.currIndex = s.index), 539 (f.currPos = s.pos), 540 f.trigger("beforeShow", o), 541 f.updateControls(), 542 (s.forcedDuration = void 0), 543 n.isNumeric(e) 544 ? (s.forcedDuration = e) 545 : (e = s.opts[o ? "animationDuration" : "transitionDuration"]), 546 (e = parseInt(e, 10)), 547 (i = f.isMoved(s)), 548 s.$slide.addClass("fancybox-slide--current"), 549 o) 550 ) 551 return ( 552 s.opts.animationEffect && 553 e && 554 f.$refs.container.css("transition-duration", e + "ms"), 555 f.$refs.container.addClass("fancybox-is-open").trigger("focus"), 556 f.loadSlide(s), 557 void f.preload("image") 558 ); 559 (c = n.fancybox.getTranslate(r.$slide)), 560 (l = n.fancybox.getTranslate(f.$refs.stage)), 561 n.each(f.slides, function (t, e) { 562 n.fancybox.stop(e.$slide, !0); 563 }), 564 r.pos !== s.pos && (r.isComplete = !1), 565 r.$slide.removeClass( 566 "fancybox-slide--complete fancybox-slide--current" 567 ), 568 i 569 ? ((u = c.left - (r.pos * c.width + r.pos * r.opts.gutter)), 570 n.each(f.slides, function (t, o) { 571 o.$slide 572 .removeClass("fancybox-animated") 573 .removeClass(function (t, e) { 574 return (e.match(/(^|\s)fancybox-fx-\S+/g) || []).join( 575 " " 576 ); 577 }); 578 var i = o.pos * c.width + o.pos * o.opts.gutter; 579 n.fancybox.setTranslate(o.$slide, { 580 top: 0, 581 left: i - l.left + u, 582 }), 583 o.pos !== s.pos && 584 o.$slide.addClass( 585 "fancybox-slide--" + 586 (o.pos > s.pos ? "next" : "previous") 587 ), 588 p(o.$slide), 589 n.fancybox.animate( 590 o.$slide, 591 { 592 top: 0, 593 left: 594 (o.pos - s.pos) * c.width + 595 (o.pos - s.pos) * o.opts.gutter, 596 }, 597 e, 598 function () { 599 o.$slide 600 .css({ transform: "", opacity: "" }) 601 .removeClass( 602 "fancybox-slide--next fancybox-slide--previous" 603 ), 604 o.pos === f.currPos && f.complete(); 605 } 606 ); 607 })) 608 : e && 609 s.opts.transitionEffect && 610 ((d = 611 "fancybox-animated fancybox-fx-" + s.opts.transitionEffect), 612 r.$slide.addClass( 613 "fancybox-slide--" + (r.pos > s.pos ? "next" : "previous") 614 ), 615 n.fancybox.animate( 616 r.$slide, 617 d, 618 e, 619 function () { 620 r.$slide 621 .removeClass(d) 622 .removeClass( 623 "fancybox-slide--next fancybox-slide--previous" 624 ); 625 }, 626 !1 627 )), 628 s.isLoaded ? f.revealContent(s) : f.loadSlide(s), 629 f.preload("image"); 630 } 631 }, 632 createSlide: function (t) { 633 var e, 634 o, 635 i = this; 636 return ( 637 (o = t % i.group.length), 638 (o = o < 0 ? i.group.length + o : o), 639 !i.slides[t] && 640 i.group[o] && 641 ((e = n('<div class="fancybox-slide"></div>').appendTo( 642 i.$refs.stage 643 )), 644 (i.slides[t] = n.extend(!0, {}, i.group[o], { 645 pos: t, 646 $slide: e, 647 isLoaded: !1, 648 })), 649 i.updateSlide(i.slides[t])), 650 i.slides[t] 651 ); 652 }, 653 scaleToActual: function (t, e, o) { 654 var i, 655 a, 656 s, 657 r, 658 c, 659 l = this, 660 d = l.current, 661 u = d.$content, 662 f = n.fancybox.getTranslate(d.$slide).width, 663 p = n.fancybox.getTranslate(d.$slide).height, 664 h = d.width, 665 g = d.height; 666 l.isAnimating || 667 l.isMoved() || 668 !u || 669 "image" != d.type || 670 !d.isLoaded || 671 d.hasError || 672 ((l.isAnimating = !0), 673 n.fancybox.stop(u), 674 (t = void 0 === t ? 0.5 * f : t), 675 (e = void 0 === e ? 0.5 * p : e), 676 (i = n.fancybox.getTranslate(u)), 677 (i.top -= n.fancybox.getTranslate(d.$slide).top), 678 (i.left -= n.fancybox.getTranslate(d.$slide).left), 679 (r = h / i.width), 680 (c = g / i.height), 681 (a = 0.5 * f - 0.5 * h), 682 (s = 0.5 * p - 0.5 * g), 683 h > f && 684 ((a = i.left * r - (t * r - t)), 685 a > 0 && (a = 0), 686 a < f - h && (a = f - h)), 687 g > p && 688 ((s = i.top * c - (e * c - e)), 689 s > 0 && (s = 0), 690 s < p - g && (s = p - g)), 691 l.updateCursor(h, g), 692 n.fancybox.animate( 693 u, 694 { top: s, left: a, scaleX: r, scaleY: c }, 695 o || 366, 696 function () { 697 l.isAnimating = !1; 698 } 699 ), 700 l.SlideShow && l.SlideShow.isActive && l.SlideShow.stop()); 701 }, 702 scaleToFit: function (t) { 703 var e, 704 o = this, 705 i = o.current, 706 a = i.$content; 707 o.isAnimating || 708 o.isMoved() || 709 !a || 710 "image" != i.type || 711 !i.isLoaded || 712 i.hasError || 713 ((o.isAnimating = !0), 714 n.fancybox.stop(a), 715 (e = o.getFitPos(i)), 716 o.updateCursor(e.width, e.height), 717 n.fancybox.animate( 718 a, 719 { 720 top: e.top, 721 left: e.left, 722 scaleX: e.width / a.width(), 723 scaleY: e.height / a.height(), 724 }, 725 t || 366, 726 function () { 727 o.isAnimating = !1; 728 } 729 )); 730 }, 731 getFitPos: function (t) { 732 var e, 733 o, 734 i, 735 a, 736 s = this, 737 r = t.$content, 738 c = t.$slide, 739 l = t.width || t.opts.width, 740 d = t.height || t.opts.height, 741 u = {}; 742 return ( 743 !!(t.isLoaded && r && r.length) && 744 ((e = n.fancybox.getTranslate(s.$refs.stage).width), 745 (o = n.fancybox.getTranslate(s.$refs.stage).height), 746 (e -= 747 parseFloat(c.css("paddingLeft")) + 748 parseFloat(c.css("paddingRight")) + 749 parseFloat(r.css("marginLeft")) + 750 parseFloat(r.css("marginRight"))), 751 (o -= 752 parseFloat(c.css("paddingTop")) + 753 parseFloat(c.css("paddingBottom")) + 754 parseFloat(r.css("marginTop")) + 755 parseFloat(r.css("marginBottom"))), 756 (l && d) || ((l = e), (d = o)), 757 (i = Math.min(1, e / l, o / d)), 758 (l *= i), 759 (d *= i), 760 l > e - 0.5 && (l = e), 761 d > o - 0.5 && (d = o), 762 "image" === t.type 763 ? ((u.top = 764 Math.floor(0.5 * (o - d)) + parseFloat(c.css("paddingTop"))), 765 (u.left = 766 Math.floor(0.5 * (e - l)) + parseFloat(c.css("paddingLeft")))) 767 : "video" === t.contentType && 768 ((a = 769 t.opts.width && t.opts.height ? l / d : t.opts.ratio || 16 / 9), 770 d > l / a ? (d = l / a) : l > d * a && (l = d * a)), 771 (u.width = l), 772 (u.height = d), 773 u) 774 ); 775 }, 776 update: function (t) { 777 var e = this; 778 n.each(e.slides, function (n, o) { 779 e.updateSlide(o, t); 780 }); 781 }, 782 updateSlide: function (t, e) { 783 var o = this, 784 i = t && t.$content, 785 a = t.width || t.opts.width, 786 s = t.height || t.opts.height, 787 r = t.$slide; 788 o.adjustCaption(t), 789 i && 790 (a || s || "video" === t.contentType) && 791 !t.hasError && 792 (n.fancybox.stop(i), 793 n.fancybox.setTranslate(i, o.getFitPos(t)), 794 t.pos === o.currPos && ((o.isAnimating = !1), o.updateCursor(
794))), 795 o.adjustLayout(t), 796 r.length && 797 (r.trigger("refresh"), 798 t.pos === o.currPos && 799 o.$refs.toolbar 800 .add(o.$refs.navigation.find(".fancybox-button--arrow_right")) 801 .toggleClass( 802 "compensate-for-scrollbar", 803 r.get(0).scrollHeight > r.get(0).clientHeight 804 )), 805 o.trigger("onUpdate", t, e); 806 }, 807 centerSlide: function (t) { 808 var e = this, 809 o = e.current, 810 i = o.$slide; 811 !e.isClosing && 812 o && 813 (i.siblings().css({ transform: "", opacity: "" }), 814 i 815 .parent() 816 .children() 817 .removeClass("fancybox-slide--previous fancybox-slide--next"), 818 n.fancybox.animate( 819 i, 820 { top: 0, left: 0, opacity: 1 }, 821 void 0 === t ? 0 : t, 822 function () { 823 i.css({ transform: "", opacity: "" }), 824 o.isComplete || e.complete(); 825 }, 826 !1 827 )); 828 }, 829 isMoved: function (t) { 830 var e, 831 o, 832 i = t || this.current; 833 return ( 834 !!i && 835 ((o = n.fancybox.getTranslate(this.$refs.stage)), 836 (e = n.fancybox.getTranslate(i.$slide)), 837 !i.$slide.hasClass("fancybox-animated") && 838 (Math.abs(e.top - o.top) > 0.5 || Math.abs(e.left - o.left) > 0.5)) 839 ); 840 }, 841 updateCursor: function (t, e) { 842 var o, 843 i, 844 a = this, 845 s = a.current, 846 r = a.$refs.container; 847 s && 848 !a.isClosing && 849 a.Guestures && 850 (r.removeClass( 851 "fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan" 852 ), 853 (o = a.canPan(t, e)), 854 (i = !!o || a.isZoomable()), 855 r.toggleClass("fancybox-is-zoomable", i), 856 n("[data-fancybox-zoom]").prop("disabled", !i), 857 o 858 ? r.addClass("fancybox-can-pan") 859 : i && 860 ("zoom" === s.opts.clickContent || 861 (n.isFunction(s.opts.clickContent) && 862 "zoom" == s.opts.clickContent(s))) 863 ? r.addClass("fancybox-can-zoomIn") 864 : s.opts.touch && 865 (s.opts.touch.vertical || a.group.length > 1) && 866 "video" !== s.contentType && 867 r.addClass("fancybox-can-swipe")); 868 }, 869 isZoomable: function () { 870 var t, 871 e = this, 872 n = e.current; 873 if (n && !e.isClosing && "image" === n.type && !n.hasError) { 874 if (!n.isLoaded) return !0; 875 if ( 876 (t = e.getFitPos(n)) && 877 (n.width > t.width || n.height > t.height) 878 ) 879 return !0; 880 } 881 return !1; 882 }, 883 isScaledDown: function (t, e) { 884 var o = this, 885 i = !1, 886 a = o.current, 887 s = a.$content; 888 return ( 889 void 0 !== t && void 0 !== e 890 ? (i = t < a.width && e < a.height) 891 : s && 892 ((i = n.fancybox.getTranslate(s)), 893 (i = i.width < a.width && i.height < a.height)), 894 i 895 ); 896 }, 897 canPan: function (t, e) { 898 var o = this, 899 i = o.current, 900 a = null, 901 s = !1; 902 return ( 903 "image" === i.type && 904 (i.isComplete || (t && e)) && 905 !i.hasError && 906 ((s = o.getFitPos(i)), 907 void 0 !== t && void 0 !== e 908 ? (a = { width: t, height: e }) 909 : i.isComplete && (a = n.fancybox.getTranslate(i.$content)), 910 a && 911 s && 912 (s = 913 Math.abs(a.width - s.width) > 1.5 || 914 Math.abs(a.height - s.height) > 1.5)), 915 s 916 ); 917 }, 918 loadSlide: function (t) { 919 var e, 920 o, 921 i, 922 a = this; 923 if (!t.isLoading && !t.isLoaded) { 924 if (((t.isLoading = !0), !1 === a.trigger("beforeLoad", t))) 925 return (t.isLoading = !1), !1; 926 switch ( 927 ((e = t.type), 928 (o = t.$slide),
929 o.off("refresh").trigger("onReset").addClass(t.opts.slideClass), 930 e) 931 ) { 932 case "image": 933 a.setImage(t); 934 break; 935 case "iframe": 936 a.setIframe(t); 937 break; 938 case "html": 939 a.setContent(t, t.src || t.content); 940 break; 941 case "video": 942 a.setContent( 943 t, 944 t.opts.video.tpl 945 .replace(/\{\{src\}\}/gi, t.src) 946 .replace( 947 "{{format}}", 948 t.opts.videoFormat || t.opts.video.format || "" 949 ) 950 .replace("{{poster}}", t.thumb || "") 951 ); 952 break; 953 case "inline": 954 n(t.src).length ? a.setContent(t, n(t.src)) : a.setError(t); 955 break; 956 case "ajax": 957 a.showLoading(t), 958 (i = n.ajax( 959 n.extend({}, t.opts.ajax.settings, { 960 url: t.src, 961 success: function (e, n) { 962 "success" === n && a.setContent(t, e); 963 }, 964 error: function (e, n) { 965 e && "abort" !== n && a.setError(t); 966 }, 967 }) 968 )), 969 o.one("onReset", function () { 970 i.abort(); 971 }); 972 break; 973 default: 974 a.setError(t); 975 } 976 return !0; 977 } 978 }, 979 setImage: function (t) { 980 var o, 981 i = this; 982 setTimeout(function () { 983 var e = t.$image; 984 i.isClosing || 985 !t.isLoading || 986 (e && e.length && e[0].complete) || 987 t.hasError || 988 i.showLoading(t); 989 }, 50), 990 i.checkSrcset(t), 991 (t.$content = n('<div class="fancybox-content"></div>') 992 .addClass("fancybox-is-hidden") 993 .appendTo(t.$slide.addClass("fancybox-slide--image"))), 994 !1 !== t.opts.preload && 995 t.opts.width && 996 t.opts.height && 997 t.thumb && 998 ((t.width = t.opts.width), 999 (t.height = t.opts.height), 1000 (o = e.createElement("img")), 1001 (o.onerror = function () { 1002 n(this).remove(), (t.$ghost = null); 1003 }), 1004 (o.onload = function () { 1005 i.afterLoad(t); 1006 }), 1007 (t.$ghost = n(o) 1008 .addClass("fancybox-image") 1009 .appendTo(t.$content) 1010 .attr("src", t.thumb))), 1011 i.setBigImage(t); 1012 }, 1013 checkSrcset: function (e) { 1014 var n, 1015 o, 1016 i, 1017 a, 1018 s = e.opts.srcset || e.opts.image.srcset; 1019 if (s) { 1020 (i = t.devicePixelRatio || 1), 1021 (a = t.innerWidth * i), 1022 (o = s.split(",").map(function (t) { 1023 var e = {}; 1024 return ( 1025 t 1026 .trim() 1027 .split(/\s+/) 1028 .forEach(function (t, n) { 1029 var o = parseInt(t.substring(0, t.length - 1), 10); 1030 if (0 === n) return (e.url = t); 1031 o && ((e.value = o), (e.postfix = t[t.length - 1])); 1032 }), 1033 e 1034 ); 1035 })), 1036 o.sort(function (t, e) { 1037 return t.value - e.value; 1038 }); 1039 for (var r = 0; r < o.length; r++) { 1040 var c = o[r]; 1041 if ( 1042 ("w" === c.postfix && c.value >= a) || 1043 ("x" === c.postfix && c.value >= i) 1044 ) { 1045 n = c; 1046 break; 1047 } 1048 } 1049 !n && o.length && (n = o[o.length - 1]), 1050 n && 1051 ((e.src = n.url), 1052 e.width && 1053 e.height && 1054 "w" == n.postfix && 1055 ((e.height = (e.width / e.height) * n.value), 1056 (e.width = n.value)), 1057 (e.opts.srcset = s)); 1058 } 1059 }, 1060 setBigImage: function (t) { 1061 var o = this, 1062 i = e.createElement("img"), 1063 a = n(i); 1064 (t.$image = a 1065 .one("error", function () { 1066 o.setError(t); 1067 }) 1068 .one("load", function () { 1069 var e; 1070 t.$ghost || 1071 (o.resolveImageSlideSize( 1072 t,
1073 this.naturalWidth, 1074 this.naturalHeight 1075 ), 1076 o.afterLoad(t)), 1077 o.isClosing || 1078 (t.opts.srcset && 1079 ((e = t.opts.sizes), 1080 (e && "auto" !== e) || 1081 (e = 1082 (t.width / t.height > 1 && s.width() / s.height() > 1 1083 ? "100" 1084 : Math.round((t.width / t.height) * 100)) + "vw"), 1085 a.attr("sizes", e).attr("srcset", t.opts.srcset)), 1086 t.$ghost && 1087 setTimeout(function () { 1088 t.$ghost && !o.isClosing && t.$ghost.hide(); 1089 }, Math.min(300, Math.max(1e3, t.height / 1600))), 1090 o.hideLoading(t)); 1091 }) 1092 .addClass("fancybox-image") 1093 .attr("src", t.src) 1094 .appendTo(t.$content)), 1095 (i.complete || "complete" == i.readyState) && 1096 a.naturalWidth && 1097 a.naturalHeight 1098 ? a.trigger("load") 1099 : i.error && a.trigger("error"); 1100 }, 1101 resolveImageSlideSize: function (t, e, n) { 1102 var o = parseInt(t.opts.width, 10), 1103 i = parseInt(t.opts.height, 10); 1104 (t.width = e), 1105 (t.height = n), 1106 o > 0 && ((t.width = o), (t.height = Math.floor((o * n) / e))), 1107 i > 0 && ((t.width = Math.floor((i * e) / n)), (t.height = i)); 1108 }, 1109 setIframe: function (t) { 1110 var e, 1111 o = this, 1112 i = t.opts.iframe, 1113 a = t.$slide; 1114 (t.$content = n( 1115 '<div class="fancybox-content' + 1116 (i.preload ? " fancybox-is-hidden" : "") + 1117 '"></div>' 1118 ) 1119 .css(i.css) 1120 .appendTo(a)), 1121 a.addClass("fancybox-slide--" + t.contentType), 1122 (t.$iframe = e = 1123 n(i.tpl.replace(/\{rnd\}/g, new Date().getTime())) 1124 .attr(i.attr) 1125 .appendTo(t.$content)), 1126 i.preload 1127 ? (o.showLoading(t), 1128 e.on("load.fb error.fb", function (e) { 1129 (this.isReady = 1), t.$slide.trigger("refresh"), o.afterLoad(t); 1130 }), 1131 a.on("refresh.fb", function () { 1132 var n, 1133 o, 1134 s = t.$content, 1135 r = i.css.width, 1136 c = i.css.height; 1137 if (1 === e[0].isReady) { 1138 try { 1139 (n = e.contents()), (o = n.find("body")); 1140 } catch (t) {} 1141 o && 1142 o.length && 1143 o.children().length && 1144 (a.css("overflow", "visible"), 1145 s.css({ 1146 width: "100%", 1147 "max-width": "100%", 1148 height: "9999px", 1149 }), 1150 void 0 === r && 1151 (r = Math.ceil( 1152 Math.max(o[0].clientWidth, o.outerWidth(!0)) 1153 )), 1154 s.css("width", r || "").css("max-width", ""), 1155 void 0 === c && 1156 (c = Math.ceil( 1157 Math.max(o[0].clientHeight, o.outerHeight(!0)) 1158 )), 1159 s.css("height", c || ""), 1160 a.css("overflow", "auto")), 1161 s.removeClass("fancybox-is-hidden"); 1162 } 1163 })) 1164 : o.afterLoad(t), 1165 e.attr("src", t.src), 1166 a.one("onReset", function () { 1167 try { 1168 n(this) 1169 .find("iframe") 1170 .hide() 1171 .unbind() 1172 .attr("src", "//about:blank"); 1173 } catch (t) {} 1174 n(this).off("refresh.fb").empty(), 1175 (t.isLoaded = !1), 1176 (t.isRevealed = !1); 1177 }); 1178 }, 1179 setContent: function (t, e) { 1180 var o = this; 1181 o.isClosing || 1182 (o.hideLoading(t), 1183 t.$content && n.fancybox.stop(t.$content), 1184 t.$slide.empty(), 1185 l(e) && e.parent().length 1186 ? ((e.hasClass("fancybox-content") || 1187 e.parent().hasClass("fancybox-content")) && 1188 e.parents(".fancybox-slide").trigger("onReset"), 1189 (t.$placeholder = n("<div>").hide().insertAfter(e)), 1190 e.css("display", "inline-block")) 1191 : t.hasError || 1192 ("string" === n.type(e) && 1193 (e = n("<div>").append(n.trim(e)).contents()), 1194 t.opts.filter && (e = n("<div>").html(e).find(t.opts.filter))), 1195 t.$slide.one("onReset", function () { 1196 n(this).find("video,audio").trigger("pause"), 1197 t.$placeholder && 1198 (t.$placeholder 1199 .after(e.removeClass("fancybox-content").hide()) 1200 .remove(), 1201 (t.$placeholder = null)), 1202 t.$smallBtn && (t.$smallBtn.remove(), (t.$smallBtn = null)), 1203 t.hasError || 1204 (n(this).empty(), (t.isLoaded = !1), (t.isRevealed = !1)); 1205 }), 1206 n(e).appendTo(t.$slide), 1207 n(e).is("video,audio") && 1208 (n(e).addClass("fancybox-video"), 1209 n(e).wrap("<div></div>"), 1210 (t.contentType = "video"), 1211 (t.opts.width = t.opts.width || n(e).attr("width")), 1212 (t.opts.height = t.opts.height || n(e).attr("height"))), 1213 (t.$content = t.$slide 1214 .children() 1215 .filter("div,form,main,video,audio,article,.fancybox-content") 1216 .first()), 1217 t.$content.siblings().hide(), 1218 t.$content.length || 1219 (t.$content = t.$slide.wrapInner("<div></div>").children().first()), 1220 t.$content.addClass("fancybox-content"), 1221 t.$slide.addClass("fancybox-slide--" + t.contentType), 1222 o.afterLoad(t)); 1223 }, 1224 setError: function (t) { 1225 (t.hasError = !0), 1226 t.$slide 1227 .trigger("onReset") 1228 .removeClass("fancybox-slide--" + t.contentType) 1229 .addClass("fancybox-slide--error"), 1230 (t.contentType = "html"), 1231 this.setContent(t, this.translate(t, t.opts.errorTpl)), 1232 t.pos === this.currPos && (this.isAnimating = !1);
1233 }, 1234 showLoading: function (t) { 1235 var e = this; 1236 (t = t || e.current) && 1237 !t.$spinner && 1238 (t.$spinner = n(e.translate(e, e.opts.spinnerTpl)) 1239 .appendTo(t.$slide) 1240 .hide() 1241 .fadeIn("fast")); 1242 }, 1243 hideLoading: function (t) { 1244 var e = this; 1245 (t = t || e.current) && 1246 t.$spinner && 1247 (t.$spinner.stop().remove(), delete t.$spinner); 1248 }, 1249 afterLoad: function (t) { 1250 var e = this; 1251 e.isClosing || 1252 ((t.isLoading = !1), 1253 (t.isLoaded = !0), 1254 e.trigger("afterLoad", t), 1255 e.hideLoading(t), 1256 !t.opts.smallBtn || 1257 (t.$smallBtn && t.$smallBtn.length) || 1258 (t.$smallBtn = n(e.translate(t, t.opts.btnTpl.smallBtn)).appendTo( 1259 t.$content 1260 )), 1261 t.opts.protect && 1262 t.$content && 1263 !t.hasError && 1264 (t.$content.on("contextmenu.fb", function (t) { 1265 return 2 == t.button && t.preventDefault(), !0; 1266 }), 1267 "image" === t.type && 1268 n('<div class="fancybox-spaceball"></div>').appendTo(t.$content)), 1269 e.adjustCaption(t), 1270 e.adjustLayout(t), 1271 t.pos === e.currPos && e.updateCursor(), 1272 e.revealContent(t)); 1273 }, 1274 adjustCaption: function (t) { 1275 var e, 1276 n = this, 1277 o = t || n.current, 1278 i = o.opts.caption, 1279 a = o.opts.preventCaptionOverlap, 1280 s = n.$refs.caption, 1281 r = !1; 1282 s.toggleClass("fancybox-caption--separate", a), 1283 a && 1284 i && 1285 i.length && 1286 (o.pos !== n.currPos 1287 ? ((e = s.clone().appendTo(s.parent())), 1288 e.children().eq(0).empty().html(i), 1289 (r = e.outerHeight(!0)), 1290 e.empty().remove()) 1291 : n.$caption && (r = n.$caption.outerHeight(!0)), 1292 o.$slide.css("padding-bottom", r || "")); 1293 }, 1294 adjustLayout: function (t) { 1295 var e, 1296 n, 1297 o, 1298 i, 1299 a = this, 1300 s = t || a.current; 1301 s.isLoaded && 1302 !0 !== s.opts.disableLayoutFix && 1303 (s.$content.css("margin-bottom", ""), 1304 s.$content.outerHeight() > s.$slide.height() + 0.5 && 1305 ((o = s.$slide[0].style["padding-bottom"]), 1306 (i = s.$slide.css("padding-bottom")), 1307 parseFloat(i) > 0 && 1308 ((e = s.$slide[0].scrollHeight), 1309 s.$slide.css("padding-bottom", 0), 1310 Math.abs(e - s.$slide[0].scrollHeight) < 1 && (n = i), 1311 s.$slide.css("padding-bottom", o))), 1312 s.$content.css("margin-bottom", n)); 1313 }, 1314 revealContent: function (t) { 1315 var e, 1316 o, 1317 i, 1318 a, 1319 s = this, 1320 r = t.$slide, 1321 c = !1, 1322 l = !1, 1323 d = s.isMoved(t), 1324 u = t.isRevealed; 1325 return ( 1326 (t.isRevealed = !0), 1327 (e = t.opts[s.firstRun ? "animationEffect" : "transitionEffect"]), 1328 (i = t.opts[s.firstRun ? "animationDuration" : "transitionDuration"]), 1329 (i = parseInt( 1330 void 0 === t.forcedDuration ? i : t.forcedDuration, 1331 10 1332 )), 1333 (!d && t.pos === s.currPos && i) || (e = !1), 1334 "zoom" === e && 1335 (t.pos === s.currPos && 1336 i && 1337 "image" === t.type && 1338 !t.hasError && 1339 (l = s.getThumbPos(t)) 1340 ? (c = s.getFitPos(t)) 1341 : (e = "fade")), 1342 "zoom" === e 1343 ? ((s.isAnimating = !0), 1344 (c.scaleX = c.width / l.width), 1345 (c.scaleY = c.height / l.height), 1346 (a = t.opts.zoomOpacity), 1347 "auto" == a && 1348 (a = Math.abs(t.width / t.height - l.width / l.height) > 0.1), 1349 a && ((l.opacity = 0.1), (c.opacity = 1)), 1350 n.fancybox.setTranslate( 1351 t.$content.removeClass("fancybox-is-hidden"), 1352 l 1353 ), 1354 p(t.$content), 1355 void n.fancybox.animate(t.$content, c, i, function () { 1356 (s.isAnimating = !1), s.complete(); 1357 })) 1358 : (s.updateSlide(t), 1359 e 1360 ? (n.fancybox.stop(r), 1361 (o = 1362 "fancybox-slide--" + 1363 (t.pos >= s.prevPos ? "next" : "previous") + 1364 " fancybox-animated fancybox-fx-" + 1365 e), 1366 r.addClass(o).removeClass("fancybox-slide--current"), 1367 t.$content.removeClass("fancybox-is-hidden"), 1368 p(r), 1369 "image" !== t.type && t.$content.hide().show(0), 1370 void n.fancybox.animate( 1371 r, 1372 "fancybox-slide--current", 1373 i, 1374 function () { 1375 r.removeClass(o).css({ transform: "", opacity: "" }), 1376 t.pos === s.currPos && s.complete(); 1377 }, 1378 !0 1379 )) 1380 : (t.$content.removeClass("fancybox-is-hidden"), 1381 u || 1382 !d || 1383 "image" !== t.type || 1384 t.hasError || 1385 t.$content.hide().fadeIn("fast"), 1386 void (t.pos === s.currPos && s.complete()))) 1387 ); 1388 }, 1389 getThumbPos: function (t) { 1390 var e, 1391 o, 1392 i, 1393 a, 1394 s, 1395 r = !1, 1396 c = t.$thumb; 1397 return ( 1398 !(!c || !g(c[0])) && 1399 ((e = n.fancybox.getTranslate(c)), 1400 (o = parseFloat(c.css("border-top-width") || 0)), 1401 (i = parseFloat(c.css("border-right-width") || 0)), 1402 (a = parseFloat(c.css("border-bottom-width") || 0)), 1403 (s = parseFloat(c.css("border-left-width") || 0)), 1404 (r = { 1405 top: e.top + o, 1406 left: e.left + s,
1407 width: e.width - i - s, 1408 height: e.height - o - a, 1409 scaleX: 1, 1410 scaleY: 1, 1411 }), 1412 e.width > 0 && e.height > 0 && r) 1413 ); 1414 }, 1415 complete: function () { 1416 var t, 1417 e = this, 1418 o = e.current, 1419 i = {}; 1420 !e.isMoved() && 1421 o.isLoaded && 1422 (o.isComplete || 1423 ((o.isComplete = !0), 1424 o.$slide.siblings().trigger("onReset"), 1425 e.preload("inline"), 1426 p(o.$slide), 1427 o.$slide.addClass("fancybox-slide--complete"), 1428 n.each(e.slides, function (t, o) { 1429 o.pos >= e.currPos - 1 && o.pos <= e.currPos + 1 1430 ? (i[o.pos] = o) 1431 : o && (n.fancybox.stop(o.$slide), o.$slide.off().remove()); 1432 }), 1433 (e.slides = i)), 1434 (e.isAnimating = !1), 1435 e.updateCursor(), 1436 e.trigger("afterShow"), 1437 o.opts.video.autoStart && 1438 o.$slide 1439 .find("video,audio") 1440 .filter(":visible:first") 1441 .trigger("play") 1442 .one("ended", function () { 1443 Document.exitFullscreen 1444 ? Document.exitFullscreen() 1445 : this.webkitExitFullscreen && this.webkitExitFullscreen(), 1446 e.next(); 1447 }), 1448 o.opts.autoFocus && 1449 "html" === o.contentType && 1450 ((t = o.$content.find("input[autofocus]:enabled:visible:first")), 1451 t.length ? t.trigger("focus") : e.focus(null, !0)), 1452 o.$slide.scrollTop(0).scrollLeft(0)); 1453 }, 1454 preload: function (t) { 1455 var e, 1456 n, 1457 o = this; 1458 o.group.length < 2 || 1459 ((n = o.slides[o.currPos + 1]), 1460 (e = o.slides[o.currPos - 1]), 1461 e && e.type === t && o.loadSlide(e), 1462 n && n.type === t && o.loadSlide(n)); 1463 }, 1464 focus: function (t, o) { 1465 var i, 1466 a, 1467 s = this, 1468 r = [ 1469 "a[href]", 1470 "area[href]", 1471 'input:not([disabled]):not([type="hidden"]):not([aria-hidden])', 1472 "select:not([disabled]):not([aria-hidden])", 1473 "textarea:not([disabled]):not([aria-hidden])", 1474 "button:not([disabled]):not([aria-hidden])", 1475 "iframe", 1476 "object", 1477 "embed", 1478 "video", 1479 "audio", 1480 "[contenteditable]", 1481 '[tabindex]:not([tabindex^="-"])', 1482 ].join(","); 1483 s.isClosing || 1484 ((i = 1485 !t && s.current && s.current.isComplete 1486 ? s.current.$slide.find( 1487 "*:visible" + (o ? ":not(.fancybox-close-small)" : "") 1488 ) 1489 : s.$refs.container.find("*:visible")), 1490 (i = i.filter(r).filter(function () { 1491 return ( 1492 "hidden" !== n(this).css("visibility") && 1493 !n(this).hasClass("disabled") 1494 ); 1495 })), 1496 i.length 1497 ? ((a = i.index(e.activeElement)), 1498 t && t.shiftKey 1499 ? (a < 0 || 0 == a) && 1500 (t.preventDefault(), i.eq(i.length - 1).trigger("focus")) 1501 : (a < 0 || a == i.length - 1) && 1502 (t && t.preventDefault(), i.eq(0).trigger("focus"))) 1503 : s.$refs.container.trigger("focus")); 1504 }, 1505 activate: function () { 1506 var t = this; 1507 n(".fancybox-container").each(function () { 1508 var e = n(this).data("FancyBox"); 1509 e && 1510 e.id !== t.id && 1511 !e.isClosing && 1512 (e.trigger("onDeactivate"), e.removeEvents(), (e.isVisible = !1)); 1513 }), 1514 (t.isVisible = !0), 1515 (t.current || t.isIdle) && (t.update(), t.updateControls()), 1516 t.trigger("onActivate"), 1517 t.addEvents(); 1518 }, 1519 close: function (t, e) { 1520 var o, 1521 i, 1522 a, 1523 s, 1524 r, 1525 c, 1526 l, 1527 u = this, 1528 f = u.current, 1529 h = function () { 1530 u.cleanUp(t); 1531 }; 1532 return ( 1533 !u.isClosing && 1534 ((u.isClosing = !0), 1535 !1 === u.trigger("beforeClose", t) 1536 ? ((u.isClosing = !1), 1537 d(function () {
1538 u.update(); 1539 }), 1540 !1) 1541 : (u.removeEvents(), 1542 (a = f.$content), 1543 (o = f.opts.animationEffect), 1544 (i = n.isNumeric(e) ? e : o ? f.opts.animationDuration : 0), 1545 f.$slide.removeClass( 1546 "fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated" 1547 ), 1548 !0 !== t ? n.fancybox.stop(f.$slide) : (o = !1), 1549 f.$slide.siblings().trigger("onReset").remove(), 1550 i && 1551 u.$refs.container 1552 .removeClass("fancybox-is-open") 1553 .addClass("fancybox-is-closing") 1554 .css("transition-duration", i + "ms"), 1555 u.hideLoading(f), 1556 u.hideControls(!0), 1557 u.updateCursor(), 1558 "zoom" !== o || 1559 (a && 1560 i && 1561 "image" === f.type && 1562 !u.isMoved() && 1563 !f.hasError && 1564 (l = u.getThumbPos(f))) || 1565 (o = "fade"), 1566 "zoom" === o 1567 ? (n.fancybox.stop(a), 1568 (s = n.fancybox.getTranslate(a)), 1569 (c = { 1570 top: s.top, 1571 left: s.left, 1572 scaleX: s.width / l.width, 1573 scaleY: s.height / l.height, 1574 width: l.width, 1575 height: l.height, 1576 }), 1577 (r = f.opts.zoomOpacity), 1578 "auto" == r && 1579 (r = 1580 Math.abs(f.width / f.height - l.width / l.height) > 0.1), 1581 r && (l.opacity = 0), 1582 n.fancybox.setTranslate(a, c), 1583 p(a), 1584 n.fancybox.animate(a, l, i, h), 1585 !0) 1586 : (o && i 1587 ? n.fancybox.animate( 1588 f.$slide 1589 .addClass("fancybox-slide--previous") 1590 .removeClass("fancybox-slide--current"), 1591 "fancybox-animated fancybox-fx-" + o, 1592 i, 1593 h 1594 ) 1595 : !0 === t 1596 ? setTimeout(h, i) 1597 : h(), 1598 !0))) 1599 ); 1600 }, 1601 cleanUp: function (e) { 1602 var o, 1603 i, 1604 a, 1605 s = this, 1606 r = s.current.opts.$orig; 1607 s.current.$slide.trigger("onReset"), 1608 s.$refs.container.empty().remove(), 1609 s.trigger("afterClose", e), 1610 s.current.opts.backFocus && 1611 ((r && r.length && r.is(":visible")) || (r = s.$trigger), 1612 r && 1613 r.length && 1614 ((i = t.scrollX), 1615 (a = t.scrollY), 1616 r.trigger("focus"), 1617 n("html, body").scrollTop(a).scrollLeft(i))), 1618 (s.current = null), 1619 (o = n.fancybox.getInstance()), 1620 o 1621 ? o.activate() 1622 : (n("body").removeClass( 1623 "fancybox-active compensate-for-scrollbar" 1624 ), 1625 n("#fancybox-style-noscroll").remove()); 1626 }, 1627 trigger: function (t, e) { 1628 var o, 1629 i = Array.prototype.slice.call(arguments, 1), 1630 a = this, 1631 s = e && e.opts ? e : a.current; 1632 if ( 1633 (s ? i.unshift(s) : (s = a), 1634 i.unshift(a), 1635 n.isFunction(s.opts[t]) && (o = s.opts[t].apply(s, i)), 1636 !1 === o) 1637 ) 1638 return o; 1639 "afterClose" !== t && a.$refs 1640 ? a.$refs.container.trigger(t + ".fb", i) 1641 : r.trigger(t + ".fb", i); 1642 }, 1643 updateControls: function () { 1644 var t = this, 1645 o = t.current, 1646 i = o.index, 1647 a = t.$refs.container, 1648 s = t.$refs.caption, 1649 r = o.opts.caption; 1650 o.$slide.trigger("refresh"), 1651 r && r.length 1652 ? ((t.$caption = s), s.children().eq(0).html(r)) 1653 : (t.$caption = null),
1654 t.hasHiddenControls || t.isIdle || t.showControls(), 1655 a.find("[data-fancybox-count]").html(t.group.length), 1656 a.find("[data-fancybox-index]").html(i + 1), 1657 a 1658 .find("[data-fancybox-prev]") 1659 .prop("disabled", !o.opts.loop && i <= 0), 1660 a 1661 .find("[data-fancybox-next]") 1662 .prop("disabled", !o.opts.loop && i >= t.group.length - 1), 1663 "image" === o.type 1664 ? a 1665 .find("[data-fancybox-zoom]") 1666 .show() 1667 .end() 1668 .find("[data-fancybox-download]") 1669 .attr("href", o.opts.image.src || o.src) 1670 .show() 1671 : o.opts.toolbar && 1672 a.find("[data-fancybox-download],[data-fancybox-zoom]").hide(), 1673 n(e.activeElement).is(":hidden,[disabled]") && 1674 t.$refs.container.trigger("focus"); 1675 }, 1676 hideControls: function (t) { 1677 var e = this, 1678 n = ["infobar", "toolbar", "nav"]; 1679 (!t && e.current.opts.preventCaptionOverlap) || n.push("caption"), 1680 this.$refs.container.removeClass( 1681 n 1682 .map(function (t) { 1683 return "fancybox-show-" + t; 1684 }) 1685 .join(" ") 1686 ), 1687 (this.hasHiddenControls = !0); 1688 }, 1689 showControls: function () { 1690 var t = this, 1691 e = t.current ? t.current.opts : t.opts, 1692 n = t.$refs.container; 1693 (t.hasHiddenControls = !1), 1694 (t.idleSecondsCounter = 0), 1695 n 1696 .toggleClass("fancybox-show-toolbar", !(!e.toolbar || !e.buttons)) 1697 .toggleClass( 1698 "fancybox-show-infobar", 1699 !!(e.infobar && t.group.length > 1) 1700 ) 1701 .toggleClass("fancybox-show-caption", !!t.$caption) 1702 .toggleClass( 1703 "fancybox-show-nav", 1704 !!(e.arrows && t.group.length > 1) 1705 ) 1706 .toggleClass("fancybox-is-modal", !!e.modal); 1707 }, 1708 toggleControls: function () { 1709 this.hasHiddenControls ? this.showControls() : this.hideControls(); 1710 }, 1711 }), 1712 (n.fancybox = { 1713 version: "3.5.7", 1714 defaults: a, 1715 getInstance: function (t) { 1716 var e = n( 1717 '.fancybox-container:not(".fancybox-is-closing"):last' 1718 ).data("FancyBox"), 1719 o = Array.prototype.slice.call(arguments, 1); 1720 return ( 1721 e instanceof b && 1722 ("string" === n.type(t) 1723 ? e[t].apply(e, o) 1724 : "function" === n.type(t) && t.apply(e, o), 1725 e) 1726 ); 1727 }, 1728 open: function (t, e, n) { 1729 return new b(t, e, n); 1730 }, 1731 close: function (t) { 1732 var e = this.getInstance(); 1733 e && (e.close(), !0 === t && this.close(t)); 1734 }, 1735 destroy: function () { 1736 this.close(!0), r.add("body").off("click.fb-start", "**"); 1737 }, 1738 isMobile: 1739 /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( 1740 navigator.userAgent 1741 ), 1742 use3d: (function () { 1743 var n = e.createElement("div"); 1744 return ( 1745 t.getComputedStyle && 1746 t.getComputedStyle(n) && 1747 t.getComputedStyle(n).getPropertyValue("transform") && 1748 !(e.documentMode && e.documentMode < 11) 1749 ); 1750 })(), 1751 getTranslate: function (t) { 1752 var e; 1753 return ( 1754 !(!t || !t.length) && 1755 ((e = t[0].getBoundingClientRect()), 1756 { 1757 top: e.top || 0, 1758 left: e.left || 0, 1759 width: e.width, 1760 height: e.height, 1761 opacity: parseFloat(t.css("opacity")), 1762 }) 1763 ); 1764 }, 1765 setTranslate: function (t, e) { 1766 var n = "", 1767 o = {}; 1768 if (t && e) 1769 return ( 1770 (void 0 === e.left && void 0 === e.top) || 1771 ((n = 1772 (void 0 === e.left ? t.position().left : e.left) + 1773 "px, " + 1774 (void 0 === e.top ? t.position().top : e.top) + 1775 "px"), 1776 (n = this.use3d 1777 ? "translate3d(" + n + ", 0px)" 1778 : "translate(" + n + ")")), 1779 void 0 !== e.scaleX && void 0 !== e.scaleY 1780 ? (n += " scale(" + e.scaleX + ", " + e.scaleY + ")") 1781 : void 0 !== e.scaleX && (n += " scaleX(" + e.scaleX + ")"), 1782 n.length && (o.transform = n), 1783 void 0 !== e.opacity && (o.opacity = e.opacity), 1784 void 0 !== e.width && (o.width = e.width), 1785 void 0 !== e.height && (o.height = e.height), 1786 t.css(o) 1787 ); 1788 }, 1789 animate: function (t, e, o, i, a) { 1790 var s, 1791 r = this; 1792 n.isFunction(o) && ((i = o), (o = null)), 1793 r.stop(t), 1794 (s = r.getTranslate(t)), 1795 t.on(f, function (c) { 1796 (!c || 1797 !c.originalEvent || 1798 (t.is(c.originalEvent.target) && 1799 "z-index" != c.originalEvent.propertyName)) && 1800 (r.stop(t), 1801 n.isNumeric(o) && t.css("transition-duration", ""), 1802 n.isPlainObject(e) 1803 ? void 0 !== e.scaleX && 1804 void 0 !== e.scaleY && 1805 r.setTranslate(t, { 1806 top: e.top, 1807 left: e.left, 1808 width: s.width * e.scaleX, 1809 height: s.height * e.scaleY, 1810 scaleX: 1, 1811 scaleY: 1, 1812 }) 1813 : !0 !== a && t.removeClass(e), 1814 n.isFunction(i) && i(c)); 1815 }), 1816 n.isNumeric(o) && t.css("transition-duration", o + "ms"), 1817 n.isPlainObject(e) 1818 ? (void 0 !== e.scaleX && 1819 void 0 !== e.scaleY && 1820 (delete e.width, 1821 delete e.height, 1822 t.parent().hasClass("fancybox-slide--image") && 1823 t.parent().addClass("fancybox-is-scaling")), 1824 n.fancybox.setTranslate(t, e)) 1825 : t.addClass(e), 1826 t.data( 1827 "timer", 1828 setTimeout(function () { 1829 t.trigger(f); 1830 }, o + 33) 1831 ); 1832 }, 1833 stop: function (t, e) { 1834 t && 1835 t.length && 1836 (clearTimeout(t.data("timer")), 1837 e && t.trigger(f), 1838 t.off(f).css("transition-duration", ""), 1839 t.parent().removeClass("fancybox-is-scaling")); 1840 }, 1841 }), 1842 (n.fn.fancybox = function (t) { 1843 var e; 1844 return ( 1845 (t = t || {}), 1846 (e = t.selector || !1), 1847 e 1848 ? n("body") 1849 .off("click.fb-start", e) 1850 .on("click.fb-start", e, { options: t }, i) 1851 : this.off("click.fb-start").on( 1852 "click.fb-start", 1853 { items: this, options: t }, 1854 i 1855 ), 1856 this 1857 ); 1858 }), 1859 r.on("click.fb-start", "[data-fancybox]", i), 1860 r.on("click.fb-start", "[data-fancybox-trigger]", function (t) { 1861 n('[data-fancybox="' + n(this).attr("data-fancybox-trigger") + '"]') 1862 .eq(n(this).attr("data-fancybox-index") || 0) 1863 .trigger("click.fb-start", { $trigger: n(this) }); 1864 }), 1865 (function () { 1866 var t = null; 1867 r.on("mousedown mouseup focus blur", ".fancybox-button", function (e) { 1868 switch (e.type) { 1869 case "mousedown": 1870 t = n(this); 1871 break; 1872 case "mouseup": 1873 t = null; 1874 break; 1875 case "focusin": 1876 n(".fancybox-button").removeClass("fancybox-focus"), 1877 n(this).is(t) || 1878 n(this).is("[disabled]") || 1879 n(this).addClass("fancybox-focus"); 1880 break; 1881 case "focusout": 1882 n(".fancybox-button").removeClass("fancybox-focus"); 1883 } 1884 }); 1885 })(); 1886 } 1887})(window, document, jQuery), 1888 (function (t) { 1889 "use strict"; 1890 var e = { 1891 youtube: { 1892 matcher: 1893 /(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i, 1894 params: { 1895 autoplay: 1, 1896 autohide: 1, 1897 fs: 1, 1898 rel: 0, 1899 hd: 1, 1900 wmode: "transparent", 1901 enablejsapi: 1, 1902 html5: 1, 1903 }, 1904 paramPlace: 8, 1905 type: "iframe", 1906 url: "https://www.youtube-nocookie.com/embed/$4", 1907 thumb: "https://img.youtube.com/vi/$4/hqdefault.jpg", 1908 }, 1909 vimeo: { 1910 matcher: /^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/, 1911 params: { 1912 autoplay: 1, 1913 hd: 1, 1914 show_title: 1, 1915 show_byline: 1, 1916 show_portrait: 0, 1917 fullscreen: 1, 1918 }, 1919 paramPlace: 3, 1920 type: "iframe", 1921 url: "//player.vimeo.com/video/$2", 1922 }, 1923 instagram: { 1924 matcher: /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i, 1925 type: "image", 1926 url: "//$1/p/$2/media/?size=l", 1927 }, 1928 gmap_place: { 1929 matcher: 1930 /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i, 1931 type: "iframe", 1932 url: function (t) { 1933 return ( 1934 "//maps.google." + 1935 t[2] + 1936 "/?ll=" + 1937 (t[9] 1938 ? t[9] + 1939 "&z=" + 1940 Math.floor(t[10]) + 1941 (t[12] ? t[12].replace(/^\//, "&") : "") 1942 : t[12] + "" 1943 ).replace(/\?/, "&") + 1944 "&output=" + 1945 (t[12] && t[12].indexOf("layer=c") > 0 ? "svembed" : "embed") 1946 ); 1947 }, 1948 }, 1949 gmap_search: { 1950 matcher: 1951 /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i, 1952 type: "iframe", 1953 url: function (t) { 1954 return ( 1955 "//maps.google." + 1956 t[2] +
1957 "/maps?q=" + 1958 t[5].replace("query=", "q=").replace("api=1", "") + 1959 "&output=embed" 1960 ); 1961 }, 1962 }, 1963 }, 1964 n = function (e, n, o) { 1965 if (e) 1966 return ( 1967 (o = o || ""), 1968 "object" === t.type(o) && (o = t.param(o, !0)), 1969 t.each(n, function (t, n) { 1970 e = e.replace("$" + t, n || ""); 1971 }), 1972 o.length && (e += (e.indexOf("?") > 0 ? "&" : "?") + o), 1973 e 1974 ); 1975 }; 1976 t(document).on("objectNeedsType.fb", function (o, i, a) { 1977 var s, 1978 r, 1979 c, 1980 l, 1981 d, 1982 u, 1983 f, 1984 p = a.src || "", 1985 h = !1; 1986 (s = t.extend(!0, {}, e, a.opts.media)), 1987 t.each(s, function (e, o) { 1988 if ((c = p.match(o.matcher))) { 1989 if ( 1990 ((h = o.type), (f = e), (u = {}), o.paramPlace && c[o.paramPlace]) 1991 ) { 1992 (d = c[o.paramPlace]), 1993 "?" == d[0] && (d = d.substring(1)), 1994 (d = d.split("&")); 1995 for (var i = 0; i < d.length; ++i) { 1996 var s = d[i].split("=", 2); 1997 2 == s.length && 1998 (u[s[0]] = decodeURIComponent(s[1].replace(/\+/g, " "))); 1999 } 2000 } 2001 return ( 2002 (l = t.extend(!0, {}, o.params, a.opts[e], u)), 2003 (p = 2004 "function" === t.type(o.url) 2005 ? o.url.call(this, c, l, a) 2006 : n(o.url, c, l)), 2007 (r = 2008 "function" === t.type(o.thumb) 2009 ? o.thumb.call(this, c, l, a) 2010 : n(o.thumb, c)), 2011 "youtube" === e 2012 ? (p = p.replace(/&t=((\d+)m)?(\d+)s/, function (t, e, n, o) { 2013 return ( 2014 "&start=" + 2015 ((n ? 60 * parseInt(n, 10) : 0) + parseInt(o, 10)) 2016 ); 2017 })) 2018 : "vimeo" === e && (p = p.replace("&%23", "#")), 2019 !1 2020 ); 2021 } 2022 }), 2023 h 2024 ? (a.opts.thumb || 2025 (a.opts.$thumb && a.opts.$thumb.length) || 2026 (a.opts.thumb = r), 2027 "iframe" === h && 2028 (a.opts = t.extend(!0, a.opts, { 2029 iframe: { preload: !1, attr: { scrolling: "no" } }, 2030 })), 2031 t.extend(a, { 2032 type: h, 2033 src: p, 2034 origSrc: a.src, 2035 contentSource: f, 2036 contentType: 2037 "image" === h 2038 ? "image" 2039 : "gmap_place" == f || "gmap_search" == f 2040 ? "map" 2041 : "video", 2042 })) 2043 : p && (a.type = a.opts.defaultType); 2044 }); 2045 var o = { 2046 youtube: { 2047 src: "https://www.youtube.com/iframe_api", 2048 class: "YT", 2049 loading: !1, 2050 loaded: !1, 2051 }, 2052 vimeo: { 2053 src: "https://player.vimeo.com/api/player.js", 2054 class: "Vimeo", 2055 loading: !1, 2056 loaded: !1, 2057 }, 2058 load: function (t) { 2059 var e, 2060 n = this; 2061 if (this[t].loaded) 2062 return void setTimeout(function () { 2063 n.done(t); 2064 }); 2065 this[t].loading || 2066 ((this[t].loading = !0), 2067 (e = document.createElement("script")), 2068 (e.type = "text/javascript"), 2069 (e.src = this[t].src), 2070 "youtube" === t 2071 ? (window.onYouTubeIframeAPIReady = function () { 2072 (n[t].loaded = !0), n.done(t); 2073 }) 2074 : (e.onload = function () { 2075 (n[t].loaded = !0), n.done(t); 2076 }), 2077 document.body.appendChild(e)); 2078 }, 2079 done: function (e) { 2080 var n, o, i; 2081 "youtube" === e && delete window.onYouTubeIframeAPIReady, 2082 (n = t.fancybox.getInstance()) && 2083 ((o = n.current.$content.find("iframe")), 2084 "youtube" === e && void 0 !== YT && YT 2085 ? (i = new YT.Player(o.attr("id"), { 2086 events: { 2087 onStateChange: function (t) { 2088 0 == t.data && n.next(); 2089 }, 2090 }, 2091 })) 2092 : "vimeo" === e && 2093 void 0 !== Vimeo && 2094 Vimeo && 2095 ((i = new Vimeo.Player(o)), 2096 i.on("ended", function () { 2097 n.next(); 2098 }))); 2099 }, 2100 }; 2101 t(document).on({ 2102 "afterShow.fb": function (t, e, n) { 2103 e.group.length > 1 && 2104 ("youtube" === n.contentSource || "vimeo" === n.contentSource) && 2105 o.load(n.contentSource); 2106 }, 2107 });
2108 })(jQuery), 2109 (function (t, e, n) { 2110 "use strict"; 2111 var o = (function () { 2112 return ( 2113 t.requestAnimationFrame || 2114 t.webkitRequestAnimationFrame || 2115 t.mozRequestAnimationFrame || 2116 t.oRequestAnimationFrame || 2117 function (e) { 2118 return t.setTimeout(e, 1e3 / 60); 2119 } 2120 ); 2121 })(), 2122 i = (function () { 2123 return ( 2124 t.cancelAnimationFrame || 2125 t.webkitCancelAnimationFrame || 2126 t.mozCancelAnimationFrame || 2127 t.oCancelAnimationFrame || 2128 function (e) { 2129 t.clearTimeout(e); 2130 } 2131 ); 2132 })(), 2133 a = function (e) { 2134 var n = []; 2135 (e = e.originalEvent || e || t.e), 2136 (e = 2137 e.touches && e.touches.length 2138 ? e.touches 2139 : e.changedTouches && e.changedTouches.length 2140 ? e.changedTouches 2141 : [e]); 2142 for (var o in e) 2143 e[o].pageX 2144 ? n.push({ x: e[o].pageX, y: e[o].pageY }) 2145 : e[o].clientX && n.push({ x: e[o].clientX, y: e[o].clientY }); 2146 return n; 2147 }, 2148 s = function (t, e, n) { 2149 return e && t 2150 ? "x" === n 2151 ? t.x - e.x 2152 : "y" === n 2153 ? t.y - e.y 2154 : Math.sqrt(Math.pow(t.x - e.x, 2) + Math.pow(t.y - e.y, 2)) 2155 : 0; 2156 }, 2157 r = function (t) { 2158 if ( 2159 t.is( 2160 'a,area,button,[role="button"],input,label,select,summary,textarea,video,audio,iframe' 2161 ) || 2162 n.isFunction(t.get(0).onclick) || 2163 t.data("selectable") 2164 ) 2165 return !0; 2166 for (var e = 0, o = t[0].attributes, i = o.length; e < i; e++) 2167 if ("data-fancybox-" === o[e].nodeName.substr(0, 14)) return !0; 2168 return !1; 2169 }, 2170 c = function (e) { 2171 var n = t.getComputedStyle(e)["overflow-y"], 2172 o = t.getComputedStyle(e)["overflow-x"], 2173 i = 2174 ("scroll" === n || "auto" === n) && e.scrollHeight > e.clientHeight, 2175 a = ("scroll" === o || "auto" === o) && e.scrollWidth > e.clientWidth; 2176 return i || a; 2177 }, 2178 l = function (t) { 2179 for (var e = !1; ; ) { 2180 if ((e = c(t.get(0)))) break; 2181 if ( 2182 ((t = t.parent()), 2183 !t.length || t.hasClass("fancybox-stage") || t.is("body")) 2184 ) 2185 break; 2186 } 2187 return e; 2188 }, 2189 d = function (t) { 2190 var e = this; 2191 (e.instance = t), 2192 (e.$bg = t.$refs.bg), 2193 (e.$stage = t.$refs.stage), 2194 (e.$container = t.$refs.container), 2195 e.destroy(), 2196 e.$container.on( 2197 "touchstart.fb.touch mousedown.fb.touch", 2198 n.proxy(e, "ontouchstart") 2199 ); 2200 }; 2201 (d.prototype.destroy = function () { 2202 var t = this; 2203 t.$container.off(".fb.touch"), 2204 n(e).off(".fb.touch"), 2205 t.requestId && (i(t.requestId), (t.requestId = null)), 2206 t.tapped && (clearTimeout(t.tapped), (t.tapped = null)); 2207 }), 2208 (d.prototype.ontouchstart = function (o) { 2209 var i = this, 2210 c = n(o.target), 2211 d = i.instance, 2212 u = d.current, 2213 f = u.$slide, 2214 p = u.$content,
2215 h = "touchstart" == o.type; 2216 if ( 2217 (h && i.$container.off("mousedown.fb.touch"), 2218 (!o.originalEvent || 2 != o.originalEvent.button) && 2219 f.length && 2220 c.length && 2221 !r(c) && 2222 !r(c.parent()) && 2223 (c.is("img") || 2224 !(o.originalEvent.clientX > c[0].clientWidth + c.offset().left))) 2225 ) { 2226 if (!u || d.isAnimating || u.$slide.hasClass("fancybox-animated")) 2227 return o.stopPropagation(), void o.preventDefault(); 2228 (i.realPoints = i.startPoints = a(o)), 2229 i.startPoints.length && 2230 (u.touch && o.stopPropagation(), 2231 (i.startEvent = o), 2232 (i.canTap = !0), 2233 (i.$target = c), 2234 (i.$content = p), 2235 (i.opts = u.opts.touch), 2236 (i.isPanning = !1), 2237 (i.isSwiping = !1), 2238 (i.isZooming = !1), 2239 (i.isScrolling = !1), 2240 (i.canPan = d.canPan()), 2241 (i.startTime = new Date().getTime()), 2242 (i.distanceX = i.distanceY = i.distance = 0), 2243 (i.canvasWidth = Math.round(f[0].clientWidth)), 2244 (i.canvasHeight = Math.round(f[0].clientHeight)), 2245 (i.contentLastPos = null), 2246 (i.contentStartPos = n.fancybox.getTranslate(i.$content) || { 2247 top: 0, 2248 left: 0, 2249 }), 2250 (i.sliderStartPos = n.fancybox.getTranslate(f)), 2251 (i.stagePos = n.fancybox.getTranslate(d.$refs.stage)), 2252 (i.sliderStartPos.top -= i.stagePos.top), 2253 (i.sliderStartPos.left -= i.stagePos.left), 2254 (i.contentStartPos.top -= i.stagePos.top), 2255 (i.contentStartPos.left -= i.stagePos.left), 2256 n(e) 2257 .off(".fb.touch") 2258 .on( 2259 h 2260 ? "touchend.fb.touch touchcancel.fb.touch" 2261 : "mouseup.fb.touch mouseleave.fb.touch", 2262 n.proxy(i, "ontouchend") 2263 ) 2264 .on( 2265 h ? "touchmove.fb.touch" : "mousemove.fb.touch", 2266 n.proxy(i, "ontouchmove") 2267 ), 2268 n.fancybox.isMobile && 2269 e.addEventListener("scroll", i.onscroll, !0), 2270 (((i.opts || i.canPan) && 2271 (c.is(i.$stage) || i.$stage.find(c).length)) || 2272 (c.is(".fancybox-image") && o.preventDefault(), 2273 n.fancybox.isMobile && 2274 c.parents(".fancybox-caption").length)) && 2275 ((i.isScrollable = l(c) || l(c.parent())), 2276 (n.fancybox.isMobile && i.isScrollable) || o.preventDefault(), 2277 (1 === i.startPoints.length || u.hasError) && 2278 (i.canPan 2279 ? (n.fancybox.stop(i.$content), (i.isPanning = !0)) 2280 : (i.isSwiping = !0), 2281 i.$container.addClass("fancybox-is-grabbing")), 2282 2 === i.startPoints.length && 2283 "image" === u.type && 2284 (u.isLoaded || u.$ghost) && 2285 ((i.canTap = !1), 2286 (i.isSwiping = !1), 2287 (i.isPanning = !1), 2288 (i.isZooming = !0), 2289 n.fancybox.stop(i.$content), 2290 (i.centerPointStartX = 2291 0.5 * (i.startPoints[0].x + i.startPoints[1].x) - 2292 n(t).scrollLeft()), 2293 (i.centerPointStartY = 2294 0.5 * (i.startPoints[0].y + i.startPoints[1].y) - 2295 n(t).scrollTop()), 2296 (i.percentageOfImageAtPinchPointX = 2297 (i.centerPointStartX - i.contentStartPos.left) / 2298 i.contentStartPos.width), 2299 (i.percentageOfImageAtPinchPointY = 2300 (i.centerPointStartY - i.contentStartPos.top) / 2301 i.contentStartPos.height), 2302 (i.startDistanceBetweenFingers = s( 2303 i.startPoints[0], 2304 i.startPoints[1] 2305 ))))); 2306 } 2307 }), 2308 (d.prototype.onscroll = function (t) { 2309 var n = this; 2310 (n.isScrolling = !0), e.removeEventListener("scroll", n.onscroll, !0); 2311 }), 2312 (d.prototype.ontouchmove = function (t) { 2313 var e = this; 2314 return void 0 !== t.originalEvent.buttons && 2315 0 === t.originalEvent.buttons 2316 ? void e.ontouchend(t) 2317 : e.isScrolling 2318 ? void (e.canTap = !1) 2319 : ((e.newPoints = a(t)), 2320 void ( 2321 (e.opts || e.canPan) && 2322 e.newPoints.length && 2323 e.newPoints.length && 2324 ((e.isSwiping && !0 === e.isSwiping) || t.preventDefault(), 2325 (e.distanceX = s(e.newPoints[0], e.startPoints[0], "x")), 2326 (e.distanceY = s(e.newPoints[0], e.startPoints[0], "y")), 2327 (e.distance = s(e.newPoints[0], e.startPoints[0])), 2328 e.distance > 0 && 2329 (e.isSwiping 2330 ? e.onSwipe(t) 2331 : e.isPanning 2332 ? e.onPan() 2333 : e.isZooming && e.onZoom())) 2334 )); 2335 }), 2336 (d.prototype.onSwipe = function (e) { 2337 var a, 2338 s = this, 2339 r = s.instance, 2340 c = s.isSwiping, 2341 l = s.sliderStartPos.left || 0; 2342 if (!0 !== c) 2343 "x" == c && 2344 (s.distanceX > 0 && 2345 (s.instance.group.length < 2 || 2346 (0 === s.instance.current.index && !s.instance.current.opts.loop)) 2347 ? (l += Math.pow(s.distanceX, 0.8)) 2348 : s.distanceX < 0 && 2349 (s.instance.group.length < 2 || 2350 (s.instance.current.index === s.instance.group.length - 1 && 2351 !s.instance.current.opts.loop)) 2352 ? (l -= Math.pow(-s.distanceX, 0.8)) 2353 : (l += s.distanceX)), 2354 (s.sliderLastPos = { 2355 top: "x" == c ? 0 : s.sliderStartPos.top + s.distanceY, 2356 left: l, 2357 }), 2358 s.requestId && (i(s.requestId), (s.requestId = null)), 2359 (s.requestId = o(function () { 2360 s.sliderLastPos && 2361 (n.each(s.instance.slides, function (t, e) { 2362 var o = e.pos - s.instance.currPos; 2363 n.fancybox.setTranslate(e.$slide, { 2364 top: s.sliderLastPos.top, 2365 left: 2366 s.sliderLastPos.left + 2367 o * s.canvasWidth + 2368 o * e.opts.gutter, 2369 }); 2370 }), 2371 s.$container.addClass("fancybox-is-sliding")); 2372 })); 2373 else if (Math.abs(s.distance) > 10) { 2374 if ( 2375 ((s.canTap = !1), 2376 r.group.length < 2 && s.opts.vertical 2377 ? (s.isSwiping = "y") 2378 : r.isDragging || 2379 !1 === s.opts.vertical || 2380 ("auto" === s.opts.vertical && n(t).width() > 800) 2381 ? (s.isSwiping = "x") 2382 : ((a = Math.abs( 2383 (180 * Math.atan2(s.distanceY, s.distanceX)) / Math.PI 2384 )), 2385 (s.isSwiping = a > 45 && a < 135 ? "y" : "x")), 2386 "y" === s.isSwiping && n.fancybox.isMobile && s.isScrollable) 2387 ) 2388 return void (s.isScrolling = !0); 2389 (r.isDragging = s.isSwiping), 2390 (s.startPoints = s.newPoints), 2391 n.each(r.slides, function (t, e) { 2392 var o, i; 2393 n.fancybox.stop(e.$slide), 2394 (o = n.fancybox.getTranslate(e.$slide)), 2395 (i = n.fancybox.getTranslate(r.$refs.stage)), 2396 e.$slide 2397 .css({ 2398 transform: "", 2399 opacity: "", 2400 "transition-duration": "", 2401 }) 2402 .removeClass("fancybox-animated") 2403 .removeClass(function (t, e) { 2404 return (e.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" "); 2405 }), 2406 e.pos === r.current.pos && 2407 ((s.sliderStartPos.top = o.top - i.top), 2408 (s.sliderStartPos.left = o.left - i.left)), 2409 n.fancybox.setTranslate(e.$slide, { 2410 top: o.top - i.top, 2411 left: o.left - i.left, 2412 }); 2413 }), 2414 r.SlideShow && r.SlideShow.isActive && r.SlideShow.stop(); 2415 } 2416 }), 2417 (d.prototype.onPan = function () { 2418 var t = this; 2419 if (s(t.newPoints[0], t.realPoints[0]) < (n.fancybox.isMobile ? 10 : 5)) 2420 return void (t.startPoints = t.newPoints); 2421 (t.canTap = !1), 2422 (t.contentLastPos = t.limitMovement()), 2423 t.requestId && i(t.requestId), 2424 (t.requestId = o(function () { 2425 n.fancybox.setTranslate(t.$content, t.contentLastPos); 2426 })); 2427 }), 2428 (d.prototype.limitMovement = function () { 2429 var t, 2430 e, 2431 n, 2432 o, 2433 i, 2434 a, 2435 s = this, 2436 r = s.canvasWidth, 2437 c = s.canvasHeight, 2438 l = s.distanceX, 2439 d = s.distanceY, 2440 u = s.contentStartPos, 2441 f = u.left, 2442 p = u.top, 2443 h = u.width, 2444 g = u.height; 2445 return ( 2446 (i = h > r ? f + l : f), 2447 (a = p + d), 2448 (t = Math.max(0, 0.5 * r - 0.5 * h)), 2449 (e = Math.max(0, 0.5 * c - 0.5 * g)), 2450 (n = Math.min(r - h, 0.5 * r - 0.5 * h)), 2451 (o = Math.min(c - g, 0.5 * c - 0.5 * g)), 2452 l > 0 && i > t && (i = t - 1 + Math.pow(-t + f + l, 0.8) || 0), 2453 l < 0 && i < n && (i = n + 1 - Math.pow(n - f - l, 0.8) || 0), 2454 d > 0 && a > e && (a = e - 1 + Math.pow(-e + p + d, 0.8) || 0), 2455 d < 0 && a < o && (a = o + 1 - Math.pow(o - p - d, 0.8) || 0), 2456 { top: a, left: i } 2457 ); 2458 }), 2459 (d.prototype.limitPosition = function (t, e, n, o) { 2460 var i = this, 2461 a = i.canvasWidth, 2462 s = i.canvasHeight; 2463 return ( 2464 n > a 2465 ? ((t = t > 0 ? 0 : t), (t = t < a - n ? a - n : t)) 2466 : (t = Math.max(0, a / 2 - n / 2)), 2467 o > s 2468 ? ((e = e > 0 ? 0 : e), (e = e < s - o ? s - o : e)) 2469 : (e = Math.max(0, s / 2 - o / 2)), 2470 { top: e, left: t } 2471 ); 2472 }), 2473 (d.prototype.onZoom = function () { 2474 var e = this, 2475 a = e.contentStartPos, 2476 r = a.width, 2477 c = a.height, 2478 l = a.left, 2479 d = a.top, 2480 u = s(e.newPoints[0], e.newPoints[1]), 2481 f = u / e.startDistanceBetweenFingers, 2482 p = Math.floor(r * f), 2483 h = Math.floor(c * f), 2484 g = (r - p) * e.percentageOfImageAtPinchPointX, 2485 b = (c - h) * e.percentageOfImageAtPinchPointY, 2486 m = (e.newPoints[0].x + e.newPoints[1].x) / 2 - n(t).scrollLeft(), 2487 v = (e.newPoints[0].y + e.newPoints[1].y) / 2 - n(t).scrollTop(), 2488 y = m - e.centerPointStartX, 2489 x = v - e.centerPointStartY, 2490 w = l + (g + y), 2491 $ = d + (b + x), 2492 S = { top: $, left: w, scaleX: f, scaleY: f }; 2493 (e.canTap = !1), 2494 (e.newWidth = p), 2495 (e.newHeight = h), 2496 (e.contentLastPos = S), 2497 e.requestId && i(e.requestId), 2498 (e.requestId = o(function () { 2499 n.fancybox.setTranslate(e.$content, e.contentLastPos); 2500 })); 2501 }), 2502 (d.prototype.ontouchend = function (t) { 2503 var o = this, 2504 s = o.isSwiping, 2505 r = o.isPanning, 2506 c = o.isZooming, 2507 l = o.isScrolling; 2508 if ( 2509 ((o.endPoints = a(t)), 2510 (o.dMs = Math.max(new Date().getTime() - o.startTime, 1)), 2511 o.$container.removeClass("fancybox-is-grabbing"), 2512 n(e).off(".fb.touch"), 2513 e.removeEventListener("scroll", o.onscroll, !0), 2514 o.requestId && (i(o.requestId), (o.requestId = null)), 2515 (o.isSwiping = !1), 2516 (o.isPanning = !1), 2517 (o.isZooming = !1), 2518 (o.isScrolling = !1), 2519 (o.instance.isDragging = !1), 2520 o.canTap) 2521 ) 2522 return o.onTap(t); 2523 (o.speed = 100), 2524 (o.velocityX = (o.distanceX / o.dMs) * 0.5), 2525 (o.velocityY = (o.distanceY / o.dMs) * 0.5), 2526 r ? o.endPanning() : c ? o.endZooming() : o.endSwiping(s, l); 2527 }), 2528 (d.prototype.endSwiping = function (t, e) { 2529 var o = this, 2530 i = !1, 2531 a = o.instance.group.length, 2532 s = Math.abs(o.distanceX), 2533 r = "x" == t && a > 1 && ((o.dMs > 130 && s > 10) || s > 50); 2534 (o.sliderLastPos = null), 2535 "y" == t && !e && Math.abs(o.distanceY) > 50 2536 ? (n.fancybox.animate( 2537 o.instance.current.$slide, 2538 { 2539 top: o.sliderStartPos.top + o.distanceY + 150 * o.velocityY, 2540 opacity: 0, 2541 }, 2542 200 2543 ), 2544 (i = o.instance.close(!0, 250))) 2545 : r && o.distanceX > 0 2546 ? (i = o.instance.previous(300)) 2547 : r && o.distanceX < 0 && (i = o.instance.next(300)), 2548 !1 !== i || ("x" != t && "y" != t) || o.instance.centerSlide(200), 2549 o.$container.removeClass("fancybox-is-sliding"); 2550 }), 2551 (d.prototype.endPanning = function () { 2552 var t, 2553 e, 2554 o, 2555 i = this; 2556 i.contentLastPos && 2557 (!1 === i.opts.momentum || i.dMs > 350 2558 ? ((t = i.contentLastPos.left), (e = i.contentLastPos.top)) 2559 : ((t = i.contentLastPos.left + 500 * i.velocityX), 2560 (e = i.contentLastPos.top + 500 * i.velocityY)), 2561 (o = i.limitPosition( 2562 t, 2563 e, 2564 i.contentStartPos.width, 2565 i.contentStartPos.height 2566 )), 2567 (o.width = i.contentStartPos.width), 2568 (o.height = i.contentStartPos.height), 2569 n.fancybox.animate(i.$content, o, 366)); 2570 }), 2571 (d.prototype.endZooming = function () { 2572 var t, 2573 e, 2574 o, 2575 i, 2576 a = this, 2577 s = a.instance.current, 2578 r = a.newWidth, 2579 c = a.newHeight; 2580 a.contentLastPos && 2581 ((t = a.contentLastPos.left), 2582 (e = a.contentLastPos.top), 2583 (i = { top: e, left: t, width: r, height: c, scaleX: 1, scaleY: 1 }), 2584 n.fancybox.setTranslate(a.$content, i), 2585 r < a.canvasWidth && c < a.canvasHeight 2586 ? a.instance.scaleToFit(150) 2587 : r > s.width || c > s.height 2588 ? a.instance.scaleToActual( 2589 a.centerPointStartX, 2590 a.centerPointStartY, 2591 150 2592 ) 2593 : ((o = a.limitPosition(t, e, r, c)), 2594 n.fancybox.animate(a.$content, o, 150))); 2595 }), 2596 (d.prototype.onTap = function (e) { 2597 var o, 2598 i = this, 2599 s = n(e.target), 2600 r = i.instance, 2601 c = r.current, 2602 l = (e && a(e)) || i.startPoints, 2603 d = l[0] ? l[0].x - n(t).scrollLeft() - i.stagePos.left : 0, 2604 u = l[0] ? l[0].y - n(t).scrollTop() - i.stagePos.top : 0, 2605 f = function (t) { 2606 var o = c.opts[t]; 2607 if ((n.isFunction(o) && (o = o.apply(r, [c, e])), o)) 2608 switch (o) { 2609 case "close": 2610 r.close(i.startEvent); 2611 break; 2612 case "toggleControls": 2613 r.toggleControls(); 2614 break; 2615 case "next": 2616 r.next(); 2617 break;
2618 case "nextOrClose": 2619 r.group.length > 1 ? r.next() : r.close(i.startEvent); 2620 break; 2621 case "zoom": 2622 "image" == c.type && 2623 (c.isLoaded || c.$ghost) && 2624 (r.canPan() 2625 ? r.scaleToFit() 2626 : r.isScaledDown() 2627 ? r.scaleToActual(d, u) 2628 : r.group.length < 2 && r.close(i.startEvent)); 2629 } 2630 }; 2631 if ( 2632 (!e.originalEvent || 2 != e.originalEvent.button) && 2633 (s.is("img") || !(d > s[0].clientWidth + s.offset().left)) 2634 ) { 2635 if ( 2636 s.is( 2637 ".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container" 2638 ) 2639 ) 2640 o = "Outside"; 2641 else if (s.is(".fancybox-slide")) o = "Slide"; 2642 else { 2643 if ( 2644 !r.current.$content || 2645 !r.current.$content.find(s).addBack().filter(s).length 2646 ) 2647 return; 2648 o = "Content"; 2649 } 2650 if (i.tapped) { 2651 if ( 2652 (clearTimeout(i.tapped), 2653 (i.tapped = null), 2654 Math.abs(d - i.tapX) > 50 || Math.abs(u - i.tapY) > 50) 2655 ) 2656 return this; 2657 f("dblclick" + o); 2658 } else 2659 (i.tapX = d), 2660 (i.tapY = u), 2661 c.opts["dblclick" + o] && 2662 c.opts["dblclick" + o] !== c.opts["click" + o] 2663 ? (i.tapped = setTimeout(function () { 2664 (i.tapped = null), r.isAnimating || f("click" + o); 2665 }, 500)) 2666 : f("click" + o); 2667 return this; 2668 } 2669 }), 2670 n(e) 2671 .on("onActivate.fb", function (t, e) { 2672 e && !e.Guestures && (e.Guestures = new d(e)); 2673 }) 2674 .on("beforeClose.fb", function (t, e) { 2675 e && e.Guestures && e.Guestures.destroy(); 2676 }); 2677 })(window, document, jQuery), 2678 (function (t, e) { 2679 "use strict"; 2680 e.extend(!0, e.fancybox.defaults, { 2681 btnTpl: { 2682 slideShow: 2683 '<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>', 2684 }, 2685 slideShow: { autoStart: !1, speed: 3e3, progress: !0 }, 2686 }); 2687 var n = function (t) { 2688 (this.instance = t), this.init(); 2689 }; 2690 e.extend(n.prototype, { 2691 timer: null, 2692 isActive: !1, 2693 $button: null, 2694 init: function () { 2695 var t = this, 2696 n = t.instance, 2697 o = n.group[n.currIndex].opts.slideShow; 2698 (t.$button = n.$refs.toolbar 2699 .find("[data-fancybox-play]") 2700 .on("click", function () { 2701 t.toggle(); 2702 })), 2703 n.group.length < 2 || !o 2704 ? t.$button.hide() 2705 : o.progress && 2706 (t.$progress = e( 2707 '<div class="fancybox-progress"></div>' 2708 ).appendTo(n.$refs.inner)); 2709 }, 2710 set: function (t) { 2711 var n = this, 2712 o = n.instance, 2713 i = o.current; 2714 i && (!0 === t || i.opts.loop || o.currIndex < o.group.length - 1) 2715 ? n.isActive && 2716 "video" !== i.contentType && 2717 (n.$progress && 2718 e.fancybox.animate( 2719 n.$progress.show(), 2720 { scaleX: 1 }, 2721 i.opts.slideShow.speed 2722 ), 2723 (n.timer = setTimeout(function () { 2724 o.current.opts.loop || o.current.index != o.group.length - 1 2725 ? o.next() 2726 : o.jumpTo(0); 2727 }, i.opts.slideShow.speed))) 2728 : (n.stop(), (o.idleSecondsCounter = 0), o.showControls()); 2729 }, 2730 clear: function () { 2731 var t = this; 2732 clearTimeout(t.timer), 2733 (t.timer = null), 2734 t.$progress && t.$progress.removeAttr("style").hide(); 2735 }, 2736 start: function () { 2737 var t = this, 2738 e = t.instance.current; 2739 e && 2740 (t.$button 2741 .attr( 2742 "title", 2743 (e.opts.i18n[e.opts.lang] || e.opts.i18n.en).PLAY_STOP 2744 ) 2745 .removeClass("fancybox-button--play") 2746 .addClass("fancybox-button--pause"), 2747 (t.isActive = !0), 2748 e.isComplete && t.set(!0), 2749 t.instance.trigger("onSlideShowChange", !0)); 2750 }, 2751 stop: function () { 2752 var t = this, 2753 e = t.instance.current; 2754 t.clear(), 2755 t.$button 2756 .attr( 2757 "title", 2758 (e.opts.i18n[e.opts.lang] || e.opts.i18n.en).PLAY_START 2759 ) 2760 .removeClass("fancybox-button--pause") 2761 .addClass("fancybox-button--play"), 2762 (t.isActive = !1), 2763 t.instance.trigger("onSlideShowChange", !1), 2764 t.$progress && t.$progress.removeAttr("style").hide(); 2765 }, 2766 toggle: function () { 2767 var t = this; 2768 t.isActive ? t.stop() : t.start(); 2769 }, 2770 }), 2771 e(t).on({ 2772 "onInit.fb": function (t, e) { 2773 e && !e.SlideShow && (e.SlideShow = new n(e)); 2774 }, 2775 "beforeShow.fb": function (t, e, n, o) { 2776 var i = e && e.SlideShow; 2777 o 2778 ? i && n.opts.slideShow.autoStart && i.start() 2779 : i && i.isActive && i.clear(); 2780 }, 2781 "afterShow.fb": function (t, e, n) { 2782 var o = e && e.SlideShow; 2783 o && o.isActive && o.set(); 2784 }, 2785 "afterKeydown.fb": function (n, o, i, a, s) { 2786 var r = o && o.SlideShow; 2787 !r || 2788 !i.opts.slideShow || 2789 (80 !== s && 32 !== s) || 2790 e(t.activeElement).is("button,a,input") ||
2791 (a.preventDefault(), r.toggle()); 2792 }, 2793 "beforeClose.fb onDeactivate.fb": function (t, e) { 2794 var n = e && e.SlideShow; 2795 n && n.stop(); 2796 }, 2797 }), 2798 e(t).on("visibilitychange", function () { 2799 var n = e.fancybox.getInstance(), 2800 o = n && n.SlideShow; 2801 o && o.isActive && (t.hidden ? o.clear() : o.set()); 2802 }); 2803 })(document, jQuery), 2804 (function (t, e) { 2805 "use strict"; 2806 var n = (function () { 2807 for ( 2808 var e = [ 2809 [ 2810 "requestFullscreen", 2811 "exitFullscreen", 2812 "fullscreenElement", 2813 "fullscreenEnabled", 2814 "fullscreenchange", 2815 "fullscreenerror", 2816 ], 2817 [ 2818 "webkitRequestFullscreen", 2819 "webkitExitFullscreen", 2820 "webkitFullscreenElement", 2821 "webkitFullscreenEnabled", 2822 "webkitfullscreenchange", 2823 "webkitfullscreenerror", 2824 ], 2825 [ 2826 "webkitRequestFullScreen", 2827 "webkitCancelFullScreen", 2828 "webkitCurrentFullScreenElement", 2829 "webkitCancelFullScreen", 2830 "webkitfullscreenchange", 2831 "webkitfullscreenerror", 2832 ], 2833 [ 2834 "mozRequestFullScreen", 2835 "mozCancelFullScreen", 2836 "mozFullScreenElement", 2837 "mozFullScreenEnabled", 2838 "mozfullscreenchange", 2839 "mozfullscreenerror", 2840 ], 2841 [ 2842 "msRequestFullscreen", 2843 "msExitFullscreen", 2844 "msFullscreenElement", 2845 "msFullscreenEnabled", 2846 "MSFullscreenChange", 2847 "MSFullscreenError", 2848 ], 2849 ], 2850 n = {}, 2851 o = 0; 2852 o < e.length; 2853 o++ 2854 ) { 2855 var i = e[o]; 2856 if (i && i[1] in t) { 2857 for (var a = 0; a < i.length; a++) n[e[0][a]] = i[a]; 2858 return n; 2859 } 2860 } 2861 return !1; 2862 })(); 2863 if (n) { 2864 var o = { 2865 request: function (e) { 2866 (e = e || t.documentElement), 2867 e[n.requestFullscreen](e.ALLOW_KEYBOARD_INPUT); 2868 }, 2869 exit: function () { 2870 t[n.exitFullscreen](); 2871 }, 2872 toggle: function (e) { 2873 (e = e || t.documentElement), 2874 this.isFullscreen() ? this.exit() : this.request(e); 2875 }, 2876 isFullscreen: function () { 2877 return Boolean(t[n.fullscreenElement]); 2878 }, 2879 enabled: function () { 2880 return Boolean(t[n.fullscreenEnabled]); 2881 }, 2882 }; 2883 e.extend(!0, e.fancybox.defaults, { 2884 btnTpl: { 2885 fullScreen: 2886 '<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"><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>', 2887 }, 2888 fullScreen: { autoStart: !1 }, 2889 }), 2890 e(t).on(n.fullscreenchange, function () { 2891 var t = o.isFullscreen(), 2892 n = e.fancybox.getInstance(); 2893 n && 2894 (n.current && 2895 "image" === n.current.type && 2896 n.isAnimating && 2897 ((n.isAnimating = !1), 2898 n.update(!0, !0, 0), 2899 n.isComplete || n.complete()), 2900 n.trigger("onFullscreenChange", t), 2901 n.$refs.container.toggleClass("fancybox-is-fullscreen", t), 2902 n.$refs.toolbar 2903 .find("[data-fancybox-fullscreen]") 2904 .toggleClass("fancybox-button--fsenter", !t) 2905 .toggleClass("fancybox-button--fsexit", t)); 2906 }); 2907 } 2908 e(t).on({ 2909 "onInit.fb": function (t, e) { 2910 var i; 2911 if (!n) 2912 return void e.$refs.toolbar 2913 .find("[data-fancybox-fullscreen]") 2914 .remove(); 2915 e && e.group[e.currIndex].opts.fullScreen 2916 ? ((i = e.$refs.container), 2917 i.on( 2918 "click.fb-fullscreen", 2919 "[data-fancybox-fullscreen]", 2920 function (t) { 2921 t.stopPropagation(), t.preventDefault(), o.toggle(); 2922 } 2923 ), 2924 e.opts.fullScreen && 2925 !0 === e.opts.fullScreen.autoStart && 2926 o.request(), 2927 (e.FullScreen = o)) 2928 : e && e.$refs.toolbar.find("[data-fancybox-fullscreen]").hide(); 2929 }, 2930 "afterKeydown.fb": function (t, e, n, o, i) { 2931 e && 2932 e.FullScreen && 2933 70 === i && 2934 (o.preventDefault(), e.FullScreen.toggle()); 2935 }, 2936 "beforeClose.fb": function (t, e) { 2937 e && 2938 e.FullScreen && 2939 e.$refs.container.hasClass("fancybox-is-fullscreen") && 2940 o.exit(); 2941 }, 2942 });
2943 })(document, jQuery), 2944 (function (t, e) { 2945 "use strict"; 2946 var n = "fancybox-thumbs"; 2947 e.fancybox.defaults = e.extend( 2948 !0, 2949 { 2950 btnTpl: { 2951 thumbs: 2952 '<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>', 2953 }, 2954 thumbs: { 2955 autoStart: !1, 2956 hideOnClose: !0, 2957 parentEl: ".fancybox-container", 2958 axis: "y", 2959 }, 2960 }, 2961 e.fancybox.defaults 2962 ); 2963 var o = function (t) { 2964 this.init(t); 2965 }; 2966 e.extend(o.prototype, { 2967 $button: null, 2968 $grid: null, 2969 $list: null, 2970 isVisible: !1, 2971 isActive: !1, 2972 init: function (t) { 2973 var e = this, 2974 n = t.group, 2975 o = 0; 2976 (e.instance = t), 2977 (e.opts = n[t.currIndex].opts.thumbs), 2978 (t.Thumbs = e), 2979 (e.$button = t.$refs.toolbar.find("[data-fancybox-thumbs]")); 2980 for ( 2981 var i = 0, a = n.length; 2982 i < a && (n[i].thumb && o++, !(o > 1)); 2983 i++ 2984 ); 2985 o > 1 && e.opts 2986 ? (e.$button.removeAttr("style").on("click", function () { 2987 e.toggle(); 2988 }), 2989 (e.isActive = !0)) 2990 : e.$button.hide(); 2991 }, 2992 create: function () { 2993 var t, 2994 o = this, 2995 i = o.instance, 2996 a = o.opts.parentEl, 2997 s = []; 2998 o.$grid || 2999 ((o.$grid = e( 3000 '<div class="' + n + " " + n + "-" + o.opts.axis + '"></div>' 3001 ).appendTo(i.$refs.container.find(a).addBack().filter(a))), 3002 o.$grid.on("click", "a", function () { 3003 i.jumpTo(e(this).attr("data-index")); 3004 })), 3005 o.$list || 3006 (o.$list = e('<div class="' + n + '__list">').appendTo(o.$grid)), 3007 e.each(i.group, function (e, n) { 3008 (t = n.thumb), 3009 t || "image" !== n.type || (t = n.src), 3010 s.push( 3011 '<a href="javascript:;" tabindex="0" data-index="' + 3012 e + 3013 '"' + 3014 (t && t.length 3015 ? ' style="background-image:url(' + t + ')"' 3016 : 'class="fancybox-thumbs-missing"') + 3017 "></a>" 3018 ); 3019 }), 3020 (o.$list[0].innerHTML = s.join("")), 3021 "x" === o.opts.axis && 3022 o.$list.width( 3023 parseInt(o.$grid.css("padding-right"), 10) + 3024 i.group.length * o.$list.children().eq(0).outerWidth(!0) 3025 ); 3026 }, 3027 focus: function (t) { 3028 var e, 3029 n, 3030 o = this, 3031 i = o.$list, 3032 a = o.$grid; 3033 o.instance.current && 3034 ((e = i 3035 .children() 3036 .removeClass("fancybox-thumbs-active") 3037 .filter('[data-index="' + o.instance.current.index + '"]') 3038 .addClass("fancybox-thumbs-active")), 3039 (n = e.position()), 3040 "y" === o.opts.axis && 3041 (n.top < 0 || n.top > i.height() - e.outerHeight()) 3042 ? i.stop().animate({ scrollTop: i.scrollTop() + n.top }, t) 3043 : "x" === o.opts.axis && 3044 (n.left < a.scrollLeft() || 3045 n.left > a.scrollLeft() + (a.width() - e.outerWidth())) && 3046 i.parent().stop().animate({ scrollLeft: n.left }, t)); 3047 }, 3048 update: function () { 3049 var t = this; 3050 t.instance.$refs.container.toggleClass( 3051 "fancybox-show-thumbs", 3052 this.isVisible 3053 ), 3054 t.isVisible 3055 ? (t.$grid || t.create(), 3056 t.instance.trigger("onThumbsShow"), 3057 t.focus(0)) 3058 : t.$grid && t.instance.trigger("onThumbsHide"),
3059 t.instance.update(); 3060 }, 3061 hide: function () { 3062 (this.isVisible = !1), this.update(); 3063 }, 3064 show: function () { 3065 (this.isVisible = !0), this.update(); 3066 }, 3067 toggle: function () { 3068 (this.isVisible = !this.isVisible), this.update(); 3069 }, 3070 }), 3071 e(t).on({ 3072 "onInit.fb": function (t, e) { 3073 var n; 3074 e && 3075 !e.Thumbs && 3076 ((n = new o(e)), n.isActive && !0 === n.opts.autoStart && n.show()); 3077 }, 3078 "beforeShow.fb": function (t, e, n, o) { 3079 var i = e && e.Thumbs; 3080 i && i.isVisible && i.focus(o ? 0 : 250); 3081 }, 3082 "afterKeydown.fb": function (t, e, n, o, i) { 3083 var a = e && e.Thumbs; 3084 a && a.isActive && 71 === i && (o.preventDefault(), a.toggle()); 3085 }, 3086 "beforeClose.fb": function (t, e) { 3087 var n = e && e.Thumbs; 3088 n && n.isVisible && !1 !== n.opts.hideOnClose && n.$grid.hide(); 3089 }, 3090 }); 3091 })(document, jQuery), 3092 (function (t, e) { 3093 "use strict"; 3094 function n(t) { 3095 var e = { 3096 "&": "&", 3097 "<": "<", 3098 ">": ">", 3099 '"': """, 3100 "'": "'", 3101 "/": "/", 3102 "`": "`", 3103 "=": "=", 3104 }; 3105 return String(t).replace(/[&<>"'`=\/]/g, function (t) { 3106 return e[t]; 3107 }); 3108 } 3109 e.extend(!0, e.fancybox.defaults, { 3110 btnTpl: { 3111 share: 3112 '<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>', 3113 }, 3114 share: { 3115 url: function (t, e) { 3116 return ( 3117 (!t.currentHash && 3118 "inline" !== e.type && 3119 "html" !== e.type && 3120 (e.origSrc || e.src)) || 3121 window.location 3122 ); 3123 }, 3124 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>', 3125 }, 3126 }), 3127 e(t).on("click", "[data-fancybox-share]", function () { 3128 var t, 3129 o, 3130 i = e.fancybox.getInstance(), 3131 a = i.current || null; 3132 a && 3133 ("function" === e.type(a.opts.share.url) && 3134 (t = a.opts.share.url.apply(a, [i, a])), 3135 (o = a.opts.share.tpl 3136 .replace( 3137 /\{\{media\}\}/g, 3138 "image" === a.type ? encodeURIComponent(a.src) : "" 3139 ) 3140 .replace(/\{\{url\}\}/g, encodeURIComponent(t)) 3141 .replace(/\{\{url_raw\}\}/g, n(t)) 3142 .replace( 3143 /\{\{descr\}\}/g, 3144 i.$caption ? encodeURIComponent(i.$caption.text()) : "" 3145 )), 3146 e.fancybox.open({ 3147 src: i.translate(i, o), 3148 type: "html", 3149 opts: { 3150 touch: !1, 3151 animationEffect: !1, 3152 afterLoad: function (t, e) { 3153 i.$refs.container.one("beforeClose.fb", function () { 3154 t.close(null, 0); 3155 }), 3156 e.$content.find(".fancybox-share__button").click(function () { 3157 return ( 3158 window.open(this.href, "Share", "width=550, height=450"), 3159 !1 3160 ); 3161 }); 3162 }, 3163 mobile: { autoFocus: !1 }, 3164 }, 3165 })); 3166 }); 3167 })(document, jQuery), 3168 (function (t, e, n) { 3169 "use strict"; 3170 function o() { 3171 var e = t.location.hash.substr(1), 3172 n = e.split("-"), 3173 o = 3174 n.length > 1 && /^\+?\d+$/.test(n[n.length - 1]) 3175 ? parseInt(n.pop(-1), 10) || 1 3176 : 1, 3177 i = n.join("-"); 3178 return { hash: e, index: o < 1 ? 1 : o, gallery: i }; 3179 } 3180 function i(t) { 3181 "" !== t.gallery && 3182 n("[data-fancybox='" + n.escapeSelector(t.gallery) + "']") 3183 .eq(t.index - 1) 3184 .focus() 3185 .trigger("click.fb-start"); 3186 } 3187 function a(t) { 3188 var e, n; 3189 return ( 3190 !!t && 3191 ((e = t.current ? t.current.opts : t.opts), 3192 "" !== 3193 (n = 3194 e.hash || 3195 (e.$orig 3196 ? e.$orig.data("fancybox") || e.$orig.data("fancybox-trigger") 3197 : "")) && n) 3198 ); 3199 } 3200 n.escapeSelector || 3201 (n.escapeSelector = function (t) { 3202 return (t + "").replace( 3203 /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g, 3204 function (t, e) { 3205 return e 3206 ? "\0" === t 3207 ? "�" 3208 : t.slice(0, -1) + 3209 "\\" + 3210 t.charCodeAt(t.length - 1).toString(16) + 3211 " " 3212 : "\\" + t; 3213 } 3214 ); 3215 }), 3216 n(function () { 3217 !1 !== n.fancybox.defaults.hash && 3218 (n(e).on({ 3219 "onInit.fb": function (t, e) { 3220 var n, i; 3221 !1 !== e.group[e.currIndex].opts.hash && 3222 ((n = o()), 3223 (i = a(e)) && 3224 n.gallery && 3225 i == n.gallery && 3226 (e.currIndex = n.index - 1)); 3227 }, 3228 "beforeShow.fb": function (n, o, i, s) { 3229 var r; 3230 i && 3231 !1 !== i.opts.hash && 3232 (r = a(o)) && 3233 ((o.currentHash = 3234 r + (o.group.length > 1 ? "-" + (i.index + 1) : "")), 3235 t.location.hash !== "#" + o.currentHash && 3236 (s && !o.origHash && (o.origHash = t.location.hash), 3237 o.hashTimer && clearTimeout(o.hashTimer), 3238 (o.hashTimer = setTimeout(function () { 3239 "replaceState" in t.history 3240 ? (t.history[s ? "pushState" : "replaceState"]( 3241 {}, 3242 e.title, 3243 t.location.pathname + 3244 t.location.search + 3245 "#" + 3246 o.currentHash 3247 ), 3248 s && (o.hasCreatedHistory = !0)) 3249 : (t.location.hash = o.currentHash), 3250 (o.hashTimer = null); 3251 }, 300)))); 3252 }, 3253 "beforeClose.fb": function (n, o, i) { 3254 i && 3255 !1 !== i.opts.hash && 3256 (clearTimeout(o.hashTimer), 3257 o.currentHash && o.hasCreatedHistory 3258 ? t.history.back() 3259 : o.currentHash && 3260 ("replaceState" in t.history 3261 ? t.history.replaceState( 3262 {}, 3263 e.title, 3264 t.location.pathname + 3265 t.location.search + 3266 (o.origHash || "") 3267 ) 3268 : (t.location.hash = o.origHash)), 3269 (o.currentHash = null)); 3270 }, 3271 }), 3272 n(t).on("hashchange.fb", function () { 3273 var t = o(), 3274 e = null; 3275 n.each(n(".fancybox-container").get().reverse(), function (t, o) { 3276 var i = n(o).data("FancyBox"); 3277 if (i && i.currentHash) return (e = i), !1; 3278 }), 3279 e 3280 ? e.currentHash === t.gallery + "-" + t.index || 3281 (1 === t.index && e.currentHash == t.gallery) || 3282 ((e.currentHash = null), e.close()) 3283 : "" !== t.gallery && i(t); 3284 }), 3285 setTimeout(function () { 3286 n.fancybox.getInstance() || i(o()); 3287 }, 50)); 3288 }); 3289 })(window, document, jQuery), 3290 (function (t, e) { 3291 "use strict"; 3292 var n = new Date().getTime(); 3293 e(t).on({ 3294 "onInit.fb": function (t, e, o) { 3295 e.$refs.stage.on( 3296 "mousewheel DOMMouseScroll wheel MozMousePixelScroll", 3297 function (t) { 3298 var o = e.current, 3299 i = new Date().getTime(); 3300 e.group.length < 2 || 3301 !1 === o.opts.wheel || 3302 ("auto" === o.opts.wheel && "image" !== o.type) || 3303 (t.preventDefault(), 3304 t.stopPropagation(), 3305 o.$slide.hasClass("fancybox-animated") || 3306 ((t = t.originalEvent || t), 3307 i - n < 250 || 3308 ((n = i), 3309 e[ 3310 (-t.deltaY || -t.deltaX || t.wheelDelta || -t.detail) < 0 3311 ? "next" 3312 : "previous" 3313 ]()))); 3314 } 3315 ); 3316 }, 3317 });
3318 })(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.