jquery.mCustomScrollbar.concat.min.js 80 KB

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