PageSourceSearch

https://hellovietnam.com/wp-content/themes/traveler/v2/js/fotorama/fotorama.js

js hellovietnam.com collected 2026-09-25 02:22:43 UTC 65,519 bytes, 1,496 lines download raw bytes

vendor: 65,062 bytes, lines 1-1492
1/*!
2 * Fotorama 4.6.4 | http://fotorama.io/license/
3 */
4fotoramaVersion = "4.6.4", function (a, b, c, d, e) {
5    "use strict";
6
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], d = [null, null], e = [null, null], f = function (f, g) {
12                    return e[g] = 3 * a[g], d[g] = 3 * (b[g] - a[g]) - e[g], c[g] = 1 - e[g] - d[g], f * (e[g] + f * (d[g] + f * c[g]))
13                }, g  = function (a) {
14                    return e[0] + a * (2 * d[0] + 3 * c[0] * a)
15                }, h  = function (a) {
16                    for (var b, c = a, d = 0; ++d < 14 && (b = f(c, 0) - a, !(Math.abs(b) < .001));) c -= b / g(c);
17                    return c
18                };
19                return function (a) {
20                    return f(h(a), 1)
21                }
22            };
23            d.easing[b] = function (b, d, e, f, g) {
24                return f * c([a[0], a[1]], [a[2], a[3]])(d / g) + e
25            }
26        }
27        return b
28    }
29
30    function g() {
31    }
32
33    function h(a, b, c) {
34        return Math.max(isNaN(b) ? -1 / 0 : b, Math.min(isNaN(c) ? 1 / 0 : c, a))
35    }
36
37    function i(a) {
38        return a.match(/ma/) && a.match(/-?\d+(?!d)/g)[a.match(/3d/) ? 12 : 4]
39    }
40
41    function j(a) {
42        return Ic ? +i(a.css("transform")) : +a.css("left").replace("px", "")
43    }
44
45    function k(a) {
46        var b = {};
47        return Ic ? b.transform = "translate3d(" + a + "px,0,0)" : b.left = a, b
48    }
49
50    function l(a) {
51        return {"transition-duration": a + "ms"}
52    }
53
54    function m(a, b) {
55        return isNaN(a) ? b : a
56    }
57
58    function n(a, b) {
59        return m(+String(a).replace(b || "px", ""))
60    }
61
62    function o(a) {
63        return /%$/.test(a) ? n(a, "%") : e
64    }
65
66    function p(a, b) {
67        return m(o(a) / 100 * b, n(a))
68    }
69
70    function q(a) {
71        return (!isNaN(n(a)) || !isNaN(n(a, "%"))) && a
72    }
73
74    function r(a, b, c, d) {
75        return (a - (d || 0)) * (b + (c || 0))
76    }
77
78    function s(a, b, c, d) {
79        return -Math.round(a / (b + (c || 0)) - (d || 0))
80    }
81
82    function t(a) {
83        var b = a.data();
84        if (!b.tEnd) {
85            var c = a[0], d = {
86                WebkitTransition: "webkitTransitionEnd",
87                MozTransition   : "transitionend",
88                OTransition     : "oTransitionEnd otransitionend",
89                msTransition    : "MSTransitionEnd",
90                transition      : "transitionend"
91            };
92            T(c, d[uc.prefixed("transition")], function (a) {
93                b.tProp && a.propertyName.match(b.tProp) && b.onEndFn()
94            }), b.tEnd = !0
95        }
96    }
97
98    function u(a, b, c, d) {
99        var e, f = a.data();
100        f && (f.onEndFn = function () {
101            e || (e = !0, clearTimeout(f.tT), c())
102        }, f.tProp = b, clearTimeout(f.tT), f.tT = setTimeout(function () {
103            f.onEndFn()
104        }, 1.5 * d), t(a))
105    }
106
107    function v(a, b) {
108        if (a.length) {
109            var c = a.data();
110            Ic ? (a.css(l(0)), c.onEndFn = g, clearTimeout(c.tT)) : a.stop();
111            var d = w(b, function () {
112                return j(a)
113            });
114            return a.css(k(d)), d
115        }
116    }
117
118    function w() {
119        for (var a, b = 0, c = arguments.length; c > b && (a = b ? arguments[b]() : arguments[b], "number" != typeof a); b++) ;
120        return a
121    }
122
123    function x(a, b) {
124        return Math.round(a + (b - a) / 1.5)
125    }
126
127    function y() {
128        return y.p = y.p || ("https:" === c.protocol ? "https://" : "http://"), y.p
129    }
130
131    function z(a) {
132        var c = b.createElement("a");
133        return c.href = a, c
134    }
135
136    function A(a, b) {
137        if ("string" != typeof a) return a;
138        a = z(a);
139        var c, d;
140        if (a.host.match(/youtube\.com/) && a.search) {
141            if (c = a.search.split("v=")[1]) {
142                var e = c.indexOf("&");
143                -1 !== e && (c = c.substring(0, e)), d = "youtube"
144            }
145        } else a.host.match(/youtube\.com|youtu\.be/) ? (c = a.pathname.replace(/^\/(embed\/|v\/)?/, "").replace(/\/.*/, ""), d = "youtube") : a.host.match(/vimeo\.com/) && (d = "vimeo", c = a.pathname.replace(/^\/(video\/)?/, "").replace(/\/.*/, ""));
146        return c && d || !b || (c = a.href, d = "custom"), c ? {
147            id  : c,
148            type: d,
149            s   : a.search.replace(/^\?/, ""),
150            p   : y()
151        } : !1
152    }
153
154    function B(a, b, c) {
155        var e, f, g = a.video;
156        return "youtube" === g.type ? (f = y() + "img.youtube.com/vi/" + g.id + "/default.jpg", e = f.replace(/\/default.jpg$/, "/hqdefault.jpg"), a.thumbsReady = !0) : "vimeo" === g.type ? d.ajax({
157            url     : y() + "vimeo.com/api/v2/video/" + g.id + ".json",
158            dataType: "jsonp",
159            success : function (d) {
160                a.thumbsReady = !0, C(b, {img: d[0].thumbnail_large, thumb: d[0].thumbnail_small}, a.i, c)
161            }
162        }) : a.thumbsReady = !0, {img: e, thumb: f}
163    }
164
165    function C(a, b, c, e) {
166        for (var f = 0, g = a.length; g > f; f++) {
167            var h = a[f];
168            if (h.i === c && h.thumbsReady) {
169                var i = {videoReady: !0};
170                i[Xc] = i[Zc] = i[Yc] = !1, e.splice(f, 1, d.extend({}, h, i, b));
171                break
172            }
173        }
174    }
175
176    function D(a) {
177        function b(a, b, e) {
178            var f = a.children("img").eq(0), g = a.attr("href"), h = a.attr("src"), i = f.attr("src"), j = b.video,
179                k = e ? A(g, j === !0) : !1;
180            k ? g = !1 : k = j, c(a, f, d.extend(b, {
181                video: k,
182                img  : b.img || g || h || i,
183                thumb: b.thumb || i || h || g
184            }))
185        }
186
187        function c(a, b, c) {
188            var e = c.thumb && c.img !== c.thumb, f = n(c.width || a.attr("width")),
189                g = n(c.height || a.attr("height"));
190            d.extend(c, {
191                width     : f,
192                height    : g,
193                thumbratio: S(c.thumbratio || n(c.thumbwidth || b && b.attr("width") || e || f) / n(c.thumbheight || b && b.attr("height") || e || g))
194            })
195        }
196
197        var e = [];
198        return a.children().each(function () {
199            var a = d(this), f = R(d.extend(a.data(), {id: a.attr("id")}));
200            if (a.is("a, img")) b(a, f, !0); else {
201                if (a.is(":empty")) return;
202                c(a, null, d.extend(f, {html: this, _html: a.html()}))
203            }
204            e.push(f)
205        }), e
206    }
207
208    function E(a) {
209        return 0 === a.offsetWidth && 0 === a.offsetHeight
210    }
211
212    function F(a) {
213        return !d.contains(b.documentElement, a)
214    }
215
216    function G(a, b, c, d) {
217        return G.i || (G.i = 1, G.ii = [!0]), d = d || G.i, "undefined" == typeof G.ii[d] && (G.ii[d] = !0), a() ? b() : G.ii[d] && setTimeout(function () {
218            G.ii[d] && G(a, b, c, d)
219        }, c || 100), G.i++
220    }
221
222    function H(a) {
223        c.replace(c.protocol + "//" + c.host + c.pathname.replace(/^\/?/, "/") + c.search + "#" + a)
224    }
225
226    function I(a, b, c, d) {
227        var e = a.data(), f = e.measures;
228        if (f && (!e.l || e.l.W !== f.width || e.l.H !== f.height || e.l.r !== f.ratio || e.l.w !== b.w || e.l.h !== b.h || e.l.m !== c || e.l.p !== d)) {
229            var g = f.width, i = f.height, j = b.w / b.h, k = f.ratio >= j, l = "scaledown" === c, m = "contain" === c,
230                n = "cover" === c, o = $(d);
231            k && (l || m) || !k && n ? (g = h(b.w, 0, l ? g : 1 / 0), i = g / f.ratio) : (k && n || !k && (l || m)) && (i = h(b.h, 0, l ? i : 1 / 0), g = i * f.ratio), a.css({
232                width : g,
233                height: i,
234                left  : p(o.x, b.w - g),
235                top   : p(o.y, b.h - i)
236            }), e.l = {W: f.width, H: f.height, r: f.ratio, w: b.w, h: b.h, m: c, p: d}
237        }
238        return !0
239    }
240
241    function J(a, b) {
242        var c = a[0];
243        c.styleSheet ? c.styleSheet.cssText = b : a.html(b)
244    }
245
246    function K(a, b, c) {
247        return b === c ? !1 : b >= a ? "left" : a >= c ? "right" : "left right"
248    }
249
250    function L(a, b, c, d) {
251        if (!c) return !1;
252        if (!isNaN(a)) return a - (d ? 0 : 1);
253        for (var e, f = 0, g = b.length; g > f; f++) {
254            var h = b[f];
255            if (h.id === a) {
256                e = f;
257                break
258            }
259        }
260        return e
261    }
262
263    function M(a, b, c) {
264        c = c || {}, a.each(function () {
265            var a, e = d(this), f = e.data();
266            f.clickOn || (f.clickOn = !0, d.extend(cb(e, {
267                onStart   : function (b) {
268                    a = b, (c.onStart || g).call(this, b)
269                },
270                onMove    : c.onMove || g,
271                onTouchEnd: c.onTouchEnd || g,
272                onEnd     : function (c) {
273                    c.moved || b.call(this, a)
274                }
275            }), {noMove: !0}))
276        })
277    }
278
279    function N(a, b) {
280        return '<div class="' + a + '">' + (b || "") + "</div>"
281    }
282
283    function O(a) {
284        for (var b = a.length; b;) {
285            var c = Math.floor(Math.random() * b--), d = a[b];
286            a[b] = a[c], a[c] = d
287        }
288        return a
289    }
290
291    function P(a) {
292        return "[object Array]" == Object.prototype.toString.call(a) && d.map(a, function (a) {
293            return d.extend({}, a)
294        })
295    }
296
297    function Q(a, b, c) {
298        a.scrollLeft(b || 0).scrollTop(c || 0)
299    }
300
301    function R(a) {
302        if (a) {
303            var b = {};
304            return d.each(a, function (a, c) {
305                b[a.toLowerCase()] = c
306            }), b
307        }
308    }
309
310    function S(a) {
311        if (a) {
312            var b = +a;
313            return isNaN(b) ? (b = a.split("/"), +b[0] / +b[1] || e) : b
314        }
315    }
316
317    function T(a, b, c, d) {
318        b && (a.addEventListener ? a.addEventListener(b, c, !!d) : a.attachEvent("on" + b, c))
319    }
320
321    function U(a) {
322        return !!a.getAttribute("disabled")
323    }
324
325    function V(a) {
326        return {tabindex: -1 * a + "", disabled: a}
327    }
328
329    function W(a, b) {
330        T(a, "keyup", function (c) {
331            U(a) || 13 == c.keyCode && b.call(a, c)
332        })
333    }
334
335    function X(a, b) {
336        T(a, "focus", a.onfocusin = function (c) {
337            b.call(a, c)
338        }, !0)
339    }
340
341    function Y(a, b) {
342        a.preventDefault ? a.preventDefault() : a.returnValue = !1, b && a.stopPropagation && a.stopPropagation()
343    }
344
345    function Z(a) {
346        return a ? ">" : "<"
347    }
348
349    function $(a) {
350        return a = (a + "").split(/\s+/), {x: q(a[0]) || bd, y: q(a[1]) || bd}
351    }
352
353    function _(a, b) {
354        var c = a.data(), e = Math.round(b.pos), f = function () {
355            c.sliding = !1, (b.onEnd || g)()
356        };
357        "undefined" != typeof b.overPos && b.overPos !== b.pos && (e = b.overPos, f = function () {
358            _(a, d.extend({}, b, {overPos: b.pos, time: Math.max(Qc, b.time / 2)}))
359        });
360        var h = d.extend(k(e), b.width && {width: b.width});
361        c.sliding = !0, Ic ? (a.css(d.extend(l(b.time), h)), b.time > 10 ? u(a, "transform", f, b.time) : f()) : a.stop().animate(h, b.time, _c, f)
362    }
363
364    function ab(a, b, c, e, f, h) {
365        var i = "undefined" != typeof h;
366        if (i || (f.push(arguments), Array.prototype.push.call(arguments, f.length), !(f.length > 1))) {
367            a = a || d(a), b = b || d(b);
368            var j = a[0], k = b[0], l = "crossfade" === e.method, m = function () {
369                if (!m.done) {
370                    m.done = !0;
371                    var a  = (i || f.shift()) && f.shift();
372                    a && ab.apply(this, a), (e.onEnd || g)(!!a)
373                }
374            }, n  = e.time / (h || 1);
375            c.removeClass(Rb + " " + Qb), a.stop().addClass(Rb), b.stop().addClass(Qb), l && k && a.fadeTo(0, 0), a.fadeTo(l ? n : 0, 1, l && m), b.fadeTo(n, 0, m), j && l || k || m()
376        }
377    }
378
379    function bb(a) {
380        var b = (a.touches || [])[0] || a;
381        a._x = b.pageX, a._y = b.clientY, a._now = d.now()
382    }
383
384    function cb(a, c) {
385        function e(a) {
386            return m = d(a.target), u.checked = p = q = s = !1, k || u.flow || a.touches && a.touches.length > 1 || a.which > 1 || ed && ed.type !== a.type && gd || (p = c.select && m.is(c.select, t)) ? p : (o = "touchstart" === a.type, q = m.is("a, a *", t), n = u.control, r = u.noMove || u.noSwipe || n ? 16 : u.snap ? 0 : 4, bb(a), l = ed = a, fd = a.type.replace(/down|start/, "move").replace(/Down/, "Move"), (c.onStart || g).call(t, a, {
387                control: n,
388                $target: m
389            }), k = u.flow = !0, void((!o || u.go) && Y(a)))
390        }
391
392        function f(a) {
393            if (a.touches && a.touches.length > 1 || Nc && !a.isPrimary || fd !== a.type || !k) return k && h(), void(c.onTouchEnd || g)();
394            bb(a);
395            var b = Math.abs(a._x - l._x), d = Math.abs(a._y - l._y), e = b - d,
396                f = (u.go || u.x || e >= 0) && !u.noSwipe, i = 0 > e;
397            o && !u.checked ? (k = f) && Y(a) : (Y(a), (c.onMove || g).call(t, a, {touch: o})), !s && Math.sqrt(Math.pow(b, 2) + Math.pow(d, 2)) > r && (s = !0), u.checked = u.checked || f || i
398        }
399
400        function h(a) {
401            (c.onTouchEnd || g)();
402            var b = k;
403            u.control = k = !1, b && (u.flow = !1), !b || q && !u.checked || (a && Y(a), gd = !0, clearTimeout(hd), hd = setTimeout(function () {
404                gd = !1
405            }, 1e3), (c.onEnd || g).call(t, {
406                moved     : s,
407                $target   : m,
408                control   : n,
409                touch     : o,
410                startEvent: l,
411                aborted   : !a || "MSPointerCancel" === a.type
412            }))
413        }
414
415        function i() {
416            u.flow || setTimeout(function () {
417                u.flow = !0
418            }, 10)
419        }
420
421        function j() {
422            u.flow && setTimeout(function () {
423                u.flow = !1
424            }, Pc)
425        }
426
427        var k, l, m, n, o, p, q, r, s, t = a[0], u = {};
428        return Nc ? (T(t, "MSPointerDown", e), T(b, "MSPointerMove", f), T(b, "MSPointerCancel", h), T(b, "MSPointerUp", h)) : (T(t, "touchstart", e), T(t, "touchmove", f), T(t, "touchend", h), T(b, "touchstart", i), T(b, "touchend", j), T(b, "touchcancel", j), Ec.on("scroll", j), a.on("mousedown", e), Fc.on("mousemove", f).on("mouseup", h)), a.on("click", "a", function (a) {
429            u.checked && Y(a)
430        }), u
431    }
432
433    function db(a, b) {
434        function c(c, d) {
435            A = !0, j = l = c._x, q = c._now, p = [[q, j]], m = n = D.noMove || d ? 0 : v(a, (b.getPos || g)()), (b.onStart || g).call(B, c)
436        }
437
438        function e(a, b) {
439            s = D.min, t = D.max, u = D.snap, w = a.altKey, A = z = !1, y = b.control, y || C.sliding || c(a)
440        }
441
442        function f(d, e) {
443            D.noSwipe || (A || c(d), l = d._x, p.push([d._now, l]), n = m - (j - l), o = K(n, s, t), s >= n ? n = x(n, s) : n >= t && (n = x(n, t)), D.noMove || (a.css(k(n)), z || (z = !0, e.touch || Nc || a.addClass(ec)), (b.onMove || g).call(B, d, {
444                pos : n,
445                edge: o
446            })))
447        }
448
449        function i(e) {
450            if (!D.noSwipe || !e.moved) {
451                A || c(e.startEvent, !0), e.touch || Nc || a.removeClass(ec), r = d.now();
452                for (var f, i, j, k, o, q, v, x, y, z = r - Pc, C = null, E = Qc, F = b.friction, G = p.length - 1; G >= 0; G--) {
453                    if (f = p[G][0], i = Math.abs(f - z), null === C || j > i) C = f, k = p[G][1]; else if (C === z || i > j) break;
454                    j = i
455                }
456                v     = h(n, s, t);
457                var H = k - l, I = H >= 0, J = r - C, K = J > Pc, L = !K && n !== m && v === n;
458                u && (v = h(Math[L ? I ? "floor" : "ceil" : "round"](n / u) * u, s, t), s = t = v), L && (u || v === n) && (y = -(H / J), E *= h(Math.abs(y), b.timeLow, b.timeHigh), o = Math.round(n + y * E / F), u || (v = o), (!I && o > t || I && s > o) && (q = I ? s : t, x = o - q, u || (v = q), x = h(v + .03 * x, q - 50, q + 50), E = Math.abs((n - x) / (y / F)))), E *= w ? 10 : 1, (b.onEnd || g).call(B, d.extend(e, {
459                    moved  : e.moved || K && u,
460                    pos    : n,
461                    newPos : v,
462                    overPos: x,
463                    time   : E
464                }))
465            }
466        }
467
468        var j, l, m, n, o, p, q, r, s, t, u, w, y, z, A, B = a[0], C = a.data(), D = {};
469        return D = d.extend(cb(b.$wrap, d.extend({}, b, {onStart: e, onMove: f, onEnd: i})), D)
470    }
471
472    function eb(a, b) {
473        var c, e, f, h = a[0], i = {prevent: {}};
474        return T(h, Oc, function (a) {
475            var h = a.wheelDeltaY || -1 * a.deltaY || 0, j = a.wheelDeltaX || -1 * a.deltaX || 0,
476                k = Math.abs(j) && !Math.abs(h), l = Z(0 > j), m = e === l, n = d.now(), o = Pc > n - f;
477            e = l, f = n, k && i.ok && (!i.prevent[l] || c) && (Y(a, !0), c && m && o || (b.shift && (c = !0, clearTimeout(i.t), i.t = setTimeout(function () {
478                c = !1
479            }, Rc)), (b.onEnd || g)(a, b.shift ? l : j)))
480        }), i
481    }
482
483    function fb() {
484        d.each(d.Fotorama.instances, function (a, b) {
485            b.index = a
486        })
487    }
488
489    function gb(a) {
490        d.Fotorama.instances.push(a), fb()
491    }
492
493    function hb(a) {
494        d.Fotorama.instances.splice(a.index, 1), fb()
495    }
496
497    var ib = "fotorama", jb = "fullscreen", kb = ib + "__wrap", lb = kb + "--css2", mb = kb + "--css3",
498        nb = kb + "--video", ob = kb + "--fade", pb = kb + "--slide", qb = kb + "--no-controls",
499        rb = kb + "--no-shadows", sb = kb + "--pan-y", tb = kb + "--rtl", ub = kb + "--only-active",
500        vb = kb + "--no-captions", wb = kb + "--toggle-arrows", xb = ib + "__stage", yb = xb + "__frame",
501        zb = yb + "--video", Ab = xb + "__shaft", Bb = ib + "__grab", Cb = ib + "__pointer", Db = ib + "__arr",
502        Eb = Db + "--disabled", Fb = Db + "--prev", Gb = Db + "--next", Hb = ib + "__nav", Ib = Hb + "-wrap",
503        Jb = Hb + "__shaft", Kb = Hb + "--dots", Lb = Hb + "--thumbs", Mb = Hb + "__frame", Nb = Mb + "--dot",
504        Ob = Mb + "--thumb", Pb = ib + "__fade", Qb = Pb + "-front", Rb = Pb + "-rear", Sb = ib + "__shadow",
505        Tb = Sb + "s", Ub = Tb + "--left", Vb = Tb + "--right", Wb = ib + "__active", Xb = ib + "__select",
506        Yb = ib + "--hidden", Zb = ib + "--fullscreen", $b = ib + "__fullscreen-icon", _b = ib + "__error",
507        ac = ib + "__loading", bc = ib + "__loaded", cc = bc + "--full", dc = bc + "--img", ec = ib + "__grabbing",
508        fc = ib + "__img", gc = fc + "--full", hc = ib + "__dot", ic = ib + "__thumb", jc = ic + "-border",
509        kc = ib + "__html", lc = ib + "__video", mc = lc + "-play", nc = lc + "-close", oc = ib + "__caption",
510        pc = ib + "__caption__wrap", qc = ib + "__spinner", rc = '" tabindex="0" role="button',
511        sc = d && d.fn.jquery.split(".");
512    if (!sc || sc[0] < 1 || 1 == sc[0] && sc[1] < 8) throw"Fotorama requires jQuery 1.8 or later and will not run without it.";
513    var tc      = {}, uc = function (a, b, c) {
514        function d(a) {
515            r.cssText = a
516        }
517
518        function e(a, b) {
519            return typeof a === b
520        }
521
522        function f(a, b) {
523            return !!~("" + a).indexOf(b)
524        }
525
526        function g(a, b) {
527            for (var d in a) {
528                var e = a[d];
529                if (!f(e, "-") && r[e] !== c) return "pfx" == b ? e : !0
530            }
531            return !1
532        }
533
534        function h(a, b, d) {
535            for (var f in a) {
536                var g = b[a[f]];
537                if (g !== c) return d === !1 ? a[f] : e(g, "function") ? g.bind(d || b) : g
538            }
539            return !1
540        }
541
542        function i(a, b, c) {
543            var d = a.charAt(0).toUpperCase() + a.slice(1), f = (a + " " + u.join(d + " ") + d).split(" ");
544            return e(b, "string") || e(b, "undefined") ? g(f, b) : (f = (a + " " + v.join(d + " ") + d).split(" "), h(f, b, c))
545        }
546
547        var j, k, l, m = "2.6.2", n = {}, o = b.documentElement, p = "modernizr", q = b.createElement(p), r = q.style,
548            s = ({}.toString, " -webkit- -moz- -o- -ms- ".split(" ")), t = "Webkit Moz O ms", u = t.split(" "),
549            v = t.toLowerCase().split(" "), w = {}, x = [], y = x.slice, z = function (a, c, d, e) {
550                var f, g, h, i, j = b.createElement("div"), k = b.body, l = k || b.createElement("body");
551                if (parseInt(d, 10)) for (; d--;) h = b.createElement("div"), h.id = e ? e[d] : p + (d + 1), j.appendChild(h);
552                return f = ["&#173;", '<style id="s', p, '">', a, "</style>"].join(""), j.id = p, (k ? j : l).innerHTML += f, l.appendChild(j), k || (l.style.background = "", l.style.overflow = "hidden", i = o.style.overflow, o.style.overflow = "hidden", o.appendChild(l)), g = c(j, a), k ? j.parentNode.removeChild(j) : (l.parentNode.removeChild(l), o.style.overflow = i), !!g
553            }, A = {}.hasOwnProperty;
554        l = e(A, "undefined") || e(A.call, "undefined") ? function (a, b) {
555            return b in a && e(a.constructor.prototype[b], "undefined")
556        } : function (a, b) {
557            return A.call(a, b)
558        }, Function.prototype.bind || (Function.prototype.bind = function (a) {
559            var b = this;
560            if ("function" != typeof b) throw new TypeError;
561            var c = y.call(arguments, 1), d = function () {
562                if (this instanceof d) {
563                    var e       = function () {
564                    };
565                    e.prototype = b.prototype;
566                    var f       = new e, g = b.apply(f, c.concat(y.call(arguments)));
567                    return Object(g) === g ? g : f
568                }
569                return b.apply(a, c.concat(y.call(arguments)))
570            };
571            return d
572        }), w.csstransforms3d = function () {
573            var a = !!i("perspective");
574            return a
575        };
576        for (var B in w) l(w, B) && (k = B.toLowerCase(), n[k] = w[B](), x.push((n[k] ? "" : "no-") + k));
577        return n.addTest = function (a, b) {
578            if ("object" == typeof a) for (var d in a) l(a, d) && n.addTest(d, a[d]); else {
579                if (a = a.toLowerCase(), n[a] !== c) return n;
580                b = "function" == typeof b ? b() : b, "undefined" != typeof enableClasses && enableClasses && (o.className += " " + (b ? "" : "no-") + a), n[a] = b
581            }
582            return n
583        }, d(""), q = j = null, n._version = m, n._prefixes = s, n._domPrefixes = v, n._cssomPrefixes = u, n.testProp = function (a) {
584            return g([a])
585        }, n.testAllProps = i, n.testStyles = z, n.prefixed = function (a, b, c) {
586            return b ? i(a, b, c) : i(a, "pfx")
587        }, n
588    }(a, b), vc = {
589        ok        : !1, is: function () {
590            return !1
591        }, request: function () {
592        }, cancel : function () {
593        }, event  : "", prefix: ""
594    }, wc       = "webkit moz o ms khtml".split(" ");
595    if ("undefined" != typeof b.cancelFullScreen) vc.ok = !0; else for (var xc = 0, yc = wc.length; yc > xc; xc++) if (vc.prefix = wc[xc], "undefined" != typeof b[vc.prefix + "CancelFullScreen"]) {
596        vc.ok = !0;
597        break
598    }
599    vc.ok && (vc.event = vc.prefix + "fullscreenchange", vc.is = function () {
600        switch (this.prefix) {
601            case"":
602                return b.fullScreen;
603            case"webkit":
604                return b.webkitIsFullScreen;
605            default:
606                return b[this.prefix + "FullScreen"]
607        }
608    }, vc.request = function (a) {
609        return "" === this.prefix ? a.requestFullScreen() : a[this.prefix + "RequestFullScreen"]()
610    }, vc.cancel = function () {
611        return "" === this.prefix ? b.cancelFullScreen() : b[this.prefix + "CancelFullScreen"]()
612    });
613    var zc, Ac = {
614        lines  : 12,
615        length : 5,
616        width  : 2,
617        radius : 7,
618        corners: 1,
619        rotate : 15,
620        color  : "rgba(128, 128, 128, .75)",
621        hwaccel: !0
622    }, Bc      = {top: "auto", left: "auto", className: ""};
623    !function (a, b) {
624        zc = b()
625    }(this, function () {
626        function a(a, c) {
627            var d, e = b.createElement(a || "div");
628            for (d in c) e[d] = c[d];
629            return e
630        }
631
632        function c(a) {
633            for (var b = 1, c = arguments.length; c > b; b++) a.appendChild(arguments[b]);
634            return a
635        }
636
637        function d(a, b, c, d) {
638            var e = ["opacity", b, ~~(100 * a), c, d].join("-"), f = .01 + c / d * 100,
639                g = Math.max(1 - (1 - a) / b * (100 - f), a), h = m.substring(0, m.indexOf("Animation")).toLowerCase(),
640                i = h && "-" + h + "-" || "";
641            return o[e] || (p.insertRule("@" + i + "keyframes " + e + "{0%{opacity:" + g + "}" + f + "%{opacity:" + a + "}" + (f + .01) + "%{opacity:1}" + (f + b) % 100 + "%{opacity:" + a + "}100%{opacity:" + g + "}}", p.cssRules.length), o[e] = 1), e
642        }
643
644        function f(a, b) {
645            var c, d, f = a.style;
646            for (b = b.charAt(0).toUpperCase() + b.slice(1), d = 0; d < n.length; d++) if (c = n[d] + b, f[c] !== e) return c;
647            return f[b] !== e ? b : void 0
648        }
649
650        function g(a, b) {
651            for (var c in b) a.style[f(a, c) || c] = b[c];
652            return a
653        }
654
655        function h(a) {
656            for (var b = 1; b < arguments.length; b++) {
657                var c = arguments[b];
658                for (var d in c) a[d] === e && (a[d] = c[d])
659            }
660            return a
661        }
662
663        function i(a) {
664            for (var b = {
665                x: a.offsetLeft,
666                y: a.offsetTop
667            }; a = a.offsetParent;) b.x += a.offsetLeft, b.y += a.offsetTop;
668            return b
669        }
670
671        function j(a, b) {
672            return "string" == typeof a ? a : a[b % a.length]
673        }
674
675        function k(a) {
676            return "undefined" == typeof this ? new k(a) : void(this.opts = h(a || {}, k.defaults, q))
677        }
678
679        function l() {
680            function b(b, c) {
681                return a("<" + b + ' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">', c)
682            }
683
684            p.addRule(".spin-vml", "behavior:url(#default#VML)"), k.prototype.lines = function (a, d) {
685                function e() {
686                    return g(b("group", {coordsize: k + " " + k, coordorigin: -i + " " + -i}), {width: k, height: k})
687                }
688
689                function f(a, f, h) {
690                    c(m, c(g(e(), {
691                        rotation: 360 / d.lines * a + "deg",
692                        left    : ~~f
693                    }), c(g(b("roundrect", {arcsize: d.corners}), {
694                        width : i,
695                        height: d.width,
696                        left  : d.radius,
697                        top   : -d.width >> 1,
698                        filter: h
699                    }), b("fill", {color: j(d.color, a), opacity: d.opacity}), b("stroke", {opacity: 0}))))
700                }
701
702                var h, i = d.length + d.width, k = 2 * i, l = 2 * -(d.width + d.length) + "px",
703                    m = g(e(), {position: "absolute", top: l, left: l});
704                if (d.shadow) for (h = 1; h <= d.lines; h++) f(h, -2, "progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");
705                for (h = 1; h <= d.lines; h++) f(h);
706                return c(a, m)
707            }, k.prototype.opacity = function (a, b, c, d) {
708                var e = a.firstChild;
709                d = d.shadow && d.lines || 0, e && b + d < e.childNodes.length && (e = e.childNodes[b + d], e = e && e.firstChild, e = e && e.firstChild, e && (e.opacity = c))
710            }
711        }
712
713        var m, n = ["webkit", "Moz", "ms", "O"], o = {}, p = function () {
714            var d = a("style", {type: "text/css"});
715            return c(b.getElementsByTagName("head")[0], d), d.sheet || d.styleSheet
716        }(), q   = {
717            lines    : 12,
718            length   : 7,
719            width    : 5,
720            radius   : 10,
721            rotate   : 0,
722            corners  : 1,
723            color    : "#000",
724            direction: 1,
725            speed    : 1,
726            trail    : 100,
727            opacity  : .25,
728            fps      : 20,
729            zIndex   : 2e9,
730            className: "spinner",
731            top      : "auto",
732            left     : "auto",
733            position : "relative"
734        };
735        k.defaults = {}, h(k.prototype, {
736            spin      : function (b) {
737                this.stop();
738                var c, d, e = this, f = e.opts, h = e.el = g(a(0, {className: f.className}), {
739                    position: f.position,
740                    width   : 0,
741                    zIndex  : f.zIndex
742                }), j = f.radius + f.length + f.width;
743                if (b && (b.insertBefore(h, b.firstChild || null), d = i(b), c = i(h), g(h, {
744                    left: ("auto" == f.left ? d.x - c.x + (b.offsetWidth >> 1) : parseInt(f.left, 10) + j) + "px",
745                    top : ("auto" == f.top ? d.y - c.y + (b.offsetHeight >> 1) : parseInt(f.top, 10) + j) + "px"
746                })), h.setAttribute("role", "progressbar"), e.lines(h, e.opts), !m) {
747                    var k, l = 0, n = (f.lines - 1) * (1 - f.direction) / 2, o = f.fps, p = o / f.speed,
748                        q = (1 - f.opacity) / (p * f.trail / 100), r = p / f.lines;
749                    !function s() {
750                        l++;
751                        for (var a = 0; a < f.lines; a++) k = Math.max(1 - (l + (f.lines - a) * r) % p * q, f.opacity), e.opacity(h, a * f.direction + n, k, f);
752                        e.timeout = e.el && setTimeout(s, ~~(1e3 / o))
753                    }()
754                }
755                return e
756            }, stop   : function () {
757                var a = this.el;
758                return a && (clearTimeout(this.timeout), a.parentNode && a.parentNode.removeChild(a), this.el = e), this
759            }, lines  : function (b, e) {
760                function f(b, c) {
761                    return g(a(), {
762                        position       : "absolute",
763                        width          : e.length + e.width + "px",
764                        height         : e.width + "px",
765                        background     : b,
766                        boxShadow      : c,
767                        transformOrigin: "left",
768                        transform      : "rotate(" + ~~(360 / e.lines * i + e.rotate) + "deg) translate(" + e.radius + "px,0)",
769                        borderRadius   : (e.corners * e.width >> 1) + "px"
770                    })
771                }
772
773                for (var h, i = 0, k = (e.lines - 1) * (1 - e.direction) / 2; i < e.lines; i++) h = g(a(), {
774                    position : "absolute",
775                    top      : 1 + ~(e.width / 2) + "px",
776                    transform: e.hwaccel ? "translate3d(0,0,0)" : "",
777                    opacity  : e.opacity,
778                    animation: m && d(e.opacity, e.trail, k + i * e.direction, e.lines) + " " + 1 / e.speed + "s linear infinite"
779                }), e.shadow && c(h, g(f("#000", "0 0 4px #000"), {top: "2px"})), c(b, c(h, f(j(e.color, i), "0 0 1px rgba(0,0,0,.1)")));
780                return b
781            }, opacity: function (a, b, c) {
782                b < a.childNodes.length && (a.childNodes[b].style.opacity = c)
783            }
784        });
785        var r = g(a("group"), {behavior: "url(#default#VML)"});
786        return !f(r, "transform") && r.adj ? l() : m = f(r, "animation"), k
787    });
788    var Cc, Dc, Ec = d(a), Fc = d(b), Gc = "quirks" === c.hash.replace("#", ""), Hc = uc.csstransforms3d,
789        Ic = Hc && !Gc, Jc = Hc || "CSS1Compat" === b.compatMode, Kc = vc.ok,
790        Lc = navigator.userAgent.match(/Android|webOS|iPhone|iPad|iPod|BlackBerry|Windows Phone/i),
791        Mc = !Ic || Lc, Nc = navigator.msPointerEnabled,
792        Oc = "onwheel" in b.createElement("div") ? "wheel" : b.onmousewheel !== e ? "mousewheel" : "DOMMouseScroll",
793        Pc = 250, Qc = 300, Rc = 1400, Sc = 5e3, Tc = 12, Uc = 64, Vc = 500, Wc = 333, Xc = "$stageFrame",
794        Yc = "$navDotFrame", Zc = "$navThumbFrame", $c = "auto", _c = f([.1, 0, .25, 1]), ad = 99999,
795        bd = "50%", cd = {
796            width: null,
797            minwidth: null,
798            maxwidth: "100%",
799            height: null,
800            minheight: null,
801            maxheight: null,
802            ratio: null,
803            margin: Tc,
804            glimpse: 0,
805            fit: "contain",
806            position: bd,
807            thumbposition: bd,
808            nav: "dots",
809            navposition: "bottom",
810            navwidth: null,
811            thumbwidth: Uc,
812            thumbheight: Uc,
813            thumbmargin: Tc,
814            thumbborderwidth: 2,
815            thumbfit: "cover",
816            allowfullscreen: !1,
817            transition: "slide",
818            clicktransition: null,
819            transitionduration: Qc,
820            captions: !0,
821            hash: !1,
822            startindex: 0,
823            loop: !1,
824            autoplay: !1,
825            stopautoplayontouch: !0,
826            keyboard: !1,
827            arrows: !0,
828            click: !0,
829            swipe: !0,
830            trackpad: !1,
831            enableifsingleframe: !1,
832            controlsonstart: !0,
833            shuffle: !1,
834            direction: "ltr",
835            shadows: !0,
836            spinner: null
837        }, dd = {left: !0, right: !0, down: !1, up: !1, space: !1, home: !1, end: !1};
838    G.stop = function (a) {
839        G.ii[a] = !1
840    };
841    var ed, fd, gd, hd;
842    jQuery.Fotorama = function (a, e) {
843        function f() {
844            d.each(yd, function (a, b) {
845                if (!b.i) {
846                    b.i   = me++;
847                    var c = A(b.video, !0);
848                    if (c) {
849                        var d = {};
850                        b.video = c, b.img || b.thumb ? b.thumbsReady = !0 : d = B(b, yd, ie), C(yd, {
851                            img  : d.img,
852                            thumb: d.thumb
853                        }, b.i, ie)
854                    }
855                }
856            })
857        }
858
859        function g(a) {
860            return Zd[a] || ie.fullScreen
861        }
862
863        function i(a) {
864            var b = "keydown." + ib, c = ib + je, d = "keydown." + c, f = "resize." + c + " orientationchange." + c;
865            a ? (Fc.on(d, function (a) {
866                var b, c;
867                Cd && 27 === a.keyCode ? (b = !0, md(Cd, !0, !0)) : (ie.fullScreen || e.keyboard && !ie.index) && (27 === a.keyCode ? (b = !0, ie.cancelFullScreen()) : a.shiftKey && 32 === a.keyCode && g("space") || 37 === a.keyCode && g("left") || 38 === a.keyCode && g("up") ? c = "<" : 32 === a.keyCode && g("space") || 39 === a.keyCode && g("right") || 40 === a.keyCode && g("down") ? c = ">" : 36 === a.keyCode && g("home") ? c = "<<" : 35 === a.keyCode && g("end") && (c = ">>")), (b || c) && Y(a), c && ie.show({
868                    index: c,
869                    slow : a.altKey,
870                    user : !0
871                })
872            }), ie.index || Fc.off(b).on(b, "textarea, input, select", function (a) {
873                !Dc.hasClass(jb) && a.stopPropagation()
874            }), Ec.on(f, ie.resize)) : (Fc.off(d), Ec.off(f))
875        }
876
877        function j(b) {
878            b !== j.f && (b ? (a.html("").addClass(ib + " " + ke).append(qe).before(oe).before(pe), gb(ie)) : (qe.detach(), oe.detach(), pe.detach(), a.html(ne.urtext).removeClass(ke), hb(ie)), i(b), j.f = b)
879        }
880
881        function m() {
882            yd = ie.data = yd || P(e.data) || D(a), zd = ie.size = yd.length, !xd.ok && e.shuffle && O(yd), f(), Je = y(Je), zd && j(!0)
883        }
884
885        function o() {
886            var a = 2 > zd && !e.enableifsingleframe || Cd;
887            Me.noMove = a || Sd, Me.noSwipe = a || !e.swipe, !Wd && se.toggleClass(Bb, !e.click && !Me.noMove && !Me.noSwipe), Nc && qe.toggleClass(sb, !Me.noSwipe)
888        }
889
890        function t(a) {
891            a === !0 && (a = ""), e.autoplay = Math.max(+a || Sc, 1.5 * Vd)
892        }
893
894        function u() {
895            function a(a, c) {
896                b[a ? "add" : "remove"].push(c)
897            }
898
899            ie.options = e = R(e), Sd = "crossfade" === e.transition || "dissolve" === e.transition, Md = e.loop && (zd > 2 || Sd && (!Wd || "slide" !== Wd)), Vd = +e.transitionduration || Qc, Yd = "rtl" === e.direction, Zd = d.extend({}, e.keyboard && dd, e.keyboard);
900            var b = {add: [], remove: []};
901            zd > 1 || e.enableifsingleframe ? (Nd = e.nav, Pd = "top" === e.navposition, b.remove.push(Xb), we.toggle(!!e.arrows)) : (Nd = !1, we.hide()), Rb(), Bd = new zc(d.extend(Ac, e.spinner, Bc, {direction: Yd ? -1 : 1})), Gc(), Hc(), e.autoplay && t(e.autoplay), Td = n(e.thumbwidth) || Uc, Ud = n(e.thumbheight) || Uc, Ne.ok = Pe.ok = e.trackpad && !Mc, o(), ed(e, [Le]), Od = "thumbs" === Nd, Od ? (lc(zd, "navThumb"), Ad = Be, he = Zc, J(oe, d.Fotorama.jst.style({
902                w: Td,
903                h: Ud,
904                b: e.thumbborderwidth,
905                m: e.thumbmargin,
906                s: je,
907                q: !Jc
908            })), ye.addClass(Lb).removeClass(Kb)) : "dots" === Nd ? (lc(zd, "navDot"), Ad = Ae, he = Yc, ye.addClass(Kb).removeClass(Lb)) : (Nd = !1, ye.removeClass(Lb + " " + Kb)), Nd && (Pd ? xe.insertBefore(re) : xe.insertAfter(re), wc.nav = !1, wc(Ad, ze, "nav")), Qd = e.allowfullscreen, Qd ? (De.prependTo(re), Rd = Kc && "native" === Qd) : (De.detach(), Rd = !1), a(Sd, ob), a(!Sd, pb), a(!e.captions, vb), a(Yd, tb), a("always" !== e.arrows, wb), Xd = e.shadows && !Mc, a(!Xd, rb), qe.addClass(b.add.join(" ")).removeClass(b.remove.join(" ")), Ke = d.extend({}, e)
909        }
910
911        function x(a) {
912            return 0 > a ? (zd + a % zd) % zd : a >= zd ? a % zd : a
913        }
914
915        function y(a) {
916            return h(a, 0, zd - 1)
917        }
918
919        function z(a) {
920            return Md ? x(a) : y(a)
921        }
922
923        function E(a) {
924            return a > 0 || Md ? a - 1 : !1
925        }
926
927        function U(a) {
928            return zd - 1 > a || Md ? a + 1 : !1
929        }
930
931        function $() {
932            Me.min = Md ? -1 / 0 : -r(zd - 1, Le.w, e.margin, Fd), Me.max = Md ? 1 / 0 : -r(0, Le.w, e.margin, Fd), Me.snap = Le.w + e.margin
933        }
934
935        function bb() {
936            Oe.min = Math.min(0, Le.nw - ze.width()), Oe.max = 0, ze.toggleClass(Bb, !(Oe.noMove = Oe.min === Oe.max))
937        }
938
939        function cb(a, b, c) {
940            if ("number" == typeof a) {
941                a     = new Array(a);
942                var e = !0
943            }
944            return d.each(a, function (a, d) {
945                if (e && (d = a), "number" == typeof d) {
946                    var f = yd[x(d)];
947                    if (f) {
948                        var g = "$" + b + "Frame", h = f[g];
949                        c.call(this, a, d, f, h, g, h && h.data())
950                    }
951                }
952            })
953        }
954
955        function fb(a, b, c, d) {
956            (!$d || "*" === $d && d === Ld) && (a = q(e.width) || q(a) || Vc, b = q(e.height) || q(b) || Wc, ie.resize({
957                width: a,
958                ratio: e.ratio || c || a / b
959            }, 0, d !== Ld && "*"))
960        }
961
962        function Pb(a, b, c, f, g, h) {
963            cb(a, b, function (a, i, j, k, l, m) {
964                function n(a) {
965                    var b = x(i);
966                    fd(a, {index: b, src: w, frame: yd[b]})
967                }
968
969                function o() {
970                    t.remove(), d.Fotorama.cache[w] = "error", j.html && "stage" === b || !y || y === w ? (!w || j.html || r ? "stage" === b && (k.trigger("f:load").removeClass(ac + " " + _b).addClass(bc), n("load"), fb()) : (k.trigger("f:error").removeClass(ac).addClass(_b), n("error")), m.state = "error", !(zd > 1 && yd[i] === j) || j.html || j.deleted || j.video || r || (j.deleted = !0, ie.splice(i, 1))) : (j[v] = w = y, Pb([i], b, c, f, g, !0))
971                }
972
973                function p() {
974                    d.Fotorama.measures[w] = u.measures = d.Fotorama.measures[w] || {
975                        width : s.width,
976                        height: s.height,
977                        ratio : s.width / s.height
978                    }, fb(u.measures.width, u.measures.height, u.measures.ratio, i), t.off("load error").addClass(fc + (r ? " " + gc : "")).prependTo(k), I(t, (d.isFunction(c) ? c() : c) || Le, f || j.fit || e.fit, g || j.position || e.position), d.Fotorama.cache[w] = m.state = "loaded", setTimeout(function () {
979                        k.trigger("f:load").removeClass(ac + " " + _b).addClass(bc + " " + (r ? cc : dc)), "stage" === b ? n("load") : (j.thumbratio === $c || !j.thumbratio && e.thumbratio === $c) && (j.thumbratio = u.measures.ratio, vd())
980                    }, 0)
981                }
982
983                function q() {
984                    var a = 10;
985                    G(function () {
986                        return !fe || !a-- && !Mc
987                    }, function () {
988                        p()
989                    })
990                }
991
992                if (k) {
993                    var r = ie.fullScreen && j.full && j.full !== j.img && !m.$full && "stage" === b;
994                    if (!m.$img || h || r) {
995                        var s = new Image, t = d(s), u = t.data();
996                        m[r ? "$full" : "$img"] = t;
997                        var v = "stage" === b ? r ? "full" : "img" : "thumb", w = j[v],
998                            y = r ? null : j["stage" === b ? "thumb" : "img"];
999                        if ("navThumb" === b && (k = m.$wrap), !w) return void o();
1000                        d.Fotorama.cache[w] ? !function z() {
1001                            "error" === d.Fotorama.cache[w] ? o() : "loaded" === d.Fotorama.cache[w] ? setTimeout(q, 0) : setTimeout(z, 100)
1002                        }() : (d.Fotorama.cache[w] = "*", t.on("load", q).on("error", o)), m.state = "", s.src = w
1003                    }
1004                }
1005            })
1006        }
1007
1008        function Qb(a) {
1009            Ie.append(Bd.spin().el).appendTo(a)
1010        }
1011
1012        function Rb() {
1013            Ie.detach(), Bd && Bd.stop()
1014        }
1015
1016        function Sb() {
1017            var a = Dd[Xc];
1018            a && !a.data().state && (Qb(a), a.on("f:load f:error", function () {
1019                a.off("f:load f:error"), Rb()
1020            }))
1021        }
1022
1023        function ec(a) {
1024            W(a, sd), X(a, function () {
1025                setTimeout(function () {
1026                    Q(ye)
1027                }, 0), Rc({time: Vd, guessIndex: d(this).data().eq, minMax: Oe})
1028            })
1029        }
1030
1031        function lc(a, b) {
1032            cb(a, b, function (a, c, e, f, g, h) {
1033                if (!f) {
1034                    f = e[g] = qe[g].clone(), h = f.data(), h.data = e;
1035                    var i = f[0];
1036                    "stage" === b ? (e.html && d('<div class="' + kc + '"></div>').append(e._html ? d(e.html).removeAttr("id").html(e._html) : e.html).appendTo(f), e.caption && d(N(oc, N(pc, e.caption))).appendTo(f), e.video && f.addClass(zb).append(Fe.clone()), X(i, function () {
1037                        setTimeout(function () {
1038                            Q(re)
1039                        }, 0), pd({index: h.eq, user: !0})
1040                    }), te = te.add(f)) : "navDot" === b ? (ec(i), Ae = Ae.add(f)) : "navThumb" === b && (ec(i), h.$wrap = f.children(":first"), Be = Be.add(f), e.video && h.$wrap.append(Fe.clone()))
1041                }
1042            })
1043        }
1044
1045        function sc(a, b, c, d) {
1046            return a && a.length && I(a, b, c, d)
1047        }
1048
1049        function tc(a) {
1050            cb(a, "stage", function (a, b, c, f, g, h) {
1051                if (f) {
1052                    var i = x(b), j = c.fit || e.fit, k = c.position || e.position;
1053                    h.eq = i, Re[Xc][i] = f.css(d.extend({left: Sd ? 0 : r(b, Le.w, e.margin, Fd)}, Sd && l(0))), F(f[0]) && (f.appendTo(se), md(c.$video)), sc(h.$img, Le, j, k), sc(h.$full, Le, j, k)
1054                }
1055            })
1056        }
1057
1058        function uc(a, b) {
1059            if ("thumbs" === Nd && !isNaN(a)) {
1060                var c = -a, f = -a + Le.nw;
1061                Be.each(function () {
1062                    var a = d(this), g = a.data(), h = g.eq, i = function () {
1063                        return {h: Ud, w: g.w}
1064                    }, j  = i(), k = yd[h] || {}, l = k.thumbfit || e.thumbfit, m = k.thumbposition || e.thumbposition;
1065                    j.w = g.w, g.l + g.w < c || g.l > f || sc(g.$img, j, l, m) || b && Pb([h], "navThumb", i, l, m)
1066                })
1067            }
1068        }
1069
1070        function wc(a, b, c) {
1071            if (!wc[c]) {
1072                var f = "nav" === c && Od, g = 0;
1073                b.append(a.filter(function () {
1074                    for (var a, b = d(this), c = b.data(), e = 0, f = yd.length; f > e; e++) if (c.data === yd[e]) {
1075                        a = !0, c.eq = e;
1076                        break
1077                    }
1078                    return a || b.remove() && !1
1079                }).sort(function (a, b) {
1080                    return d(a).data().eq - d(b).data().eq
1081                }).each(function () {
1082                    if (f) {
1083                        var a = d(this), b = a.data(), c = Math.round(Ud * b.data.thumbratio) || Td;
1084                        b.l = g, b.w = c, a.css({width: c}), g += c + e.thumbmargin
1085                    }
1086                })), wc[c] = !0
1087            }
1088        }
1089
1090        function xc(a) {
1091            return a - Se > Le.w / 3
1092        }
1093
1094        function yc(a) {
1095            return !(Md || Je + a && Je - zd + a || Cd)
1096        }
1097
1098        function Gc() {
1099            var a = yc(0), b = yc(1);
1100            ue.toggleClass(Eb, a).attr(V(a)), ve.toggleClass(Eb, b).attr(V(b))
1101        }
1102
1103        function Hc() {
1104            Ne.ok && (Ne.prevent = {"<": yc(0), ">": yc(1)})
1105        }
1106
1107        function Lc(a) {
1108            var b, c, d = a.data();
1109            return Od ? (b = d.l, c = d.w) : (b = a.position().left, c = a.width()), {
1110                c  : b + c / 2,
1111                min: -b + 10 * e.thumbmargin,
1112                max: -b + Le.w - c - 10 * e.thumbmargin
1113            }
1114        }
1115
1116        function Oc(a) {
1117            var b = Dd[he].data();
1118            _(Ce, {time: 1.2 * a, pos: b.l, width: b.w - 2 * e.thumbborderwidth})
1119        }
1120
1121        function Rc(a) {
1122            var b = yd[a.guessIndex][he];
1123            if (b) {
1124                var c = Oe.min !== Oe.max, d = a.minMax || c && Lc(Dd[he]),
1125                    e = c && (a.keep && Rc.l ? Rc.l : h((a.coo || Le.nw / 2) - Lc(b).c, d.min, d.max)),
1126                    f = c && h(e, Oe.min, Oe.max), g = 1.1 * a.time;
1127                _(ze, {
1128                    time: g, pos: f || 0, onEnd: function () {
1129                        uc(f, !0)
1130                    }
1131                }), ld(ye, K(f, Oe.min, Oe.max)), Rc.l = e
1132            }
1133        }
1134
1135        function Tc() {
1136            _c(he), Qe[he].push(Dd[he].addClass(Wb))
1137        }
1138
1139        function _c(a) {
1140            for (var b = Qe[a]; b.length;) b.shift().removeClass(Wb)
1141        }
1142
1143        function bd(a) {
1144            var b = Re[a];
1145            d.each(Ed, function (a, c) {
1146                delete b[x(c)]
1147            }), d.each(b, function (a, c) {
1148                delete b[a], c.detach()
1149            })
1150        }
1151
1152        function cd(a) {
1153            Fd = Gd = Je;
1154            var b = Dd[Xc];
1155            b && (_c(Xc), Qe[Xc].push(b.addClass(Wb)), a || ie.show.onEnd(!0), v(se, 0, !0), bd(Xc), tc(Ed), $(), bb())
1156        }
1157
1158        function ed(a, b) {
1159            a && d.each(b, function (b, c) {
1160                c && d.extend(c, {
1161                    width    : a.width || c.width,
1162                    height   : a.height,
1163                    minwidth : a.minwidth,
1164                    maxwidth : a.maxwidth,
1165                    minheight: a.minheight,
1166                    maxheight: a.maxheight,
1167                    ratio    : S(a.ratio)
1168                })
1169            })
1170        }
1171
1172        function fd(b, c) {
1173            a.trigger(ib + ":" + b, [ie, c])
1174        }
1175
1176        function gd() {
1177            clearTimeout(hd.t), fe = 1, e.stopautoplayontouch ? ie.stopAutoplay() : ce = !0
1178        }
1179
1180        function hd() {
1181            fe && (e.stopautoplayontouch || (id(), jd()), hd.t = setTimeout(function () {
1182                fe = 0
1183            }, Qc + Pc))
1184        }
1185
1186        function id() {
1187            ce = !(!Cd && !de)
1188        }
1189
1190        function jd() {
1191            if (clearTimeout(jd.t), G.stop(jd.w), !e.autoplay || ce) return void(ie.autoplay && (ie.autoplay = !1, fd("stopautoplay")));
1192            ie.autoplay || (ie.autoplay = !0, fd("startautoplay"));
1193            var a = Je, b = Dd[Xc].data();
1194            jd.w  = G(function () {
1195                return b.state || a !== Je
1196            }, function () {
1197                jd.t = setTimeout(function () {
1198                    if (!ce && a === Je) {
1199                        var b = Kd, c = yd[b][Xc].data();
1200                        jd.w  = G(function () {
1201                            return c.state || b !== Kd
1202                        }, function () {
1203                            ce || b !== Kd || ie.show(Md ? Z(!Yd) : Kd)
1204                        })
1205                    }
1206                }, e.autoplay)
1207            })
1208        }
1209
1210        function kd() {
1211            ie.fullScreen && (ie.fullScreen = !1, Kc && vc.cancel(le), Dc.removeClass(jb), Cc.removeClass(jb), a.removeClass(Zb).insertAfter(pe), Le = d.extend({}, ee), md(Cd, !0, !0), rd("x", !1), ie.resize(), Pb(Ed, "stage"), Q(Ec, ae, _d), fd("fullscreenexit"))
1212        }
1213
1214        function ld(a, b) {
1215            Xd && (a.removeClass(Ub + " " + Vb), b && !Cd && a.addClass(b.replace(/^|\s/g, " " + Tb + "--")))
1216        }
1217
1218        function md(a, b, c) {
1219            b && (qe.removeClass(nb), Cd = !1, o()), a && a !== Cd && (a.remove(), fd("unloadvideo")), c && (id(), jd())
1220        }
1221
1222        function nd(a) {
1223            qe.toggleClass(qb, a)
1224        }
1225
1226        function od(a) {
1227            if (!Me.flow) {
1228                var b = a ? a.pageX : od.x, c = b && !yc(xc(b)) && e.click;
1229                od.p !== c && re.toggleClass(Cb, c) && (od.p = c, od.x = b)
1230            }
1231        }
1232
1233        function pd(a) {
1234            clearTimeout(pd.t), e.clicktransition && e.clicktransition !== e.transition ? setTimeout(function () {
1235                var b = e.transition;
1236                ie.setOptions({transition: e.clicktransition}), Wd = b, pd.t = setTimeout(function () {
1237                    ie.show(a)
1238                }, 10)
1239            }, 0) : ie.show(a)
1240        }
1241
1242        function qd(a, b) {
1243            var c = a.target, f = d(c);
1244            f.hasClass(mc) ? ie.playVideo() : c === Ee ? ie.toggleFullScreen() : Cd ? c === He && md(Cd, !0, !0) : b ? nd() : e.click && pd({
1245                index: a.shiftKey || Z(xc(a._x)),
1246                slow : a.altKey,
1247                user : !0
1248            })
1249        }
1250
1251        function rd(a, b) {
1252            Me[a] = Oe[a] = b
1253        }
1254
1255        function sd(a) {
1256            var b = d(this).data().eq;
1257            pd({index: b, slow: a.altKey, user: !0, coo: a._x - ye.offset().left})
1258        }
1259
1260        function td(a) {
1261            pd({index: we.index(this) ? ">" : "<", slow: a.altKey, user: !0})
1262        }
1263
1264        function ud(a) {
1265            X(a, function () {
1266                setTimeout(function () {
1267                    Q(re)
1268                }, 0), nd(!1)
1269            })
1270        }
1271
1272        function vd() {
1273            if (m(), u(), !vd.i) {
1274                vd.i  = !0;
1275                var a = e.startindex;
1276                (a || e.hash && c.hash) && (Ld = L(a || c.hash.replace(/^#/, ""), yd, 0 === ie.index || a, a)), Je = Fd = Gd = Hd = Ld = z(Ld) || 0
1277            }
1278            if (zd) {
1279                if (wd()) return;
1280                Cd && md(Cd, !0), Ed = [], bd(Xc), vd.ok = !0, ie.show({index: Je, time: 0}), ie.resize()
1281            } else ie.destroy()
1282        }
1283
1284        function wd() {
1285            return !wd.f === Yd ? (wd.f = Yd, Je = zd - 1 - Je, ie.reverse(), !0) : void 0
1286        }
1287
1288        function xd() {
1289            xd.ok || (xd.ok = !0, fd("ready"))
1290        }
1291
1292        Cc = d("html"), Dc = d("body");
1293        var yd, zd, Ad, Bd, Cd, Dd, Ed, Fd, Gd, Hd, Id, Jd, Kd, Ld, Md, Nd, Od, Pd, Qd, Rd, Sd, Td, Ud, Vd, Wd, Xd, Yd,
1294            Zd, $d, _d, ae, be, ce, de, ee, fe, ge, he, ie = this, je = d.now(), ke = ib + je, le = a[0], me = 1,
1295            ne = a.data(), oe = d("<style></style>"), pe = d(N(Yb)),
1296            qe = d(N(kb)), re = d(N(xb)).appendTo(qe),
1297            se = (re[0], d(N(Ab)).appendTo(re)), te = d(),
1298            ue = d(N(Db + " " + Fb + rc)), ve = d(N(Db + " " + Gb + rc)),
1299            we = ue.add(ve).appendTo(re), xe = d(N(Ib)),
1300            ye = d(N(Hb)).appendTo(xe), ze = d(N(Jb)).appendTo(ye),
1301            Ae = d(), Be = d(),
1302            Ce = (se.data(), ze.data(), d(N(jc)).appendTo(ze)),
1303            De = d(N($b + rc)), Ee = De[0], Fe = d(N(mc)),
1304            Ge = d(N(nc)).appendTo(re), He = Ge[0], Ie = d(N(qc)), Je = !1,
1305            Ke = {}, Le = {}, Me = {}, Ne = {}, Oe = {}, Pe = {}, Qe = {},
1306            Re = {}, Se = 0, Te = [];
1307        qe[Xc] = d(N(yb)), qe[Zc] = d(N(Mb + " " + Ob + rc, N(ic))), qe[Yc] = d(N(Mb + " " + Nb + rc, N(hc))), Qe[Xc] = [], Qe[Zc] = [], Qe[Yc] = [], Re[Xc] = {}, qe.addClass(Ic ? mb : lb).toggleClass(qb, !e.controlsonstart), ne.fotorama = this, ie.startAutoplay = function (a) {
1308            return ie.autoplay ? this : (ce = de = !1, t(a || e.autoplay), jd(), this)
1309        }, ie.stopAutoplay = function () {
1310            return ie.autoplay && (ce = de = !0, jd()), this
1311        }, ie.show = function (a) {
1312            var b;
1313            "object" != typeof a ? (b = a, a = {}) : b = a.index, b = ">" === b ? Gd + 1 : "<" === b ? Gd - 1 : "<<" === b ? 0 : ">>" === b ? zd - 1 : b, b = isNaN(b) ? L(b, yd, !0) : b, b = "undefined" == typeof b ? Je || 0 : b, ie.activeIndex = Je = z(b), Id = E(Je), Jd = U(Je), Kd = x(Je + (Yd ? -1 : 1)), Ed = [Je, Id, Jd], Gd = Md ? b : Je;
1314            var c = Math.abs(Hd - Gd), d = w(a.time, function () {
1315                return Math.min(Vd * (1 + (c - 1) / 12), 2 * Vd)
1316            }), f = a.overPos;
1317            a.slow && (d *= 10);
1318            var g          = Dd;
1319            ie.activeFrame = Dd = yd[Je];
1320            var i = g === Dd && !a.user;
1321            md(Cd, Dd.i !== yd[x(Fd)].i), lc(Ed, "stage"), tc(Mc ? [Gd] : [Gd, E(Gd), U(Gd)]), rd("go", !0), i || fd("show", {
1322                user: a.user,
1323                time: d
1324            }), ce = !0;
1325            var j = ie.show.onEnd = function (b) {
1326                if (!j.ok) {
1327                    if (j.ok = !0, b || cd(!0), i || fd("showend", {user: a.user}), !b && Wd && Wd !== e.transition) return ie.setOptions({transition: Wd}), void(Wd = !1);
1328                    Sb(), Pb(Ed, "stage"), rd("go", !1), Hc(), od(), id(), jd()
1329                }
1330            };
1331            if (Sd) {
1332                var k = Dd[Xc], l = Je !== Hd ? yd[Hd][Xc] : null;
1333                ab(k, l, te, {time: d, method: e.transition, onEnd: j}, Te)
1334            } else _(se, {pos: -r(Gd, Le.w, e.margin, Fd), overPos: f, time: d, onEnd: j});
1335            if (Gc(), Nd) {
1336                Tc();
1337                var m = y(Je + h(Gd - Hd, -1, 1));
1338                Rc({
1339                    time      : d,
1340                    coo       : m !== Je && a.coo,
1341                    guessIndex: "undefined" != typeof a.coo ? m : Je,
1342                    keep      : i
1343                }), Od && Oc(d)
1344            }
1345            return be = "undefined" != typeof Hd && Hd !== Je, Hd = Je, e.hash && be && !ie.eq && H(Dd.id || Je + 1), this
1346        }, ie.requestFullScreen = function () {
1347            return Qd && !ie.fullScreen && (_d = Ec.scrollTop(), ae = Ec.scrollLeft(), Q(Ec), rd("x", !0), ee = d.extend({}, Le), a.addClass(Zb).appendTo(Dc.addClass(jb)), Cc.addClass(jb), md(Cd, !0, !0), ie.fullScreen = !0, Rd && vc.request(le), ie.resize(), Pb(Ed, "stage"), Sb(), fd("fullscreenenter")), this
1348        }, ie.cancelFullScreen = function () {
1349            return Rd && vc.is() ? vc.cancel(b) : kd(), this
1350        }, ie.toggleFullScreen = function () {
1351            return ie[(ie.fullScreen ? "cancel" : "request") + "FullScreen"]()
1352        }, T(b, vc.event, function () {
1353            !yd || vc.is() || Cd || kd()
1354        }), ie.resize = function (a) {
1355            if (!yd) return this;
1356            var b = arguments[1] || 0, c = arguments[2];
1357            ed(ie.fullScreen ? {
1358                width    : "100%",
1359                maxwidth : null,
1360                minwidth : null,
1361                height   : "100%",
1362                maxheight: null,
1363                minheight: null
1364            } : R(a), [Le, c || ie.fullScreen || e]);
1365            var d = Le.width, f = Le.height, g = Le.ratio, i = Ec.height() - (Nd ? ye.height() : 0);
1366            return q(d) && (qe.addClass(ub).css({
1367                width   : d,
1368                minWidth: Le.minwidth || 0,
1369                maxWidth: Le.maxwidth || ad
1370            }), d = Le.W = Le.w = qe.width(), Le.nw = Nd && p(e.navwidth, d) || d, e.glimpse && (Le.w -= Math.round(2 * (p(e.glimpse, d) || 0))), se.css({
1371                width     : Le.w,
1372                marginLeft: (Le.W - Le.w) / 2
1373            }), f = p(f, i), f = f || g && d / g, f && (d = Math.round(d), f = Le.h = Math.round(h(f, p(Le.minheight, i), p(Le.maxheight, i))), re.stop().animate({
1374                width : d,
1375                height: f
1376            }, b, function () {
1377                qe.removeClass(ub)
1378            }), cd(), Nd && (ye.stop().animate({width: Le.nw}, b), Rc({
1379                guessIndex: Je,
1380                time      : b,
1381                keep      : !0
1382            }), Od && wc.nav && Oc(b)), $d = c || !0, xd())), Se = re.offset().left, this
1383        }, ie.setOptions = function (a) {
1384            return d.extend(e, a), vd(), this
1385        }, ie.shuffle = function () {
1386            return yd && O(yd) && vd(), this
1387        }, ie.destroy = function () {
1388            return ie.cancelFullScreen(), ie.stopAutoplay(), yd = ie.data = null, j(), Ed = [], bd(Xc), vd.ok = !1, this
1389        }, ie.playVideo = function () {
1390            var a = Dd, b = a.video, c = Je;
1391            return "object" == typeof b && a.videoReady && (Rd && ie.fullScreen && ie.cancelFullScreen(), G(function () {
1392                return !vc.is() || c !== Je
1393            }, function () {
1394                c === Je && (a.$video = a.$video || d(d.Fotorama.jst.video(b)), a.$video.appendTo(a[Xc]), qe.addClass(nb), Cd = a.$video, o(), we.blur(), De.blur(), fd("loadvideo"))
1395            })), this
1396        }, ie.stopVideo = function () {
1397            return md(Cd, !0, !0), this
1398        }, re.on("mousemove", od), Me = db(se, {
1399            onStart   : gd,
1400            onMove    : function (a, b) {
1401                ld(re, b.edge)
1402            },
1403            onTouchEnd: hd,
1404            onEnd     : function (a) {
1405                ld(re);
1406                var b = (Nc && !ge || a.touch) && e.arrows && "always" !== e.arrows;
1407                if (a.moved || b && a.pos !== a.newPos && !a.control) {
1408                    var c = s(a.newPos, Le.w, e.margin, Fd);
1409                    ie.show({index: c, time: Sd ? Vd : a.time, overPos: a.overPos, user: !0})
1410                } else a.aborted || a.control || qd(a.startEvent, b)
1411            },
1412            timeLow   : 1,
1413            timeHigh  : 1,
1414            friction  : 2,
1415            select    : "." + Xb + ", ." + Xb + " *",
1416            $wrap     : re
1417        }), Oe = db(ze, {
1418            onStart      : gd, onMove: function (a, b) {
1419                ld(ye, b.edge)
1420            }, onTouchEnd: hd, onEnd: function (a) {
1421                function b() {
1422                    Rc.l = a.newPos, id(), jd(), uc(a.newPos, !0)
1423                }
1424
1425                if (a.moved) a.pos !== a.newPos ? (ce = !0, _(ze, {
1426                    time   : a.time,
1427                    pos    : a.newPos,
1428                    overPos: a.overPos,
1429                    onEnd  : b
1430                }), uc(a.newPos), Xd && ld(ye, K(a.newPos, Oe.min, Oe.max))) : b(); else {
1431                    var c = a.$target.closest("." + Mb, ze)[0];
1432                    c && sd.call(c, a.startEvent)
1433                }
1434            }, timeLow   : .5, timeHigh: 2, friction: 5, $wrap: ye
1435        }), Ne = eb(re, {
1436            shift: !0, onEnd: function (a, b) {
1437                gd(), hd(), ie.show({index: b, slow: a.altKey})
1438            }
1439        }), Pe = eb(ye, {
1440            onEnd: function (a, b) {
1441                gd(), hd();
1442                var c = v(ze) + .25 * b;
1443                ze.css(k(h(c, Oe.min, Oe.max))), Xd && ld(ye, K(c, Oe.min, Oe.max)), Pe.prevent = {
1444                    "<": c >= Oe.max,
1445                    ">": c <= Oe.min
1446                }, clearTimeout(Pe.t), Pe.t = setTimeout(function () {
1447                    Rc.l = c, uc(c, !0)
1448                }, Pc), uc(c)
1449            }
1450        }), qe.hover(function () {
1451            setTimeout(function () {
1452                fe || nd(!(ge = !0))
1453            }, 0)
1454        }, function () {
1455            ge && nd(!(ge = !1))
1456        }), M(we, function (a) {
1457            Y(a), td.call(this, a)
1458        }, {
1459            onStart      : function () {
1460                gd(), Me.control = !0
1461            }, onTouchEnd: hd
1462        }), we.each(function () {
1463            W(this, function (a) {
1464                td.call(this, a)
1465            }), ud(this)
1466        }), W(Ee, ie.toggleFullScreen), ud(Ee), d.each("load push pop shift unshift reverse sort splice".split(" "), function (a, b) {
1467            ie[b] = function () {
1468                return yd = yd || [], "load" !== b ? Array.prototype[b].apply(yd, arguments) : arguments[0] && "object" == typeof arguments[0] && arguments[0].length && (yd = P(arguments[0])), vd(), ie
1469            }
1470        }), vd()
1471    }, d.fn.fotorama = function (b) {
1472        return this.each(function () {
1473            var c = this, e = d(this), f = e.data(), g = f.fotorama;
1474            g ? g.setOptions(b, !0) : G(function () {
1475                return !E(c)
1476            }, function () {
1477                f.urtext = e.html(), new d.Fotorama(e, d.extend({}, cd, a.fotoramaDefaults, b, f))
1478            })
1479        })
1480    }, d.Fotorama.instances = [], d.Fotorama.cache = {}, d.Fotorama.measures = {}, d = d || {}, d.Fotorama = d.Fotorama || {}, d.Fotorama.jst = d.Fotorama.jst || {}, d.Fotorama.jst.style = function (a) {
1481        {
1482            var b, c = "";
1483            tc.escape
1484        }
1485        return c += ".fotorama" + (null == (b = a.s) ? "" : b) + " .fotorama__nav--thumbs .fotorama__nav__frame{\npadding:" + (null == (b = a.m) ? "" : b) + "px;\nheight:" + (null == (b = a.h) ? "" : b) + "px}\n.fotorama" + (null == (b = a.s) ? "" : b) + " .fotorama__thumb-border{\nheight:" + (null == (b = a.h - a.b * (a.q ? 0 : 2)) ? "" : b) + "px;\nborder-width:" + (null == (b = a.b) ? "" : b) + "px;\nmargin-top:" + (null == (b = a.m) ? "" : b) + "px}"
1486    }, d.Fotorama.jst.video = function (a) {
1487        function b() {
1488            c += d.call(arguments, "")
1489        }
1490
1491        var c = "", d = (tc.escape, Array.prototype.join);
1492        return c += '<div class="fotorama__video">
1492<iframe src="', b(("youtube" == a.type ? a.p + "youtube.com/embed/" + a.id + "?autoplay=1" : "vimeo" == a.type ? a.p + "player.vimeo.com/video/" + a.id + "?autoplay=1&badge=0" : a.id) + (a.s && "custom" != a.type ? "&" + a.s : "")), c += '" frameborder="0" allowfullscreen></iframe></div>\n'
1493    }, d(function () {
1494        d("." + ib + ':not([data-auto="false"])').fotorama()
1495    })
1496}(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.