PageSourceSearch

https://www.morinaga.com.tw/assets/js/jquery.mmenu.min.all.js

js morinaga.com.tw collected 2026-10-06 12:54:51 UTC 49,833 bytes, 669 lines download raw bytes

1/*
2 * jQuery mmenu v5.5.2
3 * @requires jQuery 1.7.0 or later
4 *
5 * mmenu.frebsite.nl
6 *	
7 * Copyright (c) Fred Heusschen
8 * www.frebsite.nl
9 *
10 * Licensed under the MIT license:
11 * http://en.wikipedia.org/wiki/MIT_License
12 */
13! function(e) {
14    function n() { e[t].glbl || (l = { $wndw: e(window), $html: e("html"), $body: e("body") }, a = {}, i = {}, r = {}, e.each([a, i, r], function(e, n) { n.add = function(e) { e = e.split(" ");
15                for (var t = 0, s = e.length; s > t; t++) n[e[t]] = n.mm(e[t]) } }), a.mm = function(e) {
16            return "mm-" + e }, a.add("wrapper menu panels panel nopanel current highest opened subopened navbar hasnavbar title btn prev next listview nolistview inset vertical selected divider spacer hidden fullsubopen"), a.umm = function(e) {
17            return "mm-" == e.slice(0, 3) && (e = e.slice(3)), e }, i.mm = function(e) {
18            return "mm-" + e }, i.add("parent sub"), r.mm = function(e) {
19            return e + ".mm" }, r.add("transitionend webkitTransitionEnd mousedown mouseup touchstart touchmove touchend click keydown"), e[t]._c = a, e[t]._d = i, e[t]._e = r, e[t].glbl = l) }
20    var t = "mmenu",
21        s = "5.5.2";
22    if (!(e[t] && e[t].version > s)) { e[t] = function(e, n, t) { this.$menu = e, this._api = ["bind", "init", "update", "setSelected", "getInstance", "openPanel", "closePanel", "closeAllPanels"], this.opts = n, this.conf = t, this.vars = {}, this.cbck = {}, "function" == typeof this.___deprecated && this.___deprecated(), this._initMenu(), this._initAnchors();
23            var s = this.$pnls.children();
24            return this._initAddons(), this.init(s), "function" == typeof this.___debug && this.___debug(), this }, e[t].version = s, e[t].addons = {}, e[t].uniqueId = 0, e[t].defaults = { extensions: [], navbar: { add: !0, title: "Menu", titleLink: "panel" }, onClick: { setSelected: !0 }, slidingSubmenus: !0 }, e[t].configuration = { classNames: { divider: "Divider", inset: "Inset", panel: "Panel", selected: "Selected", spacer: "Spacer", vertical: "Vertical" }, clone: !1, openingInterval: 25, panelNodetype: "ul, ol, div", transitionDuration: 400 }, e[t].prototype = { init: function(e) { e = e.not("." + a.nopanel), e = this._initPanels(e), this.trigger("init", e), this.trigger("update") }, update: function() { this.trigger("update") }, setSelected: function(e) { this.$menu.find("." + a.listview).children().removeClass(a.selected), e.addClass(a.selected), this.trigger("setSelected", e) }, openPanel: function(n) {
25                var s = n.parent();
26                if (s.hasClass(a.vertical)) {
27                    var i = s.parents("." + a.subopened);
28                    if (i.length) return this.openPanel(i.first());
29                    s.addClass(a.opened) } else {
30                    if (n.hasClass(a.current)) return;
31                    var r = this.$pnls.children("." + a.panel),
32                        l = r.filter("." + a.current);
33                    r.removeClass(a.highest).removeClass(a.current).not(n).not(l).not("." + a.vertical).addClass(a.hidden), e[t].support.csstransitions || l.addClass(a.hidden), n.hasClass(a.opened) ? n.nextAll("." + a.opened).addClass(a.highest).removeClass(a.opened).removeClass(a.subopened) : (n.addClass(a.highest), l.addClass(a.subopened)), n.removeClass(a.hidden).addClass(a.current), setTimeout(function() { n.removeClass(a.subopened).addClass(a.opened) }, this.conf.openingInterval) }
34                this.trigger("openPanel", n) }, closePanel: function(e) {
35                var n = e.parent();
36                n.hasClass(a.vertical) && (n.removeClass(a.opened), this.trigger("closePanel", e)) }, closeAllPanels: function() { this.$menu.find("." + a.listview).children().removeClass(a.selected).filter("." + a.vertical).removeClass(a.opened);
37                var e = this.$menu.children("." + a.panel),
38                    n = e.first();
39                this.$menu.children("." + a.panel).not(n).removeClass(a.subopened).removeClass(a.opened).removeClass(a.current).removeClass(a.highest).addClass(a.hidden), this.openPanel(n) }, togglePanel: function(e) {
40                var n = e.parent();
41                n.hasClass(a.vertical) && this[n.hasClass(a.opened) ? "closePanel" : "o
41penPanel"](e) }, getInstance: function() {
42                return this }, bind: function(e, n) { this.cbck[e] = this.cbck[e] || [], this.cbck[e].push(n) }, trigger: function() {
43                var e = this,
44                    n = Array.prototype.slice.call(arguments),
45                    t = n.shift();
46                if (this.cbck[t])
47                    for (var s = 0, a = this.cbck[t].length; a > s; s++) this.cbck[t][s].apply(e, n) }, _initMenu: function() { this.opts.offCanvas && this.conf.clone && (this.$menu = this.$menu.clone(!0), this.$menu.add(this.$menu.find("[id]")).filter("[id]").each(function() { e(this).attr("id", a.mm(e(this).attr("id"))) })), this.$menu.contents().each(function() { 3 == e(this)[0].nodeType && e(this).remove() }), this.$pnls = e('<div class="' + a.panels + '" />').append(this.$menu.children(this.conf.panelNodetype)).prependTo(this.$menu), this.$menu.parent().addClass(a.wrapper);
48                var n = [a.menu];
49                this.opts.slidingSubmenus || n.push(a.vertical), this.opts.extensions = this.opts.extensions.length ? "mm-" + this.opts.extensions.join(" mm-") : "", this.opts.extensions && n.push(this.opts.extensions), this.$menu.addClass(n.join(" ")) }, _initPanels: function(n) {
50                var t = this,
51                    s = this.__findAddBack(n, "ul, ol");
52                this.__refactorClass(s, this.conf.classNames.inset, "inset").addClass(a.nolistview + " " + a.nopanel), s.not("." + a.nolistview).addClass(a.listview);
53                var r = this.__findAddBack(n, "." + a.listview).children();
54                this.__refactorClass(r, this.conf.classNames.selected, "selected"), this.__refactorClass(r, this.conf.classNames.divider, "divider"), this.__refactorClass(r, this.conf.classNames.spacer, "spacer"), this.__refactorClass(this.__findAddBack(n, "." + this.conf.classNames.panel), this.conf.classNames.panel, "panel");
55                var l = e(),
56                    d = n.add(n.find("." + a.panel)).add(this.__findAddBack(n, "." + a.listview).children().children(this.conf.panelNodetype)).not("." + a.nopanel);
57                this.__refactorClass(d, this.conf.classNames.vertical, "vertical"), this.opts.slidingSubmenus || d.addClass(a.vertical), d.each(function() {
58                    var n = e(this),
59                        s = n;
60                    n.is("ul, ol") ? (n.wrap('<div class="' + a.panel + '" />'), s = n.parent()) : s.addClass(a.panel);
61                    var i = n.attr("id");
62                    n.removeAttr("id"), s.attr("id", i || t.__getUniqueId()), n.hasClass(a.vertical) && (n.removeClass(t.conf.classNames.vertical), s.add(s.parent()).addClass(a.vertical)), l = l.add(s) });
63                var o = e("." + a.panel, this.$menu);
64                l.each(function() {
65                    var n = e(this),
66                        s = n.parent(),
67                        r = s.children("a, span").first();
68                    if (s.is("." + a.panels) || (s.data(i.sub, n), n.data(i.parent, s)), !s.children("." + a.next).length && s.parent().is("." + a.listview)) {
69                        var l = n.attr("id"),
70                            d = e('<a class="' + a.next + '" href="#' + l + '" data-target="#' + l + '" />').insertBefore(r);
71                        r.is("span") && d.addClass(a.fullsubopen) }
72                    if (!n.children("." + a.navbar).length && !s.hasClass(a.vertical)) {
73                        if (s.parent().is("." + a.listview)) var s = s.closest("." + a.panel);
74                        else var r = s.closest("." + a.panel).find('a[href="#' + n.attr("id") + '"]').first(),
75                            s = r.closest("." + a.panel);
76                        var o = e('<div class="' + a.navbar + '" />');
77                        if (s.length) {
78                            var l = s.attr("id");
79                            switch (t.opts.navbar.titleLink) {
80                                case "anchor":
81                                    _url = r.attr("href");
82                                    break;
83                                case "panel":
84                                case "parent":
85                                    _url = "#" + l;
86                                    break;
87                                case "none":
88                                default:
89                                    _url = !1 }
90                            o.append('<a class="' + a.btn + " " + a.prev + '" href="#' + l + '" data-target="#' + l + '" />').append(e('<a class="' + a.title + '"' + (_url ? ' href="' + _url + '"' : "") + " />").text(r.text())).prependTo(n), t.opts.navbar.add && n.addClass(a.hasnavbar) } else t.opts.navbar.title && (o.append('<a class="' + a.title + '">' + t.opts.navbar.title + "</a>").prependTo(n), t.opts.navbar.add && n.addClass(a.hasnavbar)) } });
91                var c = this.__findAddBack(n, "." + a.listview).children("." + a.selected).removeClass(a.selected).last(
91).addClass(a.selected);
92                c.add(c.parentsUntil("." + a.menu, "li")).filter("." + a.vertical).addClass(a.opened).end().not("." + a.vertical).each(function() { e(this).parentsUntil("." + a.menu, "." + a.panel).not("." + a.vertical).first().addClass(a.opened).parentsUntil("." + a.menu, "." + a.panel).not("." + a.vertical).first().addClass(a.opened).addClass(a.subopened) }), c.children("." + a.panel).not("." + a.vertical).addClass(a.opened).parentsUntil("." + a.menu, "." + a.panel).not("." + a.vertical).first().addClass(a.opened).addClass(a.subopened);
93                var h = o.filter("." + a.opened);
94                return h.length || (h = l.first()), h.addClass(a.opened).last().addClass(a.current), l.not("." + a.vertical).not(h.last()).addClass(a.hidden).end().appendTo(this.$pnls), l }, _initAnchors: function() {
95                var n = this;
96                l.$body.on(r.click + "-oncanvas", "a[href]", function(s) {
97                    var i = e(this),
98                        r = !1,
99                        l = n.$menu.find(i).length;
100                    for (var d in e[t].addons)
101                        if (r = e[t].addons[d].clickAnchor.call(n, i, l)) break;
102                    if (!r && l) {
103                        var o = i.attr("href");
104                        if (o.length > 1 && "#" == o.slice(0, 1)) try {
105                            var c = e(o, n.$menu);
106                            c.is("." + a.panel) && (r = !0, n[i.parent().hasClass(a.vertical) ? "togglePanel" : "openPanel"](c)) } catch (h) {} }
107                    if (r && s.preventDefault(), !r && l && i.is("." + a.listview + " > li > a") && !i.is('[rel="external"]') && !i.is('[target="_blank"]')) { n.__valueOrFn(n.opts.onClick.setSelected, i) && n.setSelected(e(s.target).parent());
108                        var p = n.__valueOrFn(n.opts.onClick.preventDefault, i, "#" == o.slice(0, 1));
109                        p && s.preventDefault(), n.__valueOrFn(n.opts.onClick.close, i, p) && n.close() } }) }, _initAddons: function() {
110                for (var n in e[t].addons) e[t].addons[n].add.call(this), e[t].addons[n].add = function() {};
111                for (var n in e[t].addons) e[t].addons[n].setup.call(this) }, __api: function() {
112                var n = this,
113                    t = {};
114                return e.each(this._api, function() {
115                    var e = this;
116                    t[e] = function() {
117                        var s = n[e].apply(n, arguments);
118                        return "undefined" == typeof s ? t : s } }), t }, __valueOrFn: function(e, n, t) {
119                return "function" == typeof e ? e.call(n[0]) : "undefined" == typeof e && "undefined" != typeof t ? t : e }, __refactorClass: function(e, n, t) {
120                return e.filter("." + n).removeClass(n).addClass(a[t]) }, __findAddBack: function(e, n) {
121                return e.find(n).add(e.filter(n)) }, __filterListItems: function(e) {
122                return e.not("." + a.divider).not("." + a.hidden) }, __transitionend: function(e, n, t) {
123                var s = !1,
124                    a = function() { s || n.call(e[0]), s = !0 };
125                e.one(r.transitionend, a), e.one(r.webkitTransitionEnd, a), setTimeout(a, 1.1 * t) }, __getUniqueId: function() {
126                return a.mm(e[t].uniqueId++) } }, e.fn[t] = function(s, a) {
127            return n(), s = e.extend(!0, {}, e[t].defaults, s), a = e.extend(!0, {}, e[t].configuration, a), this.each(function() {
128                var n = e(this);
129                if (!n.data(t)) {
130                    var i = new e[t](n, s, a);
131                    n.data(t, i.__api()) } }) }, e[t].support = { touch: "ontouchstart" in window || navigator.msMaxTouchPoints, csstransitions: function() {
132                if ("undefined" != typeof Modernizr && "undefined" != typeof Modernizr.csstransitions) return Modernizr.csstransitions;
133                var e = document.body || document.documentElement,
134                    n = e.style,
135                    t = "transition";
136                if ("string" == typeof n[t]) return !0;
137                var s = ["Moz", "webkit", "Webkit", "Khtml", "O", "ms"];
138                t = t.charAt(0).toUpperCase() + t.substr(1);
139                for (var a = 0; a < s.length; a++)
140                    if ("string" == typeof n[s[a] + t]) return !0;
141                return !1 }() };
142        var a, i, r, l } }(jQuery);
143/*	
144 * jQuery mmenu offCanvas addon
145 * mmenu.frebsite.nl
146 *
147 * Copyright (c) Fred Heusschen
148 */
149! function(e) {
150    var t = "mmenu",
151        o = "offCanvas";
152    e[t].addons[o] = { setup: function() {
153            if (this.opts[o]) {
154                var s = this.opts[o],
155                    i = this.conf[o];
156                a = e[t].glbl, this._api = e.merge(this._api, ["open", "close", "setPage"]), ("top" == s.position || "bottom" == s.position) && (s.zposition = "front"), "string" != typeof i.pageSelector && (i.pageSelector = "> " + i.pageNodetype), a.$allMenus = (a.$allMenus || e()).add(this.$menu), this.vars.opened = !1;
157                var r = [n.offcanvas]; "left" != s.position && r.push(n.mm(s.position)), "back" != s.zposition && r.push(n.mm(s.zposition)), this.$menu.addClass(r.join(" ")).parent().removeClass(n.wrapper), this.setPage(a.$page), this._initBlocker(), this["_initWindow_" + o](), this.$menu[i.menuInjectMethod + "To"](i.menuWrapperSelector) } }, add: function() { n = e[t]._c, s = e[t]._d, i = e[t]._e, n.add("offcanvas slideout blocking modal background opening blocker page"), s.add("style"), i.add("resize") }, clickAnchor: function(e) {
158            if (!this.opts[o]) return !1;
159            var t = this.$menu.attr("id");
160            if (t && t.length && (this.conf.clone && (t = n.umm(t)), e.is('[href="#' + t + '"]'))) return this.open(), !0;
161            if (a.$page) {
162                var t = a.$page.first().attr("id");
163                return t && t.length && e.is('[href="#' + t + '"]') ? (this.close(), !0) : !1 } } }, e[t].defaults[o] = { position: "left", zposition: "back", blockUI: !0, moveBackgroun
163d: !0 }, e[t].configuration[o] = { pageNodetype: "div", pageSelector: null, noPageSelector: [], wrapPageIfNeeded: !0, menuWrapperSelector: "body", menuInjectMethod: "prepend" }, e[t].prototype.open = function() {
164        if (!this.vars.opened) {
165            var e = this;
166            this._openSetup(), setTimeout(function() { e._openFinish() }, this.conf.openingInterval), this.trigger("open") } }, e[t].prototype._openSetup = function() {
167        var t = this,
168            r = this.opts[o];
169        this.closeAllOthers(), a.$page.each(function() { e(this).data(s.style, e(this).attr("style") || "") }), a.$wndw.trigger(i.resize + "-" + o, [!0]);
170        var p = [n.opened];
171        r.blockUI && p.push(n.blocking), "modal" == r.blockUI && p.push(n.modal), r.moveBackground && p.push(n.background), "left" != r.position && p.push(n.mm(this.opts[o].position)), "back" != r.zposition && p.push(n.mm(this.opts[o].zposition)), this.opts.extensions && p.push(this.opts.extensions), a.$html.addClass(p.join(" ")), setTimeout(function() { t.vars.opened = !0 }, this.conf.openingInterval), this.$menu.addClass(n.current + " " + n.opened) }, e[t].prototype._openFinish = function() {
172        var e = this;
173        this.__transitionend(a.$page.first(), function() { e.trigger("opened") }, this.conf.transitionDuration), a.$html.addClass(n.opening), this.trigger("opening") }, e[t].prototype.close = function() {
174        if (this.vars.opened) {
175            var t = this;
176            this.__transitionend(a.$page.first(), function() { t.$menu.removeClass(n.current).removeClass(n.opened), a.$html.removeClass(n.opened).removeClass(n.blocking).removeClass(n.modal).removeClass(n.background).removeClass(n.mm(t.opts[o].position)).removeClass(n.mm(t.opts[o].zposition)), t.opts.extensions && a.$html.removeClass(t.opts.extensions), a.$page.each(function() { e(this).attr("style", e(this).data(s.style)) }), t.vars.opened = !1, t.trigger("closed") }, this.conf.transitionDuration), a.$html.removeClass(n.opening), this.trigger("close"), this.trigger("closing") } }, e[t].prototype.closeAllOthers = function() { a.$allMenus.not(this.$menu).each(function() {
177            var o = e(this).data(t);
178            o && o.close && o.close() }) }, e[t].prototype.setPage = function(t) {
179        var s = this,
180            i = this.conf[o];
181        t && t.length || (t = a.$body.find(i.pageSelector), i.noPageSelector.length && (t = t.not(i.noPageSelector.join(", "))), t.length > 1 && i.wrapPageIfNeeded && (t = t.wrapAll("<" + this.conf[o].pageNodetype + " />").parent())), t.each(function() { e(this).attr("id", e(this).attr("id") || s.__getUniqueId()) }), t.addClass(n.page + " " + n.slideout), a.$page = t, this.trigger("setPage", t) }, e[t].prototype["_initWindow_" + o] = function() { a.$wndw.off(i.keydown + "-" + o).on(i.keydown + "-" + o, function(e) {
182            return a.$html.hasClass(n.opened) && 9 == e.keyCode ? (e.preventDefault(), !1) : void 0 });
183        var e = 0;
184        a.$wndw.off(i.resize + "-" + o).on(i.resize + "-" + o, function(t, o) {
185            if (1 == a.$page.length && (o || a.$html.hasClass(n.opened))) {
186                var s = a.$wndw.height();
187                (o || s != e) && (e = s, a.$page.css("minHeight", s)) } }) }, e[t].prototype._initBlocker = function() {
188        var t = this;
189        this.opts[o].blockUI && (a.$blck || (a.$blck = e('<div id="' + n.blocker + '" class="' + n.slideout + '" />')), a.$blck.appendTo(a.$body).off(i.touchstart + "-" + o + " " + i.touchmove + "-" + o).on(i.touchstart + "-" + o + " " + i.touchmove + "-" + o, function(e) { e.preventDefault(), e.stopPropagation(), a.$blck.trigger(i.mousedown + "-" + o) }).off(i.mousedown + "-" + o).on(i.mousedown + "-" + o, function(e) { e.preventDefault(), a.$html.hasClass(n.modal) || (t.closeAllOthers(), t.close()) })) };
190    var n, s, i, a }(jQuery);
191/*	
192 * jQuery mmenu autoHeight addon
193 * mmenu.frebsite.nl
194 *
195 * Copyright (c) Fred Heusschen
196 */
197! function(t) {
198    var e = "mmenu",
199        s = "autoHeight";
200    t[e].addons[s] = { setup: function() {
201            if (this.opts.offCanvas) {
202                switch (this.opts.offCanvas.position) {
203                    case "left":
204                    case "right":
205                        return }
206                var n = this,
207                    o = this.opts[s];
208                if (this.conf[s], h = t[e].glbl, "boolean" == typeof o && o && (o = { height: "auto" }), "object" != typeof o && (o = {}), o = this.opts[s] = t.extend(!0, {}, t[e].defaults[s], o), "auto" == o.height) { this.$menu.addClass(i.autoheight);
209                    var u = function(t) {
210                        var e = parseInt(this.$pnls.css("top"), 10) || 0;
211                        _bot = parseInt(this.$pnls.css("bottom"), 10) || 0, this.$menu.addClass(i.measureheight), t = t || this.$pnls.children("." + i.current), t.is("." + i.vertical) && (t = t.parents("." + i.panel).not("." + i.vertical).first()), this.$menu.height(t.outerHeight() + e + _bot).removeClass(i.measureheight) };
212                    this.bind("update", u), this.bind("openPanel", u), this.bind("closePanel", u), this.bind("open", u), h.$wndw.off(a.resize + "-autoheight").on(a.resize + "-autoheight", function() { u.call(n) }) } } }, add: function() { i = t[e]._c, n = t[e]._d, a = t[e]._e, i.add("autoheight measureheight"), a.add("resize") }, clickAnchor: function() {} }, t[e].defaults[s] = { height: "default" };
213    var i, n, a, h }(jQuery);
214/*	
215 * jQuery mmenu backButton addon
216 * mmenu.frebsite.nl
217 *
218 * Copyright (c) Fred Heusschen
219 */
220! function(o) {
221    var t = "mmenu",
222        n = "backButton";
223    o[t].addons[n] = { setup: function() {
224            if (this.opts.offCanvas) {
225                var i = this,
226                    e = this.opts[n];
227                if (this.conf[n], a = o[t].glbl, "boolean" == typeof e && (e = { close: e }), "object" != typeof e && (e = {}), e = o.extend(!0, {}, o[t].defaults[n], e), e.close) {
228                    var c = "#" + i.$menu.attr("id");
229                    this.bind("opened", function() { location.hash != c && history.pushState(null, document.title, c) }), o(window).on("popstate", function(o) { a.$html.hasClass(s.opened) ? (o.stopPropagation(), i.close()) : location.hash == c && (o.stopPropagation(), i.open()) }) } } }, add: function() {
230            return window.history && window.history.pushState ? (s = o[t]._c, i = o[t]._d, void(e = o[t]._e)) : void(o[t].addons[n].setup = function() {}) }, clickAnchor: function() {} }, o[t].defaults[n] = { close: !1 };
231    var s, i, e, a }(jQuery);
232/*	
233 * jQuery mmenu counters addon
234 * mmenu.frebsite.nl
235 *
236 * Copyright (c) Fred Heusschen
237 */
238! function(t) {
239    var n = "mmenu",
240        e = "counters";
241    t[n].addons[e] = { setup: function() {
242            var s = this,
243                o = this.opts[e];
244            this.conf[e], c = t[n].glbl, "boolean" == typeof o && (o = { add: o, update: o }), "object" != typeof o && (o = {}), o = this.opts[e] = t.extend(!0, {}, t[n].defaults[e], o), this.bind("init", function(n) { this.__refactorClass(t("em", n), this.conf.classNames[e].counter, "counter") }), o.add && this.bind("init", function(n) { n.each(function() {
245                    var n = t(this).data(a.parent);
246                    n && (n.children("em." + i.counter).length || n.prepend(t('<em class="' + i.counter + '" />'))) }) }), o.update && this.bind("update", function() { this.$pnls.find("." + i.panel).each(function() {
247                    var n = t(this),
248                        e = n.data(a.parent);
249                    if (e) {
250                        var c = e.children("em." + i.counter);
251                        c.length && (n = n.children("." + i.listview), n.length && c.html(s.__filterListItems(n.children()).length)) } }) }) }, add: function() { i = t[n]._c, a = t[n]._d, s = t[n]._e, i.add("counter search noresultsmsg") }, clickAnchor: function() {} }, t[n].defaults[e] = { add: !1, update: !1 }, t[n].configuration.classNames[e] = { counter: "Counter" };
252    var i, a, s, c }(jQuery);
253/*	
254 * jQuery mmenu dividers addon
255 * mmenu.frebsite.nl
256 *
257 * Copyright (c) Fred Heusschen
258 */
259! function(i) {
260    var e = "mmenu",
261        s = "dividers";
262    i[e].addons[s] = { setup: function() {
263            var n = this,
264                a = this.opts[s];
265            if (this.conf[s], l = i[e].glbl, "boolean" == typeof a && (a = { add: a, fixed: a }), "object" != typeof a && (a = {}), a = this.opts[s] = i.extend(!0, {}, i[e].defaults[s], a), this.bind("init", function() { this.__refactorClass(i("li", this.$menu), this.conf.classNames[s].collapsed, "collapsed") }), a.add && this.bind("init", function(e) {
266                    switch (a.addTo) {
267                        case "panels":
268                            var s = e;
269                            break;
270                        default:
271                            var s = i(a.addTo, this.$pnls).filter("." + d.panel) }
272                    i("." + d.divider, s).remove(), s.find("." + d.listview).not("." + d.vertical).each(function() {
273                        var e = "";
274                        n.__filterListItems(i(this).children()).each(function() {
275                            var s = i.trim(i(this).children("a, span").text()).slice(0, 1).toLowerCase();
276                            s != e && s.length && (e = s, i('<li class="' + d.divider + '">' + s + "</li>").insertBefore(this)) }) }) }), a.collapse && this.bind("init", function(e) { i("." + d.divider, e).each(function() {
277                        var e = i(this),
278                            s = e.nextUntil("." + d.divider, "." + d.collapsed);
279                        s.length && (e.children("." + d.subopen).length || (e.wrapInner("<span />"), e.prepend('<a href="#" class="' + d.subopen + " " + d.fullsubopen + '" />'))) }) }), a.fixed) {
280                var o = function(e) { e = e || this.$pnls.children("." + d.current);
281                    var s = e.find("." + d.divider).not("." + d.hidden);
282                    if (s.length) { this.$menu.addClass(d.hasdividers);
283                        var n = e.scrollTop() || 0,
284                            t = "";
285                        e.is(":visible") && e.find("." + d.divider).not("." + d.hidden).each(function() { i(this).position().top + n < n + 1 && (t = i(this).text()) }), this.$fixeddivider.text(t) } else this.$menu.removeClass(d.hasdividers) };
286                this.$fixeddivider = i('<ul class="' + d.listview + " " + d.fixeddivider + '"><li class="' + d.divider + '"></li></ul>').prependTo(this.$pnls).children(), this.bind("openPanel", o), this.bind("init", function(e) { e.off(t.scroll + "-dividers " + t.touchmove + "-dividers").on(t.scroll + "-dividers " + t.touchmove + "-dividers", function() { o.call(n, i(this)) }) }) } }, add: function() { d = i[e]._c, n = i[e]._d, t = i[e]._e, d.add("collapsed uncollapsed fixeddivider hasdividers"), t.add("scroll") }, clickAnchor: function(i, e) {
287            if (this.opts[s].collapse && e) {
288                var n = i.parent();
289                if (n.is("." + d.divider)) {
290                    var t = n.nextUntil("." + d.divider, "." + d.collapsed);
291                    return n.toggleClass(d.opened), t[n.hasClass(d.opened) ? "addClass" : "removeClass"](d.uncollapsed), !0 } }
292            return !1 } }, i[e].defaults[s] = { add: !1, addTo: "panels", fixed: !1, collapse: !1 }, i[e].configuration.classNames[s] = { collapsed: "Collapsed" };
293    var d, n, t, l }(jQuery);
294/*	
295 * jQuery mmenu dragOpen addon
296 * mmenu.frebsite.nl
297 *
298 * Copyright (c) Fred Heusschen
299 */
300! function(e) {
301    function t(e, t, n) {
302        return t > e && (e = t), e > n && (e = n), e }
303    var n = "mmenu",
304        o = "dragOpen";
305    e[n].addons[o] = { setup: function() {
306            if (this.opts.offCanvas) {
307                var i = this,
308                    a = this.opts[o],
309                    p = this.conf[o];
310                if (r = e[n].glbl, "boolean" == typeof a && (a = { open: a }), "object" != typeof a && (a = {}), a = this.opts[o] = e.extend(!0, {}
310, e[n].defaults[o], a), a.open) {
311                    var d, f, c, u, h, l = {},
312                        m = 0,
313                        g = !1,
314                        v = !1,
315                        w = 0,
316                        _ = 0;
317                    switch (this.opts.offCanvas.position) {
318                        case "left":
319                        case "right":
320                            l.events = "panleft panright", l.typeLower = "x", l.typeUpper = "X", v = "width";
321                            break;
322                        case "top":
323                        case "bottom":
324                            l.events = "panup pandown", l.typeLower = "y", l.typeUpper = "Y", v = "height" }
325                    switch (this.opts.offCanvas.position) {
326                        case "right":
327                        case "bottom":
328                            l.negative = !0, u = function(e) { e >= r.$wndw[v]() - a.maxStartPos && (m = 1) };
329                            break;
330                        default:
331                            l.negative = !1, u = function(e) { e <= a.maxStartPos && (m = 1) } }
332                    switch (this.opts.offCanvas.position) {
333                        case "left":
334                            l.open_dir = "right", l.close_dir = "left";
335                            break;
336                        case "right":
337                            l.open_dir = "left", l.close_dir = "right";
338                            break;
339                        case "top":
340                            l.open_dir = "down", l.close_dir = "up";
341                            break;
342                        case "bottom":
343                            l.open_dir = "up", l.close_dir = "down" }
344                    switch (this.opts.offCanvas.zposition) {
345                        case "front":
346                            h = function() {
347                                return this.$menu };
348                            break;
349                        default:
350                            h = function() {
351                                return e("." + s.slideout) } }
352                    var b = this.__valueOrFn(a.pageNode, this.$menu, r.$page); "string" == typeof b && (b = e(b));
353                    var y = new Hammer(b[0], a.vendors.hammer);
354                    y.on("panstart", function(e) { u(e.center[l.typeLower]), r.$slideOutNodes = h(), g = l.open_dir }).on(l.events + " panend", function(e) { m > 0 && e.preventDefault() }).on(l.events, function(e) {
355                        if (d = e["delta" + l.typeUpper], l.negative && (d = -d), d != w && (g = d >= w ? l.open_dir : l.close_dir), w = d, w > a.threshold && 1 == m) {
356                            if (r.$html.hasClass(s.opened)) return;
357                            m = 2, i._openSetup(), i.trigger("opening"), r.$html.addClass(s.dragging), _ = t(r.$wndw[v]() * p[v].perc, p[v].min, p[v].max) }
358                        2 == m && (f = t(w, 10, _) - ("front" == i.opts.offCanvas.zposition ? _ : 0), l.negative && (f = -f), c = "translate" + l.typeUpper + "(" + f + "px )", r.$slideOutNodes.css({ "-webkit-transform": "-webkit-" + c, transform: c })) }).on("panend", function() { 2 == m && (r.$html.removeClass(s.dragging), r.$slideOutNodes.css("transform", ""), i[g == l.open_dir ? "_openFinish" : "close"]()), m = 0 }) } } }, add: function() {
359            return "function" != typeof Hammer || Hammer.VERSION < 2 ? void(e[n].addons[o].setup = function() {}) : (s = e[n]._c, i = e[n]._d, a = e[n]._e, void s.add("dragging")) }, clickAnchor: function() {} }, e[n].defaults[o] = { open: !1, maxStartPos: 100, threshold: 50, vendors: { hammer: {} } }, e[n].configuration[o] = { width: { perc: .8, min: 140, max: 440 }, height: { perc: .8, min: 140, max: 880 } };
360    var s, i, a, r }(jQuery);
361/*	
362 * jQuery mmenu fixedElements addon
363 * mmenu.frebsite.nl
364 *
365 * Copyright (c) Fred Heusschen
366 */
367! function(s) {
368    var i = "mmenu",
369        t = "fixedElements";
370    s[i].addons[t] = { setup: function() {
371            if (this.opts.offCanvas) {
372                var n = this.opts[t];
373                this.conf[t], d = s[i].glbl, n = this.opts[t] = s.extend(!0, {}, s[i].defaults[t], n);
374                var a = function(s) {
375                    var i = this.conf.classNames[t].fixed;
376                    this.__refactorClass(s.find("." + i), i, "slideout").appendTo(d.$body) };
377                a.call(this, d.$page), this.bind("setPage", a) } }, add: function() { n = s[i]._c, a = s[i]._d, e = s[i]._e, n.add("fixed") }, clickAnchor: function() {} }, s[i].configuration.classNames[t] = { fixed: "Fixed" };
378    var n, a, e, d }(jQuery);
379/*	
380 * jQuery mmenu iconPanels addon
381 * mmenu.frebsite.nl
382 *
383 * Copyright (c) Fred Heusschen
384 */
385! function(e) {
386    var n = "mmenu",
387        i = "iconPanels";
388    e[n].addons[i] = { setup: function() {
389            var a = this,
390                l = this.opts[i];
391            if (this.conf[i], d = e[n].glbl, "boolean" == typeof l && (l = { add: l }), "number" == typeof l && (l = { add: !0, visible: l }), "object" != typeof l && (l = {}), l = this.opts[i] = e.extend(!0, {}, e[n].defaults[i], l), l.visible++, l.add) { this.$menu.addClass(s.iconpanel);
392                for (var t = [], o = 0; o <= l.visible; o++) t.push(s.iconpanel + "-" + o);
393                t = t.join(" ");
394                var c = function(n) {
395                    var i = a.$pnls.children("." + s.panel).removeClass(t),
396                        d = i.filter("." + s.subopened);
397                    d.removeClass(s.hidden).add(n).slice(-l.visible).each(function(n) { e(this).addClass(s.iconpanel + "-" + n) }) };
398                this.bind("openPanel", c), this.bind("init", function(n) { c.call(a, a.$pnls.children("." + s.current)), l.hideNavbars && n.removeClass(s.hasnavbar), n.each(function() { e(this).children("." + s.subblocker).length || e(this).prepend('<a href="#' + e(this).closest("." + s.panel).attr("id") + '" class="' + s.subblocker + '" />') }) }) } }, add: function() { s = e[n]._c, a = e[n]._d, l = e[n]._e, s.add("iconpanel subblocker") }, clickAnchor: function() {} }, e[n].defaults[i] = { add: !1, visible: 3, hideNavbars: !1 };
399    var s, a, l, d }(jQuery);
400/*	
401 * jQuery mmenu navbar addon
402 * mmenu.frebsite.nl
403 *
404 * Copyright (c) Fred Heusschen
405 */
406! function(n) {
407    var a = "mmenu",
408        t = "navbars";
409    n[a].addons[t] = { setup: function() {
410            var r = this,
411                s = this.opts[t],
412                c = this.conf[t];
413            if (i = n[a].glbl, "undefined" != typeof s) { s instanceof Array || (s = [s]);
414                var d = {};
415                n.each(s, function(i) {
416                    var o = s[i]; "boolean" == typeof o && o && (o = {}), "object" != typeof o && (o = {}), "undefined" == typeof o.content && (o.content = ["prev", "title"]), o.content instanceof Array || (o.content = [o.content]), o = n.extend(!0, {}, r.opts.navbar, o);
417                    var l = o.position,
418                        h = o.height; "number" != typeof h && (h = 1), h = Math.min(4, Math.max(1, h)), "bottom" != l && (l = "top"), d[l] || (d[l] = 0), d[l]++;
419                    var f = n("<div />").addClass(e.navbar + " " + e.navbar + "-" + l + " " + e.navbar + "-" + l + "-" + d[l] + " " + e.navbar + "-size-" + h);
420                    d[l] += h - 1;
421                    for (var v = 0, p = o.content.length; p > v; v++) {
422                        var u = n[a].addons[t][o.content[v]] || !1;
423                        u ? u.call(r, f, o, c) : (u = o.content[v], u instanceof n || (u = n(o.content[v])), u.each(function() { f.append(n(this)) })) }
424                    var b = Math.ceil(f.children().not("." + e.btn).length / h);
425                    b > 1 && f.addClass(e.navbar + "-content-" + b), f.children("." + e.btn).length && f.addClass(e.hasbtns), f.prependTo(r.$menu) });
426                for (var o in d) r.$menu.addClass(e.hasnavbar + "-" + o + "-" + d[o]) } }, add: function() { e = n[a]._c, r = n[a]._d, s = n[a]._e, e.add("close hasbtns") }, clickAnchor: function() {} }, n[a].configuration[t] = { breadcrumbSeparator: "/" }, n[a].configuration.classNames[t] = { panelTitle: "Title", panelNext: "Next", panelPrev: "Prev" };
427    var e, r, s, i }(jQuery),
428/*	
429 * jQuery mmenu navbar addon breadcrumbs content
430 * mmenu.frebsite.nl
431 *
432 * Copyright (c) Fred Heusschen
433 */
434function(n) {
435    var a = "mmenu",
436        t = "navbars",
437        e = "breadcrumbs";
438    n[a].addons[t][e] = function(t, e, r) {
439        var s = n[a]._c,
440            i = n[a]._d;
441        s.add("breadcrumbs separator"), t.append('<span class="' + s.breadcrumbs + '"></span>'), this.bind("init", function(a) { a.removeClass(s.hasnavbar).each(function() {
442                for (var a = [], t = n(this), e = n('<span class="' + s.breadcrumbs + '"></span>'), c = n(this).children().first(), d = !0; c && c.length;) { c.is("." + s.panel) || (c = c.closest("." + s.panel));
443                    var o = c.children("." + s.navbar).children("." + s.title).text();
444                    a.unshift(d ? "<span>" + o + "</span>" : '<a href="#' + c.attr("id") + '">' + o + "</a>"), d = !1, c = c.data(i.parent) }
445                e.append(a.join('<span class="' + s.separator + '">' + r.breadcrumbSeparator + "</span>")).appendTo(t.children("." + s.navbar)) }) });
446        var c = function() {
447            var n = this.$pnls.children("." + s.current),
448                a = t.find("." + s.breadcrumbs),
449                e = n.children("." + s.navbar).children("." + s.breadcrumbs);
450            a.html(e.html()) };
451        this.bind("openPanel", c), this.bind("init", c) } }(jQuery),
452/*	
453 * jQuery mmenu navbar addon close content
454 * mmenu.frebsite.nl
455 *
456 * Copyright (c) Fred Heusschen
457 */
458function(n) {
459    var a = "mmenu",
460        t = "navbars",
461        e = "close";
462    n[a].addons[t][e] = function(t) {
463        var e = n[a]._c,
464            r = n[a].glbl;
465        t.append('<a class="' + e.close + " " + e.btn + '" href="#"></a>');
466        var s = function(n) { t.find("." + e.close).attr("href", "#" + n.attr("id")) };
467        s.call(this, r.$page), this.bind("setPage", s) } }(jQuery),
468/*	
469 * jQuery mmenu navbar addon next content
470 * mmenu.frebsite.nl
471 *
472 * Copyright (c) Fred Heusschen
473 */
474function(n) {
475    var a = "mmenu",
476        t = "navbars",
477        e = "next";
478    n[a].addons[t][e] = function(e) {
479        var r = n[a]._c;
480        e.append('<a class="' + r.next + " " + r.btn + '" href="#"></a>');
481        var s = function(n) { n = n || this.$pnls.children("." + r.current);
482            var a = e.find("." + r.next),
483                s = n.find("." + this.conf.classNames[t].panelNext),
484                i = s.attr("href"),
485                c = s.html();
486            a[i ? "attr" : "removeAttr"]("href", i), a[i || c ? "removeClass" : "addClass"](r.hidden), a.html(c) };
487        this.bind("openPanel", s), this.bind("init", function() { s.call(this) }) } }(jQuery),
488/*	
489 * jQuery mmenu navbar addon prev content
490 * mmenu.frebsite.nl
491 *
492 * Copyright (c) Fred Heusschen
493 */
494function(n) {
495    var a = "mmenu",
496        t = "navbars",
497        e = "prev";
498    n[a].addons[t][e] = function(e) {
499        var r = n[a]._c;
500        e.append('<a class="' + r.prev + " " + r.btn + '" href="#"></a>'), this.bind("init", function(n) { n.removeClass(r.hasnavbar) });
501        var s = function() {
502            var n = this.$pnls.children("." + r.current),
503                a = e.find("." + r.prev),
504                s = n.find("." + this.conf.classNames[t].panelPrev);
505            s.length || (s = n.children("." + r.navbar).children("." + r.prev));
506            var i = s.attr("href"),
507                c = s.html();
508            a[i ? "attr" : "removeAttr"]("href", i), a[i || c ? "removeClass" : "addClass"](r.hidden), a.html(c) };
509        this.bind("openPanel", s), this.bind("init", s) } }(jQuery),
510/*	
511 * jQuery mmenu navbar addon searchfield content
512 * mmenu.frebsite.nl
513 *
514 * Copyright (c) Fred Heusschen
515 */
516function(n) {
517    var a = "mmenu",
518        t = "navbars",
519        e = "searchfield";
520    n[a].addons[t][e] = function(t) {
521        var e = n[a]._c,
522            r = n('<div class="' + e.search + '" />').appendTo(t); "object" != typeof this.opts.searchfield && (this.opts.searchfield = {}), this.opts.searchfield.add = !0, this.opts.searchfield.addTo = r } }(jQuery),
523/*	
524 * jQuery mmenu navbar addon title content
525 * mmenu.frebsite.nl
526 *
527 * Copyright (c) Fred Heusschen
528 */
529function(n) {
530    var a = "mmenu",
531        t = "navbars",
532        e = "title";
533    n[a].addons[t][e] = function(e, r) {
534        var s = n[a]._c;
535        e.append('<a class="' + s.title + '"></a>');
536        var i = function(n) { n = n || this.$pnls.children("." + s.current);
537            var a = e.find("." + s.title),
538                i = n.find("." + this.conf.classNames[t].panelTitle);
539            i.length || (i = n.children("." + s.navbar).children("." + s.title));
540            var c = i.attr("href"),
541                d = i.html() || r.title;
542            a[c ? "attr" : "removeAttr"]("href", c), a[c || d ? "removeClass" : "addClass"](s.hidden), a.html(d) };
543        this.bind("openPanel", i), this.bind("init", function() { i.call(this) }) } }(jQuery);
544/*	
545 * jQuery mmenu searchfield addon
546 * mmenu.frebsite.nl
547 *
548 * Copyright (c) Fred Heusschen
549 */
550! function(e) {
551    function s(e) {
552        switch (e) {
553            case 9:
554            case 16:
555            case 17:
556            case 18:
557            case 37:
558            case 38:
559            case 39:
560            case 40:
561                return !0 }
562        return !1 }
563    var n = "mmenu",
564        a = "searchfield";
565    e[n].addons[a] = { setup: function() {
566            var o = this,
567                d = this.opts[a],
568                c = this.conf[a];
569            r = e[n].glbl, "boolean" == typeof d && (d = { add: d }), "object" != typeof d && (d = {}), d = this.opts[a] = e.extend(!0, {}, e[n].defaults[a], d), this.bind("close", function() { this.$menu.find("." + l.search).find("input").blur() }), this.bind("init", function(n) {
570                if (d.add) {
571                    switch (d.addTo) {
572                        case "panels":
573                            var a = n;
574                            break;
575                        default:
576                            var a = e(d.addTo, this.$menu) }
577                    a.each(function() {
578                        var s = e(this);
579                        if (!s.is("." + l.panel) || !s.is("." + l.vertical)) {
580                            if (!s.children("." + l.search).length) {
581                                var n = c.form ? "form" : "div",
582                                    a = e("<" + n + ' class="' + l.search + '" />');
583                                if (c.form && "object" == typeof c.form)
584                                    for (var t in c.form) a.attr(t, c.form[t]);
585                                a.append('<input placeholder="' + d.placeholder + '" type="text" autocomplete="off" />'), s.hasClass(l.search) ? s.replaceWith(a) : s.prepend(a).addClass(l.hassearch) }
586                            if (d.noResults) {
587                                var i = s.closest("." + l.panel).length;
588                                if (i || (s = o.$pnls.children("." + l.panel).first()), !s.children("." + l.noresultsmsg).length) {
589                                    var r = s.children("." + l.listview).first();
590                                    e('<div class="' + l.noresultsmsg + '" />').append(d.noResults)[r.length ? "insertAfter" : "prependTo"](r.length ? r : s) } } } }), d.search && e("." + l.search, this.$menu).each(function() {
591                        var n = e(this),
592                            a = n.closest("." + l.panel).length;
593                        if (a) var r = n.closest("." + l.panel),
594                            c = r;
595                        else var r = e("." + l.panel, o.$menu),
596                            c = o.$menu;
597                        var h = n.children("input"),
598                            u = o.__findAddBack(r, "." + l.listview).children("li"),
599                            f = u.filter("." + l.divider),
600                            p = o.__filterListItems(u),
601                            v = "> a",
602                            m = v + ", > span",
603                            b = function() {
604                                var s = h.val().toLowerCase();
605                                r.scrollTop(0), p.add(f).addClass(l.hidden).find("." + l.fullsubopensearch).removeClass(l.fullsubopen).removeClass(l.fullsubopensearch), p.each(function() {
606                                    var n = e(this),
607                                        a = v;
608                                    (d.showTextItems || d.showSubPanels && n.find("." + l.next)) && (a = m), e(a, n).text().toLowerCase().indexOf(s) > -1 && n.add(n.prevAll("." + l.divider).first()).removeClass(l.hidden) }), d.showSubPanels && r.each(function() {
609                                    var s = e(this);
610                                    o.__filterListItems(s.find("." + l.listview).children()).each(function() {
611                                        var s = e(this),
612                                            n = s.data(t.sub);
613                                        s.removeClass(l.nosubresults), n && n.find("." + l.listview).children().removeClass(l.hidden) }) }), e(r.get().reverse()).each(function(s) {
614                                    var n = e(this),
615                                        i = n.data(t.parent);
616                                    i && (o.__filterListItems(n.find("." + l.listview).children()).length ? (i.hasClass(l.hidden) && i.children("." + l.next).not("." + l.fullsubopen).addClass(l.fullsubopen).addClass(l.fullsubopensearch), i.removeClass(l.hidden).removeClass(l.nosubresults).prevAll("." + l.divider).first().removeClass(l.hidden)) : a || (n.hasClass(l.opened) && setTimeout(function() { o.openPanel
616(i.closest("." + l.panel)) }, 1.5 * (s + 1) * o.conf.openingInterval), i.addClass(l.nosubresults))) }), c[p.not("." + l.hidden).length ? "removeClass" : "addClass"](l.noresults), this.update() };
617                        h.off(i.keyup + "-searchfield " + i.change + "-searchfield").on(i.keyup + "-searchfield", function(e) { s(e.keyCode) || b.call(o) }).on(i.change + "-searchfield", function() { b.call(o) }) }) } }) }, add: function() { l = e[n]._c, t = e[n]._d, i = e[n]._e, l.add("search hassearch noresultsmsg noresults nosubresults fullsubopensearch"), i.add("change keyup") }, clickAnchor: function() {} }, e[n].defaults[a] = { add: !1, addTo: "panels", search: !0, placeholder: "搜尋", noResults: "找不到內容", showTextItems: !1, showSubPanels: !0 }, e[n].configuration[a] = { form: !1 };
618    var l, t, i, r }(jQuery);
619/*	
620 * jQuery mmenu sectionIndexer addon
621 * mmenu.frebsite.nl
622 *
623 * Copyright (c) Fred Heusschen
624 */
625! function(e) {
626    var a = "mmenu",
627        r = "sectionIndexer";
628    e[a].addons[r] = { setup: function() {
629            var i = this,
630                d = this.opts[r];
631            this.conf[r], t = e[a].glbl, "boolean" == typeof d && (d = { add: d }), "object" != typeof d && (d = {}), d = this.opts[r] = e.extend(!0, {}, e[a].defaults[r], d), this.bind("init", function(a) {
632                if (d.add) {
633                    switch (d.addTo) {
634                        case "panels":
635                            var r = a;
636                            break;
637                        default:
638                            var r = e(d.addTo, this.$menu).filter("." + n.panel) }
639                    r.find("." + n.divider).closest("." + n.panel).addClass(n.hasindexer) }
640                if (!this.$indexer && this.$pnls.children("." + n.hasindexer).length) { this.$indexer = e('<div class="' + n.indexer + '" />').prependTo(this.$pnls).append('<a href="#a">a</a><a href="#b">b</a><a href="#c">c</a><a href="#d">d</a><a href="#e">e</a><a href="#f">f</a><a href="#g">g</a><a href="#h">h</a><a href="#i">i</a><a href="#j">j</a><a href="#k">k</a><a href="#l">l</a><a href="#m">m</a><a href="#n">n</a><a href="#o">o</a><a href="#p">p</a><a href="#q">q</a><a href="#r">r</a><a href="#s">s</a><a href="#t">t</a><a href="#u">u</a><a href="#v">v</a><a href="#w">w</a><a href="#x">x</a><a href="#y">y</a><a href="#z">z</a>'), this.$indexer.children().on(s.mouseover + "-sectionindexer " + n.touchstart + "-sectionindexer", function() {
641                        var a = e(this).attr("href").slice(1),
642                            r = i.$pnls.children("." + n.current),
643                            s = r.find("." + n.listview),
644                            t = !1,
645                            d = r.scrollTop(),
646                            h = s.position().top + parseInt(s.css("margin-top"), 10) + parseInt(s.css("padding-top"), 10) + d;
647                        r.scrollTop(0), s.children("." + n.divider).not("." + n.hidden).each(function() { t === !1 && a == e(this).text().slice(0, 1).toLowerCase() && (t = e(this).position().top + h) }), r.scrollTop(t !== !1 ? t : d) });
648                    var t = function(e) { i.$menu[(e.hasClass(n.hasindexer) ? "add" : "remove") + "Class"](n.hasindexer) };
649                    this.bind("openPanel", t), t.call(this, this.$pnls.children("." + n.current)) } }) }, add: function() { n = e[a]._c, i = e[a]._d, s = e[a]._e, n.add("indexer hasindexer"), s.add("mouseover touchstart") }, clickAnchor: function(e) {
650            return e.parent().is("." + n.indexer) ? !0 : void 0 } }, e[a].defaults[r] = { add: !1, addTo: "panels" };
651    var n, i, s, t }(jQuery);
652/*	
653 * jQuery mmenu toggles addon
654 * mmenu.frebsite.nl
655 *
656 * Copyright (c) Fred Heusschen
657 */
658! function(t) {
659    var e = "mmenu",
660        c = "toggles";
661    t[e].addons[c] = { setup: function() {
662            var n = this;
663            this.opts[c], this.conf[c], l = t[e].glbl, this.bind("init", function(e) { this.__refactorClass(t("input", e), this.conf.classNames[c].toggle, "toggle"), this.__refactorClass(t("input", e), this.conf.classNames[c].check, "check"), t("input." + s.toggle + ", input." + s.check, e).each(function() {
664                    var e = t(this),
665                        c = e.closest("li"),
666                        i = e.hasClass(s.toggle) ? "toggle" : "check",
667                        l = e.attr("id") || n.__getUniqueId();
668                    c.children('label[for="' + l + '"]').length || (e.attr("id", l), c.prepend(e), t('<label for="' + l + '" class="' + s[i] + '"></label>').insertBefore(c.children("a, span").last())) }) }) }, add: function() { s = t[e]._c, n = t[e]._d, i = t[e]._e, s.add("toggle check") }, clickAnchor: function() {} }, t[e].configuration.classNames[c] = { toggle: "Toggle", check: "Check" };
669    var s, n, i, l }(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.