PageSourceSearch

http://katalog.stroykombinat.kz/design/stroy/js/fotorama.js

js stroykombinat.kz collected 2026-10-07 19:43:05 UTC 68,172 bytes, 1,738 lines download raw bytes

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