PageSourceSearch

https://www.waimao.ai/lib/mCustomScrollbar/jquery.mCustomScrollbar.concat.min.js

js waimao.ai collected 2026-10-05 14:59:39 UTC 80,241 bytes, 1,603 lines download raw bytes

vendor: 80,241 bytes, lines 1-1603
1/* == jquery mousewheel plugin == Version: 3.1.13, License: MIT License (MIT) */
2!
3function(a) {
4    "function" == typeof define && define.amd ? define(["jquery"], a) : "object" == typeof exports ? module.exports = a: a(jQuery)
5} (function(a) {
6    function b(b) {
7        var g = b || window.event,
8        h = i.call(arguments, 1),
9        j = 0,
10        l = 0,
11        m = 0,
12        n = 0,
13        o = 0,
14        p = 0;
15        if (b = a.event.fix(g), b.type = "mousewheel", "detail" in g && (m = -1 * g.detail), "wheelDelta" in g && (m = g.wheelDelta), "wheelDeltaY" in g && (m = g.wheelDeltaY), "wheelDeltaX" in g && (l = -1 * g.wheelDeltaX), "axis" in g && g.axis === g.HORIZONTAL_AXIS && (l = -1 * m, m = 0), j = 0 === m ? l: m, "deltaY" in g && (m = -1 * g.deltaY, j = m), "deltaX" in g && (l = g.deltaX, 0 === m && (j = -1 * l)), 0 !== m || 0 !== l) {
16            if (1 === g.deltaMode) {
17                var q = a.data(this, "mousewheel-line-height");
18                j *= q,
19                m *= q,
20                l *= q
21            } else if (2 === g.deltaMode) {
22                var r = a.data(this, "mousewheel-page-height");
23                j *= r,
24                m *= r,
25                l *= r
26            }
27            if (n = Math.max(Math.abs(m), Math.abs(l)), (!f || f > n) && (f = n, d(g, n) && (f /= 40)), d(g, n) && (j /= 40, l /= 40, m /= 40), j = Math[j >= 1 ? "floor": "ceil"](j / f), l = Math[l >= 1 ? "floor": "ceil"](l / f), m = Math[m >= 1 ? "floor": "ceil"](m / f), k.settings.normalizeOffset && this.getBoundingClientRect) {
28                var s = this.getBoundingClientRect();
29                o = b.clientX - s.left,
30                p = b.clientY - s.top
31            }
32            return b.deltaX = l,
33            b.deltaY = m,
34            b.deltaFactor = f,
35            b.offsetX = o,
36            b.offsetY = p,
37            b.deltaMode = 0,
38            h.unshift(b, j, l, m),
39            e && clearTimeout(e),
40            e = setTimeout(c, 200),
41            (a.event.dispatch || a.event.handle).apply(this, h)
42        }
43    }
44    function c() {
45        f = null
46    }
47    function d(a, b) {
48        return k.settings.adjustOldDeltas && "mousewheel" === a.type && b % 120 === 0
49    }
50    var e, f, g = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"],
51    h = "onwheel" in document || document.documentMode >= 9 ? ["wheel"] : ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"],
52    i = Array.prototype.slice;
53    if (a.event.fixHooks) for (var j = g.length; j;) a.event.fixHooks[g[--j]] = a.event.mouseHooks;
54    var k = a.event.special.mousewheel = {
55        version: "3.1.12",
56        setup: function() {
57            if (this.addEventListener) for (var c = h.length; c;) this.addEventListener(h[--c], b, !1);
58            else this.onmousewheel = b;
59            a.data(this, "mousewheel-line-height", k.getLineHeight(this)),
60            a.data(this, "mousewheel-page-height", k.getPageHeight(this))
61        },
62        teardown: function() {
63            if (this.removeEventListener) for (var c = h.length; c;) this.removeEventListener(h[--c], b, !1);
64            else this.onmousewheel = null;
65            a.removeData(this, "mousewheel-line-height"),
66            a.removeData(this, "mousewheel-page-height")
67        },
68        getLineHeight: function(b) {
69            var c = a(b),
70            d = c["offsetParent" in a.fn ? "offsetParent": "parent"]();
71            return d.length || (d = a("body")),
72            parseInt(d.css("fontSize"), 10) || parseInt(c.css("fontSize"), 10) || 16
73        },
74        getPageHeight: function(b) {
75            return a(b).height()
76        },
77        settings: {
78            adjustOldDeltas: !0,
79            normalizeOffset: !0
80        }
81    };
82    a.fn.extend({
83        mousewheel: function(a) {
84            return a ? this.bind("mousewheel", a) : this.trigger("mousewheel")
85        },
86        unmousewheel: function(a) {
87            return this.unbind("mousewheel", a)
88        }
89    })
90}); !
91function(a) {
92    "function" == typeof define && define.amd ? define(["jquery"], a) : "object" == typeof exports ? module.exports = a: a(jQuery)
93} (function(a) {
94    function b(b) {
95        var g = b || window.event,
96        h = i.call(arguments, 1),
97        j = 0,
98        l = 0,
99        m = 0,
100        n = 0,
101        o = 0,
102        p = 0;
103        if (b = a.event.fix(g), b.type = "mousewheel", "detail" in g && (m = -1 * g.detail), "wheelDelta" in g && (m = g.wheelDelta), "wheelDeltaY" in g && (m = g.wheelDeltaY), "wheelDeltaX" in g && (l = -1 * g.wheelDeltaX), "axis" in g && g.axis === g.HORIZONTAL_AXIS && (l = -1 * m, m = 0), j = 0 === m ? l: m, "deltaY" in g && (m = -1 * g.deltaY, j = m), "deltaX" in g && (l = g.deltaX, 0 === m && (j = -1 * l)), 0 !== m || 0 !== l) {
104            if (1 === g.deltaMode) {
105                var q = a.data(this, "mousewheel-line-height");
106                j *= q,
107                m *= q,
108                l *= q
109            } else if (2 === g.deltaMode) {
110                var r = a.data(this, "mousewheel-page-height");
111                j *= r,
112                m *= r,
113                l *= r
114            }
115            if (n = Math.max(Math.abs(m), Math.abs(l)), (!f || f > n) && (f = n, d(g, n) && (f /= 40)), d(g, n) && (j /= 40, l /= 40, m /= 40), j = Math[j >= 1 ? "floor": "ceil"](j / f), l = Math[l >= 1 ? "floor": "ceil"](l / f), m = Math[m >= 1 ? "floor": "ceil"](m / f), k.settings.normalizeOffset && this.getBoundingClientRect) {
116                var s = this.getBoundingClientRect();
117                o = b.clientX - s.left,
118                p = b.clientY - s.top
119            }
120            return b.deltaX = l,
121            b.deltaY = m,
122            b.deltaFactor = f,
123            b.offsetX = o,
124            b.offsetY = p,
125            b.deltaMode = 0,
126            h.unshift(b, j, l, m),
127            e && clearTimeout(e),
128            e = setTimeout(c, 200),
129            (a.event.dispatch || a.event.handle).apply(this, h)
130        }
131    }
132    function c() {
133        f = null
134    }
135    function d(a, b) {
136        return k.settings.adjustOldDeltas && "mousewheel" === a.type && b % 120 === 0
137    }
138    var e, f, g = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"],
139    h = "onwheel" in document || document.documentMode >= 9 ? ["wheel"] : ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"],
140    i = Array.prototype.slice;
141    if (a.event.fixHooks) for (var j = g.length; j;) a.event.fixHooks[g[--j]] = a.event.mouseHooks;
142    var k = a.event.special.mousewheel = {
143        version: "3.1.12",
144        setup: function() {
145            if (this.addEventListener) for (var c = h.length; c;) this.addEventListener(h[--c], b, !1);
146            else this.onmousewheel = b;
147            a.data(this, "mousewheel-line-height", k.getLineHeight(this)),
148            a.data(this, "mousewheel-page-height", k.getPageHeight(this))
149        },
150        teardown: function() {
151            if (this.removeEventListener) for (var c = h.length; c;) this.removeEventListener(h[--c], b, !1);
152            else this.onmousewheel = null;
153            a.removeData(this, "mousewheel-line-height"),
154            a.removeData(this, "mousewheel-page-height")
155        },
156        getLineHeight: function(b) {
157            var c = a(b),
158            d = c["offsetParent" in a.fn ? "offsetParent": "parent"]();
159            return d.length || (d = a("body")),
160            parseInt(d.css("fontSize"), 10) || parseInt(c.css("fontSize"), 10) || 16
161        },
162        getPageHeight: function(b) {
163            return a(b).height()
164        },
165        settings: {
166            adjustOldDeltas: !0,
167            normalizeOffset: !0
168        }
169    };
170    a.fn.extend({
171        mousewheel: function(a) {
172            return a ? this.bind("mousewheel", a) : this.trigger("mousewheel")
173        },
174        unmousewheel: function(a) {
175            return this.unbind("mousewheel", a)
176        }
177    })
178});
179/* == malihu jquery custom scrollbar plugin == Version: 3.1.5, License: MIT License (MIT) */
180!
181function(e) {
182    "function" == typeof define && define.amd ? define(["jquery"], e) : "undefined" != typeof module && module.exports ? module.exports = e: e(jQuery, window, document)
183} (function(e) { !
184    function(t) {
185        var o = "function" == typeof define && define.amd,
186        a = "undefined" != typeof module && module.exports,
187        n = "https:" == document.location.protocol ? "https:": "http:",
188        i = "cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js";
189        o || (a ? require("jquery-mousewheel")(e) : e.event.special.mousewheel || e("head").append(decodeURI("%3Cscript src=" + n + "//" + i + "%3E%3C/script%3E"))),
190        t()
191    } (function() {
192        var t, o = "mCustomScrollbar",
193        a = "mCS",
194        n = ".mCustomScrollbar",
195        i = {
196            setTop: 0,
197            setLeft: 0,
198            axis: "y",
199            scrollbarPosition: "inside",
200            scrollInertia: 950,
201            autoDraggerLength: !0,
202            alwaysShowScrollbar: 0,
203            snapOffset: 0,
204            mouseWheel: {
205                enable: !0,
206                scrollAmount: "auto",
207                axis: "y",
208                deltaFactor: "auto",
209                disableOver: ["select", "option", "keygen", "datalist", "textarea"]
210            },
211            scrollButtons: {
212                scrollType: "stepless",
213                scrollAmount: "auto"
214            },
215            keyboard: {
216                enable: !0,
217                scrollType: "stepless",
218                scrollAmount: "auto"
219            },
220            contentTouchScroll: 25,
221            documentTouchScroll: !0,
222            advanced: {
223                autoScrollOnFocus: "input,textarea,select,button,datalist,keygen,a[tabindex],area,object,[contenteditable='true']",
224                updateOnContentResize: !0,
225                updateOnImageLoad: "auto",
226                autoUpdateTimeout: 60
227            },
228            theme: "light",
229            callbacks: {
230                onTotalScrollOffset: 0,
231                onTotalScrollBackOffset: 0,
232                alwaysTriggerOffsets: !0
233            }
234        },
235        r = 0,
236        l = {},
237        s = window.attachEvent && !window.addEventListener ? 1 : 0,
238        c = !1,
239        d = ["mCSB_dragger_onDrag", "mCSB_scrollTools_onDrag", "mCS_img_loaded", "mCS_disabled", "mCS_destroyed", "mCS_no_scrollbar", "mCS-autoHide", "mCS-dir-rtl", "mCS_no_scrollbar_y", "mCS_no_scrollbar_x", "mCS_y_hidden", "mCS_x_hidden", "mCSB_draggerContainer", "mCSB_buttonUp", "mCSB_buttonDown", "mCSB_buttonLeft", "mCSB_buttonRight"],
240        u = {
241            init: function(t) {
242                var t = e.extend(!0, {},
243                i, t),
244                o = f.call(this);
245                if (t.live) {
246                    var s = t.liveSelector || this.selector || n,
247                    c = e(s);
248                    if ("off" === t.live) return void m(s);
249                    l[s] = setTimeout(function() {
250                        c.mCustomScrollbar(t),
251                        "once" === t.live && c.length && m(s)
252                    },
253                    500)
254                } else m(s);
255                return t.setWidth = t.set_width ? t.set_width: t.setWidth,
256                t.setHeight = t.set_height ? t.set_height: t.setHeight,
257                t.axis = t.horizontalScroll ? "x": p(t.axis),
258                t.scrollInertia = t.scrollInertia > 0 && t.scrollInertia < 17 ? 17 : t.scrollInertia,
259                "object" != typeof t.mouseWheel && 1 == t.mouseWheel && (t.mouseWheel = {
260                    enable: !0,
261                    scrollAmount: "auto",
262                    axis: "y",
263                    preventDefault: !1,
264                    deltaFactor: "auto",
265                    normalizeDelta: !1,
266                    invert: !1
267                }),
268                t.mouseWheel.scrollAmount = t.mouseWheelPixels ? t.mouseWheelPixels: t.mouseWheel.scrollAmount,
269                t.mouseWheel.normalizeDelta = t.advanced.normalizeMouseWheelDelta ? t.advanced.normalizeMouseWheelDelta: t.mouseWheel.normalizeDelta,
270                t.scrollButtons.scrollType = g(t.scrollButtons.scrollType),
271                h(t),
272                e(o).each(function() {
273                    var o = e(this);
274                    if (!o.data(a)) {
275                        o.data(a, {
276                            idx: ++r,
277                            opt: t,
278                            scrollRatio: {
279                                y: null,
280                                x: null
281                            },
282                            overflowed: null,
283                            contentReset: {
284                                y: null,
285                                x: null
286                            },
287                            bindEvents: !1,
288                            tweenRunning: !1,
289                            sequential: {},
290                            langDir: o.css("direction"),
291                            cbOffsets: null,
292                            trigger: null,
293                            poll: {
294                                size: {
295                                    o: 0,
296                                    n: 0
297                                },
298                                img: {
299                                    o: 0,
300                                    n: 0
301                                },
302                                change: {
303                                    o: 0,
304                                    n: 0
305                                }
306                            }
307                        });
308                        var n = o.data(a),
309                        i = n.opt,
310                        l = o.data("mcs-axis"),
311                        s = o.data("mcs-scrollbar-position"),
312                        c = o.data("mcs-theme");
313                        l && (i.axis = l),
314                        s && (i.scrollbarPosition = s),
315                        c && (i.theme = c, h(i)),
316                        v.call(this),
317                        n && i.callbacks.onCreate && "function" == typeof i.callbacks.onCreate && i.callbacks.onCreate.call(this),
318                        e("#mCSB_" + n.idx + "_container img:not(." + d[2] + ")").addClass(d[2]),
319                        u.update.call(null, o)
320                    }
321                })
322            },
323            update: function(t, o) {
324                var n = t || f.call(this);
325                return e(n).each(function() {
326                    var t = e(this);
327                    if (t.data(a)) {
328                        var n = t.data(a),
329                        i = n.opt,
330                        r = e("#mCSB_" + n.idx + "_container"),
331                        l = e("#mCSB_" + n.idx),
332                        s = [e("#mCSB_" + n.idx + "_dragger_vertical"), e("#mCSB_" + n.idx + "_dragger_horizontal")];
333                        if (!r.length) return;
334                        n.tweenRunning && Q(t),
335                        o && n && i.callbacks.onBeforeUpdate && "function" == typeof i.callbacks.onBeforeUpdate && i.callbacks.onBeforeUpdate.call(this),
336                        t.hasClass(d[3]) && t.removeClass(d[3]),
337                        t.hasClass(d[4]) && t.removeClass(d[4]),
338                        l.css("max-height", "none"),
339                        l.height() !== t.height() && l.css("max-height", t.height()),
340                        _.call(this),
341                        "y" === i.axis || i.advanced.autoExpandHorizontalScroll || r.css("width", x(r)),
342                        n.overflowed = y.call(this),
343                        M.call(this),
344                        i.autoDraggerLength && S.call(this),
345                        b.call(this),
346                        T.call(this);
347                        var c = [Math.abs(r[0].offsetTop), Math.abs(r[0].offsetLeft)];
348                        "x" !== i.axis && (n.overflowed[0] ? s[0].height() > s[0].parent().height() ? B.call(this) : (G(t, c[0].toString(), {
349                            dir: "y",
350                            dur: 0,
351                            overwrite: "none"
352                        }), n.contentReset.y = null) : (B.call(this), "y" === i.axis ? k.call(this) : "yx" === i.axis && n.overflowed[1] && G(t, c[1].toString(), {
353                            dir: "x",
354                            dur: 0,
355                            overwrite: "none"
356                        }))),
357                        "y" !== i.axis && (n.overflowed[1] ? s[1].width() > s[1].parent().width() ? B.call(this) : (G(t, c[1].toString(), {
358                            dir: "x",
359                            dur: 0,
360                            overwrite: "none"
361                        }), n.contentReset.x = null) : (B.call(this), "x" === i.axis ? k.call(this) : "yx" === i.axis && n.overflowed[0] && G(t, c[0].toString(), {
362                            dir: "y",
363                            dur: 0,
364                            overwrite: "none"
365                        }))),
366                        o && n && (2 === o && i.callbacks.onImageLoad && "function" == typeof i.callbacks.onImageLoad ? i.callbacks.onImageLoad.call(this) : 3 === o && i.callbacks.onSelectorChange && "function" == typeof i.callbacks.onSelectorChange ? i.callbacks.onSelectorChange.call(this) : i.callbacks.onUpdate && "function" == typeof i.callbacks.onUpdate && i.callbacks.onUpdate.call(this)),
367                        N.call(this)
368                    }
369                })
370            },
371            scrollTo: function(t, o) {
372                if ("undefined" != typeof t && null != t) {
373                    var n = f.call(this);
374                    return e(n).each(function() {
375                        var n = e(this);
376                        if (n.data(a)) {
377                            var i = n.data(a),
378                            r = i.opt,
379                            l = {
380                                trigger: "external",
381                                scrollInertia: r.scrollInertia,
382                                scrollEasing: "mcsEaseInOut",
383                                moveDragger: !1,
384                                timeout: 60,
385                                callbacks: !0,
386                                onStart: !0,
387                                onUpdate: !0,
388                                onComplete: !0
389                            },
390                            s = e.extend(!0, {},
391                            l, o),
392                            c = Y.call(this, t),
393                            d = s.scrollInertia > 0 && s.scrollInertia < 17 ? 17 : s.scrollInertia;
394                            c[0] = X.call(this, c[0], "y"),
395                            c[1] = X.call(this, c[1], "x"),
396                            s.moveDragger && (c[0] *= i.scrollRatio.y, c[1] *= i.scrollRatio.x),
397                            s.dur = ne() ? 0 : d,
398                            setTimeout(function() {
399                                null !== c[0] && "undefined" != typeof c[0] && "x" !== r.axis && i.overflowed[0] && (s.dir = "y", s.overwrite = "all", G(n, c[0].toString(), s)),
400                                null !== c[1] && "undefined" != typeof c[1] && "y" !== r.axis && i.overflowed[1] && (s.dir = "x", s.overwrite = "none", G(n, c[1].toString(), s))
401                            },
402                            s.timeout)
403                        }
404                    })
405                }
406            },
407            stop: function() {
408                var t = f.call(this);
409                return e(t).each(function() {
410                    var t = e(this);
411                    t.data(a) && Q(t)
412                })
413            },
414            disable: function(t) {
415                var o = f.call(this);
416                return e(o).each(function() {
417                    var o = e(this);
418                    if (o.data(a)) {
419                        o.data(a);
420                        N.call(this, "remove"),
421                        k.call(this),
422                        t && B.call(this),
423                        M.call(this, !0),
424                        o.addClass(d[3])
425                    }
426                })
427            },
428            destroy: function() {
429                var t = f.call(this);
430                return e(t).each(function() {
431                    var n = e(this);
432                    if (n.data(a)) {
433                        var i = n.data(a),
434                        r = i.opt,
435                        l = e("#mCSB_" + i.idx),
436                        s = e("#mCSB_" + i.idx + "_container"),
437                        c = e(".mCSB_" + i.idx + "_scrollbar");
438                        r.live && m(r.liveSelector || e(t).selector),
439                        N.call(this, "remove"),
440                        k.call(this),
441                        B.call(this),
442                        n.removeData(a),
443                        $(this, "mcs"),
444                        c.remove(),
445                        s.find("img." + d[2]).removeClass(d[2]),
446                        l.replaceWith(s.contents()),
447                        n.removeClass(o + " _" + a + "_" + i.idx + " " + d[6] + " " + d[7] + " " + d[5] + " " + d[3]).addClass(d[4])
448                    }
449                })
450            }
451        },
452        f = function() {
453            return "object" != typeof e(this) || e(this).length < 1 ? n: this
454        },
455        h = function(t) {
456            var o = ["rounded", "rounded-dark", "rounded-dots", "rounded-dots-dark"],
457            a = ["rounded-dots", "rounded-dots-dark", "3d", "3d-dark", "3d-thick", "3d-thick-dark", "inset", "inset-dark", "inset-2", "inset-2-dark", "inset-3", "inset-3-dark"],
458            n = ["minimal", "minimal-dark"],
459            i = ["minimal", "minimal-dark"],
460            r = ["minimal", "minimal-dark"];
461            t.autoDraggerLength = e.inArray(t.theme, o) > -1 ? !1 : t.autoDraggerLength,
462            t.autoExpandScrollbar = e.inArray(t.theme, a) > -1 ? !1 : t.autoExpandScrollbar,
463            t.scrollButtons.enable = e.inArray(t.theme, n) > -1 ? !1 : t.scrollButtons.enable,
464            t.autoHideScrollbar = e.inArray(t.theme, i) > -1 ? !0 : t.autoHideScrollbar,
465            t.scrollbarPosition = e.inArray(t.theme, r) > -1 ? "outside": t.scrollbarPosition
466        },
467        m = function(e) {
468            l[e] && (clearTimeout(l[e]), $(l, e))
469        },
470        p = function(e) {
471            return "yx" === e || "xy" === e || "auto" === e ? "yx": "x" === e || "horizontal" === e ? "x": "y"
472        },
473        g = function(e) {
474            return "stepped" === e || "pixels" === e || "step" === e || "click" === e ? "stepped": "stepless"
475        },
476        v = function() {
477            var t = e(this),
478            n = t.data(a),
479            i = n.opt,
480            r = i.autoExpandScrollbar ? " " + d[1] + "_expand": "",
481            l = ["<div id='mCSB_" + n.idx + "_scrollbar_vertical' class='mCSB_scrollTools mCSB_" + n.idx + "_scrollbar mCS-" + i.theme + " mCSB_scrollTools_vertical" + r + "'><div class='" + d[12] + "'><div id='mCSB_" + n.idx + "_dragger_vertical' class='mCSB_dragger' style='position:absolute;'><div class='mCSB_dragger_bar' /></div><div class='mCSB_draggerRail' /></div></div>", "<div id='mCSB_" + n.idx + "_scrollbar_horizontal' class='mCSB_scrollTools mCSB_" + n.idx + "_scrollbar mCS-" + i.theme + " mCSB_scrollTools_horizontal" + r + "'><div class='" + d[12] + "'><div id='mCSB_" + n.idx + "_dragger_horizontal' class='mCSB_dragger' style='position:absolute;'><div class='mCSB_dragger_bar' /></div><div class='mCSB_draggerRail' /></div></div>"],
482            s = "yx" === i.axis ? "mCSB_vertical_horizontal": "x" === i.axis ? "mCSB_horizontal": "mCSB_vertical",
483            c = "yx" === i.axis ? l[0] + l[1] : "x" === i.axis ? l[1] : l[0],
484            u = "yx" === i.axis ? "<div id='mCSB_" + n.idx + "_container_wrapper' class='mCSB_container_wrapper' />": "",
485            f = i.autoHideScrollbar ? " " + d[6] : "",
486            h = "x" !== i.axis && "rtl" === n.langDir ? " " + d[7] : "";
487            i.setWidth && t.css("width", i.setWidth),
488            i.setHeight && t.css("height", i.setHeight),
489            i.setLeft = "y" !== i.axis && "rtl" === n.langDir ? "989999px": i.setLeft,
490            t.addClass(o + " _" + a + "_" + n.idx + f + h).wrapInner("<div id='mCSB_" + n.idx + "' class='mCustomScrollBox mCS-" + i.theme + " " + s + "'><div id='mCSB_" + n.idx + "_container' class='mCSB_container' style='position:relative; top:" + i.setTop + "; left:" + i.setLeft + ";' dir='" + n.langDir + "' /></div>");
491            var m = e("#mCSB_" + n.idx),
492            p = e("#mCSB_" + n.idx + "_container");
493            "y" === i.axis || i.advanced.autoExpandHorizontalScroll || p.css("width", x(p)),
494            "outside" === i.scrollbarPosition ? ("static" === t.css("position") && t.css("position", "relative"), t.css("overflow", "visible"), m.addClass("mCSB_outside").after(c)) : (m.addClass("mCSB_inside").append(c), p.wrap(u)),
495            w.call(this);
496            var g = [e("#mCSB_" + n.idx + "_dragger_vertical"), e("#mCSB_" + n.idx + "_dragger_horizontal")];
497            g[0].css("min-height", g[0].height()),
498            g[1].css("min-width", g[1].width())
499        },
500        x = function(t) {
501            var o = [t[0].scrollWidth, Math.max.apply(Math, t.children().map(function() {
502                return e(this).outerWidth(!0)
503            }).get())],
504            a = t.parent().width();
505            return o[0] > a ? o[0] : o[1] > a ? o[1] : "100%"
506        },
507        _ = function() {
508            var t = e(this),
509            o = t.data(a),
510            n = o.opt,
511            i = e("#mCSB_" + o.idx + "_container");
512            if (n.advanced.autoExpandHorizontalScroll && "y" !== n.axis) {
513                i.css({
514                    width: "auto",
515                    "min-width": 0,
516                    "overflow-x": "scroll"
517                });
518                var r = Math.ceil(i[0].scrollWidth);
519                3 === n.advanced.autoExpandHorizontalScroll || 2 !== n.advanced.autoExpandHorizontalScroll && r > i.parent().width() ? i.css({
520                    width: r,
521                    "min-width": "100%",
522                    "overflow-x": "inherit"
523                }) : i.css({
524                    "overflow-x": "inherit",
525                    position: "absolute"
526                }).wrap("<div class='mCSB_h_wrapper' style='position:relative; left:0; width:999999px;' />").css({
527                    width: Math.ceil(i[0].getBoundingClientRect().right + .4) - Math.floor(i[0].getBoundingClientRect().left),
528                    "min-width": "100%",
529                    position: "relative"
530                }).unwrap()
531            }
532        },
533        w = function() {
534            var t = e(this),
535            o = t.data(a),
536            n = o.opt,
537            i = e(".mCSB_" + o.idx + "_scrollbar:first"),
538            r = oe(n.scrollButtons.tabindex) ? "tabindex='" + n.scrollButtons.tabindex + "'": "",
539            l = ["<a href='#' class='" + d[13] + "' " + r + " />", "<a href='#' class='" + d[14] + "' " + r + " />", "<a href='#' class='" + d[15] + "' " + r + " />", "<a href='#' class='" + d[16] + "' " + r + " />"],
540            s = ["x" === n.axis ? l[2] : l[0], "x" === n.axis ? l[3] : l[1], l[2], l[3]];
541            n.scrollButtons.enable && i.prepend(s[0]).append(s[1]).next(".mCSB_scrollTools").prepend(s[2]).append(s[3])
542        },
543        S = function() {
544            var t = e(this),
545            o = t.data(a),
546            n = e("#mCSB_" + o.idx),
547            i = e("#mCSB_" + o.idx + "_container"),
548            r = [e("#mCSB_" + o.idx + "_dragger_vertical"), e("#mCSB_" + o.idx + "_dragger_horizontal")],
549            l = [n.height() / i.outerHeight(!1), n.width() / i.outerWidth(!1)],
550            c = [parseInt(r[0].css("min-height")), Math.round(l[0] * r[0].parent().height()), parseInt(r[1].css("min-width")), Math.round(l[1] * r[1].parent().width())],
551            d = s && c[1] < c[0] ? c[0] : c[1],
552            u = s && c[3] < c[2] ? c[2] : c[3];
553            r[0].css({
554                height: d,
555                "max-height": r[0].parent().height() - 10
556            }).find(".mCSB_dragger_bar").css({
557                "line-height": c[0] + "px"
558            }),
559            r[1].css({
560                width: u,
561                "max-width": r[1].parent().width() - 10
562            })
563        },
564        b = function() {
565            var t = e(this),
566            o = t.data(a),
567            n = e("#mCSB_" + o.idx),
568            i = e("#mCSB_" + o.idx + "_container"),
569            r = [e("#mCSB_" + o.idx + "_dragger_vertical"), e("#mCSB_" + o.idx + "_dragger_horizontal")],
570            l = [i.outerHeight(!1) - n.height(), i.outerWidth(!1) - n.width()],
571            s = [l[0] / (r[0].parent().height() - r[0].height()), l[1] / (r[1].parent().width() - r[1].width())];
572            o.scrollRatio = {
573                y: s[0],
574                x: s[1]
575            }
576        },
577        C = function(e, t, o) {
578            var a = o ? d[0] + "_expanded": "",
579            n = e.closest(".mCSB_scrollTools");
580            "active" === t ? (e.toggleClass(d[0] + " " + a), n.toggleClass(d[1]), e[0]._draggable = e[0]._draggable ? 0 : 1) : e[0]._draggable || ("hide" === t ? (e.removeClass(d[0]), n.removeClass(d[1])) : (e.addClass(d[0]), n.addClass(d[1])))
581        },
582        y = function() {
583            var t = e(this),
584            o = t.data(a),
585            n = e("#mCSB_" + o.idx),
586            i = e("#mCSB_" + o.idx + "_container"),
587            r = null == o.overflowed ? i.height() : i.outerHeight(!1),
588            l = null == o.overflowed ? i.width() : i.outerWidth(!1),
589            s = i[0].scrollHeight,
590            c = i[0].scrollWidth;
591            return s > r && (r = s),
592            c > l && (l = c),
593            [r > n.height(), l > n.width()]
594        },
595        B = function() {
596            var t = e(this),
597            o = t.data(a),
598            n = o.opt,
599            i = e("#mCSB_" + o.idx),
600            r = e("#mCSB_" + o.idx + "_container"),
601            l = [e("#mCSB_" + o.idx + "_dragger_vertical"), e("#mCSB_" + o.idx + "_dragger_horizontal")];
602            if (Q(t), ("x" !== n.axis && !o.overflowed[0] || "y" === n.axis && o.overflowed[0]) && (l[0].add(r).css("top", 0), G(t, "_resetY")), "y" !== n.axis && !o.overflowed[1] || "x" === n.axis && o.overflowed[1]) {
603                var s = dx = 0;
604                "rtl" === o.langDir && (s = i.width() - r.outerWidth(!1), dx = Math.abs(s / o.scrollRatio.x)),
605                r.css("left", s),
606                l[1].css("left", dx),
607                G(t, "_resetX")
608            }
609        },
610        T = function() {
611            function t() {
612                r = setTimeout(function() {
613                    e.event.special.mousewheel ? (clearTimeout(r), W.call(o[0])) : t()
614                },
615                100)
616            }
617            var o = e(this),
618            n = o.data(a),
619            i = n.opt;
620            if (!n.bindEvents) {
621                if (I.call(this), i.contentTouchScroll && D.call(this), E.call(this), i.mouseWheel.enable) {
622                    var r;
623                    t()
624                }
625                P.call(this),
626                U.call(this),
627                i.advanced.autoScrollOnFocus && H.call(this),
628                i.scrollButtons.enable && F.call(this),
629                i.keyboard.enable && q.call(this),
630                n.bindEvents = !0
631            }
632        },
633        k = function() {
634            var t = e(this),
635            o = t.data(a),
636            n = o.opt,
637            i = a + "_" + o.idx,
638            r = ".mCSB_" + o.idx + "_scrollbar",
639            l = e("#mCSB_" + o.idx + ",#mCSB_" + o.idx + "_container,#mCSB_" + o.idx + "_container_wrapper," + r + " ." + d[12] + ",#mCSB_" + o.idx + "_dragger_vertical,#mCSB_" + o.idx + "_dragger_horizontal," + r + ">a"),
640            s = e("#mCSB_" + o.idx + "_container");
641            n.advanced.releaseDraggableSelectors && l.add(e(n.advanced.releaseDraggableSelectors)),
642            n.advanced.extraDraggableSelectors && l.add(e(n.advanced.extraDraggableSelectors)),
643            o.bindEvents && (e(document).add(e(!A() || top.document)).unbind("." + i), l.each(function() {
644                e(this).unbind("." + i)
645            }), clearTimeout(t[0]._focusTimeout), $(t[0], "_focusTimeout"), clearTimeout(o.sequential.step), $(o.sequential, "step"), clearTimeout(s[0].onCompleteTimeout), $(s[0], "onCompleteTimeout"), o.bindEvents = !1)
646        },
647        M = function(t) {
648            var o = e(this),
649            n = o.data(a),
650            i = n.opt,
651            r = e("#mCSB_" + n.idx + "_container_wrapper"),
652            l = r.length ? r: e("#mCSB_" + n.idx + "_container"),
653            s = [e("#mCSB_" + n.idx + "_scrollbar_vertical"), e("#mCSB_" + n.idx + "_scrollbar_horizontal")],
654            c = [s[0].find(".mCSB_dragger"), s[1].find(".mCSB_dragger")];
655            "x" !== i.axis && (n.overflowed[0] && !t ? (s[0].add(c[0]).add(s[0].children("a")).css("display", "block"), l.removeClass(d[8] + " " + d[10])) : (i.alwaysShowScrollbar ? (2 !== i.alwaysShowScrollbar && c[0].css("display", "none"), l.removeClass(d[10])) : (s[0].css("display", "none"), l.addClass(d[10])), l.addClass(d[8]))),
656            "y" !== i.axis && (n.overflowed[1] && !t ? (s[1].add(c[1]).add(s[1].children("a")).css("display", "block"), l.removeClass(d[9] + " " + d[11])) : (i.alwaysShowScrollbar ? (2 !== i.alwaysShowScrollbar && c[1].css("display", "none"), l.removeClass(d[11])) : (s[1].css("display", "none"), l.addClass(d[11])), l.addClass(d[9]))),
657            n.overflowed[0] || n.overflowed[1] ? o.removeClass(d[5]) : o.addClass(d[5])
658        },
659        O = function(t) {
660            var o = t.type,
661            a = t.target.ownerDocument !== document && null !== frameElement ? [e(frameElement).offset().top, e(frameElement).offset().left] : null,
662            n = A() && t.target.ownerDocument !== top.document && null !== frameElement ? [e(t.view.frameElement).offset().top, e(t.view.frameElement).offset().left] : [0, 0];
663            switch (o) {
664            case "pointerdown":
665            case "MSPointerDown":
666            case "pointermove":
667            case "MSPointerMove":
668            case "pointerup":
669            case "MSPointerUp":
670                return a ? [t.originalEvent.pageY - a[0] + n[0], t.originalEvent.pageX - a[1] + n[1], !1] : [t.originalEvent.pageY, t.originalEvent.pageX, !1];
671            case "touchstart":
672            case "touchmove":
673            case "touchend":
674                var i = t.originalEvent.touches[0] || t.originalEvent.changedTouches[0],
675                r = t.originalEvent.touches.length || t.originalEvent.changedTouches.length;
676                return t.target.ownerDocument !== document ? [i.screenY, i.screenX, r > 1] : [i.pageY, i.pageX, r > 1];
677            default:
678                return a ? [t.pageY - a[0] + n[0], t.pageX - a[1] + n[1], !1] : [t.pageY, t.pageX, !1]
679            }
680        },
681        I = function() {
682            function t(e, t, a, n) {
683                if (h[0].idleTimer = d.scrollInertia < 233 ? 250 : 0, o.attr("id") === f[1]) var i = "x",
684                s = (o[0].offsetLeft - t + n) * l.scrollRatio.x;
685                else var i = "y",
686                s = (o[0].offsetTop - e + a) * l.scrollRatio.y;
687                G(r, s.toString(), {
688                    dir: i,
689                    drag: !0
690                })
691            }
692            var o, n, i, r = e(this),
693            l = r.data(a),
694            d = l.opt,
695            u = a + "_" + l.idx,
696            f = ["mCSB_" + l.idx + "_dragger_vertical", "mCSB_" + l.idx + "_dragger_horizontal"],
697            h = e("#mCSB_" + l.idx + "_container"),
698            m = e("#" + f[0] + ",#" + f[1]),
699            p = d.advanced.releaseDraggableSelectors ? m.add(e(d.advanced.releaseDraggableSelectors)) : m,
700            g = d.advanced.extraDraggableSelectors ? e(!A() || top.document).add(e(d.advanced.extraDraggableSelectors)) : e(!A() || top.document);
701            m.bind("contextmenu." + u,
702            function(e) {
703                e.preventDefault()
704            }).bind("mousedown." + u + " touchstart." + u + " pointerdown." + u + " MSPointerDown." + u,
705            function(t) {
706                if (t.stopImmediatePropagation(), t.preventDefault(), ee(t)) {
707                    c = !0,
708                    s && (document.onselectstart = function() {
709                        return ! 1
710                    }),
711                    L.call(h, !1),
712                    Q(r),
713                    o = e(this);
714                    var a = o.offset(),
715                    l = O(t)[0] - a.top,
716                    u = O(t)[1] - a.left,
717                    f = o.height() + a.top,
718                    m = o.width() + a.left;
719                    f > l && l > 0 && m > u && u > 0 && (n = l, i = u),
720                    C(o, "active", d.autoExpandScrollbar)
721                }
722            }).bind("touchmove." + u,
723            function(e) {
724                e.stopImmediatePropagation(),
725                e.preventDefault();
726                var a = o.offset(),
727                r = O(e)[0] - a.top,
728                l = O(e)[1] - a.left;
729                t(n, i, r, l)
730            }),
731            e(document).add(g).bind("mousemove." + u + " pointermove." + u + " MSPointerMove." + u,
732            function(e) {
733                if (o) {
734                    var a = o.offset(),
735                    r = O(e)[0] - a.top,
736                    l = O(e)[1] - a.left;
737                    if (n === r && i === l) return;
738                    t(n, i, r, l)
739                }
740            }).add(p).bind("mouseup." + u + " touchend." + u + " pointerup." + u + " MSPointerUp." + u,
741            function() {
742                o && (C(o, "active", d.autoExpandScrollbar), o = null),
743                c = !1,
744                s && (document.onselectstart = null),
745                L.call(h, !0)
746            })
747        },
748        D = function() {
749            function o(e) {
750                if (!te(e) || c || O(e)[2]) return void(t = 0);
751                t = 1,
752                b = 0,
753                C = 0,
754                d = 1,
755                y.removeClass("mCS_touch_action");
756                var o = I.offset();
757                u = O(e)[0] - o.top,
758                f = O(e)[1] - o.left,
759                z = [O(e)[0], O(e)[1]]
760            }
761            function n(e) {
762                if (te(e) && !c && !O(e)[2] && (T.documentTouchScroll || e.preventDefault(), e.stopImmediatePropagation(), (!C || b) && d)) {
763                    g = K();
764                    var t = M.offset(),
765                    o = O(e)[0] - t.top,
766                    a = O(e)[1] - t.left,
767                    n = "mcsLinearOut";
768                    if (E.push(o), W.push(a), z[2] = Math.abs(O(e)[0] - z[0]), z[3] = Math.abs(O(e)[1] - z[1]), B.overflowed[0]) var i = D[0].parent().height() - D[0].height(),
769                    r = u - o > 0 && o - u > -(i * B.scrollRatio.y) && (2 * z[3] < z[2] || "yx" === T.axis);
770                    if (B.overflowed[1]) var l = D[1].parent().width() - D[1].width(),
771                    h = f - a > 0 && a - f > -(l * B.scrollRatio.x) && (2 * z[2] < z[3] || "yx" === T.axis);
772                    r || h ? (U || e.preventDefault(), b = 1) : (C = 1, y.addClass("mCS_touch_action")),
773                    U && e.preventDefault(),
774                    w = "yx" === T.axis ? [u - o, f - a] : "x" === T.axis ? [null, f - a] : [u - o, null],
775                    I[0].idleTimer = 250,
776                    B.overflowed[0] && s(w[0], R, n, "y", "all", !0),
777                    B.overflowed[1] && s(w[1], R, n, "x", L, !0)
778                }
779            }
780            function i(e) {
781                if (!te(e) || c || O(e)[2]) return void(t = 0);
782                t = 1,
783                e.stopImmediatePropagation(),
784                Q(y),
785                p = K();
786                var o = M.offset();
787                h = O(e)[0] - o.top,
788                m = O(e)[1] - o.left,
789                E = [],
790                W = []
791            }
792            function r(e) {
793                if (te(e) && !c && !O(e)[2]) {
794                    d = 0,
795                    e.stopImmediatePropagation(),
796                    b = 0,
797                    C = 0,
798                    v = K();
799                    var t = M.offset(),
800                    o = O(e)[0] - t.top,
801                    a = O(e)[1] - t.left;
802                    if (! (v - g > 30)) {
803                        _ = 1e3 / (v - p);
804                        var n = "mcsEaseOut",
805                        i = 2.5 > _,
806                        r = i ? [E[E.length - 2], W[W.length - 2]] : [0, 0];
807                        x = i ? [o - r[0], a - r[1]] : [o - h, a - m];
808                        var u = [Math.abs(x[0]), Math.abs(x[1])];
809                        _ = i ? [Math.abs(x[0] / 4), Math.abs(x[1] / 4)] : [_, _];
810                        var f = [Math.abs(I[0].offsetTop) - x[0] * l(u[0] / _[0], _[0]), Math.abs(I[0].offsetLeft) - x[1] * l(u[1] / _[1], _[1])];
811                        w = "yx" === T.axis ? [f[0], f[1]] : "x" === T.axis ? [null, f[1]] : [f[0], null],
812                        S = [4 * u[0] + T.scrollInertia, 4 * u[1] + T.scrollInertia];
813                        var y = parseInt(T.contentTouchScroll) || 0;
814                        w[0] = u[0] > y ? w[0] : 0,
815                        w[1] = u[1] > y ? w[1] : 0,
816                        B.overflowed[0] && s(w[0], S[0], n, "y", L, !1),
817                        B.overflowed[1] && s(w[1], S[1], n, "x", L, !1)
818                    }
819                }
820            }
821            function l(e, t) {
822                var o = [1.5 * t, 2 * t, t / 1.5, t / 2];
823                return e > 90 ? t > 4 ? o[0] : o[3] : e > 60 ? t > 3 ? o[3] : o[2] : e > 30 ? t > 8 ? o[1] : t > 6 ? o[0] : t > 4 ? t: o[2] : t > 8 ? t: o[3]
824            }
825            function s(e, t, o, a, n, i) {
826                e && G(y, e.toString(), {
827                    dur: t,
828                    scrollEasing: o,
829                    dir: a,
830                    overwrite: n,
831                    drag: i
832                })
833            }
834            var d, u, f, h, m, p, g, v, x, _, w, S, b, C, y = e(this),
835            B = y.data(a),
836            T = B.opt,
837            k = a + "_" + B.idx,
838            M = e("#mCSB_" + B.idx),
839            I = e("#mCSB_" + B.idx + "_container"),
840            D = [e("#mCSB_" + B.idx + "_dragger_vertical"), e("#mCSB_" + B.idx + "_dragger_horizontal")],
841            E = [],
842            W = [],
843            R = 0,
844            L = "yx" === T.axis ? "none": "all",
845            z = [],
846            P = I.find("iframe"),
847            H = ["touchstart." + k + " pointerdown." + k + " MSPointerDown." + k, "touchmove." + k + " pointermove." + k + " MSPointerMove." + k, "touchend." + k + " pointerup." + k + " MSPointerUp." + k],
848            U = void 0 !== document.body.style.touchAction && "" !== document.body.style.touchAction;
849            I.bind(H[0],
850            function(e) {
851                o(e)
852            }).bind(H[1],
853            function(e) {
854                n(e)
855            }),
856            M.bind(H[0],
857            function(e) {
858                i(e)
859            }).bind(H[2],
860            function(e) {
861                r(e)
862            }),
863            P.length && P.each(function() {
864                e(this).bind("load",
865                function() {
866                    A(this) && e(this.contentDocument || this.contentWindow.document).bind(H[0],
867                    function(e) {
868                        o(e),
869                        i(e)
870                    }).bind(H[1],
871                    function(e) {
872                        n(e)
873                    }).bind(H[2],
874                    function(e) {
875                        r(e)
876                    })
877                })
878            })
879        },
880        E = function() {
881            function o() {
882                return window.getSelection ? window.getSelection().toString() : document.selection && "Control" != document.selection.type ? document.selection.createRange().text: 0
883            }
884            function n(e, t, o) {
885                d.type = o && i ? "stepped": "stepless",
886                d.scrollAmount = 10,
887                j(r, e, t, "mcsLinearOut", o ? 60 : null)
888            }
889            var i, r = e(this),
890            l = r.data(a),
891            s = l.opt,
892            d = l.sequential,
893            u = a + "_" + l.idx,
894            f = e("#mCSB_" + l.idx + "_container"),
895            h = f.parent();
896            f.bind("mousedown." + u,
897            function() {
898                t || i || (i = 1, c = !0)
899            }).add(document).bind("mousemove." + u,
900            function(e) {
901                if (!t && i && o()) {
902                    var a = f.offset(),
903                    r = O(e)[0] - a.top + f[0].offsetTop,
904                    c = O(e)[1] - a.left + f[0].offsetLeft;
905                    r > 0 && r < h.height() && c > 0 && c < h.width() ? d.step && n("off", null, "stepped") : ("x" !== s.axis && l.overflowed[0] && (0 > r ? n("on", 38) : r > h.height() && n("on", 40)), "y" !== s.axis && l.overflowed[1] && (0 > c ? n("on", 37) : c > h.width() && n("on", 39)))
906                }
907            }).bind("mouseup." + u + " dragend." + u,
908            function() {
909                t || (i && (i = 0, n("off", null)), c = !1)
910            })
911        },
912        W = function() {
913            function t(t, a) {
914                if (Q(o), !z(o, t.target)) {
915                    var r = "auto" !== i.mouseWheel.deltaFactor ? parseInt(i.mouseWheel.deltaFactor) : s && t.deltaFactor < 100 ? 100 : t.deltaFactor || 100,
916                    d = i.scrollInertia;
917                    if ("x" === i.axis || "x" === i.mouseWheel.axis) var u = "x",
918                    f = [Math.round(r * n.scrollRatio.x), parseInt(i.mouseWheel.scrollAmount)],
919                    h = "auto" !== i.mouseWheel.scrollAmount ? f[1] : f[0] >= l.width() ? .9 * l.width() : f[0],
920                    m = Math.abs(e("#mCSB_" + n.idx + "_container")[0].offsetLeft),
921                    p = c[1][0].offsetLeft,
922                    g = c[1].parent().width() - c[1].width(),
923                    v = "y" === i.mouseWheel.axis ? t.deltaY || a: t.deltaX;
924                    else var u = "y",
925                    f = [Math.round(r * n.scrollRatio.y), parseInt(i.mouseWheel.scrollAmount)],
926                    h = "auto" !== i.mouseWheel.scrollAmount ? f[1] : f[0] >= l.height() ? .9 * l.height() : f[0],
927                    m = Math.abs(e("#mCSB_" + n.idx + "_container")[0].offsetTop),
928                    p = c[0][0].offsetTop,
929                    g = c[0].parent().height() - c[0].height(),
930                    v = t.deltaY || a;
931                    "y" === u && !n.overflowed[0] || "x" === u && !n.overflowed[1] || ((i.mouseWheel.invert || t.webkitDirectionInvertedFromDevice) && (v = -v), i.mouseWheel.normalizeDelta && (v = 0 > v ? -1 : 1), (v > 0 && 0 !== p || 0 > v && p !== g || i.mouseWheel.preventDefault) && (t.stopImmediatePropagation(), t.preventDefault()), t.deltaFactor < 5 && !i.mouseWheel.normalizeDelta && (h = t.deltaFactor, d = 17), G(o, (m - v * h).toString(), {
932                        dir: u,
933                        dur: d
934                    }))
935                }
936            }
937            if (e(this).data(a)) {
938                var o = e(this),
939                n = o.data(a),
940                i = n.opt,
941                r = a + "_" + n.idx,
942                l = e("#mCSB_" + n.idx),
943                c = [e("#mCSB_" + n.idx + "_dragger_vertical"), e("#mCSB_" + n.idx + "_dragger_horizontal")],
944                d = e("#mCSB_" + n.idx + "_container").find("iframe");
945                d.length && d.each(function() {
946                    e(this).bind("load",
947                    function() {
948                        A(this) && e(this.contentDocument || this.contentWindow.document).bind("mousewheel." + r,
949                        function(e, o) {
950                            t(e, o)
951                        })
952                    })
953                }),
954                l.bind("mousewheel." + r,
955                function(e, o) {
956                    t(e, o)
957                })
958            }
959        },
960        R = new Object,
961        A = function(t) {
962            var o = !1,
963            a = !1,
964            n = null;
965            if (void 0 === t ? a = "#empty": void 0 !== e(t).attr("id") && (a = e(t).attr("id")), a !== !1 && void 0 !== R[a]) return R[a];
966            if (t) {
967                try {
968                    var i = t.contentDocument || t.contentWindow.document;
969                    n = i.body.innerHTML
970                } catch(r) {}
971                o = null !== n
972            } else {
973                try {
974                    var i = top.document;
975                    n = i.body.innerHTML
976                } catch(r) {}
977                o = null !== n
978            }
979            return a !== !1 && (R[a] = o),
980            o
981        },
982        L = function(e) {
983            var t = this.find("iframe");
984            if (t.length) {
985                var o = e ? "auto": "none";
986                t.css("pointer-events", o)
987            }
988        },
989        z = function(t, o) {
990            var n = o.nodeName.toLowerCase(),
991            i = t.data(a).opt.mouseWheel.disableOver,
992            r = ["select", "textarea"];
993            return e.inArray(n, i) > -1 && !(e.inArray(n, r) > -1 && !e(o).is(":focus"))
994        },
995        P = function() {
996            var t, o = e(this),
997            n = o.data(a),
998            i = a + "_" + n.idx,
999            r = e("#mCSB_" + n.idx + "_container"),
1000            l = r.parent(),
1001            s = e(".mCSB_" + n.idx + "_scrollbar ." + d[12]);
1002            s.bind("mousedown." + i + " touchstart." + i + " pointerdown." + i + " MSPointerDown." + i,
1003            function(o) {
1004                c = !0,
1005                e(o.target).hasClass("mCSB_dragger") || (t = 1)
1006            }).bind("touchend." + i + " pointerup." + i + " MSPointerUp." + i,
1007            function() {
1008                c = !1
1009            }).bind("click." + i,
1010            function(a) {
1011                if (t && (t = 0, e(a.target).hasClass(d[12]) || e(a.target).hasClass("mCSB_draggerRail"))) {
1012                    Q(o);
1013                    var i = e(this),
1014                    s = i.find(".mCSB_dragger");
1015                    if (i.parent(".mCSB_scrollTools_horizontal").length > 0) {
1016                        if (!n.overflowed[1]) return;
1017                        var c = "x",
1018                        u = a.pageX > s.offset().left ? -1 : 1,
1019                        f = Math.abs(r[0].offsetLeft) - u * (.9 * l.width())
1020                    } else {
1021                        if (!n.overflowed[0]) return;
1022                        var c = "y",
1023                        u = a.pageY > s.offset().top ? -1 : 1,
1024                        f = Math.abs(r[0].offsetTop) - u * (.9 * l.height())
1025                    }
1026                    G(o, f.toString(), {
1027                        dir: c,
1028                        scrollEasing: "mcsEaseInOut"
1029                    })
1030                }
1031            })
1032        },
1033        H = function() {
1034            var t = e(this),
1035            o = t.data(a),
1036            n = o.opt,
1037            i = a + "_" + o.idx,
1038            r = e("#mCSB_" + o.idx + "_container"),
1039            l = r.parent();
1040            r.bind("focusin." + i,
1041            function() {
1042                var o = e(document.activeElement),
1043                a = r.find(".mCustomScrollBox").length,
1044                i = 0;
1045                o.is(n.advanced.autoScrollOnFocus) && (Q(t), clearTimeout(t[0]._focusTimeout), t[0]._focusTimer = a ? (i + 17) * a: 0, t[0]._focusTimeout = setTimeout(function() {
1046                    var e = [ae(o)[0], ae(o)[1]],
1047                    a = [r[0].offsetTop, r[0].offsetLeft],
1048                    s = [a[0] + e[0] >= 0 && a[0] + e[0] < l.height() - o.outerHeight(!1), a[1] + e[1] >= 0 && a[0] + e[1] < l.width() - o.outerWidth(!1)],
1049                    c = "yx" !== n.axis || s[0] || s[1] ? "all": "none";
1050                    "x" === n.axis || s[0] || G(t, e[0].toString(), {
1051                        dir: "y",
1052                        scrollEasing: "mcsEaseInOut",
1053                        overwrite: c,
1054                        dur: i
1055                    }),
1056                    "y" === n.axis || s[1] || G(t, e[1].toString(), {
1057                        dir: "x",
1058                        scrollEasing: "mcsEaseInOut",
1059                        overwrite: c,
1060                        dur: i
1061                    })
1062                },
1063                t[0]._focusTimer))
1064            })
1065        },
1066        U = function() {
1067            var t = e(this),
1068            o = t.data(a),
1069            n = a + "_" + o.idx,
1070            i = e("#mCSB_" + o.idx + "_container").parent();
1071            i.bind("scroll." + n,
1072            function() {
1073                0 === i.scrollTop() && 0 === i.scrollLeft() || e(".mCSB_" + o.idx + "_scrollbar").css("visibility", "hidden")
1074            })
1075        },
1076        F = function() {
1077            var t = e(this),
1078            o = t.data(a),
1079            n = o.opt,
1080            i = o.sequential,
1081            r = a + "_" + o.idx,
1082            l = ".mCSB_" + o.idx + "_scrollbar",
1083            s = e(l + ">a");
1084            s.bind("contextmenu." + r,
1085            function(e) {
1086                e.preventDefault()
1087            }).bind("mousedown." + r + " touchstart." + r + " pointerdown." + r + " MSPointerDown." + r + " mouseup." + r + " touchend." + r + " pointerup." + r + " MSPointerUp." + r + " mouseout." + r + " pointerout." + r + " MSPointerOut." + r + " click." + r,
1088            function(a) {
1089                function r(e, o) {
1090                    i.scrollAmount = n.scrollButtons.scrollAmount,
1091                    j(t, e, o)
1092                }
1093                if (a.preventDefault(), ee(a)) {
1094                    var l = e(this).attr("class");
1095                    switch (i.type = n.scrollButtons.scrollType, a.type) {
1096                    case "mousedown":
1097                    case "touchstart":
1098                    case "pointerdown":
1099                    case "MSPointerDown":
1100                        if ("stepped" === i.type) return;
1101                        c = !0,
1102                        o.tweenRunning = !1,
1103                        r("on", l);
1104                        break;
1105                    case "mouseup":
1106                    case "touchend":
1107                    case "pointerup":
1108                    case "MSPointerUp":
1109                    case "mouseout":
1110                    case "pointerout":
1111                    case "MSPointerOut":
1112                        if ("stepped" === i.type) return;
1113                        c = !1,
1114                        i.dir && r("off", l);
1115                        break;
1116                    case "click":
1117                        if ("stepped" !== i.type || o.tweenRunning) return;
1118                        r("on", l)
1119                    }
1120                }
1121            })
1122        },
1123        q = function() {
1124            function t(t) {
1125                function a(e, t) {
1126                    r.type = i.keyboard.scrollType,
1127                    r.scrollAmount = i.keyboard.scrollAmount,
1128                    "stepped" === r.type && n.tweenRunning || j(o, e, t)
1129                }
1130                switch (t.type) {
1131                case "blur":
1132                    n.tweenRunning && r.dir && a("off", null);
1133                    break;
1134                case "keydown":
1135                case "keyup":
1136                    var l = t.keyCode ? t.keyCode: t.which,
1137                    s = "on";
1138                    if ("x" !== i.axis && (38 === l || 40 === l) || "y" !== i.axis && (37 === l || 39 === l)) {
1139                        if ((38 === l || 40 === l) && !n.overflowed[0] || (37 === l || 39 === l) && !n.overflowed[1]) return;
1140                        "keyup" === t.type && (s = "off"),
1141                        e(document.activeElement).is(u) || (t.preventDefault(), t.stopImmediatePropagation(), a(s, l))
1142                    } else if (33 === l || 34 === l) {
1143                        if ((n.overflowed[0] || n.overflowed[1]) && (t.preventDefault(), t.stopImmediatePropagation()), "keyup" === t.type) {
1144                            Q(o);
1145                            var f = 34 === l ? -1 : 1;
1146                            if ("x" === i.axis || "yx" === i.axis && n.overflowed[1] && !n.overflowed[0]) var h = "x",
1147                            m = Math.abs(c[0].offsetLeft) - f * (.9 * d.width());
1148                            else var h = "y",
1149                            m = Math.abs(c[0].offsetTop) - f * (.9 * d.height());
1150                            G(o, m.toString(), {
1151                                dir: h,
1152                                scrollEasing: "mcsEaseInOut"
1153                            })
1154                        }
1155                    } else if ((35 === l || 36 === l) && !e(document.activeElement).is(u) && ((n.overflowed[0] || n.overflowed[1]) && (t.preventDefault(), t.stopImmediatePropagation()), "keyup" === t.type)) {
1156                        if ("x" === i.axis || "yx" === i.axis && n.overflowed[1] && !n.overflowed[0]) var h = "x",
1157                        m = 35 === l ? Math.abs(d.width() - c.outerWidth(!1)) : 0;
1158                        else var h = "y",
1159                        m = 35 === l ? Math.abs(d.height() - c.outerHeight(!1)) : 0;
1160                        G(o, m.toString(), {
1161                            dir: h,
1162                            scrollEasing: "mcsEaseInOut"
1163                        })
1164                    }
1165                }
1166            }
1167            var o = e(this),
1168            n = o.data(a),
1169            i = n.opt,
1170            r = n.sequential,
1171            l = a + "_" + n.idx,
1172            s = e("#mCSB_" + n.idx),
1173            c = e("#mCSB_" + n.idx + "_container"),
1174            d = c.parent(),
1175            u = "input,textarea,select,datalist,keygen,[contenteditable='true']",
1176            f = c.find("iframe"),
1177            h = ["blur." + l + " keydown." + l + " keyup." + l];
1178            f.length && f.each(function() {
1179                e(this).bind("load",
1180                function() {
1181                    A(this) && e(this.contentDocument || this.contentWindow.document).bind(h[0],
1182                    function(e) {
1183                        t(e)
1184                    })
1185                })
1186            }),
1187            s.attr("tabindex", "0").bind(h[0],
1188            function(e) {
1189                t(e)
1190            })
1191        },
1192        j = function(t, o, n, i, r) {
1193            function l(e) {
1194                u.snapAmount && (f.scrollAmount = u.snapAmount instanceof Array ? "x" === f.dir[0] ? u.snapAmount[1] : u.snapAmount[0] : u.snapAmount);
1195                var o = "stepped" !== f.type,
1196                a = r ? r: e ? o ? p / 1.5 : g: 1e3 / 60,
1197                n = e ? o ? 7.5 : 40 : 2.5,
1198                s = [Math.abs(h[0].offsetTop), Math.abs(h[0].offsetLeft)],
1199                d = [c.scrollRatio.y > 10 ? 10 : c.scrollRatio.y, c.scrollRatio.x > 10 ? 10 : c.scrollRatio.x],
1200                m = "x" === f.dir[0] ? s[1] + f.dir[1] * (d[1] * n) : s[0] + f.dir[1] * (d[0] * n),
1201                v = "x" === f.dir[0] ? s[1] + f.dir[1] * parseInt(f.scrollAmount) : s[0] + f.dir[1] * parseInt(f.scrollAmount),
1202                x = "auto" !== f.scrollAmount ? v: m,
1203                _ = i ? i: e ? o ? "mcsLinearOut": "mcsEaseInOut": "mcsLinear",
1204                w = !!e;
1205                return e && 17 > a && (x = "x" === f.dir[0] ? s[1] : s[0]),
1206                G(t, x.toString(), {
1207                    dir: f.dir[0],
1208                    scrollEasing: _,
1209                    dur: a,
1210                    onComplete: w
1211                }),
1212                e ? void(f.dir = !1) : (clearTimeout(f.step), void(f.step = setTimeout(function() {
1213                    l()
1214                },
1215                a)))
1216            }
1217            function s() {
1218                clearTimeout(f.step),
1219                $(f, "step"),
1220                Q(t)
1221            }
1222            var c = t.data(a),
1223            u = c.opt,
1224            f = c.sequential,
1225            h = e("#mCSB_" + c.idx + "_container"),
1226            m = "stepped" === f.type,
1227            p = u.scrollInertia < 26 ? 26 : u.scrollInertia,
1228            g = u.scrollInertia < 1 ? 17 : u.scrollInertia;
1229            switch (o) {
1230            case "on":
1231                if (f.dir = [n === d[16] || n === d[15] || 39 === n || 37 === n ? "x": "y", n === d[13] || n === d[15] || 38 === n || 37 === n ? -1 : 1], Q(t), oe(n) && "stepped" === f.type) return;
1232                l(m);
1233                break;
1234            case "off":
1235                s(),
1236                (m || c.tweenRunning && f.dir) && l(!0)
1237            }
1238        },
1239        Y = function(t) {
1240            var o = e(this).data(a).opt,
1241            n = [];
1242            return "function" == typeof t && (t = t()),
1243            t instanceof Array ? n = t.length > 1 ? [t[0], t[1]] : "x" === o.axis ? [null, t[0]] : [t[0], null] : (n[0] = t.y ? t.y: t.x || "x" === o.axis ? null: t, n[1] = t.x ? t.x: t.y || "y" === o.axis ? null: t),
1244            "function" == typeof n[0] && (n[0] = n[0]()),
1245            "function" == typeof n[1] && (n[1] = n[1]()),
1246            n
1247        },
1248        X = function(t, o) {
1249            if (null != t && "undefined" != typeof t) {
1250                var n = e(this),
1251                i = n.data(a),
1252                r = i.opt,
1253                l = e("#mCSB_" + i.idx + "_container"),
1254                s = l.parent(),
1255                c = typeof t;
1256                o || (o = "x" === r.axis ? "x": "y");
1257                var d = "x" === o ? l.outerWidth(!1) - s.width() : l.outerHeight(!1) - s.height(),
1258                f = "x" === o ? l[0].offsetLeft: l[0].offsetTop,
1259                h = "x" === o ? "left": "top";
1260                switch (c) {
1261                case "function":
1262                    return t();
1263                case "object":
1264                    var m = t.jquery ? t: e(t);
1265                    if (!m.length) return;
1266                    return "x" === o ? ae(m)[1] : ae(m)[0];
1267                case "string":
1268                case "number":
1269                    if (oe(t)) return Math.abs(t);
1270                    if ( - 1 !== t.indexOf("%")) return Math.abs(d * parseInt(t) / 100);
1271                    if ( - 1 !== t.indexOf("-=")) return Math.abs(f - parseInt(t.split("-=")[1]));
1272                    if ( - 1 !== t.indexOf("+=")) {
1273                        var p = f + parseInt(t.split("+=")[1]);
1274                        return p >= 0 ? 0 : Math.abs(p)
1275                    }
1276                    if ( - 1 !== t.indexOf("px") && oe(t.split("px")[0])) return Math.abs(t.split("px")[0]);
1277                    if ("top" === t || "left" === t) return 0;
1278                    if ("bottom" === t) return Math.abs(s.height() - l.outerHeight(!1));
1279                    if ("right" === t) return Math.abs(s.width() - l.outerWidth(!1));
1280                    if ("first" === t || "last" === t) {
1281                        var m = l.find(":" + t);
1282                        return "x" === o ? ae(m)[1] : ae(m)[0]
1283                    }
1284                    return e(t).length ? "x" === o ? ae(e(t))[1] : ae(e(t))[0] : (l.css(h, t), void u.update.call(null, n[0]))
1285                }
1286            }
1287        },
1288        N = function(t) {
1289            function o() {
1290                return clearTimeout(f[0].autoUpdate),
1291                0 === l.parents("html").length ? void(l = null) : void(f[0].autoUpdate = setTimeout(function() {
1292                    return c.advanced.updateOnSelectorChange && (s.poll.change.n = i(), s.poll.change.n !== s.poll.change.o) ? (s.poll.change.o = s.poll.change.n, void r(3)) : c.advanced.updateOnContentResize && (s.poll.size.n = l[0].scrollHeight + l[0].scrollWidth + f[0].offsetHeight + l[0].offsetHeight + l[0].offsetWidth, s.poll.size.n !== s.poll.size.o) ? (s.poll.size.o = s.poll.size.n, void r(1)) : !c.advanced.updateOnImageLoad || "auto" === c.advanced.updateOnImageLoad && "y" === c.axis || (s.poll.img.n = f.find("img").length, s.poll.img.n === s.poll.img.o) ? void((c.advanced.updateOnSelectorChange || c.advanced.updateOnContentResize || c.advanced.updateOnImageLoad) && o()) : (s.poll.img.o = s.poll.img.n, void f.find("img").each(function() {
1293                        n(this)
1294                    }))
1295                },
1296                c.advanced.autoUpdateTimeout))
1297            }
1298            function n(t) {
1299                function o(e, t) {
1300                    return function() {
1301                        return t.apply(e, arguments)
1302                    }
1303                }
1304                function a() {
1305                    this.onload = null,
1306                    e(t).addClass(d[2]),
1307                    r(2)
1308                }
1309                if (e(t).hasClass(d[2])) return void r();
1310                var n = new Image;
1311                n.onload = o(n, a),
1312                n.src = t.src
1313            }
1314            function i() {
1315                c.advanced.updateOnSelectorChange === !0 && (c.advanced.updateOnSelectorChange = "*");
1316                var e = 0,
1317                t = f.find(c.advanced.updateOnSelectorChange);
1318                return c.advanced.updateOnSelectorChange && t.length > 0 && t.each(function() {
1319                    e += this.offsetHeight + this.offsetWidth
1320                }),
1321                e
1322            }
1323            function r(e) {
1324                clearTimeout(f[0].autoUpdate),
1325                u.update.call(null, l[0], e)
1326            }
1327            var l = e(this),
1328            s = l.data(a),
1329            c = s.opt,
1330            f = e("#mCSB_" + s.idx + "_container");
1331            return t ? (clearTimeout(f[0].autoUpdate), void $(f[0], "autoUpdate")) : void o()
1332        },
1333        V = function(e, t, o) {
1334            return Math.round(e / t) * t - o
1335        },
1336        Q = function(t) {
1337            var o = t.data(a),
1338            n = e("#mCSB_" + o.idx + "_container,#mCSB_" + o.idx + "_container_wrapper,#mCSB_" + o.idx + "_dragger_vertical,#mCSB_" + o.idx + "_dragger_horizontal");
1339            n.each(function() {
1340                Z.call(this)
1341            })
1342        },
1343        G = function(t, o, n) {
1344            function i(e) {
1345                return s && c.callbacks[e] && "function" == typeof c.callbacks[e]
1346            }
1347            function r() {
1348                return [c.callbacks.alwaysTriggerOffsets || w >= S[0] + y, c.callbacks.alwaysTriggerOffsets || -B >= w]
1349            }
1350            function l() {
1351                var e = [h[0].offsetTop, h[0].offsetLeft],
1352                o = [x[0].offsetTop, x[0].offsetLeft],
1353                a = [h.outerHeight(!1), h.outerWidth(!1)],
1354                i = [f.height(), f.width()];
1355                t[0].mcs = {
1356                    content: h,
1357                    top: e[0],
1358                    left: e[1],
1359                    draggerTop: o[0],
1360                    draggerLeft: o[1],
1361                    topPct: Math.round(100 * Math.abs(e[0]) / (Math.abs(a[0]) - i[0])),
1362                    leftPct: Math.round(100 * Math.abs(e[1]) / (Math.abs(a[1]) - i[1])),
1363                    direction: n.dir
1364                }
1365            }
1366            var s = t.data(a),
1367            c = s.opt,
1368            d = {
1369                trigger: "internal",
1370                dir: "y",
1371                scrollEasing: "mcsEaseOut",
1372                drag: !1,
1373                dur: c.scrollInertia,
1374                overwrite: "all",
1375                callbacks: !0,
1376                onStart: !0,
1377                onUpdate: !0,
1378                onComplete: !0
1379            },
1380            n = e.extend(d, n),
1381            u = [n.dur, n.drag ? 0 : n.dur],
1382            f = e("#mCSB_" + s.idx),
1383            h = e("#mCSB_" + s.idx + "_container"),
1384            m = h.parent(),
1385            p = c.callbacks.onTotalScrollOffset ? Y.call(t, c.callbacks.onTotalScrollOffset) : [0, 0],
1386            g = c.callbacks.onTotalScrollBackOffset ? Y.call(t, c.callbacks.onTotalScrollBackOffset) : [0, 0];
1387            if (s.trigger = n.trigger, 0 === m.scrollTop() && 0 === m.scrollLeft() || (e(".mCSB_" + s.idx + "_scrollbar").css("visibility", "visible"), m.scrollTop(0).scrollLeft(0)), "_resetY" !== o || s.contentReset.y || (i("onOverflowYNone") && c.callbacks.onOverflowYNone.call(t[0]), s.contentReset.y = 1), "_resetX" !== o || s.contentReset.x || (i("onOverflowXNone") && c.callbacks.onOverflowXNone.call(t[0]), s.contentReset.x = 1), "_resetY" !== o && "_resetX" !== o) {
1388                if (!s.contentReset.y && t[0].mcs || !s.overflowed[0] || (i("onOverflowY") && c.callbacks.onOverflowY.call(t[0]), s.contentReset.x = null), !s.contentReset.x && t[0].mcs || !s.overflowed[1] || (i("onOverflowX") && c.callbacks.onOverflowX.call(t[0]), s.contentReset.x = null), c.snapAmount) {
1389                    var v = c.snapAmount instanceof Array ? "x" === n.dir ? c.snapAmount[1] : c.snapAmount[0] : c.snapAmount;
1390                    o = V(o, v, c.snapOffset)
1391                }
1392                switch (n.dir) {
1393                case "x":
1394                    var x = e("#mCSB_" + s.idx + "_dragger_horizontal"),
1395                    _ = "left",
1396                    w = h[0].offsetLeft,
1397                    S = [f.width() - h.outerWidth(!1), x.parent().width() - x.width()],
1398                    b = [o, 0 === o ? 0 : o / s.scrollRatio.x],
1399                    y = p[1],
1400                    B = g[1],
1401                    T = y > 0 ? y / s.scrollRatio.x: 0,
1402                    k = B > 0 ? B / s.scrollRatio.x: 0;
1403                    break;
1404                case "y":
1405                    var x = e("#mCSB_" + s.idx + "_dragger_vertical"),
1406                    _ = "top",
1407                    w = h[0].offsetTop,
1408                    S = [f.height() - h.outerHeight(!1), x.parent().height() - x.height()],
1409                    b = [o, 0 === o ? 0 : o / s.scrollRatio.y],
1410                    y = p[0],
1411                    B = g[0],
1412                    T = y > 0 ? y / s.scrollRatio.y: 0,
1413                    k = B > 0 ? B / s.scrollRatio.y: 0
1414                }
1415                b[1] < 0 || 0 === b[0] && 0 === b[1] ? b = [0, 0] : b[1] >= S[1] ? b = [S[0], S[1]] : b[0] = -b[0],
1416                t[0].mcs || (l(), i("onInit") && c.callbacks.onInit.call(t[0])),
1417                clearTimeout(h[0].onCompleteTimeout),
1418                J(x[0], _, Math.round(b[1]), u[1], n.scrollEasing),
1419                !s.tweenRunning && (0 === w && b[0] >= 0 || w === S[0] && b[0] <= S[0]) || J(h[0], _, Math.round(b[0]), u[0], n.scrollEasing, n.overwrite, {
1420                    onStart: function() {
1421                        n.callbacks && n.onStart && !s.tweenRunning && (i("onScrollStart") && (l(), c.callbacks.onScrollStart.call(t[0])), s.tweenRunning = !0, C(x), s.cbOffsets = r())
1422                    },
1423                    onUpdate: function() {
1424                        n.callbacks && n.onUpdate && i("whileScrolling") && (l(), c.callbacks.whileScrolling.call(t[0]))
1425                    },
1426                    onComplete: function() {
1427                        if (n.callbacks && n.onComplete) {
1428                            "yx" === c.axis && clearTimeout(h[0].onCompleteTimeout);
1429                            var e = h[0].idleTimer || 0;
1430                            h[0].onCompleteTimeout = setTimeout(function() {
1431                                i("onScroll") && (l(), c.callbacks.onScroll.call(t[0])),
1432                                i("onTotalScroll") && b[1] >= S[1] - T && s.cbOffsets[0] && (l(), c.callbacks.onTotalScroll.call(t[0])),
1433                                i("onTotalScrollBack") && b[1] <= k && s.cbOffsets[1] && (l(), c.callbacks.onTotalScrollBack.call(t[0])),
1434                                s.tweenRunning = !1,
1435                                h[0].idleTimer = 0,
1436                                C(x, "hide")
1437                            },
1438                            e)
1439                        }
1440                    }
1441                })
1442            }
1443        },
1444        J = function(e, t, o, a, n, i, r) {
1445            function l() {
1446                S.stop || (x || m.call(), x = K() - v, s(), x >= S.time && (S.time = x > S.time ? x + f - (x - S.time) : x + f - 1, S.time < x + 1 && (S.time = x + 1)), S.time < a ? S.id = h(l) : g.call())
1447            }
1448            function s() {
1449                a > 0 ? (S.currVal = u(S.time, _, b, a, n), w[t] = Math.round(S.currVal) + "px") : w[t] = o + "px",
1450                p.call()
1451            }
1452            function c() {
1453                f = 1e3 / 60,
1454                S.time = x + f,
1455                h = window.requestAnimationFrame ? window.requestAnimationFrame: function(e) {
1456                    return s(),
1457                    setTimeout(e, .01)
1458                },
1459                S.id = h(l)
1460            }
1461            function d() {
1462                null != S.id && (window.requestAnimationFrame ? window.cancelAnimationFrame(S.id) : clearTimeout(S.id), S.id = null)
1463            }
1464            function u(e, t, o, a, n) {
1465                switch (n) {
1466                case "linear":
1467                case "mcsLinear":
1468                    return o * e / a + t;
1469                case "mcsLinearOut":
1470                    return e /= a,
1471                    e--,
1472                    o * Math.sqrt(1 - e * e) + t;
1473                case "easeInOutSmooth":
1474                    return e /= a / 2,
1475                    1 > e ? o / 2 * e * e + t: (e--, -o / 2 * (e * (e - 2) - 1) + t);
1476                case "easeInOutStrong":
1477                    return e /= a / 2,
1478                    1 > e ? o / 2 * Math.pow(2, 10 * (e - 1)) + t: (e--, o / 2 * ( - Math.pow(2, -10 * e) + 2) + t);
1479                case "easeInOut":
1480                case "mcsEaseInOut":
1481                    return e /= a / 2,
1482                    1 > e ? o / 2 * e * e * e + t: (e -= 2, o / 2 * (e * e * e + 2) + t);
1483                case "easeOutSmooth":
1484                    return e /= a,
1485                    e--,
1486                    -o * (e * e * e * e - 1) + t;
1487                case "easeOutStrong":
1488                    return o * ( - Math.pow(2, -10 * e / a) + 1) + t;
1489                case "easeOut":
1490                case "mcsEaseOut":
1491                default:
1492                    var i = (e /= a) * e,
1493                    r = i * e;
1494                    return t + o * (.499999999999997 * r * i + -2.5 * i * i + 5.5 * r + -6.5 * i + 4 * e)
1495                }
1496            }
1497            e._mTween || (e._mTween = {
1498                top: {},
1499                left: {}
1500            });
1501            var f, h, r = r || {},
1502            m = r.onStart ||
1503            function() {},
1504            p = r.onUpdate ||
1505            function() {},
1506            g = r.onComplete ||
1507            function() {},
1508            v = K(),
1509            x = 0,
1510            _ = e.offsetTop,
1511            w = e.style,
1512            S = e._mTween[t];
1513            "left" === t && (_ = e.offsetLeft);
1514            var b = o - _;
1515            S.stop = 0,
1516            "none" !== i && d(),
1517            c()
1518        },
1519        K = function() {
1520            return window.performance && window.performance.now ? window.performance.now() : window.performance && window.performance.webkitNow ? window.performance.webkitNow() : Date.now ? Date.now() : (new Date).getTime()
1521        },
1522        Z = function() {
1523            var e = this;
1524            e._mTween || (e._mTween = {
1525                top: {},
1526                left: {}
1527            });
1528            for (var t = ["top", "left"], o = 0; o < t.length; o++) {
1529                var a = t[o];
1530                e._mTween[a].id && (window.requestAnimationFrame ? window.cancelAnimationFrame(e._mTween[a].id) : clearTimeout(e._mTween[a].id), e._mTween[a].id = null, e._mTween[a].stop = 1)
1531            }
1532        },
1533        $ = function(e, t) {
1534            try {
1535                delete e[t]
1536            } catch(o) {
1537                e[t] = null
1538            }
1539        },
1540        ee = function(e) {
1541            return ! (e.which && 1 !== e.which)
1542        },
1543        te = function(e) {
1544            var t = e.originalEvent.pointerType;
1545            return ! (t && "touch" !== t && 2 !== t)
1546        },
1547        oe = function(e) {
1548            return ! isNaN(parseFloat(e)) && isFinite(e)
1549        },
1550        ae = function(e) {
1551            var t = e.parents(".mCSB_container");
1552            return [e.offset().top - t.offset().top, e.offset().left - t.offset().left]
1553        },
1554        ne = function() {
1555            function e() {
1556                var e = ["webkit", "moz", "ms", "o"];
1557                if ("hidden" in document) return "hidden";
1558                for (var t = 0; t < e.length; t++) if (e[t] + "Hidden" in document) return e[t] + "Hidden";
1559                return null
1560            }
1561            var t = e();
1562            return t ? document[t] : !1
1563        };
1564        e.fn[o] = function(t) {
1565            return u[t] ? u[t].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof t && t ? void e.error("Method " + t + " does not exist") : u.init.apply(this, arguments)
1566        },
1567        e[o] = function(t) {
1568            return u[t] ? u[t].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof t && t ? void e.error("Method " + t + " does not exist") : u.init.apply(this, arguments)
1569        },
1570        e[o].defaults = i,
1571        window[o] = !0,
1572        e(window).bind("load",
1573        function() {
1574            e(n)[o](),
1575            e.extend(e.expr[":"], {
1576                mcsInView: e.expr[":"].mcsInView ||
1577                function(t) {
1578                    var o, a, n = e(t),
1579                    i = n.parents(".mCSB_container");
1580                    if (i.length) return o = i.parent(),
1581                    a = [i[0].offsetTop, i[0].offsetLeft],
1582                    a[0] + ae(n)[0] >= 0 && a[0] + ae(n)[0] < o.height() - n.outerHeight(!1) && a[1] + ae(n)[1] >= 0 && a[1] + ae(n)[1] < o.width() - n.outerWidth(!1)
1583                },
1584                mcsInSight: e.expr[":"].mcsInSight ||
1585                function(t, o, a) {
1586                    var n, i, r, l, s = e(t),
1587                    c = s.parents(".mCSB_container"),
1588                    d = "exact" === a[3] ? [[1, 0], [1, 0]] : [[.9, .1], [.6, .4]];
1589                    if (c.length) return n = [s.outerHeight(!1), s.outerWidth(!1)],
1590                    r = [c[0].offsetTop + ae(s)[0], c[0].offsetLeft + ae(s)[1]],
1591                    i = [c.parent()[0].offsetHeight, c.parent()[0].offsetWidth],
1592                    l = [n[0] < i[0] ? d[0] : d[1], n[1] < i[1] ? d[0] : d[1]],
1593                    r[0] - i[0] * l[0][0] < 0 && r[0] + n[0] - i[0] * l[0][1] >= 0 && r[1] - i[1] * l[1][0] < 0 && r[1] + n[1] - i[1] * l[1][1] >= 0
1594                },
1595                mcsOverflow: e.expr[":"].mcsOverflow ||
1596                function(t) {
1597                    var o = e(t).data(a);
1598                    if (o) return o.overflowed[0] || o.overflowed[1]
1599                }
1600            })
1601        })
1602    })
1603});

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.