PageSourceSearch

https://parts.razor.com/wp-content/themes/razor/assets/js/jquery.fancybox.min.js?ver=20180801

js razor.com collected 2026-10-02 06:09:14 UTC 41,492 bytes, 865 lines download raw bytes

vendor: 37,121 bytes, lines 1-745
1/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */
2(function (s, H, f, w) {
3    var K = f("html"), q = f(s), p = f(H), b = f.fancybox = function () {
4        b.open.apply(this, arguments)
5    }, J = navigator.userAgent.match(/msie/i), C = null, t = H.createTouch !== w, u = function (a) {
6        return a && a.hasOwnProperty && a instanceof f
7    }, r = function (a) {
8        return a && "string" === f.type(a)
9    }, F = function (a) {
10        return r(a) && 0 < a.indexOf("%")
11    }, m = function (a, d) {
12        var e = parseInt(a, 10) || 0;
13        d && F(a) && (e *= b.getViewport()[d] / 100);
14        return Math.ceil(e)
15    }, x = function (a, b) {
16        return m(a, b) + "px"
17    };
18    f.extend(b, {
19        version: "2.1.5",
20        defaults: {
21            padding: 15,
22            margin: 20,
23            width: 1000,
24            height: 562,
25            minWidth: 100,
26            minHeight: 100,
27            maxWidth: 9999,
28            maxHeight: 9999,
29            pixelRatio: 1,
30            autoSize: !0,
31            autoHeight: !1,
32            autoWidth: !1,
33            autoResize: !0,
34            autoCenter: !t,
35            fitToView: !0,
36            aspectRatio: !1,
37            topRatio: 0.5,
38            leftRatio: 0.5,
39            scrolling: "auto",
40            wrapCSS: "",
41            arrows: !0,
42            closeBtn: !0,
43            closeClick: !1,
44            nextClick: !1,
45            mouseWheel: !0,
46            autoPlay: !1,
47            playSpeed: 3E3,
48            preload: 3,
49            modal: !1,
50            loop: !0,
51            ajax: {dataType: "html", headers: {"X-fancyBox": !0}},
52            iframe: {scrolling: "auto", preload: !0},
53            swf: {wmode: "transparent", allowfullscreen: "true", allowscriptaccess: "always"},
54            keys: {
55                next: {13: "left", 34: "up", 39: "left", 40: "up"},
56                prev: {8: "right", 33: "down", 37: "right", 38: "down"},
57                close: [27],
58                play: [32],
59                toggle: [70]
60            },
61            direction: {next: "left", prev: "right"},
62            scrollOutside: !0,
63            index: 0,
64            type: null,
65            href: null,
66            content: null,
67            title: null,
68            tpl: {
69                wrap: '<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',
70                image: '<img class="fancybox-image" src="{href}" alt="" />',
71                iframe: '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen' +
72                (J ? ' allowtransparency="true"' : "") + "></iframe>",
73                error: '<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',
74                closeBtn: '<a title="Close" class="fancybox-item fancybox-close" href="javascript:;">×</a>',
75                next: '<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',
76                prev: '<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>'
77            },
78            openEffect: "fade",
79            openSpeed: 250,
80            openEasing: "swing",
81            openOpacity: !0,
82            openMethod: "zoomIn",
83            closeEffect: "fade",
84            closeSpeed: 250,
85            closeEasing: "swing",
86            closeOpacity: !0,
87            closeMethod: "zoomOut",
88            nextEffect: "elastic",
89            nextSpeed: 250,
90            nextEasing: "swing",
91            nextMethod: "changeIn",
92            prevEffect: "elastic",
93            prevSpeed: 250,
94            prevEasing: "swing",
95            prevMethod: "changeOut",
96            helpers: {overlay: !0, title: !0},
97            onCancel: f.noop,
98            beforeLoad: f.noop,
99            afterLoad: f.noop,
100            beforeShow: f.noop,
101            afterShow: f.noop,
102            beforeChange: f.noop,
103            beforeClose: f.noop,
104            afterClose: f.noop
105        },
106        group: {},
107        opts: {},
108        previous: null,
109        coming: null,
110        current: null,
111        isActive: !1,
112        isOpen: !1,
113        isOpened: !1,
114        wrap: null,
115        skin: null,
116        outer: null,
117        inner: null,
118        player: {timer: null, isActive: !1},
119        ajaxLoad: null,
120        imgPreload: null,
121        transitions: {},
122        helpers: {},
123        open: function (a, d) {
124            if (a && (f.isPlainObject(d) || (d = {}), !1 !== b.close(!0)))return f.isArray(a) || (a = u(a) ? f(a).get() : [a]), f.each(a, function (e, c) {
125                var l = {}, g, h, k, n, m;
126                "object" === f.type(c) && (c.nodeType && (c = f(c)), u(c) ? (l = {
127                    href: c.data("fancybox-href") || c.attr("href"),
128                    title: f("<div/>").text(c.data("fancybox-title") || c.attr("title")).html(),
129                    isDom: !0,
130                    element: c
131                },
132                f.metadata && f.extend(!0, l, c.metadata())) : l = c);
133                g = d.href || l.href || (r(c) ? c : null);
134                h = d.title !== w ? d.title : l.title || "";
135                n = (k = d.content || l.content) ? "html" : d.type || l.type;
136                !n && l.isDom && (n = c.data("fancybox-type"), n || (n = (n = c.prop("class").match(/fancybox\.(\w+)/)) ? n[1] : null));
137                r(g) && (n || (b.isImage(g) ? n = "image" : b.isSWF(g) ? n = "swf" : "#" === g.charAt(0) ? n = "inline" : r(c) && (n = "html", k = c)), "ajax" === n && (m = g.split(/\s+/, 2), g = m.shift(), m = m.shift()));
138                k || ("inline" === n ? g ? k = f(r(g) ? g.replace(/.*(?=#[^\s]+$)/, "") : g) : l.isDom && (k = c) :
139                    "html" === n ? k = g : n || g || !l.isDom || (n = "inline", k = c));
140                f.extend(l, {href: g, type: n, content: k, title: h, selector: m});
141                a[e] = l
142            }), b.opts = f.extend(!0, {}, b.defaults, d), d.keys !== w && (b.opts.keys = d.keys ? f.extend({}, b.defaults.keys, d.keys) : !1), b.group = a, b._start(b.opts.index)
143        },
144        cancel: function () {
145            var a = b.coming;
146            a && !1 === b.trigger("onCancel") || (b.hideLoading(), a && (b.ajaxLoad && b.ajaxLoad.abort(), b.ajaxLoad = null, b.imgPreload && (b.imgPreload.onload = b.imgPreload.onerror = null), a.wrap && a.wrap.stop(!0, !0).trigger("onReset").remove(),
147                b.coming = null, b.current || b._afterZoomOut(a)))
148        },
149        close: function (a) {
150            b.cancel();
151            !1 !== b.trigger("beforeClose") && (b.unbindEvents(), b.isActive && (b.isOpen && !0 !== a ? (b.isOpen = b.isOpened = !1, b.isClosing = !0, f(".fancybox-item, .fancybox-nav").remove(), b.wrap.stop(!0, !0).removeClass("fancybox-opened"), b.transitions[b.current.closeMethod]()) : (f(".fancybox-wrap").stop(!0).trigger("onReset").remove(), b._afterZoomOut())))
152        },
153        play: function (a) {
154            var d = function () {
155                clearTimeout(b.player.timer)
156            }, e = function () {
157                d();
158                b.current && b.player.isActive &&
159                (b.player.timer = setTimeout(b.next, b.current.playSpeed))
160            }, c = function () {
161                d();
162                p.unbind(".player");
163                b.player.isActive = !1;
164                b.trigger("onPlayEnd")
165            };
166            !0 === a || !b.player.isActive && !1 !== a ? b.current && (b.current.loop || b.current.index < b.group.length - 1) && (b.player.isActive = !0, p.bind({
167                    "onCancel.player beforeClose.player": c,
168                    "onUpdate.player": e,
169                    "beforeLoad.player": d
170                }), e(), b.trigger("onPlayStart")) : c()
171        },
172        next: function (a) {
173            var d = b.current;
174            d && (r(a) || (a = d.direction.next), b.jumpto(d.index + 1, a, "next"))
175        },
176        prev: function (a) {
177            var d =
178                b.current;
179            d && (r(a) || (a = d.direction.prev), b.jumpto(d.index - 1, a, "prev"))
180        },
181        jumpto: function (a, d, e) {
182            var c = b.current;
183            c && (a = m(a), b.direction = d || c.direction[a >= c.index ? "next" : "prev"], b.router = e || "jumpto", c.loop && (0 > a && (a = c.group.length + a % c.group.length), a %= c.group.length), c.group[a] !== w && (b.cancel(), b._start(a)))
184        },
185        reposition: function (a, d) {
186            var e = b.current, c = e ? e.wrap : null, l;
187            c && (l = b._getPosition(d), a && "scroll" === a.type ? (delete l.position, c.stop(!0, !0).animate(l, 200)) : (c.css(l), e.pos = f.extend({}, e.dim, l)))
188        },
189        update: function (a) {
190            var d = a && a.originalEvent && a.originalEvent.type, e = !d || "orientationchange" === d;
191            e && (clearTimeout(C), C = null);
192            b.isOpen && !C && (C = setTimeout(function () {
193                var c = b.current;
194                c && !b.isClosing && (b.wrap.removeClass("fancybox-tmp"), (e || "load" === d || "resize" === d && c.autoResize) && b._setDimension(), "scroll" === d && c.canShrink || b.reposition(a), b.trigger("onUpdate"), C = null)
195            }, e && !t ? 0 : 300))
196        },
197        toggle: function (a) {
198            b.isOpen && (b.current.fitToView = "boolean" === f.type(a) ? a : !b.current.fitToView, t && (b.wrap.removeAttr("style").addClass("fancybox-tmp"),
199                b.trigger("onUpdate")), b.update())
200        },
201        hideLoading: function () {
202            p.unbind(".loading");
203            f("#fancybox-loading").remove()
204        },
205        showLoading: function () {
206            var a, d;
207            b.hideLoading();
208            a = f('<div id="fancybox-loading"><div></div></div>').click(b.cancel).appendTo("body");
209            p.bind("keydown.loading", function (a) {
210                27 === (a.which || a.keyCode) && (a.preventDefault(), b.cancel())
211            });
212            b.defaults.fixed || (d = b.getViewport(), a.css({
213                position: "absolute",
214                top: 0.5 * d.h + d.y,
215                left: 0.5 * d.w + d.x
216            }));
217            b.trigger("onLoading")
218        },
219        getViewport: function () {
220            var a = b.current &&
221                b.current.locked || !1, d = {x: q.scrollLeft(), y: q.scrollTop()};
222            a && a.length ? (d.w = a[0].clientWidth, d.h = a[0].clientHeight) : (d.w = t && s.innerWidth ? s.innerWidth : q.width(), d.h = t && s.innerHeight ? s.innerHeight : q.height());
223            return d
224        },
225        unbindEvents: function () {
226            b.wrap && u(b.wrap) && b.wrap.unbind(".fb");
227            p.unbind(".fb");
228            q.unbind(".fb")
229        },
230        bindEvents: function () {
231            var a = b.current, d;
232            a && (q.bind("orientationchange.fb" + (t ? "" : " resize.fb") + (a.autoCenter && !a.locked ? " scroll.fb" : ""), b.update), (d = a.keys) && p.bind("keydown.fb", function (e) {
233                var c =
234                    e.which || e.keyCode, l = e.target || e.srcElement;
235                if (27 === c && b.coming)return !1;
236                e.ctrlKey || e.altKey || e.shiftKey || e.metaKey || l && (l.type || f(l).is("[contenteditable]")) || f.each(d, function (d, l) {
237                    if (1 < a.group.length && l[c] !== w)return b[d](l[c]), e.preventDefault(), !1;
238                    if (-1 < f.inArray(c, l))return b[d](), e.preventDefault(), !1
239                })
240            }), f.fn.mousewheel && a.mouseWheel && b.wrap.bind("mousewheel.fb", function (d, c, l, g) {
241                for (var h = f(d.target || null),
242                         k = !1; h.length && !(k || h.is(".fancybox-skin") || h.is(".fancybox-wrap"));)k = h[0] && !(h[0].style.overflow &&
243                    "hidden" === h[0].style.overflow) && (h[0].clientWidth && h[0].scrollWidth > h[0].clientWidth || h[0].clientHeight && h[0].scrollHeight > h[0].clientHeight), h = f(h).parent();
244                0 !== c && !k && 1 < b.group.length && !a.canShrink && (0 < g || 0 < l ? b.prev(0 < g ? "down" : "left") : (0 > g || 0 > l) && b.next(0 > g ? "up" : "right"), d.preventDefault())
245            }))
246        },
247        trigger: function (a, d) {
248            var e, c = d || b.coming || b.current;
249            if (c) {
250                f.isFunction(c[a]) && (e = c[a].apply(c, Array.prototype.slice.call(arguments, 1)));
251                if (!1 === e)return !1;
252                c.helpers && f.each(c.helpers, function (d, e) {
253                    if (e &&
254                        b.helpers[d] && f.isFunction(b.helpers[d][a])) b.helpers[d][a](f.extend(!0, {}, b.helpers[d].defaults, e), c)
255                })
256            }
257            p.trigger(a)
258        },
259        isImage: function (a) {
260            return r(a) && a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)
261        },
262        isSWF: function (a) {
263            return r(a) && a.match(/\.(swf)((\?|#).*)?$/i)
264        },
265        _start: function (a) {
266            var d = {}, e, c;
267            a = m(a);
268            e = b.group[a] || null;
269            if (!e)return !1;
270            d = f.extend(!0, {}, b.opts, e);
271            e = d.margin;
272            c = d.padding;
273            "number" === f.type(e) && (d.margin = [e, e, e, e]);
274            "number" === f.type(c) && (d.padding = [c, c,
275                c, c]);
276            d.modal && f.extend(!0, d, {
277                closeBtn: !1,
278                closeClick: !1,
279                nextClick: !1,
280                arrows: !1,
281                mouseWheel: !1,
282                keys: null,
283                helpers: {overlay: {closeClick: !1}}
284            });
285            d.autoSize && (d.autoWidth = d.autoHeight = !0);
286            "auto" === d.width && (d.autoWidth = !0);
287            "auto" === d.height && (d.autoHeight = !0);
288            d.group = b.group;
289            d.index = a;
290            b.coming = d;
291            if (!1 === b.trigger("beforeLoad")) b.coming = null; else {
292                c = d.type;
293                e = d.href;
294                if (!c)return b.coming = null, b.current && b.router && "jumpto" !== b.router ? (b.current.index = a, b[b.router](b.direction)) : !1;
295                b.isActive = !0;
296                if ("image" ===
297                    c || "swf" === c) d.autoHeight = d.autoWidth = !1, d.scrolling = "visible";
298                "image" === c && (d.aspectRatio = !0);
299                "iframe" === c && t && (d.scrolling = "scroll");
300                d.wrap = f(d.tpl.wrap).addClass("fancybox-" + (t ? "mobile" : "desktop") + " fancybox-type-" + c + " fancybox-tmp " + d.wrapCSS).appendTo(d.parent || "body");
301                f.extend(d, {
302                    skin: f(".fancybox-skin", d.wrap),
303                    outer: f(".fancybox-outer", d.wrap),
304                    inner: f(".fancybox-inner", d.wrap)
305                });
306                f.each(["Top", "Right", "Bottom", "Left"], function (a, b) {
307                    d.skin.css("padding" + b, x(d.padding[a]))
308                });
309                b.trigger("onReady");
310                if ("inline" === c || "html" === c) {
311                    if (!d.content || !d.content.length)return b._error("content")
312                } else if (!e)return b._error("href");
313                "image" === c ? b._loadImage() : "ajax" === c ? b._loadAjax() : "iframe" === c ? b._loadIframe() : b._afterLoad()
314            }
315        },
316        _error: function (a) {
317            f.extend(b.coming, {
318                type: "html",
319                autoWidth: !0,
320                autoHeight: !0,
321                minWidth: 0,
322                minHeight: 0,
323                scrolling: "no",
324                hasError: a,
325                content: b.coming.tpl.error
326            });
327            b._afterLoad()
328        },
329        _loadImage: function () {
330            var a = b.imgPreload = new Image;
331            a.onload = function () {
332                this.onload = this.onerror = null;
333                b.coming.width =
334                    this.width / b.opts.pixelRatio;
335                b.coming.height = this.height / b.opts.pixelRatio;
336                b._afterLoad()
337            };
338            a.onerror = function () {
339                this.onload = this.onerror = null;
340                b._error("image")
341            };
342            a.src = b.coming.href;
343            !0 !== a.complete && b.showLoading()
344        },
345        _loadAjax: function () {
346            var a = b.coming;
347            b.showLoading();
348            b.ajaxLoad = f.ajax(f.extend({}, a.ajax, {
349                url: a.href, error: function (a, e) {
350                    b.coming && "abort" !== e ? b._error("ajax", a) : b.hideLoading()
351                }, success: function (d, e) {
352                    "success" === e && (a.content = d, b._afterLoad())
353                }
354            }))
355        },
356        _loadIframe: function () {
357            var a = b.coming,
358                d = f(a.tpl.iframe.replace(/\{rnd\}/g, (new Date).getTime())).attr("scrolling", t ? "auto" : a.iframe.scrolling).attr("src", a.href);
359            f(a.wrap).bind("onReset", function () {
360                try {
361                    f(this).find("iframe").hide().attr("src", "//about:blank").end().empty()
362                } catch (a) {
363                }
364            });
365            a.iframe.preload && (b.showLoading(), d.one("load", function () {
366                f(this).data("ready", 1);
367                t || f(this).bind("load.fb", b.update);
368                f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();
369                b._afterLoad()
370            }));
371            a.content = d.appendTo(a.inner);
372            a.iframe.preload ||
373            b._afterLoad()
374        },
375        _preloadImages: function () {
376            var a = b.group, d = b.current, e = a.length, c = d.preload ? Math.min(d.preload, e - 1) : 0, f, g;
377            for (g = 1; g <= c; g += 1)f = a[(d.index + g) % e], "image" === f.type && f.href && ((new Image).src = f.href)
378        },
379        _afterLoad: function () {
380            var a = b.coming, d = b.current, e, c, l, g, h;
381            b.hideLoading();
382            if (a && !1 !== b.isActive)if (!1 === b.trigger("afterLoad", a, d)) a.wrap.stop(!0).trigger("onReset").remove(), b.coming = null; else {
383                d && (b.trigger("beforeChange", d), d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove());
384                b.unbindEvents();
385                e = a.content;
386                c = a.type;
387                l = a.scrolling;
388                f.extend(b, {wrap: a.wrap, skin: a.skin, outer: a.outer, inner: a.inner, current: a, previous: d});
389                g = a.href;
390                switch (c) {
391                    case "inline":
392                    case "ajax":
393                    case "html":
394                        a.selector ? e = f("<div>").html(e).find(a.selector) : u(e) && (e.data("fancybox-placeholder") || e.data("fancybox-placeholder", f('<div class="fancybox-placeholder"></div>').insertAfter(e).hide()), e = e.show().detach(), a.wrap.bind("onReset", function () {
395                                f(this).find(e).length && e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder",
396                                    !1)
397                            }));
398                        break;
399                    case "image":
400                        e = a.tpl.image.replace(/\{href\}/g, g);
401                        break;
402                    case "swf":
403                        e = '<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="' + g + '"></param>', h = "", f.each(a.swf, function (a, b) {
404                            e += '<param name="' + a + '" value="' + b + '"></param>';
405                            h += " " + a + '="' + b + '"'
406                        }), e += '<embed src="' + g + '" type="application/x-shockwave-flash" width="100%" height="100%"' + h + "></embed></object>"
407                }
408                u(e) && e.parent().is(a.inner) || a.inner.append(e);
409                b.trigger("beforeShow");
410                a.inner.css("overflow", "yes" === l ? "scroll" : "no" === l ? "hidden" : l);
411                b._setDimension();
412                b.reposition();
413                b.isOpen = !1;
414                b.coming = null;
415                b.bindEvents();
416                if (!b.isOpened) f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove(); else if (d.prevMethod) b.transitions[d.prevMethod]();
417                b.transitions[b.isOpened ? a.nextMethod : a.openMethod]();
418                b._preloadImages()
419            }
420        },
421        _setDimension: function () {
422            var a = b.getViewport(), d = 0, e = !1, c = !1, e = b.wrap, l = b.skin, g = b.inner, h = b.current,
423                c = h.width, k = h.height, n = h.minWidth, v = h.minHeight, p = h.maxWidth,
424                q = h.maxHeight, t = h.scrolling, r = h.scrollOutside ? h.scrollbarWidth : 0, y = h.margin,
425                z = m(y[1] + y[3]), s = m(y[0] + y[2]), w, A, u, D, B, G, C, E, I;
426            e.add(l).add(g).width("auto").height("auto").removeClass("fancybox-tmp");
427            y = m(l.outerWidth(!0) - l.width());
428            w = m(l.outerHeight(!0) - l.height());
429            A = z + y;
430            u = s + w;
431            D = F(c) ? (a.w - A) * m(c) / 100 : c;
432            B = F(k) ? (a.h - u) * m(k) / 100 : k;
433            if ("iframe" === h.type) {
434                if (I = h.content, h.autoHeight && 1 === I.data("ready"))try {
435                    I[0].contentWindow.document.location && (g.width(D).height(9999), G = I.contents().find("body"), r && G.css("overflow-x",
436                        "hidden"), B = G.outerHeight(!0))
437                } catch (H) {
438                }
439            } else if (h.autoWidth || h.autoHeight) g.addClass("fancybox-tmp"), h.autoWidth || g.width(D), h.autoHeight || g.height(B), h.autoWidth && (D = g.width()), h.autoHeight && (B = g.height()), g.removeClass("fancybox-tmp");
440            c = m(D);
441            k = m(B);
442            E = D / B;
443            n = m(F(n) ? m(n, "w") - A : n);
444            p = m(F(p) ? m(p, "w") - A : p);
445            v = m(F(v) ? m(v, "h") - u : v);
446            q = m(F(q) ? m(q, "h") - u : q);
447            G = p;
448            C = q;
449            h.fitToView && (p = Math.min(a.w - A, p), q = Math.min(a.h - u, q));
450            A = a.w - z;
451            s = a.h - s;
452            h.aspectRatio ? (c > p && (c = p, k = m(c / E)), k > q && (k = q, c = m(k * E)), c < n && (c = n, k = m(c /
453                E)), k < v && (k = v, c = m(k * E))) : (c = Math.max(n, Math.min(c, p)), h.autoHeight && "iframe" !== h.type && (g.width(c), k = g.height()), k = Math.max(v, Math.min(k, q)));
454            if (h.fitToView)if (g.width(c).height(k), e.width(c + y), a = e.width(), z = e.height(), h.aspectRatio)for (; (a > A || z > s) && c > n && k > v && !(19 < d++);)k = Math.max(v, Math.min(q, k - 10)), c = m(k * E), c < n && (c = n, k = m(c / E)), c > p && (c = p, k = m(c / E)), g.width(c).height(k), e.width(c + y), a = e.width(), z = e.height(); else c = Math.max(n, Math.min(c, c - (a - A))), k = Math.max(v, Math.min(k, k - (z - s)));
455            r && "auto" === t && k < B &&
456            c + y + r < A && (c += r);
457            g.width(c).height(k);
458            e.width(c + y);
459            a = e.width();
460            z = e.height();
461            e = (a > A || z > s) && c > n && k > v;
462            c = h.aspectRatio ? c < G && k < C && c < D && k < B : (c < G || k < C) && (c < D || k < B);
463            f.extend(h, {
464                dim: {width: x(a), height: x(z)},
465                origWidth: D,
466                origHeight: B,
467                canShrink: e,
468                canExpand: c,
469                wPadding: y,
470                hPadding: w,
471                wrapSpace: z - l.outerHeight(!0),
472                skinSpace: l.height() - k
473            });
474            !I && h.autoHeight && k > v && k < q && !c && g.height("auto")
475        },
476        _getPosition: function (a) {
477            var d = b.current, e = b.getViewport(), c = d.margin, f = b.wrap.width() + c[1] + c[3],
478                g = b.wrap.height() + c[0] + c[2], c = {
479                    position: "absolute",
480                    top: c[0], left: c[3]
481                };
482            d.autoCenter && d.fixed && !a && g <= e.h && f <= e.w ? c.position = "fixed" : d.locked || (c.top += e.y, c.left += e.x);
483            c.top = x(Math.max(c.top, c.top + (e.h - g) * d.topRatio));
484            c.left = x(Math.max(c.left, c.left + (e.w - f) * d.leftRatio));
485            return c
486        },
487        _afterZoomIn: function () {
488            var a = b.current;
489            a && ((b.isOpen = b.isOpened = !0, b.wrap.css("overflow", "visible").addClass("fancybox-opened"), b.update(), (a.closeClick || a.nextClick && 1 < b.group.length) && b.inner.css("cursor", "pointer").bind("click.fb", function (d) {
490                f(d.target).is("a") || f(d.target).parent().is("a") ||
491                (d.preventDefault(), b[a.closeClick ? "close" : "next"]())
492            }), a.closeBtn && f(a.tpl.closeBtn).appendTo(b.skin).bind("click.fb", function (a) {
493                a.preventDefault();
494                b.close()
495            }), a.arrows && 1 < b.group.length && ((a.loop || 0 < a.index) && f(a.tpl.prev).appendTo(b.outer).bind("click.fb", b.prev), (a.loop || a.index < b.group.length - 1) && f(a.tpl.next).appendTo(b.outer).bind("click.fb", b.next)), b.trigger("afterShow"), a.loop || a.index !== a.group.length - 1) ? b.opts.autoPlay && !b.player.isActive && (b.opts.autoPlay = !1, b.play(!0)) : b.play(!1))
496        },
497        _afterZoomOut: function (a) {
498            a = a || b.current;
499            f(".fancybox-wrap").trigger("onReset").remove();
500            f.extend(b, {
501                group: {},
502                opts: {},
503                router: !1,
504                current: null,
505                isActive: !1,
506                isOpened: !1,
507                isOpen: !1,
508                isClosing: !1,
509                wrap: null,
510                skin: null,
511                outer: null,
512                inner: null
513            });
514            b.trigger("afterClose", a)
515        }
516    });
517    b.transitions = {
518        getOrigPosition: function () {
519            var a = b.current, d = a.element, e = a.orig, c = {}, f = 50, g = 50, h = a.hPadding, k = a.wPadding,
520                n = b.getViewport();
521            !e && a.isDom && d.is(":visible") && (e = d.find("img:first"), e.length || (e = d));
522            u(e) ? (c = e.offset(), e.is("img") &&
523            (f = e.outerWidth(), g = e.outerHeight())) : (c.top = n.y + (n.h - g) * a.topRatio, c.left = n.x + (n.w - f) * a.leftRatio);
524            if ("fixed" === b.wrap.css("position") || a.locked) c.top -= n.y, c.left -= n.x;
525            return c = {
526                top: x(c.top - h * a.topRatio),
527                left: x(c.left - k * a.leftRatio),
528                width: x(f + k),
529                height: x(g + h)
530            }
531        }, step: function (a, d) {
532            var e, c, f = d.prop;
533            c = b.current;
534            var g = c.wrapSpace, h = c.skinSpace;
535            if ("width" === f || "height" === f) e = d.end === d.start ? 1 : (a - d.start) / (d.end - d.start), b.isClosing && (e = 1 - e), c = "width" === f ? c.wPadding : c.hPadding, c = a - c, b.skin[f](m("width" ===
536            f ? c : c - g * e)), b.inner[f](m("width" === f ? c : c - g * e - h * e))
537        }, zoomIn: function () {
538            var a = b.current, d = a.pos, e = a.openEffect, c = "elastic" === e, l = f.extend({opacity: 1}, d);
539            delete l.position;
540            c ? (d = this.getOrigPosition(), a.openOpacity && (d.opacity = 0.1)) : "fade" === e && (d.opacity = 0.1);
541            b.wrap.css(d).animate(l, {
542                duration: "none" === e ? 0 : a.openSpeed,
543                easing: a.openEasing,
544                step: c ? this.step : null,
545                complete: b._afterZoomIn
546            })
547        }, zoomOut: function () {
548            var a = b.current, d = a.closeEffect, e = "elastic" === d, c = {opacity: 0.1};
549            e && (c = this.getOrigPosition(), a.closeOpacity &&
550            (c.opacity = 0.1));
551            b.wrap.animate(c, {
552                duration: "none" === d ? 0 : a.closeSpeed,
553                easing: a.closeEasing,
554                step: e ? this.step : null,
555                complete: b._afterZoomOut
556            })
557        }, changeIn: function () {
558            var a = b.current, d = a.nextEffect, e = a.pos, c = {opacity: 1}, f = b.direction, g;
559            e.opacity = 0.1;
560            "elastic" === d && (g = "down" === f || "up" === f ? "top" : "left", "down" === f || "right" === f ? (e[g] = x(m(e[g]) - 200), c[g] = "+=200px") : (e[g] = x(m(e[g]) + 200), c[g] = "-=200px"));
561            "none" === d ? b._afterZoomIn() : b.wrap.css(e).animate(c, {
562                duration: a.nextSpeed,
563                easing: a.nextEasing,
564                complete: b._afterZoomIn
565            })
566        },
567        changeOut: function () {
568            var a = b.previous, d = a.prevEffect, e = {opacity: 0.1}, c = b.direction;
569            "elastic" === d && (e["down" === c || "up" === c ? "top" : "left"] = ("up" === c || "left" === c ? "-" : "+") + "=200px");
570            a.wrap.animate(e, {
571                duration: "none" === d ? 0 : a.prevSpeed, easing: a.prevEasing, complete: function () {
572                    f(this).trigger("onReset").remove()
573                }
574            })
575        }
576    };
577    b.helpers.overlay = {
578        defaults: {closeClick: !0, speedOut: 200, showEarly: !0, css: {}, locked: !t, fixed: !0},
579        overlay: null,
580        fixed: !1,
581        el: f("html"),
582        create: function (a) {
583            var d;
584            a = f.extend({}, this.defaults, a);
585            this.overlay &&
586            this.close();
587            d = b.coming ? b.coming.parent : a.parent;
588            this.overlay = f('<div class="fancybox-overlay"></div>').appendTo(d && d.lenth ? d : "body");
589            this.fixed = !1;
590            a.fixed && b.defaults.fixed && (this.overlay.addClass("fancybox-overlay-fixed"), this.fixed = !0)
591        },
592        open: function (a) {
593            var d = this;
594            a = f.extend({}, this.defaults, a);
595            this.overlay ? this.overlay.unbind(".overlay").width("auto").height("auto") : this.create(a);
596            this.fixed || (q.bind("resize.overlay", f.proxy(this.update, this)), this.update());
597            a.closeClick && this.overlay.bind("click.overlay",
598                function (a) {
599                    if (f(a.target).hasClass("fancybox-overlay"))return b.isActive ? b.close() : d.close(), !1
600                });
601            this.overlay.css(a.css).show()
602        },
603        close: function () {
604            q.unbind("resize.overlay");
605            this.el.hasClass("fancybox-lock") && (f(".fancybox-margin").removeClass("fancybox-margin"), this.el.removeClass("fancybox-lock"), q.scrollTop(this.scrollV).scrollLeft(this.scrollH));
606            f(".fancybox-overlay").remove().hide();
607            f.extend(this, {overlay: null, fixed: !1})
608        },
609        update: function () {
610            var a = "100%", b;
611            this.overlay.width(a).height("100%");
612            J ? (b = Math.max(H.documentElement.offsetWidth, H.body.offsetWidth), p.width() > b && (a = p.width())) : p.width() > q.width() && (a = p.width());
613            this.overlay.width(a).height(p.height())
614        },
615        onReady: function (a, b) {
616            var e = this.overlay;
617            f(".fancybox-overlay").stop(!0, !0);
618            e || this.create(a);
619            a.locked && this.fixed && b.fixed && (b.locked = this.overlay.append(b.wrap), b.fixed = !1);
620            !0 === a.showEarly && this.beforeShow.apply(this, arguments)
621        },
622        beforeShow: function (a, b) {
623            b.locked && !this.el.hasClass("fancybox-lock") && (!1 !== this.fixPosition && f("*").filter(function () {
624                return "fixed" ===
625                    f(this).css("position") && !f(this).hasClass("fancybox-overlay") && !f(this).hasClass("fancybox-wrap")
626            }).addClass("fancybox-margin"), this.el.addClass("fancybox-margin"), this.scrollV = q.scrollTop(), this.scrollH = q.scrollLeft(), this.el.addClass("fancybox-lock"), q.scrollTop(this.scrollV).scrollLeft(this.scrollH));
627            this.open(a)
628        },
629        onUpdate: function () {
630            this.fixed || this.update()
631        },
632        afterClose: function (a) {
633            this.overlay && !b.coming && this.overlay.fadeOut(a.speedOut, f.proxy(this.close, this))
634        }
635    };
636    b.helpers.title = {
637        defaults: {
638            type: "float",
639            position: "bottom"
640        }, beforeShow: function (a) {
641            var d = b.current, e = d.title, c = a.type;
642            f.isFunction(e) && (e = e.call(d.element, d));
643            if (r(e) && "" !== f.trim(e)) {
644                d = f('<div class="fancybox-title fancybox-title-' + c + '-wrap">' + e + "</div>");
645                switch (c) {
646                    case "inside":
647                        c = b.skin;
648                        break;
649                    case "outside":
650                        c = b.wrap;
651                        break;
652                    case "over":
653                        c = b.inner;
654                        break;
655                    default:
656                        c = b.skin, d.appendTo("body"), J && d.width(d.width()), d.wrapInner('<span class="child"></span>'), b.current.margin[2] += Math.abs(m(d.css("margin-bottom")))
657                }
658                d["top" === a.position ? "prependTo" :
659                    "appendTo"](c)
660            }
661        }
662    };
663    f.fn.fancybox = function (a) {
664        var d, e = f(this), c = this.selector || "", l = function (g) {
665            var h = f(this).blur(), k = d, l, m;
666            g.ctrlKey || g.altKey || g.shiftKey || g.metaKey || h.is(".fancybox-wrap") || (l = a.groupAttr || "data-fancybox-group", m = h.attr(l), m || (l = "rel", m = h.get(0)[l]), m && "" !== m && "nofollow" !== m && (h = c.length ? f(c) : e, h = h.filter("[" + l + '="' + m + '"]'), k = h.index(this)), a.index = k, !1 !== b.open(h, a) && g.preventDefault())
667        };
668        a = a || {};
669        d = a.index || 0;
670        c && !1 !== a.live ? p.undelegate(c, "click.fb-start").delegate(c + ":not('.fancybox-item, .fancybox-nav')",
671            "click.fb-start", l) : e.unbind("click.fb-start").bind("click.fb-start", l);
672        this.filter("[data-fancybox-start=1]").trigger("click");
673        return this
674    };
675    p.ready(function () {
676        var a, d;
677        f.scrollbarWidth === w && (f.scrollbarWidth = function () {
678            var a = f('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo("body"),
679                b = a.children(), b = b.innerWidth() - b.height(99).innerWidth();
680            a.remove();
681            return b
682        });
683        f.support.fixedPosition === w && (f.support.fixedPosition = function () {
684            var a = f('<div style="position:fixed;top:20px;"></div>').appendTo("body"),
685                b = 20 === a[0].offsetTop || 15 === a[0].offsetTop;
686            a.remove();
687            return b
688        }());
689        f.extend(b.defaults, {scrollbarWidth: f.scrollbarWidth(), fixed: f.support.fixedPosition, parent: f("body")});
690        a = f(s).width();
691        K.addClass("fancybox-lock-test");
692        d = f(s).width();
693        K.removeClass("fancybox-lock-test");
694        f("<style type='text/css'>.fancybox-margin{margin-right:" + (d - a) + "px;}</style>").appendTo("head")
695    })
696})(window, document, jQuery);
697/*!
698 * Thumbnail helper for fancyBox
699 * version: 1.0.7 (Mon, 01 Oct 2012)
700 * @requires fancyBox v2.0 or later
701 *
702 * Usage:
703 *     $(".fancybox").fancybox({
704 *         helpers : {
705 *             thumbs: {
706 *                 width  : 50,
707 *                 height : 50
708 *             }
709 *         }
710 *     });
711 *
712 */
713;(function ($) {
714    //Shortcut for fancyBox object
715    var F = $.fancybox;
716
717    //Add helper object
718    F.helpers.thumbs = {
719        defaults: {
720            width: 50,       // thumbnail width
721            height: 50,       // thumbnail height
722            position: 'bottom', // 'top' or 'bottom'
723            source: function (item) {  // function to obtain the URL of the thumbnail image
724                var href;
725
726                if (item.element) {
727                    href = $(item.element).find('img').attr('src');
728                }
729
730                if (!href && item.type === 'image' && item.href) {
731                    href = item.href;
732                }
733
734                return href;
735            }
736        },
737
738        wrap: null,
739        list: null,
740        width: 0,
741
742        init: function (opts, obj) {
743            var that = this,
744                list,
745                thumbWidth = opts.width,
746                thumbHeight = opts.height,
747                thumbSource = opts.source;
748
749            //Build list structure
750            list = '';
751
752            for (var n = 0; n < obj.group.length; n++) {
753                list += '<li><a style="width:' + thumbWidth + 'px;height:' + thumbHeight + 'px;" href="javascript:jQuery.fancybox.jumpto(' + n + ');"></a></li>';
754            }
755            this.wrap = $('<div id="fancybox-thumbs" style="right:' + getScrollBarWidth() + 'px;"></div>').addClass(opts.position).appendTo('body');
756            $('#fancybox-thumbs').prepend('<span>' + jQuery('.product_title').text() + '</span>');
757            this.list = $('<ul>' + list + '</ul>').appendTo(this.wrap);
758            $('#fancybox-thumbs').append('<em class="close-gallery">close</em>');
759            $('.close-gallery').click(function (e) {
760                jQuery.fancybox.close();
761                e.preventDefault();
762            });
763            //Load each thumbnail
764            $.each(obj.group, function (i) {
765                var href = thumbSource(obj.group[i]);
766
767                if (!href) {
768                    return;
769                }
770
771                $("<img />").load(function () {
772                    var width = this.width,
773                        height = this.height,
774                        widthRatio, heightRatio, parent;
775
776                    if (!that.list || !width || !height) {
777                        return;
778                    }
779
780                    //Calculate thumbnail width/height and center it
781                    widthRatio = width / thumbWidth;
782                    heightRatio = height / thumbHeight;
783
784                    parent = that.list.children().eq(i).find('a');
785
786                    if (widthRatio >= 1 && heightRatio >= 1) {
787                        if (widthRatio > heightRatio) {
788                            width = Math.floor(width / heightRatio);
789                            height = thumbHeight;
790
791                        } else {
792                            width = thumbWidth;
793                            height = Math.floor(height / widthRatio);
794                        }
795                    }
796
797                    $(this).css({
798                        width: width,
799                        height: height,
800                        top: Math.floor(thumbHeight / 2 - height / 2),
801                        left: Math.floor(thumbWidth / 2 - width / 2)
802                    });
803
804                    parent.width(thumbWidth).height(thumbHeight);
805                    if ($('.slider-nav img[data-big="' + href + '"]').length) {
806                        $(this).hide().appendTo(parent).fadeIn(300);
807                    } else {
808                        parent.parent().addClass('hide');
809                    }
810                }).attr('src', href);
811
812            });
813
814            //Set initial width
815            this.width = this.list.children().eq(0).outerWidth(true);
816
817            this.list.width(this.width * (obj.group.length + 1)).css('left', Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5)));
818        },
819
820        beforeLoad: function (opts, obj) {
821            //Remove self if gallery do not have at least two items
822            // if (obj.group.length < 2) {
823            // 	obj.helpers.thumbs = false;
824
825            // 	return;
826            // }
827
828            //Increase bottom margin to give space for thumbs
829            obj.margin[opts.position === 'top' ? 0 : 2] += ((opts.height) + 15);
830        },
831
832        afterShow: function (opts, obj) {
833            //Check if exists and create or update list
834            if (this.list) {
835                this.onUpdate(opts, obj);
836
837            } else {
838                this.init(opts, obj);
839            }
840
841            //Set active element
842            this.list.children().removeClass('active').eq(obj.index).addClass('active');
843        },
844
845        //Center list
846        onUpdate: function (opts, obj) {
847            if (this.list) {
848                this.list.stop(true).animate({
849                    'left': Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5))
850                }, 150);
851            }
852        },
853
854        beforeClose: function () {
855            if (this.wrap) {
856                this.wrap.remove();
857            }
858
859            this.wrap = null;
860            this.list = null;
861            this.width = 0;
862        }
863    }
864
865}(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.