1// ================================================== 2// fancyBox v3.1.20 3// 4// Licensed GPLv3 for open source use 5// or fancyBox Commercial License for commercial use 6// 7// http://fancyapps.com/fancybox/ 8// Copyright 2017 fancyApps 9// 10// ================================================== 11!(function (t, e, n, o) { 12 "use strict"; 13 function i(t) { 14 var e = t.currentTarget, 15 o = t.data ? t.data.options : {}, 16 i = t.data ? t.data.items : [], 17 a = n(e).attr("data-fancybox") || "", 18 s = 0; 19 t.preventDefault(), 20 t.stopPropagation(), 21 a 22 ? ((i = i.length ? i.filter('[data-fancybox="' + a + '"]') : n('[data-fancybox="' + a + '"]')), 23 (s = i.index(e)), 24 s < 0 && (s = 0)) 25 : (i = [e]), 26 n.fancybox.open(i, o, s); 27 } 28 if (n) { 29 if (n.fn.fancybox) return void n.error("fancyBox already initialized"); 30 var a = { 31 loop: !1, 32 margin: [44, 0], 33 gutter: 50, 34 keyboard: !0, 35 arrows: !0, 36 infobar: !1, 37 toolbar: !0, 38 buttons: ["slideShow", "fullScreen", "thumbs", "close"], 39 idleTime: 4, 40 smallBtn: "auto", 41 protect: !1, 42 modal: !1, 43 image: { preload: "auto" }, 44 ajax: { settings: { data: { fancybox: !0 } } }, 45 iframe: { 46 tpl: '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen allowtransparency="true" src=""></iframe>', 47 preload: !0, 48 css: {}, 49 attr: { scrolling: "auto" }, 50 }, 51 animationEffect: "zoom", 52 animationDuration: 366, 53 zoomOpacity: "auto", 54 transitionEffect: "fade", 55 transitionDuration: 366, 56 slideClass: "", 57 baseClass: "", 58 baseTpl: 59 '<div class="fancybox-container" role="dialog" tabindex="-1"><div class="fancybox-bg"></div><div class="fancybox-inner"><div class="fancybox-infobar"><button data-fancybox-prev title="{{PREV}}" class="fancybox-button fancybox-button--left"></button><div class="fancybox-infobar__body"><span data-fancybox-index></span> / <span data-fancybox-count></span></div><button data-fancybox-next title="{{NEXT}}" class="fancybox-button fancybox-button--right"></button></div><div class="fancybox-toolbar">{{BUTTONS}}</div><div class="fancybox-navigation"><button data-fancybox-prev title="{{PREV}}" class="fancybox-arrow fancybox-arrow--left" /><button data-fancybox-next title="{{NEXT}}" class="fancybox-arrow fancybox-arrow--right" /></div><div class="fancybox-stage"></div><div class="fancybox-caption-wrap"><div class="fancybox-caption"></div></div></div></div>', 60 spinnerTpl: '<div class="fancybox-loading"></div>', 61 errorTpl: '<div class="fancybox-error"><p>{{ERROR}}<p></div>', 62 btnTpl: { 63 slideShow: 64 '<button data-fancybox-play class="fancybox-button fancybox-button--play" title="{{PLAY_START}}"></button>', 65 fullScreen: 66 '<button data-fancybox-fullscreen class="fancybox-button fancybox-button--fullscreen" title="{{FULL_SCREEN}}"></button>', 67 thumbs: 68 '<button data-fancybox-thumbs class="fancybox-button fancybox-button--thumbs" title="{{THUMBS}}"></button>', 69 close: 70 '<button data-fancybox-close class="fancybox-button fancybox-button--close" title="{{CLOSE}}"></button>', 71 smallBtn: '<button data-fancybox-close class="fancybox-close-small" title="{{CLOSE}}"></button>', 72 }, 73 parentEl: "body", 74 autoFocus: !0, 75 backFocus: !0, 76 trapFocus: !0, 77 fullScreen: { autoStart: !1 }, 78 touch: { vertical: !0, momentum: !0 }, 79 hash: null, 80 media: {}, 81 slideShow: { autoStart: !1, speed: 4e3 }, 82 thumbs: { autoStart: !1, hideOnClose: !0 }, 83 onInit: n.noop, 84 beforeLoad: n.noop, 85 afterLoad: n.noop, 86 beforeShow: n.noop, 87 afterShow: n.noop, 88 beforeClose: n.noop, 89 afterClose: n.noop, 90 onActivate: n.noop, 91 onDeactivate: n.noop, 92 clickContent: function (t, e) { 93 return "image" === t.type && "zoom"; 94 }, 95 clickSlide: "close", 96 clickOutside: "close", 97 dblclickContent: !1, 98 dblclickSlide: !1, 99 dblclickOutside: !1, 100 mobile: { 101 clickContent: function (t, e) { 102 return "image" === t.type && "toggleControls"; 103 }, 104 clickSlide: function (t, e) { 105 return "image" === t.type ? "toggleControls" : "close"; 106 }, 107 dblclickContent: function (t, e) { 108 return "image" === t.type && "zoom"; 109 }, 110 dblclickSlide: function (t, e) { 111 return "image" === t.type && "zoom"; 112 }, 113 }, 114 lang: "en", 115 i18n: { 116 en: { 117 CLOSE: "Close", 118 NEXT: "Next", 119 PREV: "Previous", 120 ERROR: "The requested content cannot be loaded. <br/> Please try again later.", 121 PLAY_START: "Start slideshow", 122 PLAY_STOP: "Pause slideshow", 123 FULL_SCREEN: "Full screen", 124 THUMBS: "Thumbnails", 125 }, 126 de: { 127 CLOSE: "Schliessen", 128 NEXT: "Weiter", 129 PREV: "Zurück", 130 ERROR: "Die angeforderten Daten konnten nicht geladen werden. <br/>
130 Bitte versuchen Sie es später nochmal.", 131 PLAY_START: "Diaschau starten", 132 PLAY_STOP: "Diaschau beenden", 133 FULL_SCREEN: "Vollbild", 134 THUMBS: "Vorschaubilder", 135 }, 136 }, 137 }, 138 s = n(t), 139 r = n(e), 140 c = 0, 141 l = function (t) { 142 return t && t.hasOwnProperty && t instanceof n; 143 }, 144 u = (function () { 145 return ( 146 t.requestAnimationFrame || 147 t.webkitRequestAnimationFrame || 148 t.mozRequestAnimationFrame || 149 t.oRequestAnimationFrame || 150 function (e) { 151 return t.setTimeout(e, 1e3 / 60); 152 } 153 ); 154 })(), 155 d = (function () { 156 var t, 157 n = e.createElement("fakeelement"), 158 i = { 159 transition: "transitionend", 160 OTransition: "oTransitionEnd", 161 MozTransition: "transitionend", 162 WebkitTransition: "webkitTransitionEnd", 163 }; 164 for (t in i) if (n.style[t] !== o) return i[t]; 165 })(), 166 f = function (t) { 167 return t && t.length && t[0].offsetHeight; 168 }, 169 h = function (t, o, i) { 170 var s = this; 171 (s.opts = n.extend(!0, { index: i }, a, o || {})), 172 o && n.isArray(o.buttons) && (s.opts.buttons = o.buttons), 173 (s.id = s.opts.id || ++c), 174 (s.group = []), 175 (s.currIndex = parseInt(s.opts.index, 10) || 0), 176 (s.prevIndex = null), 177 (s.prevPos = null), 178 (s.currPos = 0), 179 (s.firstRun = null), 180 s.createGroup(t), 181 s.group.length && ((s.$lastFocus = n(e.activeElement).blur()), (s.slides = {}), s.init(t)); 182 }; 183 n.extend(h.prototype, { 184 init: function () { 185 var t, 186 e, 187 o, 188 i = this, 189 a = i.group[i.currIndex].opts; 190 (i.scrollTop = r.scrollTop()), 191 (i.scrollLeft = r.scrollLeft()), 192 n.fancybox.getInstance() || 193 n.fancybox.isMobile || 194 "hidden" === n("body").css("overflow") || 195 ((t = n("body").width()), 196 n("html").addClass("fancybox-enabled"), 197 (t = n("body").width() - t), 198 t > 1 && 199 n("head").append( 200 '<style id="fancybox-style-noscroll" type="text/css">.compensate-for-scrollbar, .fancybox-enabled body { margin-right: ' + 201 t + 202 "px; }</style>" 203 )), 204 (o = ""), 205 n.each(a.buttons, function (t, e) { 206 o += a.btnTpl[e] || ""; 207 }), 208 (e = n(i.translate(i, a.baseTpl.replace("{{BUTTONS}}", o))) 209 .addClass("fancybox-is-hidden") 210 .attr("id", "fancybox-container-" + i.id) 211 .addClass(a.baseClass) 212 .data("FancyBox", i) 213 .prependTo(a.parentEl)), 214 (i.$refs = { container: e }), 215 ["bg", "inner", "infobar", "toolbar", "stage", "caption"].forEach(function (t) { 216 i.$refs[t] = e.find(".fancybox-" + t); 217 }), 218 (!a.arrows || i.group.length < 2) && e.find(".fancybox-navigation").remove(), 219 a.infobar || i.$refs.infobar.remove(), 220 a.toolbar || i.$refs.toolbar.remove(), 221 i.trigger("onInit"), 222 i.activate(), 223 i.jumpTo(i.currIndex); 224 }, 225 translate: function (t, e) { 226 var n = t.opts.i18n[t.opts.lang]; 227 return e.replace(/\{\{(\w+)\}\}/g, function (t, e) { 228 var i = n[e]; 229 return i === o ? t : i; 230 }); 231 }, 232 createGroup: function (t) { 233 var e = this, 234 i = n.makeArray(t); 235 n.each(i, function (t, i) { 236 var a, 237 s, 238 r, 239 c, 240 l = {}, 241 u = {}, 242 d = []; 243 n.isPlainObject(i) 244 ? ((l = i), (u = i.opts || i)) 245 : "object" === n.type(i) && n(i).length 246 ? ((a = n(i)), 247 (d = a.data()), 248 (u = "options" in d ? d.options : {}), 249 (u = "object" === n.type(u) ? u : {}), 250 (l.src = "src" in d ? d.src : u.src || a.attr("href")), 251 ["width", "height", "thumb", "type", "filter"].forEach(function (t) { 252 t in d && (u[t] = d[t]); 253 }), 254 "srcset" in d && (u.image = { srcset: d.srcset }), 255 (u.$orig = a), 256 l.type || l.src || ((l.type = "inline"), (l.src = i))) 257 : (l = { type: "html", src: i + "" }), 258 (l.opts = n.extend(!0, {}, e.opts, u)), 259 n.fancybox.isMobile && (l.opts = n.extend(!0, {}, l.opts, l.opts.mobile)), 260 (s = l.type || l.opts.type), 261 (r = l.src || ""), 262 !s && 263 r && 264 (r.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i) 265 ? (s = "image") 266 : r.match(/\.(pdf)((\?|#).*)?$/i) 267 ? (s = "pdf") 268 : "#" === r.charAt(0) && (s = "inline")), 269 (l.type = s), 270 (l.index = e.group.length),
271 l.opts.$orig && !l.opts.$orig.length && delete l.opts.$orig, 272 !l.opts.$thumb && l.opts.$orig && (l.opts.$thumb = l.opts.$orig.find("img:first")), 273 l.opts.$thumb && !l.opts.$thumb.length && delete l.opts.$thumb, 274 "function" === n.type(l.opts.caption) 275 ? (l.opts.caption = l.opts.caption.apply(i, [e, l])) 276 : "caption" in d && (l.opts.caption = d.caption), 277 (l.opts.caption = l.opts.caption === o ? "" : l.opts.caption + ""), 278 "ajax" === s && 279 ((c = r.split(/\s+/, 2)), c.length > 1 && ((l.src = c.shift()), (l.opts.filter = c.shift()))), 280 "auto" == l.opts.smallBtn && 281 (n.inArray(s, ["html", "inline", "ajax"]) > -1 282 ? ((l.opts.toolbar = !1), (l.opts.smallBtn = !0)) 283 : (l.opts.smallBtn = !1)), 284 "pdf" === s && ((l.type = "iframe"), (l.opts.iframe.preload = !1)), 285 l.opts.modal && 286 (l.opts = n.extend(!0, l.opts, { 287 infobar: 0, 288 toolbar: 0, 289 smallBtn: 0, 290 keyboard: 0, 291 slideShow: 0, 292 fullScreen: 0, 293 thumbs: 0, 294 touch: 0, 295 clickContent: !1, 296 clickSlide: !1, 297 clickOutside: !1, 298 dblclickContent: !1, 299 dblclickSlide: !1, 300 dblclickOutside: !1, 301 })), 302 e.group.push(l); 303 }); 304 }, 305 addEvents: function () { 306 var o = this; 307 o.removeEvents(), 308 o.$refs.container 309 .on("click.fb-close", "[data-fancybox-close]", function (t) { 310 t.stopPropagation(), t.preventDefault(), o.close(t); 311 }) 312 .on("click.fb-prev touchend.fb-prev", "[data-fancybox-prev]", function (t) { 313 t.stopPropagation(), t.preventDefault(), o.previous(); 314 }) 315 .on("click.fb-next touchend.fb-next", "[data-fancybox-next]", function (t) { 316 t.stopPropagation(), t.preventDefault(), o.next(); 317 }), 318 s.on("orientationchange.fb resize.fb", function (t) { 319 t && t.originalEvent && "resize" === t.originalEvent.type 320 ? u(function () { 321 o.update(); 322 }) 323 : (o.$refs.stage.hide(), 324 setTimeout(function () { 325 o.$refs.stage.show(), o.update(); 326 }, 500)); 327 }), 328 r.on("focusin.fb", function (t) { 329 var i = n.fancybox ? n.fancybox.getInstance() : null; 330 i.isClosing || 331 !i.current || 332 !i.current.opts.trapFocus || 333 n(t.target).hasClass("fancybox-container") || 334 n(t.target).is(e) || 335 (i && 336 "fixed" !== n(t.target).css("position") && 337 !i.$refs.container.has(t.target).length && 338 (t.stopPropagation(), i.focus(), s.scrollTop(o.scrollTop).scrollLeft(o.scrollLeft))); 339 }),
340 r.on("keydown.fb", function (t) { 341 var e = o.current, 342 i = t.keyCode || t.which; 343 if (e && e.opts.keyboard && !n(t.target).is("input") && !n(t.target).is("textarea")) 344 return 8 === i || 27 === i 345 ? (t.preventDefault(), void o.close(t)) 346 : 37 === i || 38 === i 347 ? (t.preventDefault(), void o.previous()) 348 : 39 === i || 40 === i 349 ? (t.preventDefault(), void o.next()) 350 : void o.trigger("afterKeydown", t, i); 351 }), 352 o.group[o.currIndex].opts.idleTime && 353 ((o.idleSecondsCounter = 0), 354 r.on( 355 "mousemove.fb-idle mouseenter.fb-idle mousaleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle", 356 function () { 357 (o.idleSecondsCounter = 0), o.isIdle && o.showControls(), (o.isIdle = !1); 358 } 359 ), 360 (o.idleInterval = t.setInterval(function () { 361 o.idleSecondsCounter++, 362 o.idleSecondsCounter >= o.group[o.currIndex].opts.idleTime && 363 ((o.isIdle = !0), (o.idleSecondsCounter = 0), o.hideControls()); 364 }, 1e3))); 365 }, 366 removeEvents: function () { 367 var e = this; 368 s.off("orientationchange.fb resize.fb"), 369 r.off("focusin.fb keydown.fb .fb-idle"), 370 this.$refs.container.off(".fb-close .fb-prev .fb-next"), 371 e.idleInterval && (t.clearInterval(e.idleInterval), (e.idleInterval = null)); 372 }, 373 previous: function (t) { 374 return this.jumpTo(this.currPos - 1, t); 375 }, 376 next: function (t) { 377 return this.jumpTo(this.currPos + 1, t); 378 }, 379 jumpTo: function (t, e, i) { 380 var a, 381 s, 382 r, 383 c, 384 l, 385 u, 386 d, 387 h = this, 388 p = h.group.length; 389 if (!(h.isSliding || h.isClosing || (h.isAnimating && h.firstRun))) { 390 if (((t = parseInt(t, 10)), (s = h.current ? h.current.opts.loop : h.opts.loop), !s && (t < 0 || t >= p))) 391 return !1; 392 if (((a = h.firstRun = null === h.firstRun), !(p < 2 && !a && h.isSliding))) { 393 if ( 394 ((c = h.current), 395 (h.prevIndex = h.currIndex), 396 (h.prevPos = h.currPos), 397 (r = h.createSlide(t)), 398 p > 1 && ((s || r.index > 0) && h.createSlide(t - 1), (s || r.index < p - 1) && h.createSlide(t + 1)), 399 (h.current = r), 400 (h.currIndex = r.index), 401 (h.currPos = r.pos), 402 h.trigger("beforeShow", a), 403 h.updateControls(), 404 (u = n.fancybox.getTranslate(r.$slide)), 405 (r.isMoved = (0 !== u.left || 0 !== u.top) && !r.$slide.hasClass("fancybox-animated")), 406 (r.forcedDuration = o), 407 n.isNumeric(e) ? (r.forcedDuration = e) : (e = r.opts[a ? "animationDuration" : "transitionDuration"]), 408 (e = parseInt(e, 10)), 409 a) 410 ) 411 return ( 412 r.opts.animationEffect && e && h.$refs.container.css("transition-duration", e + "ms"), 413 h.$refs.container.removeClass("fancybox-is-hidden"), 414 f(h.$refs.container), 415 h.$refs.container.addClass("fancybox-is-open"),
416 r.$slide.addClass("fancybox-slide--current"), 417 h.loadSlide(r), 418 void h.preload() 419 ); 420 n.each(h.slides, function (t, e) { 421 n.fancybox.stop(e.$slide); 422 }), 423 r.$slide.removeClass("fancybox-slide--next fancybox-slide--previous").addClass("fancybox-slide--current"), 424 r.isMoved 425 ? ((l = Math.round(r.$slide.width())), 426 n.each(h.slides, function (t, o) { 427 var i = o.pos - r.pos; 428 n.fancybox.animate(o.$slide, { top: 0, left: i * l + i * o.opts.gutter }, e, function () { 429 o.$slide.removeAttr("style").removeClass("fancybox-slide--next fancybox-slide--previous"), 430 o.pos === h.currPos && ((r.isMoved = !1), h.complete()); 431 }); 432 })) 433 : h.$refs.stage.children().removeAttr("style"), 434 r.isLoaded ? h.revealContent(r) : h.loadSlide(r), 435 h.preload(), 436 c.pos !== r.pos && 437 ((d = "fancybox-slide--" + (c.pos > r.pos ? "next" : "previous")), 438 c.$slide.removeClass( 439 "fancybox-slide--complete fancybox-slide--current fancybox-slide--next fancybox-slide--previous" 440 ), 441 (c.isComplete = !1), 442 e && 443 (r.isMoved || r.opts.transitionEffect) && 444 (r.isMoved 445 ? c.$slide.addClass(d) 446 : ((d = "fancybox-animated " + d + " fancybox-fx-" + r.opts.transitionEffect), 447 n.fancybox.animate(c.$slide, d, e, function () { 448 c.$slide.removeClass(d).removeAttr("style"); 449 })))); 450 } 451 } 452 }, 453 createSlide: function (t) { 454 var e, 455 o, 456 i = this; 457 return ( 458 (o = t % i.group.length), 459 (o = o < 0 ? i.group.length + o : o), 460 !i.slides[t] && 461 i.group[o] && 462 ((e = n('<div class="fancybox-slide"></div>').appendTo(i.$refs.stage)), 463 (i.slides[t] = n.extend(!0, {}, i.group[o], { pos: t, $slide: e, isLoaded: !1 })), 464 i.updateSlide(i.slides[t])), 465 i.slides[t] 466 ); 467 }, 468 scaleToActual: function (t, e, i) { 469 var a, 470 s, 471 r, 472 c, 473 l, 474 u = this, 475 d = u.current, 476 f = d.$content, 477 h = parseInt(d.$slide.width(), 10), 478 p = parseInt(d.$slide.height(), 10), 479 g = d.width, 480 b = d.height; 481 "image" != d.type || 482 d.hasError || 483 !f || 484 u.isAnimating || 485 (n.fancybox.stop(f), 486 (u.isAnimating = !0), 487 (t = t === o ? 0.5 * h : t), 488 (e = e === o ? 0.5 * p : e), 489 (a = n.fancybox.getTranslate(f)), 490 (c = g / a.width), 491 (l = b / a.height), 492 (s = 0.5 * h - 0.5 * g), 493 (r = 0.5 * p - 0.5 * b), 494 g > h && ((s = a.left * c - (t * c - t)), s > 0 && (s = 0), s < h - g && (s = h - g)), 495 b > p && ((r = a.top * l - (e * l - e)), r > 0 && (r = 0), r < p - b && (r = p - b)), 496 u.updateCursor(g, b), 497 n.fancybox.animate(f, { top: r, left: s, scaleX: c, scaleY: l }, i || 330, function () { 498 u.isAnimating = !1; 499 }), 500 u.SlideShow && u.SlideShow.isActive && u.SlideShow.stop()); 501 }, 502 scaleToFit: function (t) { 503 var e, 504 o = this, 505 i = o.current, 506 a = i.$content; 507 "image" != i.type || 508 i.hasError || 509 !a || 510 o.isAnimating || 511 (n.fancybox.stop(a), 512 (o.isAnimating = !0), 513 (e = o.getFitPos(i)), 514 o.updateCursor(e.width, e.height), 515 n.fancybox.animate( 516 a, 517 { top: e.top, left: e.left, scaleX: e.width / a.width(), scaleY: e.height / a.height() }, 518 t || 330, 519 function () { 520 o.isAnimating = !1; 521 } 522 )); 523 }, 524 getFitPos: function (t) { 525 var e, 526 o, 527 i, 528 a, 529 r, 530 c = this, 531 l = t.$content, 532 u = t.width, 533 d = t.height, 534 f = t.opts.margin; 535 return ( 536 !(!l || !l.length || (!u && !d)) && 537 ("number" === n.type(f) && (f = [f, f]), 538 2 == f.length && (f = [f[0], f[1], f[0], f[1]]), 539 s.width() < 800 && (f = [0, 0, 0, 0]), 540 (e = parseInt(c.$refs.stage.width(), 10) - (f[1] + f[3])), 541 (o = parseInt(c.$refs.stage.height(), 10) - (f[0] + f[2])), 542 (i = Math.min(1, e / u, o / d)), 543 (a = Math.floor(i * u)), 544 (r = Math.floor(i * d)), 545 { top: Math.floor(0.5 * (o - r)) + f[0], left: Math.floor(0.5 * (e - a)) + f[3], width: a, height: r }) 546 ); 547 }, 548 update: function () { 549 var t = this; 550 n.each(t.slides, function (e, n) { 551 t.updateSlide(n); 552 }); 553 }, 554 updateSlide: function (t) { 555 var e = this, 556 o = t.$content; 557 o && 558 (t.width || t.height) && 559 (n.fancybox.stop(o), n.fancybox.setTranslate(o, e.getFitPos(t)), t.pos === e.currPos && e.updateCursor(
559)), 560 t.$slide.trigger("refresh"), 561 e.trigger("onUpdate", t); 562 }, 563 updateCursor: function (t, e) { 564 var n, 565 i = this, 566 a = i.$refs.container.removeClass( 567 "fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-drag fancybox-can-zoomOut" 568 ); 569 i.current && 570 !i.isClosing && 571 (i.isZoomable() 572 ? (a.addClass("fancybox-is-zoomable"), 573 (n = t !== o && e !== o ? t < i.current.width && e < i.current.height : i.isScaledDown()), 574 n 575 ? a.addClass("fancybox-can-zoomIn") 576 : i.current.opts.touch 577 ? a.addClass("fancybox-can-drag") 578 : a.addClass("fancybox-can-zoomOut")) 579 : i.current.opts.touch && a.addClass("fancybox-can-drag")); 580 }, 581 isZoomable: function () { 582 var t, 583 e = this, 584 o = e.current; 585 if (o && !e.isClosing) 586 return !!( 587 "image" === o.type && 588 o.isLoaded && 589 !o.hasError && 590 ("zoom" === o.opts.clickContent || 591 (n.isFunction(o.opts.clickContent) && "zoom" === o.opts.clickContent(o))) && 592 ((t = e.getFitPos(o)), o.width > t.width || o.height > t.height) 593 ); 594 }, 595 isScaledDown: function () { 596 var t = this, 597 e = t.current, 598 o = e.$content, 599 i = !1; 600 return o && ((i = n.fancybox.getTranslate(o)), (i = i.width < e.width || i.height < e.height)), i; 601 }, 602 canPan: function () { 603 var t = this, 604 e = t.current, 605 n = e.$content, 606 o = !1; 607 return ( 608 n && ((o = t.getFitPos(e)), (o = Math.abs(n.width() - o.width) > 1 || Math.abs(n.height() - o.height) > 1)), o 609 ); 610 }, 611 loadSlide: function (t) { 612 var e, 613 o, 614 i, 615 a = this; 616 if (!t.isLoading && !t.isLoaded) { 617 switch ( 618 ((t.isLoading = !0), 619 a.trigger("beforeLoad", t), 620 (e = t.type), 621 (o = t.$slide), 622 o 623 .off("refresh") 624 .trigger("onReset") 625 .addClass("fancybox-slide--" + (e || "unknown")) 626 .addClass(t.opts.slideClass), 627 e) 628 ) { 629 case "image": 630 a.setImage(t); 631 break; 632 case "iframe": 633 a.setIframe(t); 634 break; 635 case "html": 636 a.setContent(t, t.src || t.content); 637 break; 638 case "inline": 639 n(t.src).length ? a.setContent(t, n(t.src)) : a.setError(t); 640 break; 641 case "ajax": 642 a.showLoading(t), 643 (i = n.ajax( 644 n.extend({}, t.opts.ajax.settings, { 645 url: t.src, 646 success: function (e, n) { 647 "success" === n && a.setContent(t, e); 648 }, 649 error: function (e, n) { 650 e && "abort" !== n && a.setError(t); 651 }, 652 }) 653 )), 654 o.one("onReset", function () { 655 i.abort(); 656 }); 657 break; 658 default: 659 a.setError(t); 660 } 661 return !0; 662 } 663 }, 664 setImage: function (e) { 665 var o, 666 i, 667 a, 668 s, 669 r = this, 670 c = e.opts.image.srcset; 671 if (c) { 672 (a = t.devicePixelRatio || 1), 673 (s = t.innerWidth * a), 674 (i = c.split(",").map(function (t) { 675 var e = {}; 676 return ( 677 t 678 .trim() 679 .split(/\s+/) 680 .forEach(function (t, n) { 681 var o = parseInt(t.substring(0, t.length - 1), 10); 682 return 0 === n ? (e.url = t) : void (o && ((e.value = o), (e.postfix = t[t.length - 1]))); 683 }), 684 e 685 ); 686 })), 687 i.sort(function (t, e) { 688 return t.value - e.value; 689 }); 690 for (var l = 0; l < i.length; l++) { 691 var u = i[l]; 692 if (("w" === u.postfix && u.value >= s) || ("x" === u.postfix && u.value >= a)) { 693 o = u; 694 break; 695 } 696 } 697 !o && i.length && (o = i[i.length - 1]), 698 o && 699 ((e.src = o.url), 700 e.width && 701 e.height && 702 "w" == o.postfix && 703 ((e.height = (e.width / e.height) * o.value), (e.width = o.value))); 704 } 705 (e.$content = n('<div class="fancybox-image-wrap"></div>').addClass("fancybox-is-hidden").appendTo(e.$slide)), 706 e.opts.preload !== !1 && e.opts.width && e.opts.height && (e.opts.thumb || e.opts.$thumb) 707 ? ((e.width = e.opts.width), 708 (e.height = e.opts.height), 709 (e.$ghost = n("<img />") 710 .one("error", function () { 711 n(this).remove(), (e.$ghost = null), r.setBigImage(e); 712 }) 713 .one("load", function () { 714 r.afterLoad(e), r.setBigImage(e); 715 }) 716 .addClass("fancybox-image") 717 .appendTo(e.$content) 718 .attr("src", e.opts.thumb || e.opts.$thumb.attr("src")))) 719 : r.setBigImage(e); 720 }, 721 setBigImage: function (t) { 722 var e = this, 723 o = n("<img />"); 724 (t.$image = o 725 .one("error", function () { 726 e.setError(t); 727 }) 728 .one("load", function () { 729 clearTimeout(t.timouts), 730 (t.timouts = null),
731 e.isClosing || 732 ((t.width = this.naturalWidth), 733 (t.height = this.naturalHeight), 734 t.opts.image.srcset && o.attr("sizes", "100vw").attr("srcset", t.opts.image.srcset), 735 e.hideLoading(t), 736 t.$ghost 737 ? (t.timouts = setTimeout(function () { 738 (t.timouts = null), t.$ghost.hide(); 739 }, Math.min(300, Math.max(1e3, t.height / 1600)))) 740 : e.afterLoad(t)); 741 }) 742 .addClass("fancybox-image") 743 .attr("src", t.src) 744 .appendTo(t.$content)), 745 o[0].complete 746 ? o.trigger("load") 747 : o[0].error 748 ? o.trigger("error") 749 : (t.timouts = setTimeout(function () { 750 o[0].complete || t.hasError || e.showLoading(t); 751 }, 100)); 752 }, 753 setIframe: function (t) { 754 var e, 755 i = this, 756 a = t.opts.iframe, 757 s = t.$slide; 758 (t.$content = n('<div class="fancybox-content' + (a.preload ? " fancybox-is-hidden" : "") + '"></div>') 759 .css(a.css) 760 .appendTo(s)), 761 (e = n(a.tpl.replace(/\{rnd\}/g, new Date().getTime())) 762 .attr(a.attr) 763 .appendTo(t.$content)), 764 a.preload 765 ? (i.showLoading(t), 766 e.on("load.fb error.fb", function (e) { 767 (this.isReady = 1), t.$slide.trigger("refresh"), i.afterLoad(t); 768 }), 769 s.on("refresh.fb", function () { 770 var n, 771 i, 772 s, 773 r, 774 c, 775 l = t.$content; 776 if (1 === e[0].isReady) { 777 try { 778 (n = e.contents()), (i = n.find("body")); 779 } catch (t) {} 780 i && 781 i.length && 782 (a.css.width === o || a.css.height === o) && 783 ((s = e[0].contentWindow.document.documentElement.scrollWidth), 784 (r = Math.ceil(i.outerWidth(!0) + (l.width() - s))), 785 (c = Math.ceil(i.outerHeight(!0))), 786 l.css({ 787 width: a.css.width === o ? r + (l.outerWidth() - l.innerWidth()) : a.css.width, 788 height: a.css.height === o ? c + (l.outerHeight() - l.innerHeight()) : a.css.height, 789 })), 790 l.removeClass("fancybox-is-hidden"); 791 } 792 })) 793 : this.afterLoad(t), 794 e.attr("src", t.src), 795 t.opts.smallBtn === !0 && t.$content.prepend(i.translate(t, t.opts.btnTpl.smallBtn)), 796 s.one("onReset", function () { 797 try { 798 n(this).find("iframe").hide().attr("src", "//about:blank"); 799 } catch (t) {} 800 n(this).empty(), (t.isLoaded = !1); 801 }); 802 }, 803 setContent: function (t, e) { 804 var o = this; 805 o.isClosing || 806 (o.hideLoading(t), 807 t.$slide.empty(), 808 l(e) && e.parent().length 809 ? (e.parent(".fancybox-slide--inline").trigger("onReset"), 810 (t.$placeholder = n("<div></div>").hide().insertAfter(e)), 811 e.css("display", "inline-block")) 812 : t.hasError || 813 ("string" === n.type(e) && 814 ((e = n("<div>").append(n.trim(e)).contents()), 3 === e[0].nodeType && (e = n("<div>").html(e))), 815 t.opts.filter && (e = n("<div>").html(e).find(t.opts.filter))), 816 t.$slide.one("onReset", function () { 817 t.$placeholder && (t.$placeholder.after(e.hide()).remove(), (t.$placeholder = null)), 818 t.$smallBtn && (t.$smallBtn.remove(), (t.$smallBtn = null)), 819 t.hasError || (n(this).empty(), (t.isLoaded = !1)); 820 }), 821 (t.$content = n(e).appendTo(t.$slide)), 822 t.opts.smallBtn && 823 !t.$smallBtn && 824 (t.$smallBtn = n(o.translate(t, t.opts.btnTpl.smallBtn)).appendTo(t.$content)), 825 this.afterLoad(t)); 826 }, 827 setError: function (t) { 828 (t.hasError = !0), 829 t.$slide.removeClass("fancybox-slide--" + t.type), 830 this.setContent(t, this.translate(t, t.opts.errorTpl)); 831 }, 832 showLoading: function (t) { 833 var e = this; 834 (t = t || e.current), t && !t.$spinner && (t.$spinner = n(e.opts.spinnerTpl).appendTo(t.$slide)); 835 }, 836 hideLoading: function (t) { 837 var e = this; 838 (t = t || e.current), t && t.$spinner && (t.$spinner.remove(), delete t.$spinner); 839 }, 840 afterLoad: function (t) { 841 var e = this; 842 e.isClosing || 843 ((t.isLoading = !1), 844 (t.isLoaded = !0), 845 e.trigger("afterLoad", t), 846 e.hideLoading(t), 847 t.opts.protect && 848 t.$content && 849 !t.hasError && 850 (t.$content.on("contextmenu.fb", function (t) { 851 return 2 == t.button && t.preventDefault(), !0; 852 }), 853 "image" === t.type && n('<div class="fancybox-spaceball"></div>').appendTo(t.$content)), 854 e.revealContent(t)); 855 }, 856 revealContent: function (t) { 857 var e, 858 i, 859 a, 860 s, 861 r, 862 c = this, 863 l = t.$slide, 864 u = !1; 865 return ( 866 (e = t.opts[c.firstRun ? "animationEffect" : "transitionEffect"]), 867 (a = t.opts[c.firstRun ? "animationDuration" : "transitionDuration"]), 868 (a = parseInt(t.forcedDuration === o ? a : t.forcedDuration, 10)), 869 (!t.isMoved && t.pos === c.currPos && a) || (e = !1), 870 "zoom" !== e || 871 (t.pos === c.currPos && a && "image" === t.type && !t.hasError && (u = c.getThumbPos(t))) || 872 (e = "fade"), 873 "zoom" === e 874 ? ((r = c.getFitPos(t)), 875 (r.scaleX = Math.round((r.width / u.width) * 100) / 100), 876 (r.scaleY = Math.round((r.height / u.height) * 100) / 100), 877 delete r.width, 878 delete r.height, 879 (s = t.opts.zoomOpacity), 880 "auto" == s && (s = Math.abs(t.width / t.height - u.width / u.height) > 0.1), 881 s && ((u.opacity = 0.1), (r.opacity = 1)), 882 n.fancybox.setTranslate(t.$content.removeClass("fancybox-is-hidden"), u),
883 f(t.$content), 884 void n.fancybox.animate(t.$content, r, a, function () { 885 c.complete(); 886 })) 887 : (c.updateSlide(t), 888 e 889 ? (n.fancybox.stop(l), 890 (i = 891 "fancybox-animated fancybox-slide--" + 892 (t.pos > c.prevPos ? "next" : "previous") + 893 " fancybox-fx-" + 894 e), 895 l 896 .removeAttr("style") 897 .removeClass("fancybox-slide--current fancybox-slide--next fancybox-slide--previous") 898 .addClass(i), 899 t.$content.removeClass("fancybox-is-hidden"), 900 f(l), 901 void n.fancybox.animate( 902 l, 903 "fancybox-slide--current", 904 a, 905 function (e) { 906 l.removeClass(i).removeAttr("style"), t.pos === c.currPos && c.complete(); 907 }, 908 !0 909 )) 910 : (f(l), t.$content.removeClass("fancybox-is-hidden"), void (t.pos === c.currPos && c.complete()))) 911 ); 912 }, 913 getThumbPos: function (o) { 914 var i, 915 a = this, 916 s = !1, 917 r = function (e) { 918 for (var o, i = e[0], a = i.getBoundingClientRect(), s = []; null !== i.parentElement; ) 919 ("hidden" !== n(i.parentElement).css("overflow") && "auto" !== n(i.parentElement).css("overflow")) || 920 s.push(i.parentElement.getBoundingClientRect()), 921 (i = i.parentElement); 922 return ( 923 (o = s.every(function (t) { 924 var e = Math.min(a.right, t.right) - Math.max(a.left, t.left), 925 n = Math.min(a.bottom, t.bottom) - Math.max(a.top, t.top); 926 return e > 0 && n > 0; 927 })), 928 o && a.bottom > 0 && a.right > 0 && a.left < n(t).width() && a.top < n(t).height() 929 ); 930 }, 931 c = o.opts.$thumb, 932 l = c ? c.offset() : 0; 933 return ( 934 l && 935 c[0].ownerDocument === e && 936 r(c) && 937 ((i = a.$refs.stage.offset()), 938 (s = { 939 top: l.top - i.top + parseFloat(c.css("border-top-width") || 0), 940 left: l.left - i.left + parseFloat(c.css("border-left-width") || 0), 941 width: c.width(), 942 height: c.height(), 943 scaleX: 1, 944 scaleY: 1, 945 })), 946 s 947 ); 948 }, 949 complete: function () { 950 var t = this, 951 o = t.current, 952 i = {}; 953 o.isMoved || 954 !o.isLoaded || 955 o.isComplete || 956 ((o.isComplete = !0), 957 o.$slide.siblings().trigger("onReset"), 958 f(o.$slide), 959 o.$slide.addClass("fancybox-slide--complete"), 960 n.each(t.slides, function (e, o) { 961 o.pos >= t.currPos - 1 && o.pos <= t.currPos + 1 962 ? (i[o.pos] = o) 963 : o && (n.fancybox.stop(o.$slide), o.$slide.unbind().remove()); 964 }), 965 (t.slides = i), 966 t.updateCursor(), 967 t.trigger("afterShow"), 968 (n(e.activeElement).is("[disabled]") || (o.opts.autoFocus && "image" != o.type && "iframe" !== o.type)) && 969 t.focus()); 970 }, 971 preload: function () { 972 var t, 973 e, 974 n = this; 975 n.group.length < 2 || 976 ((t = n.slides[n.currPos + 1]), 977 (e = n.slides[n.currPos - 1]), 978 t && "image" === t.type && n.loadSlide(t), 979 e && "image" === e.type && n.loadSlide(e)); 980 }, 981 focus: function () { 982 var t, 983 e = this.current; 984 this.isClosing || 985 ((t = 986 e && e.isComplete 987 ? e.$slide.find("button,:input,[tabindex],a").filter(":not([disabled]):visible:first") 988 : null), 989 (t = t && t.length ? t : this.$refs.container), 990 t.focus()); 991 }, 992 activate: function () { 993 var t = this; 994 n(".fancybox-container").each(function () { 995 var e = n(this).data("FancyBox"); 996 e && e.uid !== t.uid && !e.isClosing && e.trigger("onDeactivate"); 997 }), 998 t.current && (t.$refs.container.index() > 0 && t.$refs.container.prependTo(e.body), t.updateControls()), 999 t.trigger("onActivate"), 1000 t.addEvents(); 1001 }, 1002 close: function (t, e) { 1003 var o, 1004 i, 1005 a, 1006 s, 1007 r, 1008 c, 1009 l = this, 1010 f = l.current, 1011 h = function () { 1012 l.cleanUp(t); 1013 }; 1014 return ( 1015 !l.isClosing && 1016 ((l.isClosing = !0), 1017 l.trigger("beforeClose", t) === !1 1018 ? ((l.isClosing = !1), 1019 u(function () { 1020 l.update(); 1021 }), 1022 !1) 1023 : (l.removeEvents(), 1024 f.timouts && clearTimeout(f.timouts), 1025 (a = f.$content), 1026 (o = f.opts.animationEffect), 1027 (i = n.isNumeric(e) ? e : o ? f.opts.animationDuration : 0), 1028 f.$slide 1029 .off(d) 1030 .removeClass( 1031 "fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated" 1032 ), 1033 f.$slide.siblings().trigger("onReset").remove(), 1034 i && l.$refs.container.removeClass("fancybox-is-open").addClass("fancybox-is-closing"), 1035 l.hideLoading(f), 1036 l.hideControls(),
1037 l.updateCursor(), 1038 "zoom" !== o || 1039 (t !== !0 && a && i && "image" === f.type && !f.hasError && (c = l.getThumbPos(f))) || 1040 (o = "fade"), 1041 "zoom" === o 1042 ? (n.fancybox.stop(a), 1043 (r = n.fancybox.getTranslate(a)), 1044 (r.width = r.width * r.scaleX), 1045 (r.height = r.height * r.scaleY), 1046 (s = f.opts.zoomOpacity), 1047 "auto" == s && (s = Math.abs(f.width / f.height - c.width / c.height) > 0.1), 1048 s && (c.opacity = 0), 1049 (r.scaleX = r.width / c.width), 1050 (r.scaleY = r.height / c.height), 1051 (r.width = c.width), 1052 (r.height = c.height), 1053 n.fancybox.setTranslate(f.$content, r), 1054 n.fancybox.animate(f.$content, c, i, h), 1055 !0) 1056 : (o && i 1057 ? t === !0 1058 ? setTimeout(h, i) 1059 : n.fancybox.animate( 1060 f.$slide.removeClass("fancybox-slide--current"), 1061 "fancybox-animated fancybox-slide--previous fancybox-fx-" + o, 1062 i, 1063 h 1064 ) 1065 : h(), 1066 !0))) 1067 ); 1068 }, 1069 cleanUp: function (t) { 1070 var e, 1071 o = this; 1072 o.current.$slide.trigger("onReset"), 1073 o.$refs.container.empty().remove(), 1074 o.trigger("afterClose", t), 1075 o.$lastFocus && !o.current.focusBack && o.$lastFocus.focus(), 1076 (o.current = null), 1077 (e = n.fancybox.getInstance()), 1078 e 1079 ? e.activate() 1080 : (s.scrollTop(o.scrollTop).scrollLeft(o.scrollLeft), 1081 n("html").removeClass("fancybox-enabled"), 1082 n("#fancybox-style-noscroll").remove()); 1083 }, 1084 trigger: function (t, e) { 1085 var o, 1086 i = Array.prototype.slice.call(arguments, 1), 1087 a = this, 1088 s = e && e.opts ? e : a.current; 1089 return ( 1090 s ? i.unshift(s) : (s = a), 1091 i.unshift(a), 1092 n.isFunction(s.opts[t]) && (o = s.opts[t].apply(s, i)), 1093 o === !1 ? o : void ("afterClose" === t ? r.trigger(t + ".fb", i) : a.$refs.container.trigger(t + ".fb", i)) 1094 ); 1095 }, 1096 updateControls: function (t) { 1097 var e = this, 1098 o = e.current, 1099 i = o.index, 1100 a = o.opts, 1101 s = a.caption, 1102 r = e.$refs.caption; 1103 o.$slide.trigger("refresh"), 1104 (e.$caption = s && s.length ? r.html(s) : null), 1105 e.isHiddenControls || e.showControls(), 1106 n("[data-fancybox-count]").html(e.group.length), 1107 n("[data-fancybox-index]").html(i + 1), 1108 n("[data-fancybox-prev]").prop("disabled", !a.loop && i <= 0), 1109 n("[data-fancybox-next]").prop("disabled", !a.loop && i >= e.group.length - 1); 1110 }, 1111 hideControls: function () { 1112 (this.isHiddenControls = !0), 1113 this.$refs.container.removeClass( 1114 "fancybox-show-infobar fancybox-show-toolbar fancybox-show-caption fancybox-show-nav" 1115 ); 1116 }, 1117 showControls: function () { 1118 var t = this, 1119 e = t.current ? t.current.opts : t.opts, 1120 n = t.$refs.container; 1121 (t.isHiddenControls = !1), 1122 (t.idleSecondsCounter = 0), 1123 n 1124 .toggleClass("fancybox-show-toolbar", !(!e.toolbar || !e.buttons)) 1125 .toggleClass("fancybox-show-infobar", !!(e.infobar && t.group.length > 1)) 1126 .toggleClass("fancybox-show-nav", !!(e.arrows && t.group.length > 1)) 1127 .toggleClass("fancybox-is-modal", !!e.modal), 1128 t.$caption ? n.addClass("fancybox-show-caption ") : n.removeClass("fancybox-show-caption"); 1129 }, 1130 toggleControls: function () { 1131 this.isHiddenControls ? this.showControls() : this.hideControls(); 1132 }, 1133 }), 1134 (n.fancybox = { 1135 version: "3.1.20", 1136 defaults: a, 1137 getInstance: function (t) { 1138 var e = n('.fancybox-container:not(".fancybox-is-closing"):first').data("FancyBox"), 1139 o = Array.prototype.slice.call(arguments, 1); 1140 return ( 1141 e instanceof h && ("string" === n.type(t) ? e[t].apply(e, o) : "function" === n.type(t) && t.apply(e, o), e) 1142 ); 1143 }, 1144 open: function (t, e, n) { 1145 return new h(t, e, n); 1146 }, 1147 close: function (t) { 1148 var e = this.getInstance(); 1149 e && (e.close(), t === !0 && this.close()); 1150 }, 1151 destroy: function () { 1152 this.close(!0), r.off("click.fb-start"); 1153 }, 1154 isMobile: e.createTouch !== o && /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent), 1155 use3d: (function () { 1156 var n = e.createElement("div"); 1157 return ( 1158 t.getComputedStyle && 1159 t.getComputedStyle(n).getPropertyValue("transform") && 1160 !(e.documentMode && e.documentMode < 11) 1161 ); 1162 })(), 1163 getTranslate: function (t) { 1164 var e; 1165 if (!t || !t.length) return !1; 1166 if ( 1167 ((e = t.eq(0).css("transform")), 1168 e && e.indexOf("matrix") !== -1 1169 ? ((e = e.split("(")[1]), (e = e.split(")")[0]), (e = e.split(","))) 1170 : (e = []), 1171 e.length) 1172 ) 1173 (e = e.length > 10 ? [e[13], e[12], e[0], e[5]] : [e[5], e[4], e[0], e[3]]), (e = e.map(parseFloat)); 1174 else { 1175 e = [0, 0, 1, 1]; 1176 var n = /\.*translate\((.*)px,(.*)px\)/i, 1177 o = n.exec(t.eq(0).attr("style")); 1178 o && ((e[0] = parseFloat(o[2])), (e[1] = parseFloat(o[1]))); 1179 } 1180 return { 1181 top: e[0], 1182 left: e[1], 1183 scaleX: e[2], 1184 scaleY: e[3], 1185 opacity: parseFloat(t.css("opacity")), 1186 width: t.width(), 1187 height: t.height(), 1188 }; 1189 }, 1190 setTranslate: function (t, e) { 1191 var n = "", 1192 i = {}; 1193 if (t && e) 1194 return ( 1195 (e.left === o && e.top === o) || 1196 ((n = 1197 (e.left === o ? t.position().left : e.left) + 1198 "px, " + 1199 (e.top === o ? t.position().top : e.top) + 1200 "px"), 1201 (n = this.use3d ? "translate3d(" + n + ", 0px)" : "translate(" + n + ")")), 1202 e.scaleX !== o && 1203 e.scaleY !== o && 1204 (n = (n.length ? n + " " : "") + "scale(" + e.scaleX + ", " + e.scaleY + ")"), 1205 n.length && (i.transform = n),
1206 e.opacity !== o && (i.opacity = e.opacity), 1207 e.width !== o && (i.width = e.width), 1208 e.height !== o && (i.height = e.height), 1209 t.css(i) 1210 ); 1211 }, 1212 animate: function (t, e, i, a, s) { 1213 var r = d || "transitionend"; 1214 n.isFunction(i) && ((a = i), (i = null)), 1215 n.isPlainObject(e) || t.removeAttr("style"), 1216 t.on(r, function (i) { 1217 (!i || !i.originalEvent || (t.is(i.originalEvent.target) && "z-index" != i.originalEvent.propertyName)) && 1218 (t.off(r), 1219 n.isPlainObject(e) 1220 ? e.scaleX !== o && 1221 e.scaleY !== o && 1222 (t.css("transition-duration", "0ms"), 1223 (e.width = t.width() * e.scaleX), 1224 (e.height = t.height() * e.scaleY), 1225 (e.scaleX = 1), 1226 (e.scaleY = 1), 1227 n.fancybox.setTranslate(t, e)) 1228 : s !== !0 && t.removeClass(e), 1229 n.isFunction(a) && a(i)); 1230 }), 1231 n.isNumeric(i) && t.css("transition-duration", i + "ms"), 1232 n.isPlainObject(e) ? n.fancybox.setTranslate(t, e) : t.addClass(e), 1233 t.data( 1234 "timer", 1235 setTimeout(function () { 1236 t.trigger("transitionend"); 1237 }, i + 16) 1238 ); 1239 }, 1240 stop: function (t) { 1241 clearTimeout(t.data("timer")), t.off(d); 1242 }, 1243 }), 1244 (n.fn.fancybox = function (t) { 1245 var e; 1246 return ( 1247 (t = t || {}), 1248 (e = t.salector || !1), 1249 e 1250 ? n("body") 1251 .off("click.fb-start", e) 1252 .on("click.fb-start", e, { items: n(e), options: t }, i) 1253 : this.off("click.fb-start").on("click.fb-start", { items: this, options: t }, i), 1254 this 1255 ); 1256 }), 1257 r.on("click.fb-start", "[data-fancybox]", i); 1258 } 1259})(window, document, window.jQuery), 1260 (function (t) { 1261 "use strict"; 1262 var e = function (e, n, o) { 1263 if (e) 1264 return ( 1265 (o = o || ""), 1266 "object" === t.type(o) && (o = t.param(o, !0)), 1267 t.each(n, function (t, n) { 1268 e = e.replace("$" + t, n || ""); 1269 }), 1270 o.length && (e += (e.indexOf("?") > 0 ? "&" : "?") + o), 1271 e 1272 ); 1273 }, 1274 n = { 1275 youtube: { 1276 matcher: 1277 /(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i, 1278 params: { autoplay: 1, autohide: 1, fs: 1, rel: 0, hd: 1, wmode: "transparent", enablejsapi: 1, html5: 1 }, 1279 paramPlace: 8, 1280 type: "iframe", 1281 url: "//www.youtube.com/embed/$4", 1282 thumb: "//img.youtube.com/vi/$4/hqdefault.jpg", 1283 }, 1284 vimeo: { 1285 matcher: /^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/, 1286 params: { autoplay: 1, hd: 1, show_title: 1, show_byline: 1, show_portrait: 0, fullscreen: 1, api: 1 }, 1287 paramPlace: 3, 1288 type: "iframe", 1289 url: "//player.vimeo.com/video/$2", 1290 }, 1291 metacafe: { 1292 matcher: /metacafe.com\/watch\/(\d+)\/(.*)?/, 1293 type: "iframe", 1294 url: "//www.metacafe.com/embed/$1/?ap=1", 1295 }, 1296 dailymotion: { 1297 matcher: /dailymotion.com\/video\/(.*)\/?(.*)/, 1298 params: { additionalInfos: 0, autoStart: 1 }, 1299 type: "iframe", 1300 url: "//www.dailymotion.com/embed/video/$1", 1301 }, 1302 vine: { matcher: /vine.co\/v\/([a-zA-Z0-9\?\=\-]+)/, type: "iframe", url: "//vine.co/v/$1/embed/simple" }, 1303 instagram: { 1304 matcher: /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i, 1305 type: "image", 1306 url: "//$1/p/$2/media/?size=l", 1307 }, 1308 google_maps: { 1309 matcher: 1310 /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i, 1311 type: "iframe", 1312 url: function (t) { 1313 return ( 1314 "//maps.google." + 1315 t[2] + 1316 "/?ll=" + 1317 (t[9] ? t[9] + "&z=" + Math.floor(t[10]) + (t[12] ? t[12].replace(/^\//, "&") : "") : t[12]) + 1318 "&output=" + 1319 (t[12] && t[12].indexOf("layer=c") > 0 ? "svembed" : "embed") 1320 ); 1321 }, 1322 }, 1323 }; 1324 t(document).on("onInit.fb", function (o, i) { 1325 t.each(i.group, function (o, i) { 1326 var a, 1327 s, 1328 r, 1329 c, 1330 l, 1331 u, 1332 d, 1333 f = i.src || "", 1334 h = !1; 1335 i.type || 1336 ((a = t.extend(!0, {}, n, i.opts.media)), 1337 t.each(a, function (n, o) { 1338 if (((r = f.match(o.matcher)), (u = {}), (d = n), r)) { 1339 if (((h = o.type), o.paramPlace && r[o.paramPlace])) { 1340 (l = r[o.paramPlace]), "?" == l[0] && (l = l.substring(1)), (l = l.split("&")); 1341 for (var a = 0; a < l.length; ++a) { 1342 var p = l[a].split("=", 2); 1343 2 == p.length && (u[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "))); 1344 } 1345 } 1346 return ( 1347 (c = t.extend(!0, {}, o.params, i.opts[n], u)), 1348 (f = "function" === t.type(o.url) ? o.url.call(this, r, c, i) : e(o.url, r, c)), 1349 (s = "function" === t.type(o.thumb) ? o.thumb.call(this, r, c, i) : e(o.thumb, r)), 1350 "vimeo" === d && (f = f.replace("&%23", "#")), 1351 !1 1352 ); 1353 } 1354 }), 1355 h 1356 ? ((i.src = f), 1357 (i.type = h), 1358 i.opts.thumb || (i.opts.$thumb && i.opts.$thumb.length) || (i.opts.thumb = s), 1359 "iframe" === h && 1360 (t.extend(!0, i.opts, { iframe: { preload: !1, attr: { scrolling: "no" } } }), 1361 (i.contentProvider = d), 1362 (i.opts.slideClass += " fancybox-slide--" + ("google_maps" == d ? "map" : "video")))) 1363 : (i.type = "image")); 1364 }); 1365 }); 1366 })(window.jQuery), 1367 (function (t, e, n) { 1368 "use strict"; 1369 var o = (function () { 1370 return ( 1371 t.requestAnimationFrame || 1372 t.webkitRequestAnimationFrame || 1373 t.mozRequestAnimationFrame || 1374 t.oRequestAnimationFrame || 1375 function (e) { 1376 return t.setTimeout(e, 1e3 / 60); 1377 } 1378 ); 1379 })(), 1380 i = (function () { 1381 return ( 1382 t.cancelAnimationFrame || 1383 t.webkitCancelAnimationFrame || 1384 t.mozCancelAnimationFrame || 1385 t.oCancelAnimationFrame || 1386 function (e) { 1387 t.clearTimeout(e); 1388 } 1389 ); 1390 })(), 1391 a = function (e) { 1392 var n = []; 1393 (e = e.originalEvent || e || t.e), 1394 (e = 1395 e.touches && e.touches.length 1396 ? e.touches 1397 : e.changedTouches && e.changedTouches.length 1398 ? e.changedTouches 1399 : [e]); 1400 for (var o in e) 1401 e[o].pageX 1402 ? n.push({ x: e[o].pageX, y: e[o].pageY }) 1403 : e[o].clientX && n.push({ x: e[o].clientX, y: e[o].clientY }); 1404 return n; 1405 }, 1406 s = function (t, e, n) { 1407 return e && t 1408 ? "x" === n 1409 ? t.x - e.x 1410 : "y" === n 1411 ? t.y - e.y 1412 : Math.sqrt(Math.pow(t.x - e.x, 2) + Math.pow(t.y - e.y, 2)) 1413 : 0; 1414 }, 1415 r = function (t) { 1416 if (t.is("a,button,input,salect,textarea") || n.isFunction(t.get(0).onclick)) return !0; 1417 for (var e = 0, o = t[0].attributes, i = o.length; e < i; e++) 1418 if ("data-fancybox-" === o[e].nodeName.substr(0, 14)) return !0; 1419 return !1; 1420 }, 1421 c = function (e) { 1422 var n = t.getComputedStyle(e)["overflow-y"], 1423 o = t.getComputedStyle(e)["overflow-x"], 1424 i = ("scroll" === n || "auto" === n) && e.scrollHeight > e.clientHeight, 1425 a = ("scroll" === o || "auto" === o) && e.scrollWidth > e.clientWidth; 1426 return i || a; 1427 }, 1428 l = function (t) { 1429 for (var e = !1; ; ) { 1430 if ((e = c(t.get(0)))) break; 1431 if (((t = t.parent()), !t.length || t.hasClass("fancybox-stage") || t.is("body"))) break; 1432 } 1433 return e; 1434 }, 1435 u = function (t) { 1436 var e = this; 1437 (e.instance = t), 1438 (e.$bg = t.$refs.bg), 1439 (e.$stage = t.$refs.stage), 1440 (e.$container = t.$refs.container), 1441 e.destroy(), 1442 e.$container.on("touchstart.fb.touch mousedown.fb.touch", n.proxy(e, "ontouchstart")); 1443 }; 1444 (u.prototype.destroy = function () { 1445 this.$container.off(".fb.touch"); 1446 }), 1447 (u.prototype.ontouchstart = function (o) { 1448 var i = this, 1449 c = n(o.target), 1450 u = i.instance, 1451 d = u.current, 1452 f = d.$content,
1453 h = "touchstart" == o.type; 1454 if ((h && i.$container.off("mousedown.fb.touch"), !d || i.instance.isAnimating || i.instance.isClosing)) 1455 return o.stopPropagation(), void o.preventDefault(); 1456 if ( 1457 (!o.originalEvent || 2 != o.originalEvent.button) && 1458 c.length && 1459 !r(c) && 1460 !r(c.parent()) && 1461 !(o.originalEvent.clientX > c[0].clientWidth + c.offset().left) && 1462 ((i.startPoints = a(o)), i.startPoints && !(i.startPoints.length > 1 && u.isSliding)) 1463 ) { 1464 if ( 1465 ((i.$target = c), 1466 (i.$content = f), 1467 (i.canTap = !0), 1468 n(e).off(".fb.touch"), 1469 n(e).on( 1470 h ? "touchend.fb.touch touchcancel.fb.touch" : "mouseup.fb.touch mousaleave.fb.touch", 1471 n.proxy(i, "ontouchend") 1472 ), 1473 n(e).on(h ? "touchmove.fb.touch" : "mousemove.fb.touch", n.proxy(i, "ontouchmove")), 1474 o.stopPropagation(), 1475 (!u.current.opts.touch && !u.canPan()) || (!c.is(i.$stage) && !i.$stage.find(c).length)) 1476 ) 1477 return void (c.is("img") && o.preventDefault()); 1478 (n.fancybox.isMobile && (l(i.$target) || l(i.$target.parent()))) || o.preventDefault(), 1479 (i.canvasWidth = Math.round(d.$slide[0].clientWidth)), 1480 (i.canvasHeight = Math.round(d.$slide[0].clientHeight)), 1481 (i.startTime = new Date().getTime()), 1482 (i.distanceX = i.distanceY = i.distance = 0), 1483 (i.isPanning = !1), 1484 (i.isSwiping = !1), 1485 (i.isZooming = !1), 1486 (i.sliderStartPos = i.sliderLastPos || { top: 0, left: 0 }), 1487 (i.contentStartPos = n.fancybox.getTranslate(i.$content)), 1488 (i.contentLastPos = null), 1489 1 !== i.startPoints.length || 1490 i.isZooming || 1491 ((i.canTap = !u.isSliding), 1492 "image" === d.type && 1493 (i.contentStartPos.width > i.canvasWidth + 1 || i.contentStartPos.height > i.canvasHeight + 1) 1494 ? (n.fancybox.stop(i.$content), i.$content.css("transition-duration", "0ms"), (i.isPanning = !0)) 1495 : (i.isSwiping = !0), 1496 i.$container.addClass("fancybox-controls--isGrabbing")), 1497 2 !== i.startPoints.length || 1498 u.isAnimating || 1499 d.hasError || 1500 "image" !== d.type || 1501 (!d.isLoaded && !d.$ghost) || 1502 ((i.isZooming = !0), 1503 (i.isSwiping = !1), 1504 (i.isPanning = !1), 1505 n.fancybox.stop(i.$content), 1506 i.$content.css("transition-duration", "0ms"), 1507 (i.centerPointStartX = 0.5 * (i.startPoints[0].x + i.startPoints[1].x) - n(t).scrollLeft()), 1508 (i.centerPointStartY = 0.5 * (i.startPoints[0].y + i.startPoints[1].y) - n(t).scrollTop()), 1509 (i.percentageOfImageAtPinchPointX = 1510 (i.centerPointStartX - i.contentStartPos.left) / i.contentStartPos.width), 1511 (i.percentageOfImageAtPinchPointY = 1512 (i.centerPointStartY - i.contentStartPos.top) / i.contentStartPos.height), 1513 (i.startDistanceBetweenFingers = s(i.startPoints[0], i.startPoints[1]))); 1514 } 1515 }), 1516 (u.prototype.ontouchmove = function (t) { 1517 var e = this; 1518 if (((e.newPoints = a(t)), n.fancybox.isMobile && (l(e.$target) || l(e.$target.parent())))) 1519 return t.stopPropagation(), void (e.canTap = !1); 1520 if ( 1521 (e.instance.current.opts.touch || e.instance.canPan()) && 1522 e.newPoints && 1523 e.newPoints.length && 1524 ((e.distanceX = s(e.newPoints[0], e.startPoints[0], "x")), 1525 (e.distanceY = s(e.newPoints[0], e.startPoints[0], "y")), 1526 (e.distance = s(e.newPoints[0], e.startPoints[0])), 1527 e.distance > 0) 1528 ) { 1529 if (!e.$target.is(e.$stage) && !e.$stage.find(e.$target).length) return; 1530 t.stopPropagation(), 1531 t.preventDefault(), 1532 e.isSwiping ? e.onSwipe() : e.isPanning ? e.onPan() : e.isZooming && e.onZoom(); 1533 } 1534 }), 1535 (u.prototype.onSwipe = function () { 1536 var e, 1537 a = this, 1538 s = a.isSwiping, 1539 r = a.sliderStartPos.left || 0; 1540 s === !0 1541 ? Math.abs(a.distance) > 10 && 1542 ((a.canTap = !1), 1543 a.instance.group.length < 2 && a.instance.opts.touch.vertical 1544 ? (a.isSwiping = "y") 1545 : a.instance.isSliding || 1546 a.instance.opts.touch.vertical === !1 || 1547 ("auto" === a.instance.opts.touch.vertical && n(t).width() > 800) 1548 ? (a.isSwiping = "x") 1549 : ((e = Math.abs((180 * Math.atan2(a.distanceY, a.distanceX)) / Math.PI)), 1550 (a.isSwiping = e > 45 && e < 135 ? "y" : "x")), 1551 (a.instance.isSliding = a.isSwiping), 1552 (a.startPoints = a.newPoints), 1553 n.each(a.instance.slides, function (t, e) { 1554 n.fancybox.stop(e.$slide), 1555 e.$slide.css("transition-duration", "0ms"), 1556 (e.inTransition = !1), 1557 e.pos === a.instance.current.pos && (a.sliderStartPos.left = n.fancybox.getTranslate(e.$slide).left); 1558 }), 1559 a.instance.SlideShow && a.instance.SlideShow.isActive && a.instance.SlideShow.stop()) 1560 : ("x" == s && 1561 (a.distanceX > 0 && 1562 (a.instance.group.length < 2 || (0 === a.instance.current.index && !a.instance.current.opts.loop)) 1563 ? (r += Math.pow(a.distanceX, 0.8)) 1564 : a.distanceX < 0 && 1565 (a.instance.group.length < 2 || 1566 (a.instance.current.index === a.instance.group.length - 1 && !a.instance.current.opts.loop)) 1567 ? (r -= Math.pow(-a.distanceX, 0.8)) 1568 : (r += a.distanceX)), 1569 (a.sliderLastPos = { top: "x" == s ? 0 : a.sliderStartPos.top + a.distanceY, left: r }), 1570 a.requestId && (i(a.requestId), (a.requestId = null)), 1571 (a.requestId = o(function () { 1572 a.sliderLastPos && 1573 (n.each(a.instance.slides, function (t, e) { 1574 var o = e.pos - a.instance.currPos; 1575 n.fancybox.setTranslate(e.$slide, { 1576 top: a.sliderLastPos.top, 1577 left: a.sliderLastPos.left + o * a.canvasWidth + o * e.opts.gutter, 1578 }); 1579 }), 1580 a.$container.addClass("fancybox-is-sliding")); 1581 }))); 1582 }), 1583 (u.prototype.onPan = function () { 1584 var t, 1585 e, 1586 a, 1587 s = this; 1588 (s.canTap = !1), 1589 (t = s.contentStartPos.width > s.canvasWidth ? s.contentStartPos.left + s.distanceX : s.contentStartPos.left), 1590 (e = s.contentStartPos.top + s.distanceY), 1591 (a = s.limitMovement(t, e, s.contentStartPos.width, s.contentStartPos.height)), 1592 (a.scaleX = s.contentStartPos.scaleX), 1593 (a.scaleY = s.contentStartPos.scaleY), 1594 (s.contentLastPos = a), 1595 s.requestId && (i(s.requestId), (s.requestId = null)), 1596 (s.requestId = o(function () { 1597 n.fancybox.setTranslate(s.$content, s.contentLastPos); 1598 })); 1599 }), 1600 (u.prototype.limitMovement = function (t, e, n, o) { 1601 var i, 1602 a, 1603 s, 1604 r, 1605 c = this, 1606 l = c.canvasWidth, 1607 u = c.canvasHeight, 1608 d = c.contentStartPos.left, 1609 f = c.contentStartPos.top, 1610 h = c.distanceX, 1611 p = c.distanceY; 1612 return ( 1613 (i = Math.max(0, 0.5 * l - 0.5 * n)), 1614 (a = Math.max(0, 0.5 * u - 0.5 * o)), 1615 (s = Math.min(l - n, 0.5 * l - 0.5 * n)), 1616 (r = Math.min(u - o, 0.5 * u - 0.5 * o)), 1617 n > l && 1618 (h > 0 && t > i && (t = i - 1 + Math.pow(-i + d + h, 0.8) || 0), 1619 h < 0 && t < s && (t = s + 1 - Math.pow(s - d - h, 0.8) || 0)), 1620 o > u && 1621 (p > 0 && e > a && (e = a - 1 + Math.pow(-a + f + p, 0.8) || 0), 1622 p < 0 && e < r && (e = r + 1 - Math.pow(r - f - p, 0.8) || 0)), 1623 { top: e, left: t } 1624 ); 1625 }), 1626 (u.prototype.limitPosition = function (t, e, n, o) { 1627 var i = this, 1628 a = i.canvasWidth, 1629 s = i.canvasHeight; 1630 return ( 1631 n > a ? ((t = t > 0 ? 0 : t), (t = t < a - n ? a - n : t)) : (t = Math.max(0, a / 2 - n / 2)), 1632 o > s ? ((e = e > 0 ? 0 : e), (e = e < s - o ? s - o : e)) : (e = Math.max(0, s / 2 - o / 2)), 1633 { top: e, left: t } 1634 ); 1635 }), 1636 (u.prototype.onZoom = function () { 1637 var e = this, 1638 a = e.contentStartPos.width, 1639 r = e.contentStartPos.height, 1640 c = e.contentStartPos.left, 1641 l = e.contentStartPos.top, 1642 u = s(e.newPoints[0], e.newPoints[1]), 1643 d = u / e.startDistanceBetweenFingers, 1644 f = Math.floor(a * d), 1645 h = Math.floor(r * d), 1646 p = (a - f) * e.percentageOfImageAtPinchPointX, 1647 g = (r - h) * e.percentageOfImageAtPinchPointY, 1648 b = (e.newPoints[0].x + e.newPoints[1].x) / 2 - n(t).scrollLeft(), 1649 m = (e.newPoints[0].y + e.newPoints[1].y) / 2 - n(t).scrollTop(), 1650 y = b - e.centerPointStartX, 1651 v = m - e.centerPointStartY, 1652 x = c + (p + y), 1653 w = l + (g + v), 1654 $ = { top: w, left: x, scaleX: e.contentStartPos.scaleX * d, scaleY: e.contentStartPos.scaleY * d }; 1655 (e.canTap = !1), 1656 (e.newWidth = f), 1657 (e.newHeight = h), 1658 (e.contentLastPos = $), 1659 e.requestId && (i(e.requestId), (e.requestId = null)), 1660 (e.requestId = o(function () { 1661 n.fancybox.setTranslate(e.$content, e.contentLastPos); 1662 })); 1663 }), 1664 (u.prototype.ontouchend = function (t) { 1665 var o = this, 1666 s = Math.max(new Date().getTime() - o.startTime, 1), 1667 r = o.isSwiping, 1668 c = o.isPanning, 1669 l = o.isZooming; 1670 return ( 1671 (o.endPoints = a(t)), 1672 o.$container.removeClass("fancybox-controls--isGrabbing"), 1673 n(e).off(".fb.touch"), 1674 o.requestId && (i(o.requestId), (o.requestId = null)), 1675 (o.isSwiping = !1), 1676 (o.isPanning = !1), 1677 (o.isZooming = !1), 1678 o.canTap 1679 ? o.onTap(t) 1680 : ((o.speed = 366), 1681 (o.velocityX = (o.distanceX / s) * 0.5), 1682 (o.velocityY = (o.distanceY / s) * 0.5), 1683 (o.speedX = Math.max(0.5 * o.speed, Math.min(1.5 * o.speed, (1 / Math.abs(o.velocityX)) * o.speed))), 1684 void (c ? o.endPanning() : l ? o.endZooming() : o.endSwiping(r))) 1685 ); 1686 }), 1687 (u.prototype.endSwiping = function (t) { 1688 var e = this, 1689 o = !1; 1690 (e.instance.isSliding = !1), 1691 (e.sliderLastPos = null),
1692 "y" == t && Math.abs(e.distanceY) > 50 1693 ? (n.fancybox.animate( 1694 e.instance.current.$slide, 1695 { top: e.sliderStartPos.top + e.distanceY + 150 * e.velocityY, opacity: 0 }, 1696 150 1697 ), 1698 (o = e.instance.close(!0, 300))) 1699 : "x" == t && e.distanceX > 50 && e.instance.group.length > 1 1700 ? (o = e.instance.previous(e.speedX)) 1701 : "x" == t && e.distanceX < -50 && e.instance.group.length > 1 && (o = e.instance.next(e.speedX)), 1702 o !== !1 || ("x" != t && "y" != t) || e.instance.jumpTo(e.instance.current.index, 150), 1703 e.$container.removeClass("fancybox-is-sliding"); 1704 }), 1705 (u.prototype.endPanning = function () { 1706 var t, 1707 e, 1708 o, 1709 i = this; 1710 i.contentLastPos && 1711 (i.instance.current.opts.touch.momentum === !1 1712 ? ((t = i.contentLastPos.left), (e = i.contentLastPos.top)) 1713 : ((t = i.contentLastPos.left + i.velocityX * i.speed), (e = i.contentLastPos.top + i.velocityY * i.speed)), 1714 (o = i.limitPosition(t, e, i.contentStartPos.width, i.contentStartPos.height)), 1715 (o.width = i.contentStartPos.width), 1716 (o.height = i.contentStartPos.height), 1717 n.fancybox.animate(i.$content, o, 330)); 1718 }), 1719 (u.prototype.endZooming = function () { 1720 var t, 1721 e, 1722 o, 1723 i, 1724 a = this, 1725 s = a.instance.current, 1726 r = a.newWidth, 1727 c = a.newHeight; 1728 a.contentLastPos && 1729 ((t = a.contentLastPos.left), 1730 (e = a.contentLastPos.top), 1731 (i = { top: e, left: t, width: r, height: c, scaleX: 1, scaleY: 1 }), 1732 n.fancybox.setTranslate(a.$content, i), 1733 r < a.canvasWidth && c < a.canvasHeight 1734 ? a.instance.scaleToFit(150) 1735 : r > s.width || c > s.height 1736 ? a.instance.scaleToActual(a.centerPointStartX, a.centerPointStartY, 150) 1737 : ((o = a.limitPosition(t, e, r, c)), 1738 n.fancybox.setTranslate(a.content, n.fancybox.getTranslate(a.$content)), 1739 n.fancybox.animate(a.$content, o, 150))); 1740 }), 1741 (u.prototype.onTap = function (t) { 1742 var e, 1743 o = this, 1744 i = n(t.target), 1745 s = o.instance, 1746 r = s.current, 1747 c = (t && a(t)) || o.startPoints, 1748 l = c[0] ? c[0].x - o.$stage.offset().left : 0, 1749 u = c[0] ? c[0].y - o.$stage.offset().top : 0, 1750 d = function (e) { 1751 var i = r.opts[e]; 1752 if ((n.isFunction(i) && (i = i.apply(s, [r, t])), i)) 1753 switch (i) { 1754 case "close": 1755 s.close(o.startEvent); 1756 break; 1757 case "toggleControls": 1758 s.toggleControls(!0); 1759 break; 1760 case "next": 1761 s.next(); 1762 break; 1763 case "nextOrClose": 1764 s.group.length > 1 ? s.next() : s.close(o.startEvent); 1765 break; 1766 case "zoom": 1767 "image" == r.type && 1768 (r.isLoaded || r.$ghost) && 1769 (s.canPan() 1770 ? s.scaleToFit() 1771 : s.isScaledDown() 1772 ? s.scaleToActual(l, u) 1773 : s.group.length < 2 && s.close(o.startEvent)); 1774 } 1775 }; 1776 if ( 1777 !((t.originalEvent && 2 == t.originalEvent.button) || s.isSliding || l > i[0].clientWidth + i.offset().left) 1778 ) { 1779 if (i.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container")) e = "Outside"; 1780 else if (i.is(".fancybox-slide")) e = "Slide"; 1781 else { 1782 if (!s.current.$content || !s.current.$content.has(t.target).length) return; 1783 e = "Content"; 1784 } 1785 if (o.tapped) { 1786 if ( 1787 (clearTimeout(o.tapped), 1788 (o.tapped = null),
1789 Math.abs(l - o.tapX) > 50 || Math.abs(u - o.tapY) > 50 || s.isSliding) 1790 ) 1791 return this; 1792 d("dblclick" + e); 1793 } else 1794 (o.tapX = l), 1795 (o.tapY = u), 1796 r.opts["dblclick" + e] && r.opts["dblclick" + e] !== r.opts["click" + e] 1797 ? (o.tapped = setTimeout(function () { 1798 (o.tapped = null), d("click" + e); 1799 }, 300)) 1800 : d("click" + e); 1801 return this; 1802 } 1803 }), 1804 n(e).on("onActivate.fb", function (t, e) { 1805 e && !e.Guestures && (e.Guestures = new u(e)); 1806 }), 1807 n(e).on("beforeClose.fb", function (t, e) { 1808 e && e.Guestures && e.Guestures.destroy(); 1809 }); 1810 })(window, document, window.jQuery), 1811 (function (t, e) { 1812 "use strict"; 1813 var n = function (t) { 1814 (this.instance = t), this.init(); 1815 }; 1816 e.extend(n.prototype, { 1817 timer: null, 1818 isActive: !1, 1819 $button: null, 1820 speed: 3e3, 1821 init: function () { 1822 var t = this; 1823 (t.$button = t.instance.$refs.toolbar.find("[data-fancybox-play]").on("click", function () { 1824 t.toggle(); 1825 })), 1826 (t.instance.group.length < 2 || !t.instance.group[t.instance.currIndex].opts.slideShow) && t.$button.hide(); 1827 }, 1828 set: function () { 1829 var t = this; 1830 t.instance && 1831 t.instance.current && 1832 (t.instance.current.opts.loop || t.instance.currIndex < t.instance.group.length - 1) 1833 ? (t.timer = setTimeout(function () { 1834 t.instance.next(); 1835 }, t.instance.current.opts.slideShow.speed || t.speed)) 1836 : (t.stop(), (t.instance.idleSecondsCounter = 0), t.instance.showControls()); 1837 }, 1838 clear: function () { 1839 var t = this; 1840 clearTimeout(t.timer), (t.timer = null); 1841 }, 1842 start: function () { 1843 var t = this, 1844 e = t.instance.current; 1845 t.instance && 1846 e && 1847 (e.opts.loop || e.index < t.instance.group.length - 1) && 1848 ((t.isActive = !0), 1849 t.$button.attr("title", e.opts.i18n[e.opts.lang].PLAY_STOP).addClass("fancybox-button--pause"), 1850 e.isComplete && t.set()); 1851 }, 1852 stop: function () { 1853 var t = this, 1854 e = t.instance.current; 1855 t.clear(), 1856 t.$button.attr("title", e.opts.i18n[e.opts.lang].PLAY_START).removeClass("fancybox-button--pause"), 1857 (t.isActive = !1); 1858 }, 1859 toggle: function () { 1860 var t = this; 1861 t.isActive ? t.stop() : t.start(); 1862 }, 1863 }), 1864 e(t).on({ 1865 "onInit.fb": function (t, e) { 1866 e && !e.SlideShow && (e.SlideShow = new n(e)); 1867 }, 1868 "beforeShow.fb": function (t, e, n, o) { 1869 var i = e && e.SlideShow; 1870 o ? i && n.opts.slideShow.autoStart && i.start() : i && i.isActive && i.clear(); 1871 }, 1872 "afterShow.fb": function (t, e, n) { 1873 var o = e && e.SlideShow; 1874 o && o.isActive && o.set(); 1875 }, 1876 "afterKeydown.fb": function (n, o, i, a, s) { 1877 var r = o && o.SlideShow; 1878 !r || 1879 !i.opts.slideShow || 1880 (80 !== s && 32 !== s) || 1881 e(t.activeElement).is("button,a,input") || 1882 (a.preventDefault(), r.toggle()); 1883 }, 1884 "beforeClose.fb onDeactivate.fb": function (t, e) { 1885 var n = e && e.SlideShow; 1886 n && n.stop(); 1887 }, 1888 }), 1889 e(t).on("visibilitychange", function () { 1890 var n = e.fancybox.getInstance(), 1891 o = n && n.SlideShow; 1892 o && o.isActive && (t.hidden ? o.clear() : o.set()); 1893 }); 1894 })(document, window.jQuery), 1895 (function (t, e) { 1896 "use strict"; 1897 var n = (function () { 1898 var e, 1899 n, 1900 o, 1901 i = [ 1902 [ 1903 "requestFullscreen", 1904 "exitFullscreen", 1905 "fullscreenElement", 1906 "fullscreenEnabled", 1907 "fullscreenchange", 1908 "fullscreenerror", 1909 ], 1910 [ 1911 "webkitRequestFullscreen", 1912 "webkitExitFullscreen", 1913 "webkitFullscreenElement", 1914 "webkitFullscreenEnabled", 1915 "webkitfullscreenchange", 1916 "webkitfullscreenerror", 1917 ], 1918 [ 1919 "webkitRequestFullScreen", 1920 "webkitCancelFullScreen", 1921 "webkitCurrentFullScreenElement", 1922 "webkitCancelFullScreen", 1923 "webkitfullscreenchange", 1924 "webkitfullscreenerror", 1925 ], 1926 [ 1927 "mozRequestFullScreen", 1928 "mozCancelFullScreen", 1929 "mozFullScreenElement", 1930 "mozFullScreenEnabled", 1931 "mozfullscreenchange", 1932 "mozfullscreenerror", 1933 ], 1934 [ 1935 "msRequestFullscreen", 1936 "msExitFullscreen", 1937 "msFullscreenElement", 1938 "msFullscreenEnabled", 1939 "MSFullscreenChange", 1940 "MSFullscreenError", 1941 ], 1942 ], 1943 a = {}; 1944 for (n = 0; n < i.length; n++) 1945 if (((e = i[n]), e && e[1] in t)) { 1946 for (o = 0; o < e.length; o++) a[i[0][o]] = e[o]; 1947 return a; 1948 } 1949 return !1; 1950 })(); 1951 if (!n) return void (e.fancybox.defaults.btnTpl.fullScreen = !1); 1952 var o = { 1953 request: function (e) { 1954 (e = e || t.documentElement), e[n.requestFullscreen](e.ALLOW_KEYBOARD_INPUT); 1955 }, 1956 exit: function () { 1957 t[n.exitFullscreen](); 1958 }, 1959 toggle: function (e) { 1960 (e = e || t.documentElement), this.isFullscreen() ? this.exit() : this.request(e); 1961 }, 1962 isFullscreen: function () { 1963 return Boolean(t[n.fullscreenElement]); 1964 }, 1965 enabled: function () { 1966 return Boolean(t[n.fullscreenEnabled]); 1967 }, 1968 }; 1969 e(t).on({ 1970 "onInit.fb": function (t, e) { 1971 var n, 1972 i = e.$refs.toolbar.find("[data-fancybox-fullscreen]"); 1973 e && !e.FullScreen && e.group[e.currIndex].opts.fullScreen 1974 ? ((n = e.$refs.container), 1975 n.on("click.fb-fullscreen", "[data-fancybox-fullscreen]", function (t) { 1976 t.stopPropagation(), t.preventDefault(), o.toggle(n[0]); 1977 }),
1978 e.opts.fullScreen && e.opts.fullScreen.autoStart === !0 && o.request(n[0]), 1979 (e.FullScreen = o)) 1980 : i.hide(); 1981 }, 1982 "afterKeydown.fb": function (t, e, n, o, i) { 1983 e && e.FullScreen && 70 === i && (o.preventDefault(), e.FullScreen.toggle(e.$refs.container[0])); 1984 }, 1985 "beforeClose.fb": function (t) { 1986 t && t.FullScreen && o.exit(); 1987 }, 1988 }), 1989 e(t).on(n.fullscreenchange, function () { 1990 var t = e.fancybox.getInstance(); 1991 t.current && 1992 "image" === t.current.type && 1993 t.isAnimating && 1994 (t.current.$content.css("transition", "none"), (t.isAnimating = !1), t.update(!0, !0, 0)); 1995 }); 1996 })(document, window.jQuery), 1997 (function (t, e) { 1998 "use strict"; 1999 var n = function (t) { 2000 (this.instance = t), this.init(); 2001 }; 2002 e.extend(n.prototype, { 2003 $button: null, 2004 $grid: null, 2005 $list: null, 2006 isVisible: !1, 2007 init: function () { 2008 var t = this, 2009 e = t.instance.group[0], 2010 n = t.instance.group[1]; 2011 (t.$button = t.instance.$refs.toolbar.find("[data-fancybox-thumbs]")), 2012 t.instance.group.length > 1 && 2013 t.instance.group[t.instance.currIndex].opts.thumbs && 2014 ("image" == e.type || e.opts.thumb || e.opts.$thumb) && 2015 ("image" == n.type || n.opts.thumb || n.opts.$thumb) 2016 ? (t.$button.on("click", function () { 2017 t.toggle(); 2018 }), 2019 (t.isActive = !0)) 2020 : (t.$button.hide(), (t.isActive = !1)); 2021 }, 2022 create: function () { 2023 var t, 2024 n, 2025 o = this.instance; 2026 (this.$grid = e('<div class="fancybox-thumbs"></div>').appendTo(o.$refs.container)), 2027 (t = "<ul>"), 2028 e.each(o.group, function (e, o) { 2029 (n = o.opts.thumb || (o.opts.$thumb ? o.opts.$thumb.attr("src") : null)), 2030 n || "image" !== o.type || (n = o.src), 2031 n && 2032 n.length && 2033 (t += 2034 '<li data-index="' + 2035 e + 2036 '" tabindex="0" class="fancybox-thumbs-loading"><img data-src="' + 2037 n + 2038 '" /></li>'); 2039 }), 2040 (t += "</ul>"), 2041 (this.$list = e(t) 2042 .appendTo(this.$grid) 2043 .on("click", "li", function () { 2044 o.jumpTo(e(this).data("index")); 2045 })), 2046 this.$list 2047 .find("img") 2048 .hide() 2049 .one("load", function () { 2050 var t, 2051 n, 2052 o, 2053 i, 2054 a = e(this).parent().removeClass("fancybox-thumbs-loading"), 2055 s = a.outerWidth(), 2056 r = a.outerHeight(); 2057 (t = this.naturalWidth || this.width), 2058 (n = this.naturalHeight || this.height), 2059 (o = t / s), 2060 (i = n / r), 2061 o >= 1 && i >= 1 && (o > i ? ((t /= i), (n = r)) : ((t = s), (n /= o))), 2062 e(this) 2063 .css({ 2064 width: Math.floor(t), 2065 height: Math.floor(n), 2066 "margin-top": Math.min(0, Math.floor(0.3 * r - 0.3 * n)), 2067 "margin-left": Math.min(0, Math.floor(0.5 * s - 0.5 * t)), 2068 }) 2069 .show(); 2070 }) 2071 .each(function () { 2072 this.src = e(this).data("src"); 2073 }); 2074 }, 2075 focus: function () { 2076 this.instance.current && 2077 this.$list 2078 .children() 2079 .removeClass("fancybox-thumbs-active") 2080 .filter('[data-index="' + this.instance.current.index + '"]') 2081 .addClass("fancybox-thumbs-active") 2082 .focus(); 2083 }, 2084 close: function () { 2085 this.$grid.hide(); 2086 }, 2087 update: function () { 2088 this.instance.$refs.container.toggleClass("fancybox-show-thumbs", this.isVisible), 2089 this.isVisible 2090 ? (this.$grid || this.create(), this.instance.trigger("onThumbsShow"), this.focus()) 2091 : this.$grid && this.instance.trigger("onThumbsHide"), 2092 this.instance.update(); 2093 }, 2094 hide: function () { 2095 (this.isVisible = !1), this.update(); 2096 }, 2097 show: function () { 2098 (this.isVisible = !0), this.update(); 2099 }, 2100 toggle: function () { 2101 (this.isVisible = !this.isVisible), this.update(); 2102 }, 2103 }), 2104 e(t).on({ 2105 "onInit.fb": function (t, e) { 2106 e && !e.Thumbs && (e.Thumbs = new n(e)); 2107 }, 2108 "beforeShow.fb": function (t, e, n, o) { 2109 var i = e && e.Thumbs; 2110 if (i && i.isActive) { 2111 if (n.modal) return i.$button.hide(), void i.hide(); 2112 o && e.opts.thumbs.autoStart === !0 && i.show(), i.isVisible && i.focus(); 2113 } 2114 }, 2115 "afterKeydown.fb": function (t, e, n, o, i) { 2116 var a = e && e.Thumbs; 2117 a && a.isActive && 71 === i && (o.preventDefault(), a.toggle()); 2118 }, 2119 "beforeClose.fb": function (t, e) { 2120 var n = e && e.Thumbs; 2121 n && n.isVisible && e.opts.thumbs.hideOnClose !== !1 && n.close(); 2122 }, 2123 }); 2124 })(document, window.jQuery), 2125 (function (t, e, n) { 2126 "use strict"; 2127 function o() { 2128 var t = e.location.hash.substr(1), 2129 n = t.split("-"), 2130 o = n.length > 1 && /^\+?\d+$/.test(n[n.length - 1]) ? parseInt(n.pop(-1), 10) || 1 : 1, 2131 i = n.join("-"); 2132 return o < 1 && (o = 1), { hash: t, index: o, gallery: i }; 2133 } 2134 function i(t) { 2135 var e; 2136 "" !== t.gallery && 2137 ((e = n("[data-fancybox='" + n.escapesalector(t.gallery) + "']").eq(t.index - 1)), 2138 e.length ? e.trigger("click") : n("#" + n.escapesalector(t.gallery)).trigger("click")); 2139 } 2140 function a(t) { 2141 var e; 2142 return !!t && ((e = t.current ? t.current.opts : t.opts), e.$orig ? e.$orig.data("fancybox") : e.hash || ""); 2143 } 2144 n.escapesalector || 2145 (n.escapesalector = function (t) { 2146 var e = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g, 2147 n = function (t, e) { 2148 return e 2149 ? "\0" === t 2150 ? "�" 2151 : t.slice(0, -1) + "\\" + t.charCodeAt(t.length - 1).toString(16) + " " 2152 : "\\" + t; 2153 }; 2154 return (t + "").replace(e, n); 2155 }); 2156 var s = null, 2157 r = null; 2158 n(function () { 2159 setTimeout(function () { 2160 n.fancybox.defaults.hash !== !1 && 2161 (n(t).on({ 2162 "onInit.fb": function (t, e) { 2163 var n, i; 2164 e.group[e.currIndex].opts.hash !== !1 && 2165 ((n = o()), (i = a(e)), i && n.gallery && i == n.gallery && (e.currIndex = n.index - 1)); 2166 }, 2167 "beforeShow.fb": function (n, o, i, c) { 2168 var l; 2169 i.opts.hash !== !1 && 2170 ((l = a(o)), 2171 l && 2172 "" !== l && 2173 (e.location.hash.indexOf(l) < 0 && (o.opts.origHash = e.location.hash), 2174 (s = l + (o.group.length > 1 ? "-" + (i.index + 1) : "")), 2175 "replaceState" in e.history 2176 ? (r && clearTimeout(r), 2177 (r = setTimeout(function () { 2178 e.history[c ? "pushState" : "replaceState"]( 2179 {}, 2180 t.title, 2181 e.location.pathname + e.location.search + "#" + s 2182 ), 2183 (r = null); 2184 }, 300)))
2185 : (e.location.hash = s))); 2186 }, 2187 "beforeClose.fb": function (o, i, c) { 2188 var l, u; 2189 r && clearTimeout(r), 2190 c.opts.hash !== !1 && 2191 ((l = a(i)), 2192 (u = i && i.opts.origHash ? i.opts.origHash : ""), 2193 l && 2194 "" !== l && 2195 ("replaceState" in history 2196 ? e.history.replaceState({}, t.title, e.location.pathname + e.location.search + u) 2197 : ((e.location.hash = u), n(e).scrollTop(i.scrollTop).scrollLeft(i.scrollLeft))), 2198 (s = null)); 2199 }, 2200 }), 2201 n(e).on("hashchange.fb", function () { 2202 var t = o(); 2203 n.fancybox.getInstance() 2204 ? !s || 2205 s === t.gallery + "-" + t.index || 2206 (1 === t.index && s == t.gallery) || 2207 ((s = null), n.fancybox.close()) 2208 : "" !== t.gallery && i(t); 2209 }), 2210 n(e).one("unload.fb popstate.fb", function () { 2211 n.fancybox.getInstance("close", !0, 0); 2212 }), 2213 i(o())); 2214 }, 50); 2215 }); 2216 })(document, window, window.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.