PageSourceSearch

https://www.hws.edu/_resources/js/fotorama.js

js hws.edu collected 2026-10-01 10:12:58 UTC 77,487 bytes, 2,652 lines download raw bytes

1/*!
2 * Fotorama 4.6.4 | http://fotorama.io/license/
3 */
4(fotoramaVersion = "4.6.4"),
5  (function (a, b, c, d, e) {
6    "use strict";
7    function f(a) {
8      var b = "bez_" + d.makeArray(arguments).join("_").replace(".", "p");
9      if ("function" != typeof d.easing[b]) {
10        var c = function (a, b) {
11          var c = [null, null],
12            d = [null, null],
13            e = [null, null],
14            f = function (f, g) {
15              return (
16                (e[g] = 3 * a[g]),
17                (d[g] = 3 * (b[g] - a[g]) - e[g]),
18                (c[g] = 1 - e[g] - d[g]),
19                f * (e[g] + f * (d[g] + f * c[g]))
20              );
21            },
22            g = function (a) {
23              return e[0] + a * (2 * d[0] + 3 * c[0] * a);
24            },
25            h = function (a) {
26              for (
27                var b, c = a, d = 0;
28                ++d < 14 && ((b = f(c, 0) - a), !(Math.abs(b) < 0.001));
29
30              )
31                c -= b / g(c);
32              return c;
33            };
34          return function (a) {
35            return f(h(a), 1);
36          };
37        };
38        d.easing[b] = function (b, d, e, f, g) {
39          return f * c([a[0], a[1]], [a[2], a[3]])(d / g) + e;
40        };
41      }
42      return b;
43    }
44    function g() {}
45    function h(a, b, c) {
46      return Math.max(isNaN(b) ? -1 / 0 : b, Math.min(isNaN(c) ? 1 / 0 : c, a));
47    }
48    function i(a) {
49      return a.match(/ma/) && a.match(/-?\d+(?!d)/g)[a.match(/3d/) ? 12 : 4];
50    }
51    function j(a) {
52      return Ic ? +i(a.css("transform")) : +a.css("left").replace("px", "");
53    }
54    function k(a) {
55      var b = {};
56      return (
57        Ic ? (b.transform = "translate3d(" + a + "px,0,0)") : (b.left = a), b
58      );
59    }
60    function l(a) {
61      return { "transition-duration": a + "ms" };
62    }
63    function m(a, b) {
64      return isNaN(a) ? b : a;
65    }
66    function n(a, b) {
67      return m(+String(a).replace(b || "px", ""));
68    }
69    function o(a) {
70      return /%$/.test(a) ? n(a, "%") : e;
71    }
72    function p(a, b) {
73      return m((o(a) / 100) * b, n(a));
74    }
75    function q(a) {
76      return (!isNaN(n(a)) || !isNaN(n(a, "%"))) && a;
77    }
78    function r(a, b, c, d) {
79      return (a - (d || 0)) * (b + (c || 0));
80    }
81    function s(a, b, c, d) {
82      return -Math.round(a / (b + (c || 0)) - (d || 0));
83    }
84    function t(a) {
85      var b = a.data();
86      if (!b.tEnd) {
87        var c = a[0],
88          d = {
89            WebkitTransition: "webkitTransitionEnd",
90            MozTransition: "transitionend",
91            OTransition: "oTransitionEnd otransitionend",
92            msTransition: "MSTransitionEnd",
93            transition: "transitionend",
94          };
95        T(c, d[uc.prefixed("transition")], function (a) {
96          b.tProp && a.propertyName.match(b.tProp) && b.onEndFn();
97        }),
98          (b.tEnd = !0);
99      }
100    }
101    function u(a, b, c, d) {
102      var e,
103        f = a.data();
104      f &&
105        ((f.onEndFn = function () {
106          e || ((e = !0), clearTimeout(f.tT), c());
107        }),
108        (f.tProp = b),
109        clearTimeout(f.tT),
110        (f.tT = setTimeout(function () {
111          f.onEndFn();
112        }, 1.5 * d)),
113        t(a));
114    }
115    function v(a, b) {
116      if (a.length) {
117        var c = a.data();
118        Ic ? (a.css(l(0)), (c.onEndFn = g), clearTimeout(c.tT)) : a.stop();
119        var d = w(b, function () {
120          return j(a);
121        });
122        return a.css(k(d)), d;
123      }
124    }
125    function w() {
126      for (
127        var a, b = 0, c = arguments.length;
128        c > b &&
129        ((a = b ? arguments[b]() : arguments[b]), "number" != typeof a);
130        b++
131      );
132      return a;
133    }
134    function x(a, b) {
135      return Math.round(a + (b - a) / 1.5);
136    }
137    function y() {
138      return (
139        (y.p = y.p || ("https:" === c.protocol ? "https://" : "http://")), y.p
140      );
141    }
142    function z(a) {
143      var c = b.createElement("a");
144      return (c.href = a), c;
145    }
146    function A(a, b) {
147      if ("string" != typeof a) return a;
148      a = z(a);
149      var c, d;
150      if (a.host.match(/youtube\.com/) && a.search) {
151        if ((c = a.search.split("v=")[1])) {
152          var e = c.indexOf("&");
153          -1 !== e && (c = c.substring(0, e)), (d = "youtube");
154        }
155      } else
156        a.host.match(/youtube\.com|youtu\.be/)
157          ? ((c = a.pathname
158              .replace(/^\/(embed\/|v\/)?/, "")
159              .replace(/\/.*/, "")),
160            (d = "youtube"))
161          : a.host.match(/vimeo\.com/) &&
162            ((d = "vimeo"),
163            (c = a.pathname.replace(/^\/(video\/)?/, "").replace(/\/.*/, "")));
164      return (
165        (c && d) || !b || ((c = a.href), (d = "custom")),
166        c ? { id: c, type: d, s: a.search.replace(/^\?/, ""), p: y() } : !1
167      );
168    }
169    function B(a, b, c) {
170      var e,
171        f,
172        g = a.video;
173      return (
174        "youtube" === g.type
175          ? ((f = y() + "img.youtube.com/vi/" + g.id + "/default.jpg"),
176            (e = f.replace(/\/default.jpg$/, "/hqdefault.jpg")),
177            (a.thumbsReady = !0))
178          : "vimeo" === g.type
179          ? d.ajax({
180              url: y() + "vimeo.com/api/v2/video/" + g.id + ".json",
181              dataType: "jsonp",
182              success: function (d) {
183                (a.thumbsReady = !0),
184                  C(
185                    b,
186                    { img: d[0].thumbnail_large, thumb: d[0].thumbnail_small },
187                    a.i,
188                    c
189                  );
190              },
191            })
192          : (a.thumbsReady = !0),
193        { img: e, thumb: f }
194      );
195    }
196    function C(a, b, c, e) {
197      for (var f = 0, g = a.length; g > f; f++) {
198        var h = a[f];
199        if (h.i === c && h.thumbsReady) {
200          var i = { videoReady: !0 };
201          (i[Xc] = i[Zc] = i[Yc] = !1), e.splice(f, 1, d.extend({}, h, i, b));
202          break;
203        }
204      }
205    }
206    function D(a) {
207      function b(a, b, e) {
208        var f = a.children("img").eq(0),
209          g = a.attr("href"),
210          h = a.attr("src"),
211          i = f.attr("src"),
212          j = b.video,
213          k = e ? A(g, j === !0) : !1;
214        k ? (g = !1) : (k = j),
215          c(
216            a,
217            f,
218            d.extend(b, {
219              video: k,
220              img: b.img || g || h || i,
221              thumb: b.thumb || i || h || g,
222            })
223          );
224      }
225      function c(a, b, c) {
226        var e = c.thumb && c.img !== c.thumb,
227          f = n(c.width || a.attr("width")),
228          g = n(c.height || a.attr("height"));
229        d.extend(c, {
230          width: f,
231          height: g,
232          thumbratio: S(
233            c.thumbratio ||
234              n(c.thumbwidth || (b && b.attr("width")) || e || f) /
235                n(c.thumbheight || (b && b.attr("height")) || e || g)
236          ),
237        });
238      }
239      var e = [];
240      return (
241        a.children().each(function () {
242          var a = d(this),
243            f = R(d.extend(a.data(), { id: a.attr("id") }));
244          if (a.is("a, img")) b(a, f, !0);
245          else {
246            if (a.is(":empty")) return;
247            c(a, null, d.extend(f, { html: this, _html: a.html() }));
248          }
249          e.push(f);
250        }),
251        e
252      );
253    }
254    function E(a) {
255      return 0 === a.offsetWidth && 0 === a.offsetHeight;
256    }
257    function F(a) {
258      return !d.contains(b.documentElement, a);
259    }
260    function G(a, b, c, d) {
261      return (
262        G.i || ((G.i = 1), (G.ii = [!0])),
263        (d = d || G.i),
264        "undefined" == typeof G.ii[d] && (G.ii[d] = !0),
265        a()
266          ? b()
267          : G.ii[d] &&
268            setTimeout(function () {
269              G.ii[d] && G(a, b, c, d);
270            }, c || 100),
271        G.i++
272      );
273    }
274    function H(a) {
275      c.replace(
276        c.protocol +
277          "//" +
278          c.host +
279          c.pathname.replace(/^\/?/, "/") +
280          c.search +
281          "#" +
282          a
283      );
284    }
285    function I(a, b, c, d) {
286      var e = a.data(),
287        f = e.measures;
288      if (
289        f &&
290        (!e.l ||
291          e.l.W !== f.width ||
292          e.l.H !== f.height ||
293          e.l.r !== f.ratio ||
294          e.l.w !== b.w ||
295          e.l.h !== b.h ||
296          e.l.m !== c ||
297          e.l.p !== d)
298      ) {
299        var g = f.width,
300          i = f.height,
301          j = b.w / b.h,
302          k = f.ratio >= j,
303          l = "scaledown" === c,
304          m = "contain" === c,
305          n = "cover" === c,
306          o = $(d);
307        (k && (l || m)) || (!k && n)
308          ? ((g = h(b.w, 0, l ? g : 1 / 0)), (i = g / f.ratio))
309          : ((k && n) || (!k && (l || m))) &&
310            ((i = h(b.h, 0, l ? i : 1 / 0)), (g = i * f.ratio)),
311          a.css({
312            width: g,
313            height: i,
314            left: p(o.x, b.w - g),
315            top: p(o.y, b.h - i),
316          }),
317          (e.l = {
318            W: f.width,
319            H: f.height,
320            r: f.ratio,
321            w: b.w,
322            h: b.h,
323            m: c,
324            p: d,
325          });
326      }
327      return !0;
328    }
329    function J(a, b) {
330      var c = a[0];
331      c.styleSheet ? (c.styleSheet.cssText = b) : a.html(b);
332    }
333    function K(a, b, c) {
334      return b === c ? !1 : b >= a ? "left" : a >= c ? "right" : "left right";
335    }
336    function L(a, b, c, d) {
337      if (!c) return !1;
338      if (!isNaN(a)) return a - (d ? 0 : 1);
339      for (var e, f = 0, g = b.length; g > f; f++) {
340        var h = b[f];
341        if (h.id === a) {
342          e = f;
343          break;
344        }
345      }
346      return e;
347    }
348    function M(a, b, c) {
349      (c = c || {}),
350        a.each(function () {
351          var a,
352            e = d(this),
353            f = e.data();
354          f.clickOn ||
355            ((f.clickOn = !0),
356            d.extend(
357              cb(e, {
358                onStart: function (b) {
359                  (a = b), (c.onStart || g).call(this, b);
360                },
361                onMove: c.onMove || g,
362                onTouchEnd: c.onTouchEnd || g,
363                onEnd: function (c) {
364                  c.moved || b.call(this, a);
365                },
366              }),
367              { noMove: !0 }
368            ));
369        });
370    }
371    function N(a, b) {
372      return '<div class="' + a + '">' + (b || "") + "</div>";
373    }
374    function O(a) {
375      for (var b = a.length; b; ) {
376        var c = Math.floor(Math.random() * b--),
377          d = a[b];
378        (a[b] = a[c]), (a[c] = d);
379      }
380      return a;
381    }
382    function P(a) {
383      return (
384        "[object Array]" == Object.prototype.toString.call(a) &&
385        d.map(a, function (a) {
386          return d.extend({}, a);
387        })
388      );
389    }
390    function Q(a, b, c) {
391      a.scrollLeft(b || 0).scrollTop(c || 0);
392    }
393    function R(a) {
394      if (a) {
395        var b = {};
396        return (
397          d.each(a, function (a, c) {
398            b[a.toLowerCase()] = c;
399          }),
400          b
401        );
402      }
403    }
404    function S(a) {
405      if (a) {
406        var b = +a;
407        return isNaN(b) ? ((b = a.split("/")), +b[0] / +b[1] || e) : b;
408      }
409    }
410    function T(a, b, c, d) {
411      b &&
412        (a.addEventListener
413          ? a.addEventListener(b, c, !!d)
414          : a.attachEvent("on" + b, c));
415    }
416    function U(a) {
417      return !!a.getAttribute("disabled");
418    }
419    function V(a) {
420      return { tabindex: -1 * a + "", disabled: a };
421    }
422    function W(a, b) {
423      T(a, "keyup", function (c) {
424        U(a) || (13 == c.keyCode && b.call(a, c));
425      });
426    }
427    function X(a, b) {
428      T(
429        a,
430        "focus",
431        (a.onfocusin = function (c) {
432          b.call(a, c);
433        }),
434        !0
435      );
436    }
437    function Y(a, b) {
438      a.preventDefault ? a.preventDefault() : (a.returnValue = !1),
439        b && a.stopPropagation && a.stopPropagation();
440    }
441    function Z(a) {
442      return a ? ">" : "<";
443    }
444    function $(a) {
445      return (
446        (a = (a + "").split(/\s+/)), { x: q(a[0]) || bd, y: q(a[1]) || bd }
447      );
448    }
449    function _(a, b) {
450      var c = a.data(),
451        e = Math.round(b.pos),
452        f = function () {
453          (c.sliding = !1), (b.onEnd || g)();
454        };
455      "undefined" != typeof b.overPos &&
456        b.overPos !== b.pos &&
457        ((e = b.overPos),
458        (f = function () {
459          _(
460            a,
461            d.extend({}, b, { overPos: b.pos, time: Math.max(Qc, b.time / 2) })
462          );
463        }));
464      var h = d.extend(k(e), b.width && { width: b.width });
465      (c.sliding = !0),
466        Ic
467          ? (a.css(d.extend(l(b.time), h)),
468            b.time > 10 ? u(a, "transform", f, b.time) : f())
469          : a.stop().animate(h, b.time, _c, f);
470    }
471    function ab(a, b, c, e, f, h) {
472      var i = "undefined" != typeof h;
473      if (
474        i ||
475        (f.push(arguments),
476        Array.prototype.push.call(arguments, f.length),
477        !(f.length > 1))
478      ) {
479        (a = a || d(a)), (b = b || d(b));
480        var j = a[0],
481          k = b[0],
482          l = "crossfade" === e.method,
483          m = function () {
484            if (!m.done) {
485              m.done = !0;
486              var a = (i || f.shift()) && f.shift();
487              a && ab.apply(this, a), (e.onEnd || g)(!!a);
488            }
489          },
490          n = e.time / (h || 1);
491        c.removeClass(Rb + " " + Qb),
492          a.stop().addClass(Rb),
493          b.stop().addClass(Qb),
494          l && k && a.fadeTo(0, 0),
495          a.fadeTo(l ? n : 0, 1, l && m),
496          b.fadeTo(n, 0, m),
497          (j && l) || k || m();
498      }
499    }
500    function bb(a) {
501      var b = (a.touches || [])[0] || a;
502      (a._x = b.pageX), (a._y = b.clientY), (a._now = d.now());
503    }
504    function cb(a, c) {
505      function e(a) {
506        return (
507          (m = d(a.target)),
508          (u.checked = p = q = s = !1),
509          k ||
510          u.flow ||
511          (a.touches && a.touches.length > 1) ||
512          a.which > 1 ||
513          (ed && ed.type !== a.type && gd) ||
514          (p = c.select && m.is(c.select, t))
515            ? p
516            : ((o = "touchstart" === a.type),
517              (q = m.is("a, a *", t)),
518              (n = u.control),
519              (r = u.noMove || u.noSwipe || n ? 16 : u.snap ? 0 : 4),
520              bb(a),
521              (l = ed = a),
522              (fd = a.type
523                .replace(/down|start/, "move")
524                .replace(/Down/, "Move")),
525              (c.onStart || g).call(t, a, { control: n, $target: m }),
526              (k = u.flow = !0),
527              void ((!o || u.go) && Y(a)))
528        );
529      }
530      function f(a) {
531        if (
532          (a.touches && a.touches.length > 1) ||
533          (Nc && !a.isPrimary) ||
534          fd !== a.type ||
535          !k
536        )
537          return k && h(), void (c.onTouchEnd || g)();
538        bb(a);
539        var b = Math.abs(a._x - l._x),
540          d = Math.abs(a._y - l._y),
541          e = b - d,
542          f = (u.go || u.x || e >= 0) && !u.noSwipe,
543          i = 0 > e;
544        o && !u.checked
545          ? (k = f) && Y(a)
546          : (Y(a), (c.onMove || g).call(t, a, { touch: o })),
547          !s && Math.sqrt(Math.pow(b, 2) + Math.pow(d, 2)) > r && (s = !0),
548          (u.checked = u.checked || f || i);
549      }
550      function h(a) {
551        (c.onTouchEnd || g)();
552        var b = k;
553        (u.control = k = !1),
554          b && (u.flow = !1),
555          !b ||
556            (q && !u.checked) ||
557            (a && Y(a),
558            (gd = !0),
559            clearTimeout(hd),
560            (hd = setTimeout(function () {
561              gd = !1;
562            }, 1e3)),
563            (c.onEnd || g).call(t, {
564              moved: s,
565              $target: m,
566              control: n,
567              touch: o,
568              startEvent: l,
569              aborted: !a || "MSPointerCancel" === a.type,
570            }));
571      }
572      function i() {
573        u.flow ||
574          setTimeout(function () {
575            u.flow = !0;
576          }, 10);
577      }
578      function j() {
579        u.flow &&
580          setTimeout(function () {
581            u.flow = !1;
582          }, Pc);
583      }
584      var k,
585        l,
586        m,
587        n,
588        o,
589        p,
590        q,
591        r,
592        s,
593        t = a[0],
594        u = {};
595      return (
596        Nc
597          ? (T(t, "MSPointerDown", e),
598            T(b, "MSPointerMove", f),
599            T(b, "MSPointerCancel", h),
600            T(b, "MSPointerUp", h))
601          : (T(t, "touchstart", e),
602            T(t, "touchmove", f),
603            T(t, "touchend", h),
604            T(b, "touchstart", i),
605            T(b, "touchend", j),
606            T(b, "touchcancel", j),
607            Ec.on("scroll", j),
608            a.on("mousedown", e),
609            Fc.on("mousemove", f).on("mouseup", h)),
610        a.on("click", "a", function (a) {
611          u.checked && Y(a);
612        }),
613        u
614      );
615    }
616    function db(a, b) {
617      function c(c, d) {
618        (A = !0),
619          (j = l = c._x),
620          (q = c._now),
621          (p = [[q, j]]),
622          (m = n = D.noMove || d ? 0 : v(a, (b.getPos || g)())),
623          (b.onStart || g).call(B, c);
624      }
625      function e(a, b) {
626        (s = D.min),
627          (t = D.max),
628          (u = D.snap),
629          (w = a.altKey),
630          (A = z = !1),
631          (y = b.control),
632          y || C.sliding || c(a);
633      }
634      function f(d, e) {
635        D.noSwipe ||
636          (A || c(d),
637          (l = d._x),
638          p.push([d._now, l]),
639          (n = m - (j - l)),
640          (o = K(n, s, t)),
641          s >= n ? (n = x(n, s)) : n >= t && (n = x(n, t)),
642          D.noMove ||
643            (a.css(k(n)),
644            z || ((z = !0), e.touch || Nc || a.addClass(ec)),
645            (b.onMove || g).call(B, d, { pos: n, edge: o })));
646      }
647      function i(e) {
648        if (!D.noSwipe || !e.moved) {
649          A || c(e.startEvent, !0),
650            e.touch || Nc || a.removeClass(ec),
651            (r = d.now());
652          for (
653            var f,
654              i,
655              j,
656              k,
657              o,
658              q,
659              v,
660              x,
661              y,
662              z = r - Pc,
663              C = null,
664              E = Qc,
665              F = b.friction,
666              G = p.length - 1;
667            G >= 0;
668            G--
669          ) {
670            if (((f = p[G][0]), (i = Math.abs(f - z)), null === C || j > i))
671              (C = f), (k = p[G][1]);
672            else if (C === z || i > j) break;
673            j = i;
674          }
675          v = h(n, s, t);
676          var H = k - l,
677            I = H >= 0,
678            J = r - C,
679            K = J > Pc,
680            L = !K && n !== m && v === n;
681          u &&
682            ((v = h(
683              Math[L ? (I ? "floor" : "ceil") : "round"](n / u) * u,
684              s,
685              t
686            )),
687            (s = t = v)),
688            L &&
689              (u || v === n) &&
690              ((y = -(H / J)),
691              (E *= h(Math.abs(y), b.timeLow, b.timeHigh)),
692              (o = Math.round(n + (y * E) / F)),
693              u || (v = o),
694              ((!I && o > t) || (I && s > o)) &&
695                ((q = I ? s : t),
696                (x = o - q),
697                u || (v = q),
698                (x = h(v + 0.03 * x, q - 50, q + 50)),
699                (E = Math.abs((n - x) / (y / F))))),
700            (E *= w ? 10 : 1),
701            (b.onEnd || g).call(
702              B,
703              d.extend(e, {
704                moved: e.moved || (K && u),
705                pos: n,
706                newPos: v,
707                overPos: x,
708                time: E,
709              })
710            );
711        }
712      }
713      var j,
714        l,
715        m,
716        n,
717        o,
718        p,
719        q,
720        r,
721        s,
722        t,
723        u,
724        w,
725        y,
726        z,
727        A,
728        B = a[0],
729        C = a.data(),
730        D = {};
731      return (D = d.extend(
732        cb(b.$wrap, d.extend({}, b, { onStart: e, onMove: f, onEnd: i })),
733        D
734      ));
735    }
736    function eb(a, b) {
737      var c,
738        e,
739        f,
740        h = a[0],
741        i = { prevent: {} };
742      return (
743        T(h, Oc, function (a) {
744          var h = a.wheelDeltaY || -1 * a.deltaY || 0,
745            j = a.wheelDeltaX || -1 * a.deltaX || 0,
746            k = Math.abs(j) && !Math.abs(h),
747            l = Z(0 > j),
748            m = e === l,
749            n = d.now(),
750            o = Pc > n - f;
751          (e = l),
752            (f = n),
753            k &&
754              i.ok &&
755              (!i.prevent[l] || c) &&
756              (Y(a, !0),
757              (c && m && o) ||
758                (b.shift &&
759                  ((c = !0),
760                  clearTimeout(i.t),
761                  (i.t = setTimeout(function () {
762                    c = !1;
763                  }, Rc))),
764                (b.onEnd || g)(a, b.shift ? l : j)));
765        }),
766        i
767      );
768    }
769    function fb() {
770      d.each(d.Fotorama.instances, function (a, b) {
771        b.index = a;
772      });
773    }
774    function gb(a) {
775      d.Fotorama.instances.push(a), fb();
776    }
777    function hb(a) {
778      d.Fotorama.instances.splice(a.index, 1), fb();
779    }
780    var ib = "fotorama",
781      jb = "fullscreen",
782      kb = ib + "__wrap",
783      lb = kb + "--css2",
784      mb = kb + "--css3",
785      nb = kb + "--video",
786      ob = kb + "--fade",
787      pb = kb + "--slide",
788      qb = kb + "--no-controls",
789      rb = kb + "--no-shadows",
790      sb = kb + "--pan-y",
791      tb = kb + "--rtl",
792      ub = kb + "--only-active",
793      vb = kb + "--no-captions",
794      wb = kb + "--toggle-arrows",
795      xb = ib + "__stage",
796      yb = xb + "__frame",
797      zb = yb + "--video",
798      Ab = xb + "__shaft",
799      Bb = ib + "__grab",
800      Cb = ib + "__pointer",
801      Db = ib + "__arr",
802      Eb = Db + "--disabled",
803      Fb = Db + "--prev",
804      Gb = Db + "--next",
805      Hb = ib + "__nav",
806      Ib = Hb + "-wrap",
807      Jb = Hb + "__shaft",
808      Kb = Hb + "--dots",
809      Lb = Hb + "--thumbs",
810      Mb = Hb + "__frame",
811      Nb = Mb + "--dot",
812      Ob = Mb + "--thumb",
813      Pb = ib + "__fade",
814      Qb = Pb + "-front",
815      Rb = Pb + "-rear",
816      Sb = ib + "__shadow",
817      Tb = Sb + "s",
818      Ub = Tb + "--left",
819      Vb = Tb + "--right",
820      Wb = ib + "__active",
821      Xb = ib + "__select",
822      Yb = ib + "--hidden",
823      Zb = ib + "--fullscreen",
824      $b = ib + "__fullscreen-icon",
825      _b = ib + "__error",
826      ac = ib + "__loading",
827      bc = ib + "__loaded",
828      cc = bc + "--full",
829      dc = bc + "--img",
830      ec = ib + "__grabbing",
831      fc = ib + "__img",
832      gc = fc + "--full",
833      hc = ib + "__dot",
834      ic = ib + "__thumb",
835      jc = ic + "-border",
836      kc = ib + "__html",
837      lc = ib + "__video",
838      mc = lc + "-play",
839      nc = lc + "-close",
840      oc = ib + "__caption",
841      pc = ib + "__caption__wrap",
842      qc = ib + "__spinner",
843      rc = '" tabindex="0" role="button',
844      sc = d && d.fn.jquery.split(".");
845    if (!sc || sc[0] < 1 || (1 == sc[0] && sc[1] < 8))
846      throw "Fotorama requires jQuery 1.8 or later and will not run without it.";
847    var tc = {},
848      uc = (function (a, b, c) {
849        function d(a) {
850          r.cssText = a;
851        }
852        function e(a, b) {
853          return typeof a === b;
854        }
855        function f(a, b) {
856          return !!~("" + a).indexOf(b);
857        }
858        function g(a, b) {
859          for (var d in a) {
860            var e = a[d];
861            if (!f(e, "-") && r[e] !== c) return "pfx" == b ? e : !0;
862          }
863          return !1;
864        }
865        function h(a, b, d) {
866          for (var f in a) {
867            var g = b[a[f]];
868            if (g !== c)
869              return d === !1 ? a[f] : e(g, "function") ? g.bind(d || b) : g;
870          }
871          return !1;
872        }
873        function i(a, b, c) {
874          var d = a.charAt(0).toUpperCase() + a.slice(1),
875            f = (a + " " + u.join(d + " ") + d).split(" ");
876          return e(b, "string") || e(b, "undefined")
877            ? g(f, b)
878            : ((f = (a + " " + v.join(d + " ") + d).split(" ")), h(f, b, c));
879        }
880        var j,
881          k,
882          l,
883          m = "2.6.2",
884          n = {},
885          o = b.documentElement,
886          p = "modernizr",
887          q = b.createElement(p),
888          r = q.style,
889          s = ({}.toString, " -webkit- -moz- -o- -ms- ".split(" ")),
890          t = "Webkit Moz O ms",
891          u = t.split(" "),
892          v = t.toLowerCase().split(" "),
893          w = {},
894          x = [],
895          y = x.slice,
896          z = function (a, c, d, e) {
897            var f,
898              g,
899              h,
900              i,
901              j = b.createElement("div"),
902              k = b.body,
903              l = k || b.createElement("body");
904            if (parseInt(d, 10))
905              for (; d--; )
906                (h = b.createElement("div")),
907                  (h.id = e ? e[d] : p + (d + 1)),
908                  j.appendChild(h);
909            return (
910              (f = ["&#173;", '<style id="s', p, '">', a, "</style>"].join("")),
911              (j.id = p),
912              ((k ? j : l).innerHTML += f),
913              l.appendChild(j),
914              k ||
915                ((l.style.background = ""),
916                (l.style.overflow = "hidden"),
917                (i = o.style.overflow),
918                (o.style.overflow = "hidden"),
919                o.appendChild(l)),
920              (g = c(j, a)),
921              k
922                ? j.parentNode.removeChild(j)
923                : (l.parentNode.removeChild(l), (o.style.overflow = i)),
924              !!g
925            );
926          },
927          A = {}.hasOwnProperty;
928        (l =
929          e(A, "undefined") || e(A.call, "undefined")
930            ? function (a, b) {
931                return b in a && e(a.constructor.prototype[b], "undefined");
932              }
933            : function (a, b) {
934                return A.call(a, b);
935              }),
936          Function.prototype.bind ||
937            (Function.prototype.bind = function (a) {
938              var b = this;
939              if ("function" != typeof b) throw new TypeError();
940              var c = y.call(arguments, 1),
941                d = function () {
942                  if (this instanceof d) {
943                    var e = function () {};
944                    e.prototype = b.prototype;
945                    var f = new e(),
946                      g = b.apply(f, c.concat(y.call(arguments)));
947                    return Object(g) === g ? g : f;
948                  }
949                  return b.apply(a, c.concat(y.call(arguments)));
950                };
951              return d;
952            }),
953          (w.csstransforms3d = function () {
954            var a = !!i("perspective");
955            return a;
956          });
957        for (var B in w)
958          l(w, B) &&
959            ((k = B.toLowerCase()),
960            (n[k] = w[B]()),
961            x.push((n[k] ? "" : "no-") + k));
962        return (
963          (n.addTest = function (a, b) {
964            if ("object" == typeof a)
965              for (var d in a) l(a, d) && n.addTest(d, a[d]);
966            else {
967              if (((a = a.toLowerCase()), n[a] !== c)) return n;
968              (b = "function" == typeof b ? b() : b),
969                "undefined" != typeof enableClasses &&
970                  enableClasses &&
971                  (o.className += " " + (b ? "" : "no-") + a),
972                (n[a] = b);
973            }
974            return n;
975          }),
976          d(""),
977          (q = j = null),
978          (n._version = m),
979          (n._prefixes = s),
980          (n._domPrefixes = v),
981          (n._cssomPrefixes = u),
982          (n.testProp = function (a) {
983            return g([a]);
984          }),
985          (n.testAllProps = i),
986          (n.testStyles = z),
987          (n.prefixed = function (a, b, c) {
988            return b ? i(a, b, c) : i(a, "pfx");
989          }),
990          n
991        );
992      })(a, b),
993      vc = {
994        ok: !1,
995        is: function () {
996          return !1;
997        },
998        request: function () {},
999        cancel: function () {},
1000        event: "",
1001        prefix: "",
1002      },
1003      wc = "webkit moz o ms khtml".split(" ");
1004    if ("undefined" != typeof b.cancelFullScreen) vc.ok = !0;
1005    else
1006      for (var xc = 0, yc = wc.length; yc > xc; xc++)
1007        if (
1008          ((vc.prefix = wc[xc]),
1009          "undefined" != typeof b[vc.prefix + "CancelFullScreen"])
1010        ) {
1011          vc.ok = !0;
1012          break;
1013        }
1014    vc.ok &&
1015      ((vc.event = vc.prefix + "fullscreenchange"),
1016      (vc.is = function () {
1017        switch (this.prefix) {
1018          case "":
1019            return b.fullScreen;
1020          case "webkit":
1021            return b.webkitIsFullScreen;
1022          default:
1023            return b[this.prefix + "FullScreen"];
1024        }
1025      }),
1026      (vc.request = function (a) {
1027        return "" === this.prefix
1028          ? a.requestFullScreen()
1029          : a[this.prefix + "RequestFullScreen"]();
1030      }),
1031      (vc.cancel = function () {
1032        return "" === this.prefix
1033          ? b.cancelFullScreen()
1034          : b[this.prefix + "CancelFullScreen"]();
1035      }));
1036    var zc,
1037      Ac = {
1038        lines: 12,
1039        length: 5,
1040        width: 2,
1041        radius: 7,
1042        corners: 1,
1043        rotate: 15,
1044        color: "rgba(128, 128, 128, .75)",
1045        hwaccel: !0,
1046      },
1047      Bc = { top: "auto", left: "auto", className: "" };
1048    !(function (a, b) {
1049      zc = b();
1050    })(this, function () {
1051      function a(a, c) {
1052        var d,
1053          e = b.createElement(a || "div");
1054        for (d in c) e[d] = c[d];
1055        return e;
1056      }
1057      function c(a) {
1058        for (var b = 1, c = arguments.length; c > b; b++)
1059          a.appendChild(arguments[b]);
1060        return a;
1061      }
1062      function d(a, b, c, d) {
1063        var e = ["opacity", b, ~~(100 * a), c, d].join("-"),
1064          f = 0.01 + (c / d) * 100,
1065          g = Math.max(1 - ((1 - a) / b) * (100 - f), a),
1066          h = m.substring(0, m.indexOf("Animation")).toLowerCase(),
1067          i = (h && "-" + h + "-") || "";
1068        return (
1069          o[e] ||
1070            (p.insertRule(
1071              "@" +
1072                i +
1073                "keyframes " +
1074                e +
1075                "{0%{opacity:" +
1076                g +
1077                "}" +
1078                f +
1079                "%{opacity:" +
1080                a +
1081                "}" +
1082                (f + 0.01) +
1083                "%{opacity:1}" +
1084                ((f + b) % 100) +
1085                "%{opacity:" +
1086                a +
1087                "}100%{opacity:" +
1088                g +
1089                "}}",
1090              p.cssRules.length
1091            ),
1092            (o[e] = 1)),
1093          e
1094        );
1095      }
1096      function f(a, b) {
1097        var c,
1098          d,
1099          f = a.style;
1100        for (
1101          b = b.charAt(0).toUpperCase() + b.slice(1), d = 0;
1102          d < n.length;
1103          d++
1104        )
1105          if (((c = n[d] + b), f[c] !== e)) return c;
1106        return f[b] !== e ? b : void 0;
1107      }
1108      function g(a, b) {
1109        for (var c in b) a.style[f(a, c) || c] = b[c];
1110        return a;
1111      }
1112      function h(a) {
1113        for (var b = 1; b < arguments.length; b++) {
1114          var c = arguments[b];
1115          for (var d in c) a[d] === e && (a[d] = c[d]);
1116        }
1117        return a;
1118      }
1119      function i(a) {
1120        for (
1121          var b = { x: a.offsetLeft, y: a.offsetTop };
1122          (a = a.offsetParent);
1123
1124        )
1125          (b.x += a.offsetLeft), (b.y += a.offsetTop);
1126        return b;
1127      }
1128      function j(a, b) {
1129        return "string" == typeof a ? a : a[b % a.length];
1130      }
1131      function k(a) {
1132        return "undefined" == typeof this
1133          ? new k(a)
1134          : void (this.opts = h(a || {}, k.defaults, q));
1135      }
1136      function l() {
1137        function b(b, c) {
1138          return a(
1139            "<" +
1140              b +
1141              ' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',
1142            c
1143          );
1144        }
1145        p.addRule(".spin-vml", "behavior:url(#default#VML)"),
1146          (k.prototype.lines = function (a, d) {
1147            function e() {
1148              return g(
1149                b("group", {
1150                  coordsize: k + " " + k,
1151                  coordorigin: -i + " " + -i,
1152                }),
1153                { width: k, height: k }
1154              );
1155            }
1156            function f(a, f, h) {
1157              c(
1158                m,
1159                c(
1160                  g(e(), { rotation: (360 / d.lines) * a + "deg", left: ~~f }),
1161                  c(
1162                    g(b("roundrect", { arcsize: d.corners }), {
1163                      width: i,
1164                      height: d.width,
1165                      left: d.radius,
1166                      top: -d.width >> 1,
1167                      filter: h,
1168                    }),
1169                    b("fill", { color: j(d.color, a), opacity: d.opacity }),
1170                    b("stroke", { opacity: 0 })
1171                  )
1172                )
1173              );
1174            }
1175            var h,
1176              i = d.length + d.width,
1177              k = 2 * i,
1178              l = 2 * -(d.width + d.length) + "px",
1179              m = g(e(), { position: "absolute", top: l, left: l });
1180            if (d.shadow)
1181              for (h = 1; h <= d.lines; h++)
1182                f(
1183                  h,
1184                  -2,
1185                  "progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)"
1186                );
1187            for (h = 1; h <= d.lines; h++) f(h);
1188            return c(a, m);
1189          }),
1190          (k.prototype.opacity = function (a, b, c, d) {
1191            var e = a.firstChild;
1192            (d = (d.shadow && d.lines) || 0),
1193              e &&
1194                b + d < e.childNodes.length &&
1195                ((e = e.childNodes[b + d]),
1196                (e = e && e.firstChild),
1197                (e = e && e.firstChild),
1198                e && (e.opacity = c));
1199          });
1200      }
1201      var m,
1202        n = ["webkit", "Moz", "ms", "O"],
1203        o = {},
1204        p = (function () {
1205          var d = a("style", { type: "text/css" });
1206          return (
1207            c(b.getElementsByTagName("head")[0], d), d.sheet || d.styleSheet
1208          );
1209        })(),
1210        q = {
1211          lines: 12,
1212          length: 7,
1213          width: 5,
1214          radius: 10,
1215          rotate: 0,
1216          corners: 1,
1217          color: "#000",
1218          direction: 1,
1219          speed: 1,
1220          trail: 100,
1221          opacity: 0.25,
1222          fps: 20,
1223          zIndex: 2e9,
1224          className: "spinner",
1225          top: "auto",
1226          left: "auto",
1227          position: "relative",
1228        };
1229      (k.defaults = {}),
1230        h(k.prototype, {
1231          spin: function (b) {
1232            this.stop();
1233            var c,
1234              d,
1235              e = this,
1236              f = e.opts,
1237              h = (e.el = g(a(0, { className: f.className }), {
1238                position: f.position,
1239                width: 0,
1240                zIndex: f.zIndex,
1241              })),
1242              j = f.radius + f.length + f.width;
1243            if (
1244              (b &&
1245                (b.insertBefore(h, b.firstChild || null),
1246                (d = i(b)),
1247                (c = i(h)),
1248                g(h, {
1249                  left:
1250                    ("auto" == f.left
1251                      ? d.x - c.x + (b.offsetWidth >> 1)
1252                      : parseInt(f.left, 10) + j) + "px",
1253                  top:
1254                    ("auto" == f.top
1255                      ? d.y - c.y + (b.offsetHeight >> 1)
1256                      : parseInt(f.top, 10) + j) + "px",
1257                })),
1258              h.setAttribute("role", "progressbar"),
1259              e.lines(h, e.opts),
1260              !m)
1261            ) {
1262              var k,
1263                l = 0,
1264                n = ((f.lines - 1) * (1 - f.direction)) / 2,
1265                o = f.fps,
1266                p = o / f.speed,
1267                q = (1 - f.opacity) / ((p * f.trail) / 100),
1268                r = p / f.lines;
1269              !(function s() {
1270                l++;
1271                for (var a = 0; a < f.lines; a++)
1272                  (k = Math.max(
1273                    1 - ((l + (f.lines - a) * r) % p) * q,
1274                    f.opacity
1275                  )),
1276                    e.opacity(h, a * f.direction + n, k, f);
1277                e.timeout = e.el && setTimeout(s, ~~(1e3 / o));
1278              })();
1279            }
1280            return e;
1281          },
1282          stop: function () {
1283            var a = this.el;
1284            return (
1285              a &&
1286                (clearTimeout(this.timeout),
1287                a.parentNode && a.parentNode.removeChild(a),
1288                (this.el = e)),
1289              this
1290            );
1291          },
1292          lines: function (b, e) {
1293            function f(b, c) {
1294              return g(a(), {
1295                position: "absolute",
1296                width: e.length + e.width + "px",
1297                height: e.width + "px",
1298                background: b,
1299                boxShadow: c,
1300                transformOrigin: "left",
1301                transform:
1302                  "rotate(" +
1303                  ~~((360 / e.lines) * i + e.rotate) +
1304                  "deg) translate(" +
1305                  e.radius +
1306                  "px,0)",
1307                borderRadius: ((e.corners * e.width) >> 1) + "px",
1308              });
1309            }
1310            for (
1311              var h, i = 0, k = ((e.lines - 1) * (1 - e.direction)) / 2;
1312              i < e.lines;
1313              i++
1314            )
1315              (h = g(a(), {
1316                position: "absolute",
1317                top: 1 + ~(e.width / 2) + "px",
1318                transform: e.hwaccel ? "translate3d(0,0,0)" : "",
1319                opacity: e.opacity,
1320                animation:
1321                  m &&
1322                  d(e.opacity, e.trail, k + i * e.direction, e.lines) +
1323                    " " +
1324                    1 / e.speed +
1325                    "s linear infinite",
1326              })),
1327                e.shadow && c(h, g(f("#000", "0 0 4px #000"), { top: "2px" })),
1328                c(b, c(h, f(j(e.color, i), "0 0 1px rgba(0,0,0,.1)")));
1329            return b;
1330          },
1331          opacity: function (a, b, c) {
1332            b < a.childNodes.length && (a.childNodes[b].style.opacity = c);
1333          },
1334        });
1335      var r = g(a("group"), { behavior: "url(#default#VML)" });
1336      return !f(r, "transform") && r.adj ? l() : (m = f(r, "animation")), k;
1337    });
1338    var Cc,
1339      Dc,
1340      Ec = d(a),
1341      Fc = d(b),
1342      Gc = "quirks" === c.hash.replace("#", ""),
1343      Hc = uc.csstransforms3d,
1344      Ic = Hc && !Gc,
1345      Jc = Hc || "CSS1Compat" === b.compatMode,
1346      Kc = vc.ok,
1347      Lc = navigator.userAgent.match(
1348        /Android|webOS|iPhone|iPad|iPod|BlackBerry|Windows Phone/i
1349      ),
1350      Mc = !Ic || Lc,
1351      Nc = navigator.msPointerEnabled,
1352      Oc =
1353        "onwheel" in b.createElement("div")
1354          ? "wheel"
1355          : b.onmousewheel !== e
1356          ? "mousewheel"
1357          : "DOMMouseScroll",
1358      Pc = 250,
1359      Qc = 300,
1360      Rc = 1400,
1361      Sc = 5e3,
1362      Tc = 2,
1363      Uc = 64,
1364      Vc = 500,
1365      Wc = 333,
1366      Xc = "$stageFrame",
1367      Yc = "$navDotFrame",
1368      Zc = "$navThumbFrame",
1369      $c = "auto",
1370      _c = f([0.1, 0, 0.25, 1]),
1371      ad = 99999,
1372      bd = "50%",
1373      cd = {
1374        width: null,
1375        minwidth: null,
1376        maxwidth: "100%",
1377        height: null,
1378        minheight: null,
1379        maxheight: null,
1380        ratio: null,
1381        margin: Tc,
1382        glimpse: 0,
1383        fit: "contain",
1384        position: bd,
1385        thumbposition: bd,
1386        nav: "dots",
1387        navposition: "bottom",
1388        navwidth: null,
1389        thumbwidth: Uc,
1390        thumbheight: Uc,
1391        thumbmargin: Tc,
1392        thumbborderwidth: Tc,
1393        thumbfit: "cover",
1394        allowfullscreen: !1,
1395        transition: "slide",
1396        clicktransition: null,
1397        transitionduration: Qc,
1398        captions: !0,
1399        hash: !1,
1400        startindex: 0,
1401        loop: !1,
1402        autoplay: !1,
1403        stopautoplayontouch: !0,
1404        keyboard: !1,
1405        arrows: !0,
1406        click: !0,
1407        swipe: !0,
1408        trackpad: !1,
1409        enableifsingleframe: !1,
1410        controlsonstart: !0,
1411        shuffle: !1,
1412        direction: "ltr",
1413        shadows: !0,
1414        spinner: null,
1415      },
1416      dd = {
1417        left: !0,
1418        right: !0,
1419        down: !1,
1420        up: !1,
1421        space: !1,
1422        home: !1,
1423        end: !1,
1424      };
1425    G.stop = function (a) {
1426      G.ii[a] = !1;
1427    };
1428    var ed, fd, gd, hd;
1429    (jQuery.Fotorama = function (a, e) {
1430      function f() {
1431        d.each(yd, function (a, b) {
1432          if (!b.i) {
1433            b.i = me++;
1434            var c = A(b.video, !0);
1435            if (c) {
1436              var d = {};
1437              (b.video = c),
1438                b.img || b.thumb ? (b.thumbsReady = !0) : (d = B(b, yd, ie)),
1439                C(yd, { img: d.img, thumb: d.thumb }, b.i, ie);
1440            }
1441          }
1442        });
1443      }
1444      function g(a) {
1445        return Zd[a] || ie.fullScreen;
1446      }
1447      function i(a) {
1448        var b = "keydown." + ib,
1449          c = ib + je,
1450          d = "keydown." + c,
1451          f = "resize." + c + " orientationchange." + c;
1452        a
1453          ? (Fc.on(d, function (a) {
1454              var b, c;
1455              Cd && 27 === a.keyCode
1456                ? ((b = !0), md(Cd, !0, !0))
1457                : (ie.fullScreen || (e.keyboard && !ie.index)) &&
1458                  (27 === a.keyCode
1459                    ? ((b = !0), ie.cancelFullScreen())
1460                    : (a.shiftKey && 32 === a.keyCode && g("space")) ||
1461                      (37 === a.keyCode && g("left")) ||
1462                      (38 === a.keyCode && g("up"))
1463                    ? (c = "<")
1464                    : (32 === a.keyCode && g("space")) ||
1465                      (39 === a.keyCode && g("right")) ||
1466                      (40 === a.keyCode && g("down"))
1467                    ? (c = ">")
1468                    : 36 === a.keyCode && g("home")
1469                    ? (c = "<<")
1470                    : 35 === a.keyCode && g("end") && (c = ">>")),
1471                (b || c) && Y(a),
1472                c && ie.show({ index: c, slow: a.altKey, user: !0 });
1473            }),
1474            ie.index ||
1475              Fc.off(b).on(b, "textarea, input, select", function (a) {
1476                !Dc.hasClass(jb) && a.stopPropagation();
1477              }),
1478            Ec.on(f, ie.resize))
1479          : (Fc.off(d), Ec.off(f));
1480      }
1481      function j(b) {
1482        b !== j.f &&
1483          (b
1484            ? (a
1485                .html("")
1486                .addClass(ib + " " + ke)
1487                .append(qe)
1488                .before(oe)
1489                .before(pe),
1490              gb(ie))
1491            : (qe.detach(),
1492              oe.detach(),
1493              pe.detach(),
1494              a.html(ne.urtext).removeClass(ke),
1495              hb(ie)),
1496          i(b),
1497          (j.f = b));
1498      }
1499      function m() {
1500        (yd = ie.data = yd || P(e.data) || D(a)),
1501          (zd = ie.size = yd.length),
1502          !xd.ok && e.shuffle && O(yd),
1503          f(),
1504          (Je = y(Je)),
1505          zd && j(!0);
1506      }
1507      function o() {
1508        var a = (2 > zd && !e.enableifsingleframe) || Cd;
1509        (Me.noMove = a || Sd),
1510          (Me.noSwipe = a || !e.swipe),
1511          !Wd && se.toggleClass(Bb, !e.click && !Me.noMove && !Me.noSwipe),
1512          Nc && qe.toggleClass(sb, !Me.noSwipe);
1513      }
1514      function t(a) {
1515        a === !0 && (a = ""), (e.autoplay = Math.max(+a || Sc, 1.5 * Vd));
1516      }
1517      function u() {
1518        function a(a, c) {
1519          b[a ? "add" : "remove"].push(c);
1520        }
1521        (ie.options = e = R(e)),
1522          (Sd = "crossfade" === e.transition || "dissolve" === e.transition),
1523          (Md = e.loop && (zd > 2 || (Sd && (!Wd || "slide" !== Wd)))),
1524          (Vd = +e.transitionduration || Qc),
1525          (Yd = "rtl" === e.direction),
1526          (Zd = d.extend({}, e.keyboard && dd, e.keyboard));
1527        var b = { add: [], remove: [] };
1528        zd > 1 || e.enableifsingleframe
1529          ? ((Nd = e.nav),
1530            (Pd = "top" === e.navposition),
1531            b.remove.push(Xb),
1532            we.toggle(!!e.arrows))
1533          : ((Nd = !1), we.hide()),
1534          Rb(),
1535          (Bd = new zc(
1536            d.extend(Ac, e.spinner, Bc, { direction: Yd ? -1 : 1 })
1537          )),
1538          Gc(),
1539          Hc(),
1540          e.autoplay && t(e.autoplay),
1541          (Td = n(e.thumbwidth) || Uc),
1542          (Ud = n(e.thumbheight) || Uc),
1543          (Ne.ok = Pe.ok = e.trackpad && !Mc),
1544          o(),
1545          ed(e, [Le]),
1546          (Od = "thumbs" === Nd),
1547          Od
1548            ? (lc(zd, "navThumb"),
1549              (Ad = Be),
1550              (he = Zc),
1551              J(
1552                oe,
1553                d.Fotorama.jst.style({
1554                  w: Td,
1555                  h: Ud,
1556                  b: e.thumbborderwidth,
1557                  m: e.thumbmargin,
1558                  s: je,
1559                  q: !Jc,
1560                })
1561              ),
1562              ye.addClass(Lb).removeClass(Kb))
1563            : "dots" === Nd
1564            ? (lc(zd, "navDot"),
1565              (Ad = Ae),
1566              (he = Yc),
1567              ye.addClass(Kb).removeClass(Lb))
1568            : ((Nd = !1), ye.removeClass(Lb + " " + Kb)),
1569          Nd &&
1570            (Pd ? xe.insertBefore(re) : xe.insertAfter(re),
1571            (wc.nav = !1),
1572            wc(Ad, ze, "nav")),
1573          (Qd = e.allowfullscreen),
1574          Qd
1575            ? (De.prependTo(re), (Rd = Kc && "native" === Qd))
1576            : (De.detach(), (Rd = !1)),
1577          a(Sd, ob),
1578          a(!Sd, pb),
1579          a(!e.captions, vb),
1580          a(Yd, tb),
1581          a("always" !== e.arrows, wb),
1582          (Xd = e.shadows && !Mc),
1583          a(!Xd, rb),
1584          qe.addClass(b.add.join(" ")).removeClass(b.remove.join(" ")),
1585          (Ke = d.extend({}, e));
1586      }
1587      function x(a) {
1588        return 0 > a ? (zd + (a % zd)) % zd : a >= zd ? a % zd : a;
1589      }
1590      function y(a) {
1591        return h(a, 0, zd - 1);
1592      }
1593      function z(a) {
1594        return Md ? x(a) : y(a);
1595      }
1596      function E(a) {
1597        return a > 0 || Md ? a - 1 : !1;
1598      }
1599      function U(a) {
1600        return zd - 1 > a || Md ? a + 1 : !1;
1601      }
1602      function $() {
1603        (Me.min = Md ? -1 / 0 : -r(zd - 1, Le.w, e.margin, Fd)),
1604          (Me.max = Md ? 1 / 0 : -r(0, Le.w, e.margin, Fd)),
1605          (Me.snap = Le.w + e.margin);
1606      }
1607      function bb() {
1608        (Oe.min = Math.min(0, Le.nw - ze.width())),
1609          (Oe.max = 0),
1610          ze.toggleClass(Bb, !(Oe.noMove = Oe.min === Oe.max));
1611      }
1612      function cb(a, b, c) {
1613        if ("number" == typeof a) {
1614          a = new Array(a);
1615          var e = !0;
1616        }
1617        return d.each(a, function (a, d) {
1618          if ((e && (d = a), "number" == typeof d)) {
1619            var f = yd[x(d)];
1620            if (f) {
1621              var g = "$" + b + "Frame",
1622                h = f[g];
1623              c.call(this, a, d, f, h, g, h && h.data());
1624            }
1625          }
1626        });
1627      }
1628      function fb(a, b, c, d) {
1629        (!$d || ("*" === $d && d === Ld)) &&
1630          ((a = q(e.width) || q(a) || Vc),
1631          (b = q(e.height) || q(b) || Wc),
1632          ie.resize(
1633            { width: a, ratio: e.ratio || c || a / b },
1634            0,
1635            d !== Ld && "*"
1636          ));
1637      }
1638      function Pb(a, b, c, f, g, h) {
1639        cb(a, b, function (a, i, j, k, l, m) {
1640          function n(a) {
1641            var b = x(i);
1642            fd(a, { index: b, src: w, frame: yd[b] });
1643          }
1644          function o() {
1645            t.remove(),
1646              (d.Fotorama.cache[w] = "error"),
1647              (j.html && "stage" === b) || !y || y === w
1648                ? (!w || j.html || r
1649                    ? "stage" === b &&
1650                      (k
1651                        .trigger("f:load")
1652                        .removeClass(ac + " " + _b)
1653                        .addClass(bc),
1654                      n("load"),
1655                      fb())
1656                    : (k.trigger("f:error").removeClass(ac).addClass(_b),
1657                      n("error")),
1658                  (m.state = "error"),
1659                  !(zd > 1 && yd[i] === j) ||
1660                    j.html ||
1661                    j.deleted ||
1662                    j.video ||
1663                    r ||
1664                    ((j.deleted = !0), ie.splice(i, 1)))
1665                : ((j[v] = w = y), Pb([i], b, c, f, g, !0));
1666          }
1667          function p() {
1668            (d.Fotorama.measures[w] = u.measures =
1669              d.Fotorama.measures[w] || {
1670                width: s.width,
1671                height: s.height,
1672                ratio: s.width / s.height,
1673              }),
1674              fb(u.measures.width, u.measures.height, u.measures.ratio, i),
1675              t
1676                .off("load error")
1677                .addClass(fc + (r ? " " + gc : ""))
1678                .prependTo(k),
1679              I(
1680                t,
1681                (d.isFunction(c) ? c() : c) || Le,
1682                f || j.fit || e.fit,
1683                g || j.position || e.position
1684              ),
1685              (d.Fotorama.cache[w] = m.state = "loaded"),
1686              setTimeout(function () {
1687                k
1688                  .trigger("f:load")
1689                  .removeClass(ac + " " + _b)
1690                  .addClass(bc + " " + (r ? cc : dc)),
1691                  "stage" === b
1692                    ? n("load")
1693                    : (j.thumbratio === $c ||
1694                        (!j.thumbratio && e.thumbratio === $c)) &&
1695                      ((j.thumbratio = u.measures.ratio), vd());
1696              }, 0);
1697          }
1698          function q() {
1699            var a = 10;
1700            G(
1701              function () {
1702                return !fe || (!a-- && !Mc);
1703              },
1704              function () {
1705                p();
1706              }
1707            );
1708          }
1709          if (k) {
1710            var r =
1711              ie.fullScreen &&
1712              j.full &&
1713              j.full !== j.img &&
1714              !m.$full &&
1715              "stage" === b;
1716            if (!m.$img || h || r) {
1717              var s = new Image(),
1718                t = d(s),
1719                u = t.data();
1720              m[r ? "$full" : "$img"] = t;
1721              var v = "stage" === b ? (r ? "full" : "img") : "thumb",
1722                w = j[v],
1723                y = r ? null : j["stage" === b ? "thumb" : "img"];
1724              if (("navThumb" === b && (k = m.$wrap), !w)) return void o();
1725              d.Fotorama.cache[w]
1726                ? !(function z() {
1727                    "error" === d.Fotorama.cache[w]
1728                      ? o()
1729                      : "loaded" === d.Fotorama.cache[w]
1730                      ? setTimeout(q, 0)
1731                      : setTimeout(z, 100);
1732                  })()
1733                : ((d.Fotorama.cache[w] = "*"), t.on("load", q).on("error", o)),
1734                (m.state = ""),
1735                (s.src = w);
1736            }
1737          }
1738        });
1739      }
1740      function Qb(a) {
1741        Ie.append(Bd.spin().el).appendTo(a);
1742      }
1743      function Rb() {
1744        Ie.detach(), Bd && Bd.stop();
1745      }
1746      function Sb() {
1747        var a = Dd[Xc];
1748        a &&
1749          !a.data().state &&
1750          (Qb(a),
1751          a.on("f:load f:error", function () {
1752            a.off("f:load f:error"), Rb();
1753          }));
1754      }
1755      function ec(a) {
1756        W(a, sd),
1757          X(a, function () {
1758            setTimeout(function () {
1759              Q(ye);
1760            }, 0),
1761              Rc({ time: Vd, guessIndex: d(this).data().eq, minMax: Oe });
1762          });
1763      }
1764      function lc(a, b) {
1765        cb(a, b, function (a, c, e, f, g, h) {
1766          if (!f) {
1767            (f = e[g] = qe[g].clone()), (h = f.data()), (h.data = e);
1768            var i = f[0];
1769            "stage" === b
1770              ? (e.html &&
1771                  d('<div class="' + kc + '"></div>')
1772                    .append(
1773                      e._html
1774                        ? d(e.html).removeAttr("id").html(e._html)
1775                        : e.html
1776                    )
1777                    .appendTo(f),
1778                e.caption && d(N(oc, N(pc, e.caption))).appendTo(f),
1779                e.video && f.addClass(zb).append(Fe.clone()),
1780                X(i, function () {
1781                  setTimeout(function () {
1782                    Q(re);
1783                  }, 0),
1784                    pd({ index: h.eq, user: !0 });
1785                }),
1786                (te = te.add(f)))
1787              : "navDot" === b
1788              ? (ec(i), (Ae = Ae.add(f)))
1789              : "navThumb" === b &&
1790                (ec(i),
1791                (h.$wrap = f.children(":first")),
1792                (Be = Be.add(f)),
1793                e.video && h.$wrap.append(Fe.clone()));
1794          }
1795        });
1796      }
1797      function sc(a, b, c, d) {
1798        return a && a.length && I(a, b, c, d);
1799      }
1800      function tc(a) {
1801        cb(a, "stage", function (a, b, c, f, g, h) {
1802          if (f) {
1803            var i = x(b),
1804              j = c.fit || e.fit,
1805              k = c.position || e.position;
1806            (h.eq = i),
1807              (Re[Xc][i] = f.css(
1808                d.extend(
1809                  { left: Sd ? 0 : r(b, Le.w, e.margin, Fd) },
1810                  Sd && l(0)
1811                )
1812              )),
1813              F(f[0]) && (f.appendTo(se), md(c.$video)),
1814              sc(h.$img, Le, j, k),
1815              sc(h.$full, Le, j, k);
1816          }
1817        });
1818      }
1819      function uc(a, b) {
1820        if ("thumbs" === Nd && !isNaN(a)) {
1821          var c = -a,
1822            f = -a + Le.nw;
1823          Be.each(function () {
1824            var a = d(this),
1825              g = a.data(),
1826              h = g.eq,
1827              i = function () {
1828                return { h: Ud, w: g.w };
1829              },
1830              j = i(),
1831              k = yd[h] || {},
1832              l = k.thumbfit || e.thumbfit,
1833              m = k.thumbposition || e.thumbposition;
1834            (j.w = g.w),
1835              g.l + g.w < c ||
1836                g.l > f ||
1837                sc(g.$img, j, l, m) ||
1838                (b && Pb([h], "navThumb", i, l, m));
1839          });
1840        }
1841      }
1842      function wc(a, b, c) {
1843        if (!wc[c]) {
1844          var f = "nav" === c && Od,
1845            g = 0;
1846          b.append(
1847            a
1848              .filter(function () {
1849                for (
1850                  var a, b = d(this), c = b.data(), e = 0, f = yd.length;
1851                  f > e;
1852                  e++
1853                )
1854                  if (c.data === yd[e]) {
1855                    (a = !0), (c.eq = e);
1856                    break;
1857                  }
1858                return a || (b.remove() && !1);
1859              })
1860              .sort(function (a, b) {
1861                return d(a).data().eq - d(b).data().eq;
1862              })
1863              .each(function () {
1864                if (f) {
1865                  var a = d(this),
1866                    b = a.data(),
1867                    c = Math.round(Ud * b.data.thumbratio) || Td;
1868                  (b.l = g),
1869                    (b.w = c),
1870                    a.css({ width: c }),
1871                    (g += c + e.thumbmargin);
1872                }
1873              })
1874          ),
1875            (wc[c] = !0);
1876        }
1877      }
1878      function xc(a) {
1879        return a - Se > Le.w / 3;
1880      }
1881      function yc(a) {
1882        return !(Md || (Je + a && Je - zd + a) || Cd);
1883      }
1884      function Gc() {
1885        var a = yc(0),
1886          b = yc(1);
1887        ue.toggleClass(Eb, a).attr(V(a)), ve.toggleClass(Eb, b).attr(V(b));
1888      }
1889      function Hc() {
1890        Ne.ok && (Ne.prevent = { "<": yc(0), ">": yc(1) });
1891      }
1892      function Lc(a) {
1893        var b,
1894          c,
1895          d = a.data();
1896        return (
1897          Od
1898            ? ((b = d.l), (c = d.w))
1899            : ((b = a.position().left), (c = a.width())),
1900          {
1901            c: b + c / 2,
1902            min: -b + 10 * e.thumbmargin,
1903            max: -b + Le.w - c - 10 * e.thumbmargin,
1904          }
1905        );
1906      }
1907      function Oc(a) {
1908        var b = Dd[he].data();
1909        _(Ce, { time: 1.2 * a, pos: b.l, width: b.w - 2 * e.thumbborderwidth });
1910      }
1911      function Rc(a) {
1912        var b = yd[a.guessIndex][he];
1913        if (b) {
1914          var c = Oe.min !== Oe.max,
1915            d = a.minMax || (c && Lc(Dd[he])),
1916            e =
1917              c &&
1918              (a.keep && Rc.l
1919                ? Rc.l
1920                : h((a.coo || Le.nw / 2) - Lc(b).c, d.min, d.max)),
1921            f = c && h(e, Oe.min, Oe.max),
1922            g = 1.1 * a.time;
1923          _(ze, {
1924            time: g,
1925            pos: f || 0,
1926            onEnd: function () {
1927              uc(f, !0);
1928            },
1929          }),
1930            ld(ye, K(f, Oe.min, Oe.max)),
1931            (Rc.l = e);
1932        }
1933      }
1934      function Tc() {
1935        _c(he), Qe[he].push(Dd[he].addClass(Wb));
1936      }
1937      function _c(a) {
1938        for (var b = Qe[a]; b.length; ) b.shift().removeClass(Wb);
1939      }
1940      function bd(a) {
1941        var b = Re[a];
1942        d.each(Ed, function (a, c) {
1943          delete b[x(c)];
1944        }),
1945          d.each(b, function (a, c) {
1946            delete b[a], c.detach();
1947          });
1948      }
1949      function cd(a) {
1950        Fd = Gd = Je;
1951        var b = Dd[Xc];
1952        b &&
1953          (_c(Xc),
1954          Qe[Xc].push(b.addClass(Wb)),
1955          a || ie.show.onEnd(!0),
1956          v(se, 0, !0),
1957          bd(Xc),
1958          tc(Ed),
1959          $(),
1960          bb());
1961      }
1962      function ed(a, b) {
1963        a &&
1964          d.each(b, function (b, c) {
1965            c &&
1966              d.extend(c, {
1967                width: a.width || c.width,
1968                height: a.height,
1969                minwidth: a.minwidth,
1970                maxwidth: a.maxwidth,
1971                minheight: a.minheight,
1972                maxheight: a.maxheight,
1973                ratio: S(a.ratio),
1974              });
1975          });
1976      }
1977      function fd(b, c) {
1978        a.trigger(ib + ":" + b, [ie, c]);
1979      }
1980      function gd() {
1981        clearTimeout(hd.t),
1982          (fe = 1),
1983          e.stopautoplayontouch ? ie.stopAutoplay() : (ce = !0);
1984      }
1985      function hd() {
1986        fe &&
1987          (e.stopautoplayontouch || (id(), jd()),
1988          (hd.t = setTimeout(function () {
1989            fe = 0;
1990          }, Qc + Pc)));
1991      }
1992      function id() {
1993        ce = !(!Cd && !de);
1994      }
1995      function jd() {
1996        if ((clearTimeout(jd.t), G.stop(jd.w), !e.autoplay || ce))
1997          return void (ie.autoplay && ((ie.autoplay = !1), fd("stopautoplay")));
1998        ie.autoplay || ((ie.autoplay = !0), fd("startautoplay"));
1999        var a = Je,
2000          b = Dd[Xc].data();
2001        jd.w = G(
2002          function () {
2003            return b.state || a !== Je;
2004          },
2005          function () {
2006            jd.t = setTimeout(function () {
2007              if (!ce && a === Je) {
2008                var b = Kd,
2009                  c = yd[b][Xc].data();
2010                jd.w = G(
2011                  function () {
2012                    return c.state || b !== Kd;
2013                  },
2014                  function () {
2015                    ce || b !== Kd || ie.show(Md ? Z(!Yd) : Kd);
2016                  }
2017                );
2018              }
2019            }, e.autoplay);
2020          }
2021        );
2022      }
2023      function kd() {
2024        ie.fullScreen &&
2025          ((ie.fullScreen = !1),
2026          Kc && vc.cancel(le),
2027          Dc.removeClass(jb),
2028          Cc.removeClass(jb),
2029          a.removeClass(Zb).insertAfter(pe),
2030          (Le = d.extend({}, ee)),
2031          md(Cd, !0, !0),
2032          rd("x", !1),
2033          ie.resize(),
2034          Pb(Ed, "stage"),
2035          Q(Ec, ae, _d),
2036          fd("fullscreenexit"));
2037      }
2038      function ld(a, b) {
2039        Xd &&
2040          (a.removeClass(Ub + " " + Vb),
2041          b && !Cd && a.addClass(b.replace(/^|\s/g, " " + Tb + "--")));
2042      }
2043      function md(a, b, c) {
2044        b && (qe.removeClass(nb), (Cd = !1), o()),
2045          a && a !== Cd && (a.remove(), fd("unloadvideo")),
2046          c && (id(), jd());
2047      }
2048      function nd(a) {
2049        qe.toggleClass(qb, a);
2050      }
2051      function od(a) {
2052        if (!Me.flow) {
2053          var b = a ? a.pageX : od.x,
2054            c = b && !yc(xc(b)) && e.click;
2055          od.p !== c && re.toggleClass(Cb, c) && ((od.p = c), (od.x = b));
2056        }
2057      }
2058      function pd(a) {
2059        clearTimeout(pd.t),
2060          e.clicktransition && e.clicktransition !== e.transition
2061            ? setTimeout(function () {
2062                var b = e.transition;
2063                ie.setOptions({ transition: e.clicktransition }),
2064                  (Wd = b),
2065                  (pd.t = setTimeout(function () {
2066                    ie.show(a);
2067                  }, 10));
2068              }, 0)
2069            : ie.show(a);
2070      }
2071      function qd(a, b) {
2072        var c = a.target,
2073          f = d(c);
2074        f.hasClass(mc)
2075          ? ie.playVideo()
2076          : c === Ee
2077          ? ie.toggleFullScreen()
2078          : Cd
2079          ? c === He && md(Cd, !0, !0)
2080          : b
2081          ? nd()
2082          : e.click &&
2083            pd({ index: a.shiftKey || Z(xc(a._x)), slow: a.altKey, user: !0 });
2084      }
2085      function rd(a, b) {
2086        Me[a] = Oe[a] = b;
2087      }
2088      function sd(a) {
2089        var b = d(this).data().eq;
2090        pd({
2091          index: b,
2092          slow: a.altKey,
2093          user: !0,
2094          coo: a._x - ye.offset().left,
2095        });
2096      }
2097      function td(a) {
2098        pd({ index: we.index(this) ? ">" : "<", slow: a.altKey, user: !0 });
2099      }
2100      function ud(a) {
2101        X(a, function () {
2102          setTimeout(function () {
2103            Q(re);
2104          }, 0),
2105            nd(!1);
2106        });
2107      }
2108      function vd() {
2109        if ((m(), u(), !vd.i)) {
2110          vd.i = !0;
2111          var a = e.startindex;
2112          (a || (e.hash && c.hash)) &&
2113            (Ld = L(a || c.hash.replace(/^#/, ""), yd, 0 === ie.index || a, a)),
2114            (Je = Fd = Gd = Hd = Ld = z(Ld) || 0);
2115        }
2116        if (zd) {
2117          if (wd()) return;
2118          Cd && md(Cd, !0),
2119            (Ed = []),
2120            bd(Xc),
2121            (vd.ok = !0),
2122            ie.show({ index: Je, time: 0 }),
2123            ie.resize();
2124        } else ie.destroy();
2125      }
2126      function wd() {
2127        return !wd.f === Yd
2128          ? ((wd.f = Yd), (Je = zd - 1 - Je), ie.reverse(), !0)
2129          : void 0;
2130      }
2131      function xd() {
2132        xd.ok || ((xd.ok = !0), fd("ready"));
2133      }
2134      (Cc = d("html")), (Dc = d("body"));
2135      var yd,
2136        zd,
2137        Ad,
2138        Bd,
2139        Cd,
2140        Dd,
2141        Ed,
2142        Fd,
2143        Gd,
2144        Hd,
2145        Id,
2146        Jd,
2147        Kd,
2148        Ld,
2149        Md,
2150        Nd,
2151        Od,
2152        Pd,
2153        Qd,
2154        Rd,
2155        Sd,
2156        Td,
2157        Ud,
2158        Vd,
2159        Wd,
2160        Xd,
2161        Yd,
2162        Zd,
2163        $d,
2164        _d,
2165        ae,
2166        be,
2167        ce,
2168        de,
2169        ee,
2170        fe,
2171        ge,
2172        he,
2173        ie = this,
2174        je = d.now(),
2175        ke = ib + je,
2176        le = a[0],
2177        me = 1,
2178        ne = a.data(),
2179        oe = d("<style></style>"),
2180        pe = d(N(Yb)),
2181        qe = d(N(kb)),
2182        re = d(N(xb)).appendTo(qe),
2183        se = (re[0], d(N(Ab)).appendTo(re)),
2184        te = d(),
2185        ue = d(N(Db + " " + Fb + rc)),
2186        ve = d(N(Db + " " + Gb + rc)),
2187        we = ue.add(ve).appendTo(re),
2188        xe = d(N(Ib)),
2189        ye = d(N(Hb)).appendTo(xe),
2190        ze = d(N(Jb)).appendTo(ye),
2191        Ae = d(),
2192        Be = d(),
2193        Ce = (se.data(), ze.data(), d(N(jc)).appendTo(ze)),
2194        De = d(N($b + rc)),
2195        Ee = De[0],
2196        Fe = d(N(mc)),
2197        Ge = d(N(nc)).appendTo(re),
2198        He = Ge[0],
2199        Ie = d(N(qc)),
2200        Je = !1,
2201        Ke = {},
2202        Le = {},
2203        Me = {},
2204        Ne = {},
2205        Oe = {},
2206        Pe = {},
2207        Qe = {},
2208        Re = {},
2209        Se = 0,
2210        Te = [];
2211      (qe[Xc] = d(N(yb))),
2212        (qe[Zc] = d(N(Mb + " " + Ob + rc, N(ic)))),
2213        (qe[Yc] = d(N(Mb + " " + Nb + rc, N(hc)))),
2214        (Qe[Xc] = []),
2215        (Qe[Zc] = []),
2216        (Qe[Yc] = []),
2217        (Re[Xc] = {}),
2218        qe.addClass(Ic ? mb : lb).toggleClass(qb, !e.controlsonstart),
2219        (ne.fotorama = this),
2220        (ie.startAutoplay = function (a) {
2221          return ie.autoplay
2222            ? this
2223            : ((ce = de = !1), t(a || e.autoplay), jd(), this);
2224        }),
2225        (ie.stopAutoplay = function () {
2226          return ie.autoplay && ((ce = de = !0), jd()), this;
2227        }),
2228        (ie.show = function (a) {
2229          var b;
2230          "object" != typeof a ? ((b = a), (a = {})) : (b = a.index),
2231            (b =
2232              ">" === b
2233                ? Gd + 1
2234                : "<" === b
2235                ? Gd - 1
2236                : "<<" === b
2237                ? 0
2238                : ">>" === b
2239                ? zd - 1
2240                : b),
2241            (b = isNaN(b) ? L(b, yd, !0) : b),
2242            (b = "undefined" == typeof b ? Je || 0 : b),
2243            (ie.activeIndex = Je = z(b)),
2244            (Id = E(Je)),
2245            (Jd = U(Je)),
2246            (Kd = x(Je + (Yd ? -1 : 1))),
2247            (Ed = [Je, Id, Jd]),
2248            (Gd = Md ? b : Je);
2249          var c = Math.abs(Hd - Gd),
2250            d = w(a.time, function () {
2251              return Math.min(Vd * (1 + (c - 1) / 12), 2 * Vd);
2252            }),
2253            f = a.overPos;
2254          a.slow && (d *= 10);
2255          var g = Dd;
2256          ie.activeFrame = Dd = yd[Je];
2257          var i = g === Dd && !a.user;
2258          md(Cd, Dd.i !== yd[x(Fd)].i),
2259            lc(Ed, "stage"),
2260            tc(Mc ? [Gd] : [Gd, E(Gd), U(Gd)]),
2261            rd("go", !0),
2262            i || fd("show", { user: a.user, time: d }),
2263            (ce = !0);
2264          var j = (ie.show.onEnd = function (b) {
2265            if (!j.ok) {
2266              if (
2267                ((j.ok = !0),
2268                b || cd(!0),
2269                i || fd("showend", { user: a.user }),
2270                !b && Wd && Wd !== e.transition)
2271              )
2272                return ie.setOptions({ transition: Wd }), void (Wd = !1);
2273              Sb(), Pb(Ed, "stage"), rd("go", !1), Hc(), od(), id(), jd();
2274            }
2275          });
2276          if (Sd) {
2277            var k = Dd[Xc],
2278              l = Je !== Hd ? yd[Hd][Xc] : null;
2279            ab(k, l, te, { time: d, method: e.transition, onEnd: j }, Te);
2280          } else
2281            _(se, {
2282              pos: -r(Gd, Le.w, e.margin, Fd),
2283              overPos: f,
2284              time: d,
2285              onEnd: j,
2286            });
2287          if ((Gc(), Nd)) {
2288            Tc();
2289            var m = y(Je + h(Gd - Hd, -1, 1));
2290            Rc({
2291              time: d,
2292              coo: m !== Je && a.coo,
2293              guessIndex: "undefined" != typeof a.coo ? m : Je,
2294              keep: i,
2295            }),
2296              Od && Oc(d);
2297          }
2298          return (
2299            (be = "undefined" != typeof Hd && Hd !== Je),
2300            (Hd = Je),
2301            e.hash && be && !ie.eq && H(Dd.id || Je + 1),
2302            this
2303          );
2304        }),
2305        (ie.requestFullScreen = function () {
2306          return (
2307            Qd &&
2308              !ie.fullScreen &&
2309              ((_d = Ec.scrollTop()),
2310              (ae = Ec.scrollLeft()),
2311              Q(Ec),
2312              rd("x", !0),
2313              (ee = d.extend({}, Le)),
2314              a.addClass(Zb).appendTo(Dc.addClass(jb)),
2315              Cc.addClass(jb),
2316              md(Cd, !0, !0),
2317              (ie.fullScreen = !0),
2318              Rd && vc.request(le),
2319              ie.resize(),
2320              Pb(Ed, "stage"),
2321              Sb(),
2322              // Add download button
2323              d(
2324                '<div class="fotorama__download-icon" title="Download image"></div>'
2325              )
2326                .appendTo(a)
2327                .on("click", function () {
2328                  var currentImage = Dd.img || Dd.full;
2329                  if (currentImage) {
2330                    var link = document.createElement("a");
2331                    link.href = currentImage;
2332                    link.download = currentImage.split("/").pop();
2333                    document.body.appendChild(link);
2334                    link.click();
2335                    document.body.removeChild(link);
2336                  }
2337                }),
2338              fd("fullscreenenter")),
2339            this
2340          );
2341        }),
2342        (ie.cancelFullScreen = function () {
2343          return Rd && vc.is() ? vc.cancel(b) : kd(), this;
2344        }),
2345        (ie.toggleFullScreen = function () {
2346          return ie[(ie.fullScreen ? "cancel" : "request") + "FullScreen"]();
2347        }),
2348        T(b, vc.event, function () {
2349          !yd || vc.is() || Cd || kd();
2350        }),
2351        (ie.resize = function (a) {
2352          if (!yd) return this;
2353          var b = arguments[1] || 0,
2354            c = arguments[2];
2355          ed(
2356            ie.fullScreen
2357              ? {
2358                  width: "100%",
2359                  maxwidth: null,
2360                  minwidth: null,
2361                  height: "100%",
2362                  maxheight: null,
2363                  minheight: null,
2364                }
2365              : R(a),
2366            [Le, c || ie.fullScreen || e]
2367          );
2368          var d = Le.width,
2369            f = Le.height,
2370            g = Le.ratio,
2371            i = Ec.height() - (Nd ? ye.height() : 0);
2372          return (
2373            q(d) &&
2374              (qe.addClass(ub).css({
2375                width: d,
2376                minWidth: Le.minwidth || 0,
2377                maxWidth: Le.maxwidth || ad,
2378              }),
2379              (d = Le.W = Le.w = qe.width()),
2380              (Le.nw = (Nd && p(e.navwidth, d)) || d),
2381              e.glimpse && (Le.w -= Math.round(2 * (p(e.glimpse, d) || 0))),
2382              se.css({ width: Le.w, marginLeft: (Le.W - Le.w) / 2 }),
2383              (f = p(f, i)),
2384              (f = f || (g && d / g)),
2385              f &&
2386                ((d = Math.round(d)),
2387                (f = Le.h =
2388                  Math.round(h(f, p(Le.minheight, i), p(Le.maxheight, i)))),
2389                re.stop().animate({ width: d, height: f }, b, function () {
2390                  qe.removeClass(ub);
2391                }),
2392                cd(),
2393                Nd &&
2394                  (ye.stop().animate({ width: Le.nw }, b),
2395                  Rc({ guessIndex: Je, time: b, keep: !0 }),
2396                  Od && wc.nav && Oc(b)),
2397                ($d = c || !0),
2398                xd())),
2399            (Se = re.offset().left),
2400            this
2401          );
2402        }),
2403        (ie.setOptions = function (a) {
2404          return d.extend(e, a), vd(), this;
2405        }),
2406        (ie.shuffle = function () {
2407          return yd && O(yd) && vd(), this;
2408        }),
2409        (ie.destroy = function () {
2410          return (
2411            ie.cancelFullScreen(),
2412            ie.stopAutoplay(),
2413            (yd = ie.data = null),
2414            j(),
2415            (Ed = []),
2416            bd(Xc),
2417            (vd.ok = !1),
2418            this
2419          );
2420        }),
2421        (ie.playVideo = function () {
2422          var a = Dd,
2423            b = a.video,
2424            c = Je;
2425          return (
2426            "object" == typeof b &&
2427              a.videoReady &&
2428              (Rd && ie.fullScreen && ie.cancelFullScreen(),
2429              G(
2430                function () {
2431                  return !vc.is() || c !== Je;
2432                },
2433                function () {
2434                  c === Je &&
2435                    ((a.$video = a.$video || d(d.Fotorama.jst.video(b))),
2436                    a.$video.appendTo(a[Xc]),
2437                    qe.addClass(nb),
2438                    (Cd = a.$video),
2439                    o(),
2440                    we.blur(),
2441                    De.blur(),
2442                    fd("loadvideo"));
2443                }
2444              )),
2445            this
2446          );
2447        }),
2448        (ie.stopVideo = function () {
2449          return md(Cd, !0, !0), this;
2450        }),
2451        re.on("mousemove", od),
2452        (Me = db(se, {
2453          onStart: gd,
2454          onMove: function (a, b) {
2455            ld(re, b.edge);
2456          },
2457          onTouchEnd: hd,
2458          onEnd: function (a) {
2459            ld(re);
2460            var b =
2461              ((Nc && !ge) || a.touch) && e.arrows && "always" !== e.arrows;
2462            if (a.moved || (b && a.pos !== a.newPos && !a.control)) {
2463              var c = s(a.newPos, Le.w, e.margin, Fd);
2464              ie.show({
2465                index: c,
2466                time: Sd ? Vd : a.time,
2467                overPos: a.overPos,
2468                user: !0,
2469              });
2470            } else a.aborted || a.control || qd(a.startEvent, b);
2471          },
2472          timeLow: 1,
2473          timeHigh: 1,
2474          friction: 2,
2475          select: "." + Xb + ", ." + Xb + " *",
2476          $wrap: re,
2477        })),
2478        (Oe = db(ze, {
2479          onStart: gd,
2480          onMove: function (a, b) {
2481            ld(ye, b.edge);
2482          },
2483          onTouchEnd: hd,
2484          onEnd: function (a) {
2485            function b() {
2486              (Rc.l = a.newPos), id(), jd(), uc(a.newPos, !0);
2487            }
2488            if (a.moved)
2489              a.pos !== a.newPos
2490                ? ((ce = !0),
2491                  _(ze, {
2492                    time: a.time,
2493                    pos: a.newPos,
2494                    overPos: a.overPos,
2495                    onEnd: b,
2496                  }),
2497                  uc(a.newPos),
2498                  Xd && ld(ye, K(a.newPos, Oe.min, Oe.max)))
2499                : b();
2500            else {
2501              var c = a.$target.closest("." + Mb, ze)[0];
2502              c && sd.call(c, a.startEvent);
2503            }
2504          },
2505          timeLow: 0.5,
2506          timeHigh: 2,
2507          friction: 5,
2508          $wrap: ye,
2509        })),
2510        (Ne = eb(re, {
2511          shift: !0,
2512          onEnd: function (a, b) {
2513            gd(), hd(), ie.show({ index: b, slow: a.altKey });
2514          },
2515        })),
2516        (Pe = eb(ye, {
2517          onEnd: function (a, b) {
2518            gd(), hd();
2519            var c = v(ze) + 0.25 * b;
2520            ze.css(k(h(c, Oe.min, Oe.max))),
2521              Xd && ld(ye, K(c, Oe.min, Oe.max)),
2522              (Pe.prevent = { "<": c >= Oe.max, ">": c <= Oe.min }),
2523              clearTimeout(Pe.t),
2524              (Pe.t = setTimeout(function () {
2525                (Rc.l = c), uc(c, !0);
2526              }, Pc)),
2527              uc(c);
2528          },
2529        })),
2530        qe.hover(
2531          function () {
2532            setTimeout(function () {
2533              fe || nd(!(ge = !0));
2534            }, 0);
2535          },
2536          function () {
2537            ge && nd(!(ge = !1));
2538          }
2539        ),
2540        M(
2541          we,
2542          function (a) {
2543            Y(a), td.call(this, a);
2544          },
2545          {
2546            onStart: function () {
2547              gd(), (Me.control = !0);
2548            },
2549            onTouchEnd: hd,
2550          }
2551        ),
2552        we.each(function () {
2553          W(this, function (a) {
2554            td.call(this, a);
2555          }),
2556            ud(this);
2557        }),
2558        W(Ee, ie.toggleFullScreen),
2559        ud(Ee),
2560        d.each(
2561          "load push pop shift unshift reverse sort splice".split(" "),
2562          function (a, b) {
2563            ie[b] = function () {
2564              return (
2565                (yd = yd || []),
2566                "load" !== b
2567                  ? Array.prototype[b].apply(yd, arguments)
2568                  : arguments[0] &&
2569                    "object" == typeof arguments[0] &&
2570                    arguments[0].length &&
2571                    (yd = P(arguments[0])),
2572                vd(),
2573                ie
2574              );
2575            };
2576          }
2577        ),
2578        vd();
2579    }),
2580      (d.fn.fotorama = function (b) {
2581        return this.each(function () {
2582          var c = this,
2583            e = d(this),
2584            f = e.data(),
2585            g = f.fotorama;
2586          g
2587            ? g.setOptions(b, !0)
2588            : G(
2589                function () {
2590                  return !E(c);
2591                },
2592                function () {
2593                  (f.urtext = e.html()),
2594                    new d.Fotorama(
2595                      e,
2596                      d.extend({}, cd, a.fotoramaDefaults, b, f)
2597                    );
2598                }
2599              );
2600        });
2601      }),
2602      (d.Fotorama.instances = []),
2603      (d.Fotorama.cache = {}),
2604      (d.Fotorama.measures = {}),
2605      (d = d || {}),
2606      (d.Fotorama = d.Fotorama || {}),
2607      (d.Fotorama.jst = d.Fotorama.jst || {}),
2608      (d.Fotorama.jst.style = function (a) {
2609        {
2610          var b,
2611            c = "";
2612          tc.escape;
2613        }
2614        return (c +=
2615          ".fotorama" +
2616          (null == (b = a.s) ? "" : b) +
2617          " .fotorama__nav--thumbs .fotorama__nav__frame{\npadding:" +
2618          (null == (b = a.m) ? "" : b) +
2619          "px;\nheight:" +
2620          (null == (b = a.h) ? "" : b) +
2621          "px}\n.fotorama" +
2622          (null == (b = a.s) ? "" : b) +
2623          " .fotorama__thumb-border{\nheight:" +
2624          (null == (b = a.h - a.b * (a.q ? 0 : 2)) ? "" : b) +
2625          "px;\nborder-width:" +
2626          (null == (b = a.b) ? "" : b) +
2627          "px;\nmargin-top:" +
2628          (null == (b = a.m) ? "" : b) +
2629          "px}");
2630      }),
2631      (d.Fotorama.jst.video = function (a) {
2632        function b() {
2633          c += d.call(arguments, "");
2634        }
2635        var c = "",
2636          d = (tc.escape, Array.prototype.join);
2637        return (
2638          (c += '<div class="fotorama__video"><iframe src="'),
2639          b(
2640            ("youtube" == a.type
2641              ? a.p + "youtube.com/embed/" + a.id + "?autoplay=1"
2642              : "vimeo" == a.type
2643              ? a.p + "player.vimeo.com/video/" + a.id + "?autoplay=1&badge=0"
2644              : a.id) + (a.s && "custom" != a.type ? "&" + a.s : "")
2645          ),
2646          (c += '" frameborder="0" allowfullscreen></iframe></div>\n')
2647        );
2648      }),
2649      d(function () {
2650        d("." + ib + ':not([data-auto="false"])').fotorama();
2651      });
2652  })(window, document, location, "undefined" != typeof jQuery && 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.