Guest User

Untitled

a guest
Apr 15th, 2016
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 368.99 KB | None | 0 0
  1. function close_modal(e) {
  2. if (e == undefined) e = 100;
  3. $("#graybox").fadeOut(e, function() {
  4. $("#graybox").remove();
  5. $("#graybox_overlay").fadeOut(e, function() {
  6. $("#graybox_overlay").remove()
  7. })
  8. })
  9. }
  10.  
  11. function open_modal(e, t) {
  12. var e = $(e);
  13. if (e.length == 0) return;
  14. if ($("#graybox").length) return;
  15. if (t == undefined) t = 100;
  16. var n = e.clone();
  17. var r = $($.parseHTML('<div style="display: none;" id="graybox_overlay"></div><div style="display: none;" id="graybox"><div id="graybox_x1"><a href="javascript:void(0);" id="graybox-close" title="close">&times;</a><div id="graybox-p"></div></div></div>'));
  18. r.find("#graybox-p").append(n);
  19. $("body").prepend(r);
  20. $("#graybox").center();
  21. $("#graybox_overlay").fadeIn(t, function() {
  22. $("#graybox").fadeIn(t, function() {})
  23. });
  24. $("#graybox-close, #graybox_overlay").on("click", function() {
  25. close_modal()
  26. });
  27. $(document).keyup(function(e) {
  28. if (e.keyCode == 27) {
  29. close_modal()
  30. }
  31. })
  32. }
  33.  
  34. function initGraybox() {
  35. $(".graybox").on("click", function(e) {
  36. e.preventDefault();
  37. open_modal($(this).attr("href"))
  38. });
  39. var e = window.location.hash;
  40. if (e) {
  41. if ($(window.location.hash).length) {
  42. open_modal(window.location.hash)
  43. }
  44. }
  45. }
  46.  
  47. function createCookie(e, t, n) {
  48. if (n) {
  49. var r = new Date;
  50. r.setTime(r.getTime() + n * 24 * 60 * 60 * 1e3);
  51. var i = "; expires=" + r.toGMTString()
  52. } else var i = "";
  53. document.cookie = e + "=" + t + i + "; path=/"
  54. }
  55.  
  56. function readCookie(e) {
  57. var t = e + "=";
  58. var n = document.cookie.split(";");
  59. for (var r = 0; r < n.length; r++) {
  60. var i = n[r];
  61. while (i.charAt(0) == " ") i = i.substring(1, i.length);
  62. if (i.indexOf(t) == 0) return i.substring(t.length, i.length)
  63. }
  64. return null
  65. }
  66.  
  67. function eraseCookie(e) {
  68. createCookie(e, "", -1)
  69. }
  70.  
  71. function fixEvent(e, t) {
  72. e = e || window.event;
  73. if (!e.currentTarget) e.currentTarget = t;
  74. if (!e.target) e.target = e.srcElement;
  75. if (!e.relatedTarget) {
  76. if (e.type == "mouseover") e.relatedTarget = e.fromElement;
  77. if (e.type == "mouseout") e.relatedTarget = e.toElement
  78. }
  79. if (e.pageX == null && e.clientX != null) {
  80. var n = document.documentElement;
  81. var r = document.body;
  82. e.pageX = e.clientX + (n.scrollLeft || r && r.scrollLeft || 0);
  83. e.pageX -= n.clientLeft || 0;
  84. e.pageY = e.clientY + (n.scrollTop || r && r.scrollTop || 0);
  85. e.pageY -= n.clientTop || 0
  86. }
  87. if (!e.which && e.button) {
  88. e.which = e.button & 1 ? 1 : e.button & 2 ? 3 : e.button & 4 ? 2 : 0
  89. }
  90. return e
  91. }
  92.  
  93. function implode(e, t) {
  94. return t instanceof Array ? t.join(e) : t
  95. }
  96.  
  97. function Player() {
  98. var e = this;
  99. e.data = {
  100. css: {
  101. search: "#search-value",
  102. if_no_uspl: "#right_side_if_no_uspl"
  103. },
  104. text: {
  105. loading: "Loading...",
  106. mode: {
  107. prefix: "Play mode: ",
  108. line: "All songs",
  109. repeat: "repeat",
  110. shuffle: "shuffle",
  111. stop: "stop at the end of the song"
  112. },
  113. seek: "Seek: ",
  114. unavailable: "The selected song is currently unavailable",
  115. unavailable404: "Try listening to another artist",
  116. unavailable404skipped: "Switch to another artist",
  117. volume: "Volume: ",
  118. mute: "Mute",
  119. added: "Song added",
  120. have: "The song is already in the playlist",
  121. removed: "The song is removed from the playlist",
  122. playonesong: "Play",
  123. pauseonesong: "Pause",
  124. cf: {
  125. on: "A smooth transition is enabled",
  126. off: "Smooth transition off",
  127. now_on: "smooth transition included",
  128. now_off: "smooth transition off"
  129. },
  130. login: {
  131. caption: "Error",
  132. text: "This action requires authorization. Register or log in with your name"
  133. }
  134. },
  135. url: {
  136. home: window.location.protocol + "//" + window.location.host,
  137. favicon: "/i/img/favicon-%mode%.png",
  138. swf: "/i/swf/",
  139. save_pl: "/public/api.playlist.php",
  140. get_pl: "/public/api.playlist.php",
  141. login: "/authorization",
  142. download: "/public/api.download.php",
  143. banner_pages: ["/disclaimer", "/bla"]
  144. },
  145. delay: 1e3,
  146. error_timeout: 3e3
  147. };
  148. e.state = {
  149. pl: "main",
  150. i: 0,
  151. user_pl: 0,
  152. sound: null,
  153. info: null,
  154. pb: "stop",
  155. mode: "line",
  156. started: false,
  157. paused: false,
  158. position: 0,
  159. duration: 0,
  160. volume: 75,
  161. unmute: 75,
  162. muted: false,
  163. radio: false,
  164. version: $("html").attr("id")
  165. };
  166. e.error_timer = [];
  167. e.error_timer_count = [];
  168. e.counters_started = null;
  169. e.init = function() {
  170. SM.setup({
  171. autoStart: false,
  172. useThrottling: false,
  173. usePeakData: true,
  174. useWaveformData: false,
  175. useEQData: false,
  176. useFavIcon: false,
  177. url: e.data.url.swf,
  178. preferFlash: false,
  179. flashVersion: 9,
  180. useHighPerformance: true,
  181. debugMode: true,
  182. ontimeout: function(e) {
  183. SM.flashLoadTimeout = 0;
  184. SM.onerror = {};
  185. SM.reboot()
  186. },
  187. onready: function() {
  188. e.playlist.init();
  189. e.ui.init();
  190. e.playlist.user_pl.init()
  191. }
  192. })
  193. };
  194. e.sound = function(t, n, r, i, s, o) {
  195. var u = null;
  196. t = typeof t == "undefined" ? e.state.i : t;
  197. n = typeof n == "undefined" ? e.state.pl : n;
  198. r = typeof r == "undefined" ? e.track(t, n) : r;
  199. i = typeof i == "undefined" ? e.info(r) : i;
  200. clearTimeout(e.error_timer[i.id]);
  201. if (s == "load") {
  202. SM.destroySound("sound" + i.id)
  203. } else {
  204. var a = SM.getSoundById("sound" + i.id)
  205. }
  206. sound = typeof a == "object" ? a : SM.createSound({
  207. id: "sound" + i.id,
  208. url: i.mp3.replace("/file/", "/listen/"),
  209. onload: function() {
  210. if (this.readyState == 2) {
  211. if (n == "main") {
  212. if (o) {
  213. if (!r.children("div.container_message").length) {
  214. r.append('<div class="container_message" style="height:50px; position:absolute; top:0; left:0; width:100%; opacity: 0.8; background-color:gray; color:black; text-align:center; line-height:15px; padding:9px; ">The song is missing<p style="font-weight:bold;"><i>Try again?</i></p></div>')
  215. }
  216. SM.stopAll();
  217. e.next(true)
  218. } else {
  219. e.error_timer_count[i.id] = typeof e.error_timer_count[i.id] == "undefined" ? 1 : parseInt(e.error_timer_count[i.id]) + 1;
  220. var s = e.error_timer_count[i.id];
  221. if (s == 1) {
  222. $msg_conta = r.children("div.container_message");
  223. if ($msg_conta.length) {
  224. $msg_conta.remove()
  225. }
  226. r.append('<div class="container_message" style="height:50px; position:absolute; top:0; left:0; width:100%; opacity: 0.8; background-color:black; color:white; text-align:center; line-height:15px; padding:9px; ">Search this song<p style="font-weight:bold;"><span data-id="' + i.id + '">20</span> sec.</p></div>');
  227. if (!e.counters_started) e.inc404counters()
  228. }
  229. if (s < 4) {
  230. e.error_timer[i.id] = setTimeout(function() {
  231. e.sound(t, n, r, i, "load")
  232. }, 6e3)
  233. } else if (e.error_timer_count[i.id] > 3) {
  234. e.error_timer_count[i.id] = 0;
  235. var u = r.children("div.container_message");
  236. u.css({
  237. "background-color": "#FF1111"
  238. });
  239. e.ui.notify(e.data.text.unavailable);
  240. _sound = e.state.sound;
  241. var a = _sound != null ? _sound.id : null;
  242. if (sound.id == a) {
  243. SM.stopAll();
  244. e.next(true);
  245. u.html('Oops ... 404 ... Song not found<p style="font-weight:bold;">' + e.data.text.unavailable404skipped + "</p>")
  246. } else {
  247. u.html('Oops ... 404 ... Song not found<p style="font-weight:bold;">' + e.data.text.unavailable404 + "</p>")
  248. }
  249. SM.destroySound("sound" + i.id)
  250. }
  251. }
  252. } else {
  253. SM.stopAll();
  254. e.next(true)
  255. }
  256. } else {
  257. $msg_conta = r.children("div.container_message");
  258. if ($msg_conta.length) {
  259. e.error_timer_count[i.id] = 0;
  260. $msg_conta.remove();
  261. _sound = e.state.sound;
  262. var a = _sound != null ? _sound.id : null;
  263. if (sound.id == a) {
  264. SM.stopAll();
  265. e.play(t, n)
  266. } else if (n == "main") {
  267. r.addClass("playlist-oo_found")
  268. }
  269. }
  270. }
  271. },
  272. onstop: function() {
  273. this.destruct()
  274. },
  275. onplay: function() {
  276. this.dur = this.durationEstimate;
  277. var t = this.readyState != 3 ? "0" : "100%";
  278. $(e.ui.css.progress.loaded).css({
  279. width: t
  280. });
  281. if (this.position > 0) this.setPosition(0);
  282. var n = e.time(this.dur);
  283. $(e.ui.css.progress.time).text("0:00");
  284. $(e.ui.css.progress.total).html(e.state.pl == "radio" ? '<span style="font-size:16px;">&infin;</span>' : n)
  285. },
  286. onfinish: function() {
  287. if (this.isHTML5) e.next(true)
  288. },
  289. whileloading: function() {
  290. if (this.active) {
  291. this.dur = this.durationEstimate;
  292. var t = (this.bytesLoaded / this.bytesTotal * 100).toFixed(2);
  293. $(e.ui.css.progress.loaded).css({
  294. width: t + "%"
  295. })
  296. }
  297. },
  298. whileplaying: function() {
  299. if (this.active) {
  300. this.dur = this.durationEstimate;
  301. var t = (this.position / this.dur * 100).toFixed(2),
  302. r = e.time(this.position),
  303. i = parseInt(this.dur) - parseInt(this.position),
  304. s = e.time(this.dur);
  305. if (this.position < 100) e.ui.notify(e.data.text.loading, 1);
  306. if (!e.ui.seek.animated) $(e.ui.css.progress.position).css({
  307. width: t + "%"
  308. });
  309. $(e.ui.css.progress.time).text(r);
  310. $(e.ui.css.progress.total).html(e.state.pl == "radio" ? '<span style="font-size:16px;">&infin;</span>' : s);
  311. e.state.position = this.position
  312. }
  313. if (!this.isHTML5) {
  314. if (i < e.crossfade.preload && typeof u !== "object") {
  315. u = e.sound(e.get_next(), n);
  316. u.load()
  317. }
  318. if (i < e.crossfade.duration) {
  319. e.next(true);
  320. if (e.state.mode != "repeat") {
  321. this.active = false;
  322. e.crossfade.fade_out(this)
  323. }
  324. }
  325. }
  326. }
  327. });
  328. if (s == "load") sound.load();
  329. return sound
  330. };
  331. e.play = function(t, n, r) {
  332. if (typeof t != "object" && n == "main") {
  333. $("div#xbody span.minishare").remove();
  334. var i = e.getSocialButtons($("#xbody li.track[data-index=" + t + "]").data("id"), $("li.track[data-index=" + t + "]").find("h2").text(), $("#xbody li.track[data-index=" + t + "]").data("url_song"));
  335. $("li.track[data-index=" + t + "] em .playlist-btn-addfav").before(i)
  336. }
  337. var s = e.state.sound,
  338. o = e.state.sound,
  339. u = parseInt((new Date).getTime()),
  340. a, f, l;
  341. t = typeof t == "undefined" ? 0 : t;
  342. n = typeof n == "undefined" ? "main" : n;
  343. a = e.track(t, n);
  344. f = e.info(a);
  345. e.ui.notify(e.data.text.loading);
  346. skip = typeof r == "undefined" ? 0 : 1;
  347. s = e.sound(t, n, a, f, null, skip);
  348. $(e.ui.css.progress.position).css({
  349. width: 0
  350. });
  351. e.ui.playback("play");
  352. e.ui.update(f);
  353. e.playlist.set(t, n);
  354. createCookie("listen", "true", 7);
  355. e.state.pl = n;
  356. e.state.i = t;
  357. e.state.sound = s;
  358. e.state.info = f;
  359. e.state.pb = "play";
  360. e.state.started = true;
  361. e.state.paused = false;
  362. e.state.duration = f.duration;
  363. var c = o != null ? o.id : null;
  364. if (s.id == c) {
  365. e.ui.seek.set(0, true, false);
  366. if (s.paused) {
  367. s.resume()
  368. } else if (s.playState == 0) {
  369. s.play();
  370. s.active = true
  371. }
  372. } else {
  373. if (u - e.crossfade.end < 4001) {
  374. SM.stopAll()
  375. } else {
  376. e.crossfade.fade_out(o)
  377. }
  378. e.crossfade.fade_in(s);
  379. e.crossfade.end = u
  380. }
  381. e.radio.update(f);
  382. if ($(":hover").length > 0) $.jStorage.set("player", (new Date).getTime())
  383. };
  384. e.next = function(t) {
  385. if (e.state.pl == "onesongblock") {
  386. if (e.state.mode == "repeat") {
  387. e.play(e.state.i, e.state.pl)
  388. } else {
  389. e.stop()
  390. }
  391. return
  392. }
  393. var n = e.get_next(t),
  394. r = e.state.pl,
  395. i = e.state.mode;
  396. i = (i == "repeat" || i == "stop") && !t ? "line" : i;
  397. switch (i) {
  398. case "line":
  399. e.play(n, r, true);
  400. break;
  401. case "repeat":
  402. e.play(n, r);
  403. break;
  404. case "stop":
  405. e.stop();
  406. break;
  407. case "shuffle":
  408. e.play(n, r, true);
  409. break
  410. }
  411. if (t || r == "user") e.playlist.scroll(n, r)
  412. };
  413. e.prev = function() {
  414. var t = e.state.pl,
  415. n;
  416. switch (t) {
  417. case "main":
  418. n = $(e.playlist.css.main.tracks);
  419. break;
  420. case "user":
  421. n = $(e.playlist.css.user.tracks);
  422. break;
  423. case "radio":
  424. n = $(e.playlist.css.radio.main.stations);
  425. break
  426. }
  427. var r = n.length,
  428. i = n.filter(".act").length > 0 ? true : false,
  429. s = i ? e.state.i : 0,
  430. o = e.state.i,
  431. u = e.data.delay,
  432. a = e.state.pb,
  433. f = a == "play" || a == "pause" ? e.state.position : 0;
  434. if (f > u && t != "radio") {
  435. e.ui.seek.set(0, true, false)
  436. } else {
  437. o = s > 0 || i ? s - 1 : r - 1;
  438. if (!i) o = r - 1;
  439. e.play(o, t);
  440. if (t == "user") e.playlist.scroll(o, t)
  441. }
  442. };
  443. e.pause = function() {
  444. var t = e.state.i,
  445. n = e.state.pl,
  446. r = e.state.sound,
  447. i = $("li.track.act, li.user-track.act").length > 0 ? true : false;
  448. r.pause();
  449. if (i && n == "main") e.playlist.set(t, n, "pause");
  450. e.ui.playback("pause");
  451. e.state.pb = "pause";
  452. e.state.paused = true
  453. };
  454. e.resume = function() {
  455. var t = e.state.i,
  456. n = e.state.pl,
  457. r = e.state.sound,
  458. i = e.state.info,
  459. s = $("li.track.act, li.user-track.act").length > 0 ? true : false;
  460. if (i.radio) {
  461. r.destruct();
  462. e.play(e.state.i, e.state.pl)
  463. } else r.resume();
  464. if (s && n == "main") e.playlist.set(t, n);
  465. e.ui.playback("play");
  466. e.state.pb = "play";
  467. e.state.paused = false;
  468. if ($(":hover").length > 0) $.jStorage.set("player", (new Date).getTime())
  469. };
  470. e.stop = function() {
  471. if (!e.state.started) return;
  472. e.play(e.state.i, e.state.pl);
  473. e.pause()
  474. };
  475. e.ui = {
  476. css: {
  477. player: "#fixplayer",
  478. lcd: {
  479. container: "#fixplayer-lcd",
  480. title: {
  481. container: "#fixplayer-title",
  482. wrap: "#fixplayer-title span",
  483. artist: "#fixplayer-title b",
  484. song: "#fixplayer-title em"
  485. },
  486. notification: "#fixplayer-notification",
  487. cover: "#fixplayer-cover"
  488. },
  489. buttons: {
  490. playback: "#fixplayer-b_back, #fixplayer-b_next, #fixplayer-b_play, #fixplayer-b_pause",
  491. play: "#fixplayer-b_play",
  492. pause: "#fixplayer-b_pause",
  493. next: "#fixplayer-b_next",
  494. prev: "#fixplayer-b_back",
  495. add: "#fixplayer-addpl",
  496. remove: "#fixplayer-fav_del",
  497. download: "#fixplayer-down",
  498. mode: "#fixplayer-pv"
  499. },
  500. progress: {
  501. bar: "#fixplayer-prok",
  502. placeholder: "#fixplayer-prok",
  503. loaded: "#fixplayer-prok-sk",
  504. position: "#fixplayer-prok-pr",
  505. time: "#fixplayer-time b",
  506. total: "#fixplayer-time em"
  507. },
  508. volume: {
  509. container: "#fixplayer-volume",
  510. placeholder: "#fixplayer-volume",
  511. value: "#fixplayer-volume-x",
  512. mute: "#fixplayer-sound"
  513. }
  514. },
  515. pressed: false,
  516. holded: false,
  517. seek_delay: 500,
  518. seek_interval: 5e3,
  519. seek_timer: null,
  520. init: function() {
  521. e.ui.mode.init();
  522. e.ui.seek.init();
  523. e.ui.volume.init();
  524. e.ui.buttons.init()
  525. },
  526. playback: function(t) {
  527. if (t == "play") {
  528. $(e.ui.css.buttons.play).addClass("hidden");
  529. $(e.ui.css.buttons.pause).removeClass("hidden");
  530. e.ui.blink("stop")
  531. } else if (t == "pause") {
  532. $(e.ui.css.buttons.pause).addClass("hidden");
  533. $(e.ui.css.buttons.play).removeClass("hidden");
  534. e.ui.blink("start")
  535. } else if (t == "stop") {
  536. $(e.ui.css.buttons.pause).addClass("hidden");
  537. $(e.ui.css.buttons.play).removeClass("hidden");
  538. e.ui.blink("stop")
  539. }
  540. if (t == "stop") t = "default";
  541. if (e.state.volume == 0) e.favicon("mute");
  542. else e.favicon(t)
  543. },
  544. update: function(t) {
  545. var n = $(e.ui.css.lcd.title.artist),
  546. r = $(e.ui.css.lcd.title.song);
  547. var i = {
  548. artist: n.text(),
  549. song: r.text()
  550. };
  551. if (typeof t.artist != "undefined") n.text(t.artist);
  552. if (typeof t.song != "undefined") r.text(t.song);
  553. if (typeof t.artist != "undefined" && t.artist != i.artist) e.ui.rotation();
  554. else if (typeof t.song != "undefined" && t.song != i.song) e.ui.rotation();
  555. if (typeof t.mp3 != "undefined") {
  556. $(e.ui.css.buttons.download).show().attr("href", t.mp3);
  557. $(e.ui.css.buttons.add).show()
  558. }
  559. },
  560. rotation: function() {
  561. var t = $(e.ui.css.lcd.container),
  562. n = $(e.ui.css.lcd.title.wrap),
  563. r = n.width() - t.width(),
  564. i = .03;
  565. if (r > 0) {
  566. n.stop(true, false).stopTime("controlled").animate({
  567. marginLeft: 0
  568. }, 200).everyTime(500, "controlled", function() {
  569. n.animate({
  570. marginLeft: "-" + r + "px"
  571. }, r / i, "swing");
  572. n.animate({
  573. marginLeft: 0
  574. }, r / i, "swing")
  575. })
  576. } else {
  577. n.stop(true, false).stopTime("controlled").animate({
  578. marginLeft: 0
  579. }, 200, "swing")
  580. }
  581. },
  582. mode: {
  583. modes: ["line", "repeat", "shuffle", "stop"],
  584. init: function() {
  585. var t = readCookie("mode") != null ? readCookie("mode") : e.state.mode;
  586. e.ui.mode.set(t, false);
  587. $(e.ui.css.buttons.mode).click(function(t) {
  588. e.ui.mode.set();
  589. t.preventDefault()
  590. })
  591. },
  592. set: function(t, n) {
  593. var r = $(e.ui.css.buttons.mode),
  594. i = e.ui.mode.modes,
  595. s = e.state.mode,
  596. o = i.indexOf(s) + 1,
  597. u = o >= i.length ? i[0] : i[o],
  598. a = i.join(" ");
  599. t = typeof t == "undefined" ? u : t;
  600. n = typeof n == "undefined" ? true : n;
  601. r.removeClass(a).addClass(t);
  602. r.text(e.data.text.mode[t]);
  603. e.state.mode = t;
  604. createCookie("mode", t, 100);
  605. if (n) e.ui.notify(e.data.text.mode.prefix + "<strong>" + e.data.text.mode[t] + "</strong>")
  606. }
  607. },
  608. seek: {
  609. pressed: false,
  610. animated: false,
  611. inside: false,
  612. init: function() {
  613. $(document).bind({
  614. mousemove: function(t) {
  615. if (e.ui.seek.pressed == true && e.ui.seek.inside == false) {
  616. var n = $(e.ui.css.progress.placeholder).width(),
  617. r = t.pageX - $(e.ui.css.progress.placeholder).offset().left,
  618. i = (r / n * 100).toFixed(2);
  619. e.ui.seek.set(i, false, true)
  620. }
  621. },
  622. mouseup: function() {
  623. e.ui.seek.pressed = false
  624. }
  625. });
  626. $(e.ui.css.progress.placeholder).bind({
  627. mousedown: function(t) {
  628. t = fixEvent(t, this);
  629. e.ui.seek.pressed = true;
  630. var n = $(this).width(),
  631. r = t.pageX - $(this).offset().left,
  632. i = (r / n * 100).toFixed(2);
  633. e.ui.seek.set(i);
  634. t.stopPropagation();
  635. t.preventDefault()
  636. },
  637. mousemove: function(t) {
  638. e.ui.seek.inside = true;
  639. if (e.ui.seek.pressed) {
  640. t = fixEvent(t, this);
  641. var n = $(this).width(),
  642. r = t.pageX - $(this).offset().left,
  643. i = (r / n * 100).toFixed(2);
  644. e.ui.seek.set(i, false);
  645. $(this).css({
  646. cursor: "e-resize"
  647. })
  648. } else {
  649. $(this).css({
  650. cursor: "default"
  651. })
  652. }
  653. },
  654. mouseleave: function() {
  655. e.ui.seek.inside = false
  656. },
  657. mouseup: function() {
  658. e.ui.seek.pressed = false
  659. }
  660. });
  661. e.ui.seek.set(0, false, false)
  662. },
  663. set: function(t, n, r) {
  664. var i = e.state.sound,
  665. s = $(e.ui.css.progress.position),
  666. o = $(e.ui.css.progress.time),
  667. u = 0;
  668. n = typeof n == "undefined" ? true : n;
  669. r = typeof r == "undefined" ? true : r;
  670. loaded = 0;
  671. if (i !== null) {
  672. u = (i.durationEstimate / 100 * t).toFixed();
  673. if (u < 0) u = 0;
  674. if (u > i.durationEstimate) u = i.durationEstimate;
  675. if (t < 0) t = 0;
  676. if (t > 100) t = 100;
  677. loaded = (i.bytesLoaded / i.bytesTotal * 100).toFixed();
  678. t = parseInt(t) > parseInt(loaded) ? loaded : t;
  679. if (n) {
  680. e.ui.seek.animated = true;
  681. s.stop(true, false).animate({
  682. width: t + "%"
  683. }, 100, function() {
  684. e.ui.seek.animated = false
  685. })
  686. } else {
  687. s.stop(true, false).css({
  688. width: t + "%"
  689. })
  690. }
  691. if (r) e.ui.notify(e.data.text.seek + parseInt(t).toFixed() + "%", 1);
  692. o.text(e.time(u));
  693. i.setPosition(u);
  694. if (e.state.paused) e.state.position = u
  695. }
  696. },
  697. forward: function(t) {
  698. var n = parseInt(e.state.position),
  699. r = parseInt(e.state.duration),
  700. i = e.ui.seek_interval,
  701. s, o;
  702. s = n + i;
  703. o = (s / r * 100).toFixed();
  704. t = typeof t == "undefined" ? true : t;
  705. clearTimeout(e.ui.quick_seek_timer);
  706. e.ui.quick_seek_timer = setTimeout(function() {
  707. if (parseInt(o) > 99) e.next(true);
  708. else e.ui.seek.set(o, t)
  709. }, 100)
  710. },
  711. rewind: function(t) {
  712. var n = e.state.position,
  713. r = e.state.duration,
  714. i = e.ui.seek_interval,
  715. s, o;
  716. s = n - i;
  717. o = (s / r * 100).toFixed();
  718. o = o < 0 ? 0 : o;
  719. t = typeof t == "undefined" ? true : t;
  720. clearTimeout(e.ui.quick_seek_timer);
  721. e.ui.quick_seek_timer = setTimeout(function() {
  722. e.ui.seek.set(o, t)
  723. }, 100)
  724. }
  725. },
  726. volume: {
  727. pressed: false,
  728. inside: false,
  729. init: function() {
  730. var t = readCookie("volume") != null ? readCookie("volume") : e.state.volume,
  731. n = readCookie("muted") != null ? readCookie("muted") : false;
  732. t = e.state.version == "mobile" ? 100 : t;
  733. e.ui.volume.set(t, false, false);
  734. if (n !== false) {
  735. e.state.unmute = n;
  736. e.state.muted = true
  737. }
  738. document.onmousemove = function(t) {
  739. t = fixEvent(t, this);
  740. if (e.ui.volume.pressed == true && e.ui.volume.inside == false) {
  741. var n = $(e.ui.css.volume.placeholder),
  742. r = n.width(),
  743. i = t.pageX - n.offset().left,
  744. s = (i / r * 100).toFixed(2);
  745. e.ui.volume.set(s, false, true)
  746. }
  747. };
  748. document.onmouseup = function() {
  749. e.ui.volume.pressed = false
  750. };
  751. $(e.ui.css.volume.placeholder).bind({
  752. mousedown: function(t) {
  753. t = fixEvent(t, this);
  754. e.ui.volume.pressed = true;
  755. var n = $(this).width(),
  756. r = t.pageX - $(this).offset().left,
  757. i = (r / n * 100).toFixed(2);
  758. e.ui.volume.set(i);
  759. t.stopPropagation();
  760. t.preventDefault()
  761. },
  762. mousemove: function(t) {
  763. e.ui.volume.inside = true;
  764. if (e.ui.volume.pressed) {
  765. t = fixEvent(t, this);
  766. var n = $(this).width(),
  767. r = t.pageX - $(this).offset().left,
  768. i = (r / n * 100).toFixed(2);
  769. e.ui.volume.set(i, false, true)
  770. }
  771. },
  772. mouseleave: function() {
  773. e.ui.volume.inside = false
  774. },
  775. mouseup: function() {
  776. e.ui.volume.pressed = false
  777. }
  778. });
  779. $(e.ui.css.volume.container).bind({
  780. mousewheel: function(t, n) {
  781. if (n < 0) {
  782. e.ui.volume.set("-")
  783. } else if (n > 0) {
  784. e.ui.volume.set("+")
  785. }
  786. t.preventDefault()
  787. }
  788. });
  789. $(e.ui.css.volume.mute).click(function(t) {
  790. var n = e.state.muted;
  791. if (n) e.ui.volume.unmute();
  792. else e.ui.volume.mute();
  793. t.preventDefault()
  794. })
  795. },
  796. set: function(t, n, r) {
  797. var i = 2;
  798. var s = $(e.ui.css.volume.mute),
  799. o = $(e.ui.css.volume.value),
  800. u = e.state.sound,
  801. a = e.state.pb,
  802. f = parseInt(e.state.volume);
  803. if (t == "+") t = f + i;
  804. else if (t == "-") t = f - i;
  805. t = parseInt(t) > 100 ? 100 : parseInt(t).toFixed();
  806. t = parseInt(t) < 0 ? 0 : parseInt(t).toFixed();
  807. n = typeof n == "undefined" ? true : n;
  808. r = typeof r == "undefined" ? true : r;
  809. if (u != null) {
  810. u.unmute();
  811. u.setVolume(t)
  812. }
  813. e.state.volume = t;
  814. e.state.unmute = t;
  815. e.state.muted = false;
  816. createCookie("volume", t, 100);
  817. eraseCookie("muted");
  818. if (n) o.stop(true, false).animate({
  819. width: t + "%"
  820. }, 100);
  821. else o.css({
  822. width: t + "%"
  823. });
  824. if (r) e.ui.notify(e.data.text.volume + t + "%", 1);
  825. if (t == 0) s.removeClass("on").addClass("off");
  826. else s.removeClass("off").addClass("on");
  827. if (t == 0) e.favicon("mute");
  828. else if (f == 0) e.favicon(a.replace("stop", "default"))
  829. },
  830. mute: function() {
  831. var t = e.state.volume;
  832. e.ui.volume.set(0, true, false);
  833. e.ui.notify(e.data.text.mute);
  834. e.state.unmute = t;
  835. e.state.muted = true;
  836. createCookie("muted", t, 100)
  837. },
  838. unmute: function() {
  839. e.ui.volume.set(e.state.unmute)
  840. }
  841. },
  842. buttons: {
  843. init: function() {
  844. e.ui.buttons.playback();
  845. e.ui.buttons.media();
  846. e.ui.buttons.add();
  847. $(e.ui.css.buttons.download).hide();
  848. $(e.ui.css.buttons.add).hide()
  849. },
  850. playback: function() {
  851. $(e.ui.css.buttons.playback).bind({
  852. mousedown: function(t) {
  853. var n = t.target.id,
  854. r = {
  855. next: e.ui.css.buttons.next.replace("#", ""),
  856. prev: e.ui.css.buttons.prev.replace("#", "")
  857. };
  858. if (n == r.next || n == r.prev) {
  859. e.ui.pressed = (new Date).getTime();
  860. e.ui.seek_timer = window.setInterval(function() {
  861. var t = (new Date).getTime();
  862. if (e.ui.pressed && t - e.ui.pressed > e.ui.seek_delay) {
  863. e.ui.holded = true;
  864. if (n == r.next) e.ui.seek.forward();
  865. else if (n == r.prev) e.ui.seek.rewind()
  866. }
  867. }, 300)
  868. }
  869. t.preventDefault()
  870. },
  871. mouseleave: function() {
  872. e.ui.pressed = false;
  873. clearInterval(e.ui.seek_timer)
  874. },
  875. mouseup: function(t) {
  876. t = fixEvent(t);
  877. var n = t.target.id,
  878. r = {
  879. play: e.ui.css.buttons.play.replace("#", ""),
  880. pause: e.ui.css.buttons.pause.replace("#", ""),
  881. next: e.ui.css.buttons.next.replace("#", ""),
  882. prev: e.ui.css.buttons.prev.replace("#", "")
  883. };
  884. e.ui.pressed = false;
  885. clearInterval(e.ui.seek_timer);
  886. if (n == r.play) {
  887. if ($(".act").length > 0) {
  888. e.resume()
  889. } else {
  890. if (e.state.started) {
  891. e.play()
  892. } else {
  893. if ($(e.playlist.css.user.tracks).length > 0) e.play(0, "user");
  894. else e.play(0, "main")
  895. }
  896. }
  897. } else if (n == r.pause) {
  898. e.pause()
  899. } else if (n == r.next) {
  900. if (!e.ui.holded) e.next();
  901. e.ui.holded = false
  902. } else if (n == r.prev) {
  903. if (!e.ui.holded) e.prev();
  904. e.ui.holded = false
  905. }
  906. t.preventDefault()
  907. },
  908. click: function(e) {
  909. e.preventDefault()
  910. }
  911. })
  912. },
  913. media: function() {
  914. $(document).keydown(function(t) {
  915. var n = t.keyCode,
  916. r = t.ctrlKey;
  917. if ($("input:text:focus, input:password:focus, textarea:focus").length > 0 || r) return;
  918. if (n == 179 || n == 80 || n == 88) {
  919. $(e.ui.css.buttons.play + ":not(.hidden)," + e.ui.css.buttons.pause + ":not(.hidden)").trigger("mouseup");
  920. t.preventDefault()
  921. } else if (n == 177 || n == 90) {
  922. e.prev();
  923. t.preventDefault()
  924. } else if (n == 176 || n == 67) {
  925. e.next();
  926. t.preventDefault()
  927. } else if (n == 37) {
  928. e.ui.seek.rewind(false);
  929. t.preventDefault()
  930. } else if (n == 39) {
  931. e.ui.seek.forward(false);
  932. t.preventDefault()
  933. } else if (n == 77) {
  934. $(e.ui.css.volume.mute).click();
  935. t.preventDefault()
  936. } else if (n == 89) {
  937. e.ui.mode.set();
  938. t.preventDefault()
  939. } else if (n == 70) {
  940. $(e.data.css.search).val("").focus();
  941. $(window).scrollTop(0);
  942. t.preventDefault()
  943. }
  944. })
  945. },
  946. add: function() {
  947. $(e.ui.css.buttons.add).click(function(t) {
  948. var n = e.state.info,
  949. r = e.state.started;
  950. if (r) {
  951. e.playlist.user_pl.add(n);
  952. e.ui.notify(e.data.text.added)
  953. }
  954. t.preventDefault()
  955. })
  956. }
  957. },
  958. notify: function(t, n) {
  959. var r = $(e.ui.css.lcd.container),
  960. i = $(e.ui.css.lcd.notification);
  961. n = typeof n == "undefined" ? parseInt(2400) : parseInt(n * 1e3 + 400);
  962. i.html(t);
  963. r.addClass("notify");
  964. clearTimeout(e.ui.notify_timer);
  965. e.ui.notify_timer = setTimeout(function() {
  966. r.removeClass("notify")
  967. }, n)
  968. },
  969. blink: function(t) {
  970. t = typeof t == "undefined" ? "start" : t;
  971. if (t == "start") $(e.ui.css.lcd.title.container).everyTime(1e3, "controlled", function() {
  972. $(this).animate({
  973. opacity: .1
  974. }, 1e3);
  975. $(this).animate({
  976. opacity: 1
  977. }, 1e3)
  978. });
  979. else $(e.ui.css.lcd.title.container).stop(true).stopTime("controlled").animate({
  980. opacity: 1
  981. }, 100)
  982. }
  983. };
  984. e.playlist = {
  985. css: {
  986. pagination: {
  987. container: "ul.listalka"
  988. },
  989. main: {
  990. list: ".playlist",
  991. track: "li.track",
  992. tracks: ".playlist li.track",
  993. play: "a.playlist-btn-playback",
  994. download: "a.playlist-btn-down",
  995. add: "a.playlist-btn-addfav"
  996. },
  997. user: {
  998. root: "#js-uspl",
  999. list: "#user-playlist",
  1000. track: "li.user-track",
  1001. tracks: "#user-playlist li.user-track",
  1002. remove: "a.ulist-del",
  1003. ul: "#user-playlist",
  1004. empty: "#usbl-my_fav_empty",
  1005. open: "#uspl-title"
  1006. },
  1007. all: {
  1008. list: ".playlist, #user-playlist",
  1009. tracks: "li.track, li.user-track",
  1010. stations: "li.radio-station"
  1011. },
  1012. radio: {
  1013. main: {
  1014. list: ".radiobl",
  1015. station: ".radio-station",
  1016. stations: ".radiobl .radio-station"
  1017. }
  1018. }
  1019. },
  1020. data: [],
  1021. init: function() {
  1022. player.playlist.buildPlaylist();
  1023. e.playlist.reindex();
  1024. e.playlist.events();
  1025. tryNum = 0
  1026. },
  1027. tracks: function(t) {
  1028. var n, r = [];
  1029. t = typeof t == "undefined" ? "main" : t;
  1030. if (t == "main") n = $(e.playlist.css.main_tracks);
  1031. else n = $(e.playlist.css.user.tracks);
  1032. n.each(function(t) {
  1033. r[t] = e.info($(this))
  1034. });
  1035. return r
  1036. },
  1037. buildPlaylist: function() {
  1038. $("ul" + e.playlist.css.user.list).remove();
  1039. var t = $(document.createElement("ul"));
  1040. t.attr("id", e.playlist.css.user.list.replace("#", ""));
  1041. t.addClass("ulist");
  1042. $(e.playlist.css.user.root).append(t);
  1043. t.wrap('<div class="nano"><div class="nano-content"></div></div>');
  1044. e.playlist.download()
  1045. },
  1046. reindex: function() {
  1047. $(e.playlist.css.main.tracks).each(function(e) {
  1048. $(this).data("index", e);
  1049. $(this).attr("data-index", e)
  1050. });
  1051. $(e.playlist.css.user.tracks).each(function(e) {
  1052. $(this).data("index", e);
  1053. $(this).attr("data-index", e)
  1054. });
  1055. e.state.i = e.playlist.act();
  1056. e.playlist.empty()
  1057. },
  1058. empty: function() {
  1059. var t = $(e.playlist.css.user.empty),
  1060. n = $(e.playlist.css.user.tracks),
  1061. r = $(e.playlist.css.user.list),
  1062. i = false,
  1063. s = window.location.pathname,
  1064. o = $("body").data("playlist-url");
  1065. if (o == s) {
  1066. i = true
  1067. }
  1068. if (!i && e.data.url.banner_pages.length) {
  1069. for (var u = 0; u < e.data.url.banner_pages.length; u++) {
  1070. if (e.data.url.banner_pages[u] == s) {
  1071. i = true;
  1072. break
  1073. }
  1074. }
  1075. }
  1076. if (i) {
  1077. $(e.playlist.css.user.root).hide();
  1078. $(e.data.css.if_no_uspl).html('<div id="if_no_uspl"></div>')
  1079. } else {
  1080. $(e.playlist.css.user.root).show();
  1081. $(e.data.css.if_no_uspl).html("")
  1082. }
  1083. if (n.length > 0) {
  1084. t.addClass("hidden");
  1085. r.removeClass("hidden")
  1086. } else {
  1087. t.removeClass("hidden");
  1088. r.addClass("hidden")
  1089. }
  1090. },
  1091. act: function() {
  1092. if (e.state.pl == "onesongblock") return 0;
  1093. var t = e.state.pl,
  1094. n = t == "main" ? $(e.playlist.css.main.tracks) : $(e.playlist.css.user.tracks),
  1095. r = n.filter(".act").length > 0 ? parseInt(n.filter(".act").attr("data-index")) : 0;
  1096. return r
  1097. },
  1098. set: function(t, n, r) {
  1099. var i = "act";
  1100. n = typeof n == "undefined" ? "main" : n;
  1101. r = typeof r == "undefined" ? "play" : r;
  1102. var s = e.track(t, n);
  1103. $("li.act").removeClass(i);
  1104. $(e.playlist.css.main.play).removeClass("playlist-btn-pause").addClass("playlist-btn-play");
  1105. $("#fixplayer .minishare").remove();
  1106. var o = s.find("h2").text();
  1107. if (o == "") o = $(".onesongblock-title b").text() + " - " + $(".onesongblock-title em").text();
  1108. $("#fixplayer-foo").after(e.getSocialButtons(s.data("id"), o, s.data("url_song")));
  1109. initGraybox();
  1110. if (r == "stop") return;
  1111. switch (n) {
  1112. case "main":
  1113. s.addClass(i);
  1114. var u = s.find(e.playlist.css.main.play);
  1115. if (r == "pause") u.removeClass("playlist-btn-pause").addClass("playlist-btn-play");
  1116. else if (r == "play") u.removeClass("playlist-btn-play").addClass("playlist-btn-pause");
  1117. break;
  1118. default:
  1119. s.addClass(i);
  1120. break
  1121. }
  1122. },
  1123. scroll: function(e, t) {},
  1124. download: function() {
  1125. $.post(e.data.url.get_pl, {
  1126. action: "get"
  1127. }, function(t, n) {
  1128. t = $.parseJSON(t);
  1129. if (n == "success" && t != null) {
  1130. tryNum = 0;
  1131. e.playlist.data = t.tracks;
  1132. e.playlist.user_pl.render()
  1133. } else setTimeout(e.playlist.download, 1e3 + 5e3 * ++tryNum)
  1134. })
  1135. },
  1136. events: function() {
  1137. $(document).on("click", e.playlist.css.all.tracks, function(t) {
  1138. if ($(t.target).hasClass("ui-sortable-helper")) {
  1139. return
  1140. }
  1141. var n = $(this).attr("data-index"),
  1142. r = $(this).hasClass("track") ? "main" : "user",
  1143. i = player.state.paused,
  1144. s = $(this).hasClass("act") ? true : false;
  1145. if (s) {
  1146. if (i) e.resume();
  1147. else e.pause()
  1148. } else e.play(n, r);
  1149. t.preventDefault()
  1150. });
  1151. $(document).on("click", e.playlist.css.main.download, function(t) {
  1152. t.stopPropagation();
  1153. var n = $(this).parent().parent().attr("data-index"),
  1154. r = e.info(e.track(n, "main"));
  1155. $.ajax({
  1156. type: "POST",
  1157. async: false,
  1158. contentType: "application/x-www-form-urlencoded",
  1159. dataType: "json",
  1160. url: e.data.url.download,
  1161. data: {
  1162. song_id: r.id,
  1163. song_name: r.song,
  1164. song_mp3: r.mp3,
  1165. song_artist: r.artist
  1166. },
  1167. success: function(e) {
  1168. if (e.download == false) {
  1169. t.preventDefault();
  1170. $("body").prepend(e.code)
  1171. }
  1172. }
  1173. });
  1174. t.stopPropagation()
  1175. });
  1176. $(document).on("click", e.playlist.css.main.add, function(t) {
  1177. var n = e.info($(this).parent("em").parent(e.playlist.css.main.track));
  1178. e.playlist.user_pl.add(n);
  1179. t.stopPropagation();
  1180. t.preventDefault()
  1181. });
  1182. $(document).on("click", e.playlist.css.user.remove, function(t) {
  1183. var n = $(this).parent("em").parent(e.playlist.css.user.track);
  1184. if (n.length == 0) n = $(this).parent("em").parent(e.playlist.css.main.track);
  1185. n = n.data("index");
  1186. e.playlist.user_pl.remove(n);
  1187. t.stopPropagation();
  1188. t.preventDefault()
  1189. });
  1190. $(document).on("click", e.playlist.css.all.stations, function(t) {
  1191. var n = $(this).data("index"),
  1192. r = "radio",
  1193. i = player.state.paused,
  1194. s = $(this).hasClass("act") ? true : false;
  1195. if (s) {
  1196. if (i) e.resume();
  1197. else e.pause()
  1198. } else e.play(n, r);
  1199. t.preventDefault()
  1200. })
  1201. },
  1202. tools: function() {},
  1203. activate: function() {
  1204. var t = e.state.info !== null ? e.state.info.id : false,
  1205. n, r = e.state.paused ? "pause" : "play",
  1206. i = e.state.pl;
  1207. if (!t) return;
  1208. n = $(e.playlist.css.all.tracks).not(".user-track").filter('li[data-id="' + t + '"]').filter(":first");
  1209. if (n.length > 0) e.playlist.set(n.data("index"), i, r)
  1210. },
  1211. user_pl: {
  1212. init: function() {
  1213. var t = $("#user-playlist");
  1214. if (!t.find("li").length) {
  1215. t.addClass("hidden")
  1216. }
  1217. $(e.playlist.css.user.open).on("click", function() {
  1218. if ($("body").hasClass("xbody_mod_uspl-open")) {
  1219. $("body").removeClass("xbody_mod_uspl-open");
  1220. $(document).unbind("click.eventHideUspl")
  1221. } else {
  1222. $("body").addClass("xbody_mod_uspl-open");
  1223. $(document).bind("click.eventHideMinishare", function(e) {
  1224. if (!$(e.target).closest("#uspl").length && !$(e.target).closest("#fixplayer").length) {
  1225. $("body").removeClass("xbody_mod_uspl-open");
  1226. $(document).unbind("click.eventHideUspl")
  1227. }
  1228. });
  1229. var e = t.find("li.act");
  1230. if (e.length) {
  1231. t.scrollTop(e.position().top)
  1232. }
  1233. }
  1234. });
  1235. e.playlist.user_pl.sortable()
  1236. },
  1237. add: function(t) {
  1238. var n = false;
  1239. for (var r = 0; r < e.playlist.data.length; r++) {
  1240. if (t.id == e.playlist.data[r].id) {
  1241. n = true;
  1242. break
  1243. }
  1244. }
  1245. if (!n) {
  1246. t.listen = t.download = t.mp3;
  1247. e.playlist.data.unshift(t);
  1248. e.playlist.user_pl.render("new");
  1249. e.playlist.user_pl.save();
  1250. e.notify("", "info", 2, e.data.text.added);
  1251. e.playlist.user_pl.render()
  1252. } else {
  1253. e.notify("", "error", 2, e.data.text.have)
  1254. }
  1255. },
  1256. render: function(t) {
  1257. var n = e.playlist.css.user.ul,
  1258. r = "";
  1259. var i = t == "new" ? 1 : 0;
  1260. $(n).html("");
  1261. for (; i < e.playlist.data.length; i++) {
  1262. var s = e.playlist.data[i];
  1263. r = '<li class="user-track" data-index="' + i + '" data-id="' + s.id + '" data-mp3="' + s.listen + '" data-url_song="' + s.url_song + '" data-duration="' + s.duration + '"><em><a class="ulist-del no-ajaxy" href="#" title="delete">(delete)</a><span class="ulist-duration">' + player.time(s.duration) + '</span></em><h2 class="ulist-name"><b>' + s.artist + "</b><i>&ndash;</i><em>" + s.song + "</em></h2></li>\r\n";
  1264. e.playlist.data[i].elem = $(r);
  1265. $(n).append(e.playlist.data[i].elem)
  1266. }
  1267. if (t == "new") {
  1268. var s = e.playlist.data[0];
  1269. track = '<li class="user-track new" data-index="0" data-id="' + s.id + '" data-mp3="' + s.listen + '" data-url_song="' + s.url_song + '" data-duration="' + s.duration + '"><em><a class="ulist-del no-ajaxy" href="#" title="delete">(delete)</a><span class="ulist-duration">' + player.time(s.duration) + '</span></em><h2 class="ulist-name"><b>' + s.artist + "</b><i>&ndash;</i><em>" + s.song + "</em></h2></li>";
  1270. e.playlist.data[0].elem = $(track);
  1271. $(e.playlist.data[0].elem).prependTo(n).css({
  1272. display: "none"
  1273. }).slideDown(100)
  1274. }
  1275. $(".js-uspl-loading").hide();
  1276. e.playlist.empty();
  1277. $("div.nano").nanoScroller();
  1278. if ($(n).children("li").length) {
  1279. $("#usbl-my_fav_empty").hide()
  1280. } else {
  1281. if ($("#usbl-my_fav_empty").length) {
  1282. $("#usbl-my_fav_empty").fadeIn(400)
  1283. } else {
  1284. $("#js-uspl").children("span").after('<div id="usbl-my_fav_empty"><b>[ empty ]</b><i>Like this song?<br />Add it to favorites!</i></div>')
  1285. }
  1286. }
  1287. },
  1288. remove: function(t) {
  1289. var n = $(e.playlist.css.user.tracks).eq(t);
  1290. if (document.location.pathname.indexOf("/favorites") != -1) n = $(e.playlist.css.main.tracks).eq(t);
  1291. n.animate({
  1292. height: 0
  1293. }, 100, function() {
  1294. $(this).remove();
  1295. e.playlist.data.splice(t, 1);
  1296. e.playlist.user_pl.render();
  1297. e.playlist.user_pl.save();
  1298. e.notify("", "info", 2, e.data.text.removed)
  1299. })
  1300. },
  1301. save: function() {
  1302. var t = e.data.url.save_pl,
  1303. n = [];
  1304. e.playlist.reindex();
  1305. e.playlist.data.sort(function(e, t) {
  1306. var e = e.elem.attr("data-index");
  1307. var t = t.elem.attr("data-index");
  1308. if (e < t) return -1;
  1309. if (e > t) return 1;
  1310. return 0
  1311. });
  1312. $.each(e.playlist.data, function(e, t) {
  1313. n[e] = t.id
  1314. });
  1315. n = implode(",", n);
  1316. $.ajax({
  1317. type: "POST",
  1318. url: t,
  1319. data: {
  1320. action: "set",
  1321. tracks: n
  1322. }
  1323. })
  1324. },
  1325. sortable: function() {
  1326. if (document.getElementById("user-playlist") == null) return;
  1327. new Sortable(document.getElementById("user-playlist"), {
  1328. ghostClass: "sortable-ghost",
  1329. onEnd: function(t) {
  1330. t.stopPropagation();
  1331. if ((new Date).getTime() - Start_drag < 500) return false;
  1332. e.playlist.user_pl.save("resort")
  1333. },
  1334. onStart: function(e) {
  1335. e.stopPropagation();
  1336. Start_drag = (new Date).getTime()
  1337. }
  1338. })
  1339. }
  1340. }
  1341. };
  1342. e.radio = {
  1343. interval: 5e3,
  1344. update: function(t) {
  1345. if (t.radio && t.now) e.radio.rds.start();
  1346. if (t.radio) $(e.ui.css.player).addClass("is-radio");
  1347. else $(e.ui.css.player).removeClass("is-radio");
  1348. sound.setVolume(e.state.volume)
  1349. },
  1350. rds: {
  1351. start: function() {
  1352. e.radio.rds.get();
  1353. e.radio.rds.stop();
  1354. e.radio.timer = setInterval(function() {
  1355. e.radio.rds.get()
  1356. }, e.radio.interval)
  1357. },
  1358. stop: function() {
  1359. clearInterval(e.radio.timer)
  1360. },
  1361. get: function() {
  1362. if (e.state.info.radio && e.state.info.now) $.ajax({
  1363. type: "GET",
  1364. url: e.state.info.now,
  1365. dataType: "html",
  1366. success: function(t) {
  1367. e.ui.update({
  1368. song: t
  1369. })
  1370. }
  1371. })
  1372. }
  1373. }
  1374. };
  1375. e.crossfade = {
  1376. duration: 750,
  1377. preload: 15e3,
  1378. tail: null,
  1379. end: 0,
  1380. init: function() {},
  1381. fade_out: function(t) {
  1382. if (t != null) {
  1383. var n = parseInt((new Date).getTime()),
  1384. r = parseInt(e.crossfade.duration),
  1385. i = n + r,
  1386. s = t.volume;
  1387. t.active = false;
  1388. clearInterval(t.cf_out_timer);
  1389. if (t.cf) clearInterval(t.cf_in_timer);
  1390. t.setVolume(s);
  1391. t.cf_out_timer = window.setInterval(function() {
  1392. var e = (new Date).getTime();
  1393. if (e < i) {
  1394. var n = ((i - e) / r * s).toFixed();
  1395. t.setVolume(n);
  1396. t.cf = true
  1397. } else {
  1398. clearInterval(t.cf_out_timer);
  1399. t.unload().stop();
  1400. t.cf = false
  1401. }
  1402. }, 50)
  1403. }
  1404. },
  1405. fade_in: function(t) {
  1406. if (t != null) {
  1407. var n = parseInt((new Date).getTime()),
  1408. r = parseInt(e.crossfade.duration),
  1409. i = n + r,
  1410. s = parseInt(e.state.volume);
  1411. t.active = true;
  1412. clearInterval(t.cf_in_timer);
  1413. if (t.cf) clearInterval(t.cf_out_timer);
  1414. t.setVolume(0);
  1415. t.play();
  1416. t.cf_in_timer = window.setInterval(function() {
  1417. var e = parseInt((new Date).getTime());
  1418. if (e < i) {
  1419. var n = (s - (i - e) / r * s).toFixed();
  1420. t.setVolume(n);
  1421. t.cf = true
  1422. } else {
  1423. clearInterval(t.cf_in_timer);
  1424. t.setVolume(s);
  1425. t.cf = false
  1426. }
  1427. }, 50)
  1428. }
  1429. }
  1430. };
  1431. e.inc404counters = function() {
  1432. var t = false;
  1433. $.each($("div.container_message"), function(e, n) {
  1434. var r = $(n).children("p").children("span");
  1435. if (r.length) {
  1436. var i = parseInt(r.text());
  1437. if (i > 0) {
  1438. r.text(i - 1);
  1439. t = true
  1440. }
  1441. }
  1442. });
  1443. if (t) {
  1444. e.counters_started = setTimeout(function() {
  1445. e.inc404counters()
  1446. }, 1e3)
  1447. } else {
  1448. e.counters_started = null
  1449. }
  1450. };
  1451. e.check = function(t, n, r) {
  1452. clearTimeout(e.error_timer);
  1453. $.ajax({
  1454. url: t,
  1455. type: "head",
  1456. crossDomain: false,
  1457. error: function() {
  1458. e.error_timer_count = typeof e.error_timer_count == "undefined" ? 1 : parseInt(e.error_timer_count) + 1;
  1459. var i = e.error_timer_count;
  1460. if (i < 3) {
  1461. e.error_timer = setTimeout(function() {
  1462. e.check(t, n, r)
  1463. }, 1500)
  1464. } else if (e.error_timer_count > 2) {
  1465. e.error_timer_count = 0;
  1466. n.css({
  1467. opacity: .3
  1468. });
  1469. e.ui.notify(e.data.text.unavailable);
  1470. r.destruct();
  1471. e.next(true)
  1472. }
  1473. },
  1474. success: function() {
  1475. n.css({
  1476. opactity: 1
  1477. })
  1478. }
  1479. })
  1480. };
  1481. e.get_next = function(t) {
  1482. var n = e.state.pl,
  1483. r;
  1484. switch (n) {
  1485. case "main":
  1486. r = $(e.playlist.css.main.tracks);
  1487. break;
  1488. case "user":
  1489. r = $(e.playlist.css.user.tracks);
  1490. break;
  1491. case "radio":
  1492. r = $(e.playlist.css.radio.main.stations);
  1493. break
  1494. }
  1495. var i = r.length,
  1496. s = r.filter(".act").length > 0 ? true : false,
  1497. o = s ? parseInt(e.state.i) : 0,
  1498. u = null,
  1499. a = e.state.mode;
  1500. a = n == "radio" || (a == "repeat" || a == "stop") && !t ? "line" : a;
  1501. switch (a) {
  1502. case "line":
  1503. u = o + 1;
  1504. if (u + 1 > i || !s) u = 0;
  1505. break;
  1506. case "repeat":
  1507. u = o;
  1508. break;
  1509. case "stop":
  1510. u = o;
  1511. break;
  1512. case "shuffle":
  1513. u = Math.floor(Math.random() * i);
  1514. if (u == o) u = Math.floor(Math.random() * i);
  1515. if (u == o) u = Math.floor(Math.random() * i);
  1516. break
  1517. }
  1518. return u
  1519. };
  1520. e.track = function(t, n) {
  1521. var r;
  1522. switch (n) {
  1523. case "main":
  1524. r = $(e.playlist.css.main.tracks).eq(t);
  1525. break;
  1526. case "user":
  1527. r = $(e.playlist.css.user.tracks).eq(t);
  1528. break;
  1529. case "onesongblock":
  1530. r = t;
  1531. break;
  1532. case "radio":
  1533. r = $(e.playlist.css.radio.main.stations).eq(t);
  1534. break
  1535. }
  1536. return r
  1537. };
  1538. e.info = function(e) {
  1539. if (e.closest(".onesongblock").length) {
  1540. return {
  1541. index: -1,
  1542. mp3: e.data("mp3"),
  1543. id: e.data("id"),
  1544. duration: parseInt(e.data("duration")),
  1545. artist: e.parent().parent().find("h3 b").text(),
  1546. song: e.parent().parent().find("h3 em").text()
  1547. }
  1548. }
  1549. var t = e.hasClass("radio-station") || e.hasClass("radio-station-mini") ? true : false;
  1550. if (t) {
  1551. return {
  1552. index: e.data("index"),
  1553. mp3: e.data("mp3"),
  1554. id: e.data("id"),
  1555. duration: e.data("duration"),
  1556. artist: e.find("h4").text(),
  1557. song: "Song 1",
  1558. radio: t,
  1559. now: e.data("now"),
  1560. cover: e.find("img").length > 0 ? e.find("img").attr("src") : false,
  1561. lyrics: e.data("lyrics-id")
  1562. }
  1563. }
  1564. return {
  1565. index: e.data("index"),
  1566. mp3: e.data("mp3"),
  1567. id: e.data("id"),
  1568. duration: e.data("duration"),
  1569. artist: e.find("h2 b").text(),
  1570. song: e.find("h2 em").text()
  1571. }
  1572. };
  1573. e.favicon = function(t) {
  1574. var n = t == "default" ? "/favicon.ico" : e.data.url.favicon.replace("%mode%", t);
  1575. $('link[rel$="icon"]').remove();
  1576. $("head").append('<link rel="shortcut icon" type="image/x-icon" href="' + n + '" />')
  1577. };
  1578. e.time = function(e) {
  1579. e = e / 1e3;
  1580. var t = parseInt(e / 60, 10);
  1581. if (String(t).length == 1) t = "0" + t;
  1582. var n = parseInt(e - t * 60, 10);
  1583. if (String(n).length == 1) n = "0" + n;
  1584. var r = t + ":" + n;
  1585. return r
  1586. };
  1587. e.notify = function(e, t, n, r) {
  1588. var i = {
  1589. text: typeof e == "undefined" ? "" : "<p>" + e + "</p>",
  1590. caption: typeof r == "undefined" ? "" : "<h4>" + r + "</h4>",
  1591. type: typeof t == "undefined" ? "info" : t,
  1592. time: typeof n == "undefined" ? 3 : n
  1593. },
  1594. s = document.createElement("div");
  1595. if ($("#notifications").length < 1) $(document.body).append('<div id="notifications"></div>');
  1596. $(s).css("display", "none").addClass("notification").addClass("notification-" + i.type).html(i.caption + i.text).appendTo($("#notifications")).slideDown(200);
  1597. setTimeout(function() {
  1598. $(s).animate({
  1599. opacity: 0,
  1600. height: 0
  1601. }, 200, function() {
  1602. $(s).remove()
  1603. })
  1604. }, i.time * 1e3)
  1605. };
  1606. e.getSocialButtons = function(e, t, n) {
  1607. var r = encodeURIComponent(t.substr(0, 80));
  1608. var i = encodeURIComponent(t.substr(0, 200));
  1609. t = encodeURIComponent(t);
  1610. var s = encodeURIComponent("Free-MP3-music.download");
  1611. var o = encodeURIComponent("Free music online || Download free mp3");
  1612. var u = encodeURI(n);
  1613. var a = "http://vk.com/share.php?description=" + s + "%0A" + o + "&title=" + i + "&url=" + u;
  1614. var f = "http://ok.ru/dk?st.comments=" + i + "%0A" + u + "%0A" + o + "&st.cmd=addShare&st._surl=" + u;
  1615. var l = "http://facebook.com/sharer.php?u=" + u;
  1616. var c = "http://plus.google.com/share?url=" + u;
  1617. var h = "http://twitter.com/share?text=" + r + "%0A" + o + "%0A&url=" + u;
  1618. return '<span class="rt_share minishare"><!--' + '--><a class="rt_share-fb" href="javascript:void(0);" title="Share &mdash; facebook" onclick="window.open(\'' + l + "', '_blank', 'scrollbars=1, resizable=1, width=550, height=500'); event.stopPropagation();event.preventDefault(); return false;\">(fb)</a><!--" + '--><a class="rt_share-tw" href="javascript:void(0);" title="Share &mdash; twitter" onclick="window.open(\'' + h + "', '_blank', 'scrollbars=1, resizable=1, width=550, height=500'); event.stopPropagation();event.preventDefault(); return false;\">(tw)</a><!--" + '--><a class="rt_share-gp" href="javascript:void(0);" title="Share &mdash; Google+" onclick="window.open(\'' + c + "', '_blank', 'scrollbars=1, resizable=1, width=550, height=500'); event.stopPropagation();event.preventDefault(); return false;\">(gp)</a><!--" + '--><a class="rt_share-url" href="javascript:void(0);" title="Get link" onclick="open_modal(this);$(\'.pp-song_link input\').focus(function(){$(this).select();});$(\'.pp-song_link input\').mouseup(function(e){e.preventDefault();});event.stopPropagation();return false;"><div class="pp-song_link"><input type="text" value="' + n + '" /></div></a><!--' + "--></span>"
  1619. }
  1620. }
  1621.  
  1622. function GetTune() {
  1623. var e = this;
  1624. e.data = {
  1625. css: {
  1626. search: {
  1627. form: "#search-form",
  1628. value: "#search-value",
  1629. submit: "#search-submit",
  1630. submitter: "#search-submitter",
  1631. cleaner: "#clear-search"
  1632. },
  1633. player_title: "#player-page-title",
  1634. bio: {
  1635. container: "#artist-bio",
  1636. toggle: "#artist-bio-toggle"
  1637. }
  1638. },
  1639. url: {
  1640. search: "/public/api.search.php"
  1641. },
  1642. text: {
  1643. loading: "loading..."
  1644. }
  1645. };
  1646. e.init = function() {
  1647. e.redirectIfNecessary();
  1648. e.run.navigation();
  1649. e.run.storage();
  1650. e.history()
  1651. };
  1652. e.history = function() {
  1653. e.loadOnesongBlock();
  1654. e.run.search();
  1655. initGraybox();
  1656. e.run.liru();
  1657. e.run.player_title();
  1658. player.playlist.tools();
  1659. player.playlist.activate();
  1660. player.playlist.reindex();
  1661. e.run.bio();
  1662. $(window).scrollTop(0)
  1663. };
  1664. e.run = {
  1665. navigation: function() {
  1666. $(document.body).append('<span id="load-indicator">' + e.data.text.loading + "</span>")
  1667. },
  1668. search: function() {
  1669. var t = $(e.data.css.search.form),
  1670. n = $(e.data.css.search.value),
  1671. r = $(e.data.css.search.submit),
  1672. i = $(e.data.css.search.submitter),
  1673. s = n.data("placeholder"),
  1674. o = $(e.data.css.search.cleaner);
  1675. if (!!(window.history && history.pushState)) {
  1676. t.bind({
  1677. submit: function(t) {
  1678. var s = $(e.data.css.search.value).val().replace("/", "").replace(/&/g, "&"),
  1679. o = e.data.url.search;
  1680. if (s != n.val()) {
  1681. n.attr("disabled", true);
  1682. r.attr("disabled", true)
  1683. }
  1684. $.ajax({
  1685. type: "POST",
  1686. url: o,
  1687. data: {
  1688. q: s
  1689. },
  1690. success: function(e) {
  1691. i.attr("href", e).click()
  1692. },
  1693. dataType: "html"
  1694. });
  1695. n.blur();
  1696. t.preventDefault()
  1697. }
  1698. })
  1699. }
  1700. n.bind({
  1701. focus: function() {
  1702. if (n.val() == s) n.val("");
  1703. if (n.val().length > 0) o.removeClass("hidden");
  1704. else o.addClass("hidden")
  1705. },
  1706. blur: function() {
  1707. if (n.val() == "") n.val(s)
  1708. },
  1709. keyup: function() {
  1710. if (n.val().length > 0) o.removeClass("hidden");
  1711. else o.addClass("hidden")
  1712. }
  1713. });
  1714. o.bind({
  1715. click: function(e) {
  1716. $(this).addClass("hidden");
  1717. n.val("").focus();
  1718. e.preventDefault()
  1719. }
  1720. })
  1721. },
  1722. storage: function() {
  1723. var e = $.jStorage;
  1724. if (e.storageAvailable()) {
  1725. e.listenKeyChange("player", function(e, t) {
  1726. if (t == "updated" && $(":hover").length == 0) player.pause()
  1727. })
  1728. }
  1729. },
  1730. liru: function() {
  1731. var e = typeof window.custom_ref != "undefined" ? window.custom_ref : document.referrer;
  1732. (new Image).src = "//counter.yadro.ru/hit;xn--41a-ws?r" + escape(e) + (typeof screen == "undefined" ? "" : ";s" + screen.width + "*" + screen.height + "*" + (screen.colorDepth ? screen.colorDepth : screen.pixelDepth)) + ";u" + escape(document.URL) + ";" + Math.random()
  1733. },
  1734. player_title: function() {
  1735. var t = $(e.data.css.player_title),
  1736. n = function() {
  1737. if (t.length > 0 && player.state.pb == "stop") player.ui.update({
  1738. artist: t.find("b").html(),
  1739. song: t.find("span").html()
  1740. })
  1741. };
  1742. if (typeof player == "object") n();
  1743. else SM.onready = n()
  1744. },
  1745. bio: function() {
  1746. var t = $(e.data.css.bio.container),
  1747. n = $(e.data.css.bio.toggle);
  1748. n.on("click", function(e) {
  1749. if (t.hasClass("ok")) {
  1750. n.text(n.data("open"));
  1751. t.removeClass("ok")
  1752. } else {
  1753. n.text(n.data("close"));
  1754. t.addClass("ok")
  1755. }
  1756. e.preventDefault()
  1757. });
  1758. var r = window.location.pathname.match(/^\/song\/(\d+)[^\d]+\//);
  1759. if (r && r.length == 2) {
  1760. addToggleBio()
  1761. }
  1762. }
  1763. };
  1764. e.loadOnesongBlock = function() {
  1765. var e = window.location.pathname.match(/^\/song\/[^\/]+\/(\d+)[^\d]+/);
  1766. if (e && e.length == 2) {
  1767. var t = 0;
  1768. if (player.state.info && typeof player.state.info.id != "undefined") {
  1769. t = player.state.info.id;
  1770. if (player.state.pl == "main") {
  1771. player.state.pl = "onesongblock"
  1772. }
  1773. }
  1774. if (t == e[1]) {
  1775. var n = player.state.paused ? player.data.text.playonesong : player.data.text.pauseonesong;
  1776. $(".onesongblock-btns a:first").addClass("act").html(n)
  1777. }
  1778. $(".onesongblock-btns a:first").on("click", function() {
  1779. var t = 0;
  1780. if (player.state.info && typeof player.state.info.id != "undefined") t = player.state.info.id;
  1781. if (t != e[1]) {
  1782. player.play($(this), "onesongblock");
  1783. $(this).html(player.data.text.pauseonesong)
  1784. } else {
  1785. var n = player.state.paused;
  1786. if (n) {
  1787. $(this).html(player.data.text.pauseonesong);
  1788. player.resume()
  1789. } else {
  1790. $(this).html(player.data.text.playonesong);
  1791. player.pause()
  1792. }
  1793. }
  1794. })
  1795. } else {
  1796. if (typeof player != "undefined" && player.state.pl == "onesongblock") {
  1797. player.state.pl = "main"
  1798. }
  1799. }
  1800. };
  1801. e.redirectIfNecessary = function() {
  1802. return;
  1803. var e = window.location.hash.substring(1);
  1804. if (e.indexOf("song") == -1) return;
  1805. var t = e.replace("song", ""),
  1806. n = "/song/" + t + "/" + t + "/" + t + "/";
  1807. window.location.href = n
  1808. }
  1809. }
  1810.  
  1811. function addToggleBio() {
  1812. $(".artist_biography").each(function() {
  1813. var e = $(this);
  1814. if (e.find(".artist_biography-p").height() > 900) {
  1815. e.find(".artist_biography-p").addClass("rt-close").append('<a href="javascript:void(0);" class="artist_biography-p__open" onclick="$(this).parent().removeClass(\'rt-close\');"></a>')
  1816. }
  1817. })
  1818. }! function(e, t) {
  1819. "object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function(e) {
  1820. if (!e.document) throw new Error("jQuery requires a window with a document");
  1821. return t(e)
  1822. } : t(e)
  1823. }("undefined" != typeof window ? window : this, function(a, b) {
  1824. function s(e) {
  1825. var t = e.length,
  1826. n = o.type(e);
  1827. return "function" === n || o.isWindow(e) ? !1 : 1 === e.nodeType && t ? !0 : "array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e
  1828. }
  1829.  
  1830. function x(e, t, n) {
  1831. if (o.isFunction(t)) return o.grep(e, function(e, r) {
  1832. return !!t.call(e, r, e) !== n
  1833. });
  1834. if (t.nodeType) return o.grep(e, function(e) {
  1835. return e === t !== n
  1836. });
  1837. if ("string" == typeof t) {
  1838. if (w.test(t)) return o.filter(t, e, n);
  1839. t = o.filter(t, e)
  1840. }
  1841. return o.grep(e, function(e) {
  1842. return g.call(t, e) >= 0 !== n
  1843. })
  1844. }
  1845.  
  1846. function D(e, t) {
  1847. while ((e = e[t]) && 1 !== e.nodeType);
  1848. return e
  1849. }
  1850.  
  1851. function G(e) {
  1852. var t = F[e] = {};
  1853. return o.each(e.match(E) || [], function(e, n) {
  1854. t[n] = !0
  1855. }), t
  1856. }
  1857.  
  1858. function I() {
  1859. m.removeEventListener("DOMContentLoaded", I, !1), a.removeEventListener("load", I, !1), o.ready()
  1860. }
  1861.  
  1862. function K() {
  1863. Object.defineProperty(this.cache = {}, 0, {
  1864. get: function() {
  1865. return {}
  1866. }
  1867. }), this.expando = o.expando + Math.random()
  1868. }
  1869.  
  1870. function P(e, t, n) {
  1871. var r;
  1872. if (void 0 === n && 1 === e.nodeType)
  1873. if (r = "data-" + t.replace(O, "-$1").toLowerCase(), n = e.getAttribute(r), "string" == typeof n) {
  1874. try {
  1875. n = "true" === n ? !0 : "false" === n ? !1 : "null" === n ? null : +n + "" === n ? +n : N.test(n) ? o.parseJSON(n) : n
  1876. } catch (i) {}
  1877. M.set(e, t, n)
  1878. } else n = void 0;
  1879. return n
  1880. }
  1881.  
  1882. function Z() {
  1883. return !0
  1884. }
  1885.  
  1886. function $() {
  1887. return !1
  1888. }
  1889.  
  1890. function _() {
  1891. try {
  1892. return m.activeElement
  1893. } catch (e) {}
  1894. }
  1895.  
  1896. function jb(e, t) {
  1897. return o.nodeName(e, "table") && o.nodeName(11 !== t.nodeType ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e
  1898. }
  1899.  
  1900. function kb(e) {
  1901. return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e
  1902. }
  1903.  
  1904. function lb(e) {
  1905. var t = gb.exec(e.type);
  1906. return t ? e.type = t[1] : e.removeAttribute("type"), e
  1907. }
  1908.  
  1909. function mb(e, t) {
  1910. for (var n = 0, r = e.length; r > n; n++) L.set(e[n], "globalEval", !t || L.get(t[n], "globalEval"))
  1911. }
  1912.  
  1913. function nb(e, t) {
  1914. var n, r, i, s, u, a, f, l;
  1915. if (1 === t.nodeType) {
  1916. if (L.hasData(e) && (s = L.access(e), u = L.set(t, s), l = s.events)) {
  1917. delete u.handle, u.events = {};
  1918. for (i in l)
  1919. for (n = 0, r = l[i].length; r > n; n++) o.event.add(t, i, l[i][n])
  1920. }
  1921. M.hasData(e) && (a = M.access(e), f = o.extend({}, a), M.set(t, f))
  1922. }
  1923. }
  1924.  
  1925. function ob(e, t) {
  1926. var n = e.getElementsByTagName ? e.getElementsByTagName(t || "*") : e.querySelectorAll ? e.querySelectorAll(t || "*") : [];
  1927. return void 0 === t || t && o.nodeName(e, t) ? o.merge([e], n) : n
  1928. }
  1929.  
  1930. function pb(e, t) {
  1931. var n = t.nodeName.toLowerCase();
  1932. "input" === n && T.test(e.type) ? t.checked = e.checked : ("input" === n || "textarea" === n) && (t.defaultValue = e.defaultValue)
  1933. }
  1934.  
  1935. function sb(e, t) {
  1936. var n = o(t.createElement(e)).appendTo(t.body),
  1937. r = a.getDefaultComputedStyle ? a.getDefaultComputedStyle(n[0]).display : o.css(n[0], "display");
  1938. return n.detach(), r
  1939. }
  1940.  
  1941. function tb(e) {
  1942. var t = m,
  1943. n = rb[e];
  1944. return n || (n = sb(e, t), "none" !== n && n || (qb = (qb || o("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement), t = qb[0].contentDocument, t.write(), t.close(), n = sb(e, t), qb.detach()), rb[e] = n), n
  1945. }
  1946.  
  1947. function xb(e, t, n) {
  1948. var r, i, s, u, a = e.style;
  1949. return n = n || wb(e), n && (u = n.getPropertyValue(t) || n[t]), n && ("" !== u || o.contains(e.ownerDocument, e) || (u = o.style(e, t)), vb.test(u) && ub.test(t) && (r = a.width, i = a.minWidth, s = a.maxWidth, a.minWidth = a.maxWidth = a.width = u, u = n.width, a.width = r, a.minWidth = i, a.maxWidth = s)), void 0 !== u ? u + "" : u
  1950. }
  1951.  
  1952. function yb(e, t) {
  1953. return {
  1954. get: function() {
  1955. return e() ? void delete this.get : (this.get = t).apply(this, arguments)
  1956. }
  1957. }
  1958. }
  1959.  
  1960. function Fb(e, t) {
  1961. if (t in e) return t;
  1962. var n = t[0].toUpperCase() + t.slice(1),
  1963. r = t,
  1964. i = Eb.length;
  1965. while (i--)
  1966. if (t = Eb[i] + n, t in e) return t;
  1967. return r
  1968. }
  1969.  
  1970. function Gb(e, t, n) {
  1971. var r = Ab.exec(t);
  1972. return r ? Math.max(0, r[1] - (n || 0)) + (r[2] || "px") : t
  1973. }
  1974.  
  1975. function Hb(e, t, n, r, i) {
  1976. for (var s = n === (r ? "border" : "content") ? 4 : "width" === t ? 1 : 0, u = 0; 4 > s; s += 2) "margin" === n && (u += o.css(e, n + R[s], !0, i)), r ? ("content" === n && (u -= o.css(e, "padding" + R[s], !0, i)), "margin" !== n && (u -= o.css(e, "border" + R[s] + "Width", !0, i))) : (u += o.css(e, "padding" + R[s], !0, i), "padding" !== n && (u += o.css(e, "border" + R[s] + "Width", !0, i)));
  1977. return u
  1978. }
  1979.  
  1980. function Ib(e, t, n) {
  1981. var r = !0,
  1982. i = "width" === t ? e.offsetWidth : e.offsetHeight,
  1983. s = wb(e),
  1984. u = "border-box" === o.css(e, "boxSizing", !1, s);
  1985. if (0 >= i || null == i) {
  1986. if (i = xb(e, t, s), (0 > i || null == i) && (i = e.style[t]), vb.test(i)) return i;
  1987. r = u && (l.boxSizingReliable() || i === e.style[t]), i = parseFloat(i) || 0
  1988. }
  1989. return i + Hb(e, t, n || (u ? "border" : "content"), r, s) + "px"
  1990. }
  1991.  
  1992. function Jb(e, t) {
  1993. for (var n, r, i, s = [], u = 0, a = e.length; a > u; u++) r = e[u], r.style && (s[u] = L.get(r, "olddisplay"), n = r.style.display, t ? (s[u] || "none" !== n || (r.style.display = ""), "" === r.style.display && S(r) && (s[u] = L.access(r, "olddisplay", tb(r.nodeName)))) : s[u] || (i = S(r), (n && "none" !== n || !i) && L.set(r, "olddisplay", i ? n : o.css(r, "display"))));
  1994. for (u = 0; a > u; u++) r = e[u], r.style && (t && "none" !== r.style.display && "" !== r.style.display || (r.style.display = t ? s[u] || "" : "none"));
  1995. return e
  1996. }
  1997.  
  1998. function Kb(e, t, n, r, i) {
  1999. return new Kb.prototype.init(e, t, n, r, i)
  2000. }
  2001.  
  2002. function Sb() {
  2003. return setTimeout(function() {
  2004. Lb = void 0
  2005. }), Lb = o.now()
  2006. }
  2007.  
  2008. function Tb(e, t) {
  2009. var n, r = 0,
  2010. i = {
  2011. height: e
  2012. };
  2013. for (t = t ? 1 : 0; 4 > r; r += 2 - t) n = R[r], i["margin" + n] = i["padding" + n] = e;
  2014. return t && (i.opacity = i.width = e), i
  2015. }
  2016.  
  2017. function Ub(e, t, n) {
  2018. for (var r, i = (Rb[t] || []).concat(Rb["*"]), s = 0, o = i.length; o > s; s++)
  2019. if (r = i[s].call(n, t, e)) return r
  2020. }
  2021.  
  2022. function Vb(e, t, n) {
  2023. var r, i, s, u, a, f, l, c = this,
  2024. h = {},
  2025. p = e.style,
  2026. d = e.nodeType && S(e),
  2027. v = L.get(e, "fxshow");
  2028. n.queue || (a = o._queueHooks(e, "fx"), null == a.unqueued && (a.unqueued = 0, f = a.empty.fire, a.empty.fire = function() {
  2029. a.unqueued || f()
  2030. }), a.unqueued++, c.always(function() {
  2031. c.always(function() {
  2032. a.unqueued--, o.queue(e, "fx").length || a.empty.fire()
  2033. })
  2034. })), 1 === e.nodeType && ("height" in t || "width" in t) && (n.overflow = [p.overflow, p.overflowX, p.overflowY], l = o.css(e, "display"), "none" === l && (l = tb(e.nodeName)), "inline" === l && "none" === o.css(e, "float") && (p.display = "inline-block")), n.overflow && (p.overflow = "hidden", c.always(function() {
  2035. p.overflow = n.overflow[0], p.overflowX = n.overflow[1], p.overflowY = n.overflow[2]
  2036. }));
  2037. for (r in t)
  2038. if (i = t[r], Nb.exec(i)) {
  2039. if (delete t[r], s = s || "toggle" === i, i === (d ? "hide" : "show")) {
  2040. if ("show" !== i || !v || void 0 === v[r]) continue;
  2041. d = !0
  2042. }
  2043. h[r] = v && v[r] || o.style(e, r)
  2044. }
  2045. if (!o.isEmptyObject(h)) {
  2046. v ? "hidden" in v && (d = v.hidden) : v = L.access(e, "fxshow", {}), s && (v.hidden = !d), d ? o(e).show() : c.done(function() {
  2047. o(e).hide()
  2048. }), c.done(function() {
  2049. var t;
  2050. L.remove(e, "fxshow");
  2051. for (t in h) o.style(e, t, h[t])
  2052. });
  2053. for (r in h) u = Ub(d ? v[r] : 0, r, c), r in v || (v[r] = u.start, d && (u.end = u.start, u.start = "width" === r || "height" === r ? 1 : 0))
  2054. }
  2055. }
  2056.  
  2057. function Wb(e, t) {
  2058. var n, r, i, s, u;
  2059. for (n in e)
  2060. if (r = o.camelCase(n), i = t[r], s = e[n], o.isArray(s) && (i = s[1], s = e[n] = s[0]), n !== r && (e[r] = s, delete e[n]), u = o.cssHooks[r], u && "expand" in u) {
  2061. s = u.expand(s), delete e[r];
  2062. for (n in s) n in e || (e[n] = s[n], t[n] = i)
  2063. } else t[r] = i
  2064. }
  2065.  
  2066. function Xb(e, t, n) {
  2067. var r, i, s = 0,
  2068. u = Qb.length,
  2069. a = o.Deferred().always(function() {
  2070. delete f.elem
  2071. }),
  2072. f = function() {
  2073. if (i) return !1;
  2074. for (var t = Lb || Sb(), n = Math.max(0, l.startTime + l.duration - t), r = n / l.duration || 0, s = 1 - r, o = 0, u = l.tweens.length; u > o; o++) l.tweens[o].run(s);
  2075. return a.notifyWith(e, [l, s, n]), 1 > s && u ? n : (a.resolveWith(e, [l]), !1)
  2076. },
  2077. l = a.promise({
  2078. elem: e,
  2079. props: o.extend({}, t),
  2080. opts: o.extend(!0, {
  2081. specialEasing: {}
  2082. }, n),
  2083. originalProperties: t,
  2084. originalOptions: n,
  2085. startTime: Lb || Sb(),
  2086. duration: n.duration,
  2087. tweens: [],
  2088. createTween: function(t, n) {
  2089. var r = o.Tween(e, l.opts, t, n, l.opts.specialEasing[t] || l.opts.easing);
  2090. return l.tweens.push(r), r
  2091. },
  2092. stop: function(t) {
  2093. var n = 0,
  2094. r = t ? l.tweens.length : 0;
  2095. if (i) return this;
  2096. for (i = !0; r > n; n++) l.tweens[n].run(1);
  2097. return t ? a.resolveWith(e, [l, t]) : a.rejectWith(e, [l, t]), this
  2098. }
  2099. }),
  2100. c = l.props;
  2101. for (Wb(c, l.opts.specialEasing); u > s; s++)
  2102. if (r = Qb[s].call(l, e, c, l.opts)) return r;
  2103. return o.map(c, Ub, l), o.isFunction(l.opts.start) && l.opts.start.call(e, l), o.fx.timer(o.extend(f, {
  2104. elem: e,
  2105. anim: l,
  2106. queue: l.opts.queue
  2107. })), l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always)
  2108. }
  2109.  
  2110. function rc(e) {
  2111. return function(t, n) {
  2112. "string" != typeof t && (n = t, t = "*");
  2113. var r, i = 0,
  2114. s = t.toLowerCase().match(E) || [];
  2115. if (o.isFunction(n))
  2116. while (r = s[i++]) "+" === r[0] ? (r = r.slice(1) || "*", (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n)
  2117. }
  2118. }
  2119.  
  2120. function sc(e, t, n, r) {
  2121. function u(l) {
  2122. var h;
  2123. return i[l] = !0, o.each(e[l] || [], function(e, o) {
  2124. var a = o(t, n, r);
  2125. return "string" != typeof a || s || i[a] ? s ? !(h = a) : void 0 : (t.dataTypes.unshift(a), u(a), !1)
  2126. }), h
  2127. }
  2128. var i = {},
  2129. s = e === oc;
  2130. return u(t.dataTypes[0]) || !i["*"] && u("*")
  2131. }
  2132.  
  2133. function tc(e, t) {
  2134. var n, r, i = o.ajaxSettings.flatOptions || {};
  2135. for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]);
  2136. return r && o.extend(!0, e, r), e
  2137. }
  2138.  
  2139. function uc(e, t, n) {
  2140. var r, i, s, o, u = e.contents,
  2141. a = e.dataTypes;
  2142. while ("*" === a[0]) a.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type"));
  2143. if (r)
  2144. for (i in u)
  2145. if (u[i] && u[i].test(r)) {
  2146. a.unshift(i);
  2147. break
  2148. }
  2149. if (a[0] in n) s = a[0];
  2150. else {
  2151. for (i in n) {
  2152. if (!a[0] || e.converters[i + " " + a[0]]) {
  2153. s = i;
  2154. break
  2155. }
  2156. o || (o = i)
  2157. }
  2158. s = s || o
  2159. }
  2160. return s ? (s !== a[0] && a.unshift(s), n[s]) : void 0
  2161. }
  2162.  
  2163. function vc(e, t, n, r) {
  2164. var i, s, o, u, a, f = {},
  2165. l = e.dataTypes.slice();
  2166. if (l[1])
  2167. for (o in e.converters) f[o.toLowerCase()] = e.converters[o];
  2168. s = l.shift();
  2169. while (s)
  2170. if (e.responseFields[s] && (n[e.responseFields[s]] = t), !a && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), a = s, s = l.shift())
  2171. if ("*" === s) s = a;
  2172. else if ("*" !== a && a !== s) {
  2173. if (o = f[a + " " + s] || f["* " + s], !o)
  2174. for (i in f)
  2175. if (u = i.split(" "), u[1] === s && (o = f[a + " " + u[0]] || f["* " + u[0]])) {
  2176. o === !0 ? o = f[i] : f[i] !== !0 && (s = u[0], l.unshift(u[1]));
  2177. break
  2178. }
  2179. if (o !== !0)
  2180. if (o && e["throws"]) t = o(t);
  2181. else try {
  2182. t = o(t)
  2183. } catch (c) {
  2184. return {
  2185. state: "parsererror",
  2186. error: o ? c : "No conversion from " + a + " to " + s
  2187. }
  2188. }
  2189. }
  2190. return {
  2191. state: "success",
  2192. data: t
  2193. }
  2194. }
  2195.  
  2196. function Bc(e, t, n, r) {
  2197. var i;
  2198. if (o.isArray(t)) o.each(t, function(t, i) {
  2199. n || xc.test(e) ? r(e, i) : Bc(e + "[" + ("object" == typeof i ? t : "") + "]", i, n, r)
  2200. });
  2201. else if (n || "object" !== o.type(t)) r(e, t);
  2202. else
  2203. for (i in t) Bc(e + "[" + i + "]", t[i], n, r)
  2204. }
  2205.  
  2206. function Kc(e) {
  2207. return o.isWindow(e) ? e : 9 === e.nodeType && e.defaultView
  2208. }
  2209. var c = [],
  2210. d = c.slice,
  2211. e = c.concat,
  2212. f = c.push,
  2213. g = c.indexOf,
  2214. h = {},
  2215. i = h.toString,
  2216. j = h.hasOwnProperty,
  2217. k = "".trim,
  2218. l = {},
  2219. m = a.document,
  2220. n = "2.1.0",
  2221. o = function(e, t) {
  2222. return new o.fn.init(e, t)
  2223. },
  2224. p = /^-ms-/,
  2225. q = /-([\da-z])/gi,
  2226. r = function(e, t) {
  2227. return t.toUpperCase()
  2228. };
  2229. o.fn = o.prototype = {
  2230. jquery: n,
  2231. constructor: o,
  2232. selector: "",
  2233. length: 0,
  2234. toArray: function() {
  2235. return d.call(this)
  2236. },
  2237. get: function(e) {
  2238. return null != e ? 0 > e ? this[e + this.length] : this[e] : d.call(this)
  2239. },
  2240. pushStack: function(e) {
  2241. var t = o.merge(this.constructor(), e);
  2242. return t.prevObject = this, t.context = this.context, t
  2243. },
  2244. each: function(e, t) {
  2245. return o.each(this, e, t)
  2246. },
  2247. map: function(e) {
  2248. return this.pushStack(o.map(this, function(t, n) {
  2249. return e.call(t, n, t)
  2250. }))
  2251. },
  2252. slice: function() {
  2253. return this.pushStack(d.apply(this, arguments))
  2254. },
  2255. first: function() {
  2256. return this.eq(0)
  2257. },
  2258. last: function() {
  2259. return this.eq(-1)
  2260. },
  2261. eq: function(e) {
  2262. var t = this.length,
  2263. n = +e + (0 > e ? t : 0);
  2264. return this.pushStack(n >= 0 && t > n ? [this[n]] : [])
  2265. },
  2266. end: function() {
  2267. return this.prevObject || this.constructor(null)
  2268. },
  2269. push: f,
  2270. sort: c.sort,
  2271. splice: c.splice
  2272. }, o.extend = o.fn.extend = function() {
  2273. var e, t, n, r, i, s, u = arguments[0] || {},
  2274. a = 1,
  2275. f = arguments.length,
  2276. l = !1;
  2277. for ("boolean" == typeof u && (l = u, u = arguments[a] || {}, a++), "object" == typeof u || o.isFunction(u) || (u = {}), a === f && (u = this, a--); f > a; a++)
  2278. if (null != (e = arguments[a]))
  2279. for (t in e) n = u[t], r = e[t], u !== r && (l && r && (o.isPlainObject(r) || (i = o.isArray(r))) ? (i ? (i = !1, s = n && o.isArray(n) ? n : []) : s = n && o.isPlainObject(n) ? n : {}, u[t] = o.extend(l, s, r)) : void 0 !== r && (u[t] = r));
  2280. return u
  2281. }, o.extend({
  2282. expando: "jQuery" + (n + Math.random()).replace(/\D/g, ""),
  2283. isReady: !0,
  2284. error: function(e) {
  2285. throw new Error(e)
  2286. },
  2287. noop: function() {},
  2288. isFunction: function(e) {
  2289. return "function" === o.type(e)
  2290. },
  2291. isArray: Array.isArray,
  2292. isWindow: function(e) {
  2293. return null != e && e === e.window
  2294. },
  2295. isNumeric: function(e) {
  2296. return e - parseFloat(e) >= 0
  2297. },
  2298. isPlainObject: function(e) {
  2299. if ("object" !== o.type(e) || e.nodeType || o.isWindow(e)) return !1;
  2300. try {
  2301. if (e.constructor && !j.call(e.constructor.prototype, "isPrototypeOf")) return !1
  2302. } catch (t) {
  2303. return !1
  2304. }
  2305. return !0
  2306. },
  2307. isEmptyObject: function(e) {
  2308. var t;
  2309. for (t in e) return !1;
  2310. return !0
  2311. },
  2312. type: function(e) {
  2313. return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? h[i.call(e)] || "object" : typeof e
  2314. },
  2315. globalEval: function(a) {
  2316. var b, c = eval;
  2317. a = o.trim(a), a && (1 === a.indexOf("use strict") ? (b = m.createElement("script"), b.text = a, m.head.appendChild(b).parentNode.removeChild(b)) : c(a))
  2318. },
  2319. camelCase: function(e) {
  2320. return e.replace(p, "ms-").replace(q, r)
  2321. },
  2322. nodeName: function(e, t) {
  2323. return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
  2324. },
  2325. each: function(e, t, n) {
  2326. var r, i = 0,
  2327. o = e.length,
  2328. u = s(e);
  2329. if (n) {
  2330. if (u) {
  2331. for (; o > i; i++)
  2332. if (r = t.apply(e[i], n), r === !1) break
  2333. } else
  2334. for (i in e)
  2335. if (r = t.apply(e[i], n), r === !1) break
  2336. } else if (u) {
  2337. for (; o > i; i++)
  2338. if (r = t.call(e[i], i, e[i]), r === !1) break
  2339. } else
  2340. for (i in e)
  2341. if (r = t.call(e[i], i, e[i]), r === !1) break; return e
  2342. },
  2343. trim: function(e) {
  2344. return null == e ? "" : k.call(e)
  2345. },
  2346. makeArray: function(e, t) {
  2347. var n = t || [];
  2348. return null != e && (s(Object(e)) ? o.merge(n, "string" == typeof e ? [e] : e) : f.call(n, e)), n
  2349. },
  2350. inArray: function(e, t, n) {
  2351. return null == t ? -1 : g.call(t, e, n)
  2352. },
  2353. merge: function(e, t) {
  2354. for (var n = +t.length, r = 0, i = e.length; n > r; r++) e[i++] = t[r];
  2355. return e.length = i, e
  2356. },
  2357. grep: function(e, t, n) {
  2358. for (var r, i = [], s = 0, o = e.length, u = !n; o > s; s++) r = !t(e[s], s), r !== u && i.push(e[s]);
  2359. return i
  2360. },
  2361. map: function(t, n, r) {
  2362. var i, o = 0,
  2363. u = t.length,
  2364. a = s(t),
  2365. f = [];
  2366. if (a)
  2367. for (; u > o; o++) i = n(t[o], o, r), null != i && f.push(i);
  2368. else
  2369. for (o in t) i = n(t[o], o, r), null != i && f.push(i);
  2370. return e.apply([], f)
  2371. },
  2372. guid: 1,
  2373. proxy: function(e, t) {
  2374. var n, r, i;
  2375. return "string" == typeof t && (n = e[t], t = e, e = n), o.isFunction(e) ? (r = d.call(arguments, 2), i = function() {
  2376. return e.apply(t || this, r.concat(d.call(arguments)))
  2377. }, i.guid = e.guid = e.guid || o.guid++, i) : void 0
  2378. },
  2379. now: Date.now,
  2380. support: l
  2381. }), o.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(e, t) {
  2382. h["[object " + t + "]"] = t.toLowerCase()
  2383. });
  2384. var t = function(e) {
  2385. function rt(e, t, r, i) {
  2386. var s, o, u, a, f, h, v, m, w, E;
  2387. if ((t ? t.ownerDocument || t : b) !== c && l(t), t = t || c, r = r || [], !e || "string" != typeof e) return r;
  2388. if (1 !== (a = t.nodeType) && 9 !== a) return [];
  2389. if (p && !i) {
  2390. if (s = G.exec(e))
  2391. if (u = s[1]) {
  2392. if (9 === a) {
  2393. if (o = t.getElementById(u), !o || !o.parentNode) return r;
  2394. if (o.id === u) return r.push(o), r
  2395. } else if (t.ownerDocument && (o = t.ownerDocument.getElementById(u)) && g(t, o) && o.id === u) return r.push(o), r
  2396. } else {
  2397. if (s[2]) return _.apply(r, t.getElementsByTagName(e)), r;
  2398. if ((u = s[3]) && n.getElementsByClassName && t.getElementsByClassName) return _.apply(r, t.getElementsByClassName(u)), r
  2399. }
  2400. if (n.qsa && (!d || !d.test(e))) {
  2401. if (m = v = y, w = t, E = 9 === a && e, 1 === a && "object" !== t.nodeName.toLowerCase()) {
  2402. h = dt(e), (v = t.getAttribute("id")) ? m = v.replace(Z, "\\$&") : t.setAttribute("id", m), m = "[id='" + m + "'] ", f = h.length;
  2403. while (f--) h[f] = m + vt(h[f]);
  2404. w = Y.test(e) && ht(t.parentNode) || t, E = h.join(",")
  2405. }
  2406. if (E) try {
  2407. return _.apply(r, w.querySelectorAll(E)), r
  2408. } catch (S) {} finally {
  2409. v || t.removeAttribute("id")
  2410. }
  2411. }
  2412. }
  2413. return xt(e.replace(R, "$1"), t, r, i)
  2414. }
  2415.  
  2416. function it() {
  2417. function t(n, i) {
  2418. return e.push(n + " ") > r.cacheLength && delete t[e.shift()], t[n + " "] = i
  2419. }
  2420. var e = [];
  2421. return t
  2422. }
  2423.  
  2424. function st(e) {
  2425. return e[y] = !0, e
  2426. }
  2427.  
  2428. function ot(e) {
  2429. var t = c.createElement("div");
  2430. try {
  2431. return !!e(t)
  2432. } catch (n) {
  2433. return !1
  2434. } finally {
  2435. t.parentNode && t.parentNode.removeChild(t), t = null
  2436. }
  2437. }
  2438.  
  2439. function ut(e, t) {
  2440. var n = e.split("|"),
  2441. i = e.length;
  2442. while (i--) r.attrHandle[n[i]] = t
  2443. }
  2444.  
  2445. function at(e, t) {
  2446. var n = t && e,
  2447. r = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || k) - (~e.sourceIndex || k);
  2448. if (r) return r;
  2449. if (n)
  2450. while (n = n.nextSibling)
  2451. if (n === t) return -1;
  2452. return e ? 1 : -1
  2453. }
  2454.  
  2455. function ft(e) {
  2456. return function(t) {
  2457. var n = t.nodeName.toLowerCase();
  2458. return "input" === n && t.type === e
  2459. }
  2460. }
  2461.  
  2462. function lt(e) {
  2463. return function(t) {
  2464. var n = t.nodeName.toLowerCase();
  2465. return ("input" === n || "button" === n) && t.type === e
  2466. }
  2467. }
  2468.  
  2469. function ct(e) {
  2470. return st(function(t) {
  2471. return t = +t, st(function(n, r) {
  2472. var i, s = e([], n.length, t),
  2473. o = s.length;
  2474. while (o--) n[i = s[o]] && (n[i] = !(r[i] = n[i]))
  2475. })
  2476. })
  2477. }
  2478.  
  2479. function ht(e) {
  2480. return e && typeof e.getElementsByTagName !== C && e
  2481. }
  2482.  
  2483. function pt() {}
  2484.  
  2485. function dt(e, t) {
  2486. var n, i, s, o, u, a, f, l = x[e + " "];
  2487. if (l) return t ? 0 : l.slice(0);
  2488. u = e, a = [], f = r.preFilter;
  2489. while (u) {
  2490. (!n || (i = U.exec(u))) && (i && (u = u.slice(i[0].length) || u), a.push(s = [])), n = !1, (i = z.exec(u)) && (n = i.shift(), s.push({
  2491. value: n,
  2492. type: i[0].replace(R, " ")
  2493. }), u = u.slice(n.length));
  2494. for (o in r.filter) !(i = $[o].exec(u)) || f[o] && !(i = f[o](i)) || (n = i.shift(), s.push({
  2495. value: n,
  2496. type: o,
  2497. matches: i
  2498. }), u = u.slice(n.length));
  2499. if (!n) break
  2500. }
  2501. return t ? u.length : u ? rt.error(e) : x(e, a).slice(0)
  2502. }
  2503.  
  2504. function vt(e) {
  2505. for (var t = 0, n = e.length, r = ""; n > t; t++) r += e[t].value;
  2506. return r
  2507. }
  2508.  
  2509. function mt(e, t, n) {
  2510. var r = t.dir,
  2511. i = n && "parentNode" === r,
  2512. s = E++;
  2513. return t.first ? function(t, n, s) {
  2514. while (t = t[r])
  2515. if (1 === t.nodeType || i) return e(t, n, s)
  2516. } : function(t, n, o) {
  2517. var u, a, f = [w, s];
  2518. if (o) {
  2519. while (t = t[r])
  2520. if ((1 === t.nodeType || i) && e(t, n, o)) return !0
  2521. } else
  2522. while (t = t[r])
  2523. if (1 === t.nodeType || i) {
  2524. if (a = t[y] || (t[y] = {}), (u = a[r]) && u[0] === w && u[1] === s) return f[2] = u[2];
  2525. if (a[r] = f, f[2] = e(t, n, o)) return !0
  2526. }
  2527. }
  2528. }
  2529.  
  2530. function gt(e) {
  2531. return e.length > 1 ? function(t, n, r) {
  2532. var i = e.length;
  2533. while (i--)
  2534. if (!e[i](t, n, r)) return !1;
  2535. return !0
  2536. } : e[0]
  2537. }
  2538.  
  2539. function yt(e, t, n, r, i) {
  2540. for (var s, o = [], u = 0, a = e.length, f = null != t; a > u; u++)(s = e[u]) && (!n || n(s, r, i)) && (o.push(s), f && t.push(u));
  2541. return o
  2542. }
  2543.  
  2544. function bt(e, t, n, r, i, s) {
  2545. return r && !r[y] && (r = bt(r)), i && !i[y] && (i = bt(i, s)), st(function(s, o, u, a) {
  2546. var f, l, c, h = [],
  2547. p = [],
  2548. d = o.length,
  2549. v = s || St(t || "*", u.nodeType ? [u] : u, []),
  2550. m = !e || !s && t ? v : yt(v, h, e, u, a),
  2551. g = n ? i || (s ? e : d || r) ? [] : o : m;
  2552. if (n && n(m, g, u, a), r) {
  2553. f = yt(g, p), r(f, [], u, a), l = f.length;
  2554. while (l--)(c = f[l]) && (g[p[l]] = !(m[p[l]] = c))
  2555. }
  2556. if (s) {
  2557. if (i || e) {
  2558. if (i) {
  2559. f = [], l = g.length;
  2560. while (l--)(c = g[l]) && f.push(m[l] = c);
  2561. i(null, g = [], f, a)
  2562. }
  2563. l = g.length;
  2564. while (l--)(c = g[l]) && (f = i ? P.call(s, c) : h[l]) > -1 && (s[f] = !(o[f] = c))
  2565. }
  2566. } else g = yt(g === o ? g.splice(d, g.length) : g), i ? i(null, o, g, a) : _.apply(o, g)
  2567. })
  2568. }
  2569.  
  2570. function wt(e) {
  2571. for (var t, n, i, s = e.length, o = r.relative[e[0].type], a = o || r.relative[" "], f = o ? 1 : 0, l = mt(function(e) {
  2572. return e === t
  2573. }, a, !0), c = mt(function(e) {
  2574. return P.call(t, e) > -1
  2575. }, a, !0), h = [function(e, n, r) {
  2576. return !o && (r || n !== u) || ((t = n).nodeType ? l(e, n, r) : c(e, n, r))
  2577. }]; s > f; f++)
  2578. if (n = r.relative[e[f].type]) h = [mt(gt(h), n)];
  2579. else {
  2580. if (n = r.filter[e[f].type].apply(null, e[f].matches), n[y]) {
  2581. for (i = ++f; s > i; i++)
  2582. if (r.relative[e[i].type]) break;
  2583. return bt(f > 1 && gt(h), f > 1 && vt(e.slice(0, f - 1).concat({
  2584. value: " " === e[f - 2].type ? "*" : ""
  2585. })).replace(R, "$1"), n, i > f && wt(e.slice(f, i)), s > i && wt(e = e.slice(i)), s > i && vt(e))
  2586. }
  2587. h.push(n)
  2588. }
  2589. return gt(h)
  2590. }
  2591.  
  2592. function Et(e, t) {
  2593. var n = t.length > 0,
  2594. i = e.length > 0,
  2595. s = function(s, o, a, f, l) {
  2596. var h, p, d, v = 0,
  2597. m = "0",
  2598. g = s && [],
  2599. y = [],
  2600. b = u,
  2601. E = s || i && r.find.TAG("*", l),
  2602. S = w += null == b ? 1 : Math.random() || .1,
  2603. x = E.length;
  2604. for (l && (u = o !== c && o); m !== x && null != (h = E[m]); m++) {
  2605. if (i && h) {
  2606. p = 0;
  2607. while (d = e[p++])
  2608. if (d(h, o, a)) {
  2609. f.push(h);
  2610. break
  2611. }
  2612. l && (w = S)
  2613. }
  2614. n && ((h = !d && h) && v--, s && g.push(h))
  2615. }
  2616. if (v += m, n && m !== v) {
  2617. p = 0;
  2618. while (d = t[p++]) d(g, y, o, a);
  2619. if (s) {
  2620. if (v > 0)
  2621. while (m--) g[m] || y[m] || (y[m] = O.call(f));
  2622. y = yt(y)
  2623. }
  2624. _.apply(f, y), l && !s && y.length > 0 && v + t.length > 1 && rt.uniqueSort(f)
  2625. }
  2626. return l && (w = S, u = b), g
  2627. };
  2628. return n ? st(s) : s
  2629. }
  2630.  
  2631. function St(e, t, n) {
  2632. for (var r = 0, i = t.length; i > r; r++) rt(e, t[r], n);
  2633. return n
  2634. }
  2635.  
  2636. function xt(e, t, i, s) {
  2637. var u, a, f, l, c, h = dt(e);
  2638. if (!s && 1 === h.length) {
  2639. if (a = h[0] = h[0].slice(0), a.length > 2 && "ID" === (f = a[0]).type && n.getById && 9 === t.nodeType && p && r.relative[a[1].type]) {
  2640. if (t = (r.find.ID(f.matches[0].replace(et, tt), t) || [])[0], !t) return i;
  2641. e = e.slice(a.shift().value.length)
  2642. }
  2643. u = $.needsContext.test(e) ? 0 : a.length;
  2644. while (u--) {
  2645. if (f = a[u], r.relative[l = f.type]) break;
  2646. if ((c = r.find[l]) && (s = c(f.matches[0].replace(et, tt), Y.test(a[0].type) && ht(t.parentNode) || t))) {
  2647. if (a.splice(u, 1), e = s.length && vt(a), !e) return _.apply(i, s), i;
  2648. break
  2649. }
  2650. }
  2651. }
  2652. return o(e, h)(s, t, !p, i, Y.test(e) && ht(t.parentNode) || t), i
  2653. }
  2654. var t, n, r, i, s, o, u, a, f, l, c, h, p, d, v, m, g, y = "sizzle" + -(new Date),
  2655. b = e.document,
  2656. w = 0,
  2657. E = 0,
  2658. S = it(),
  2659. x = it(),
  2660. T = it(),
  2661. N = function(e, t) {
  2662. return e === t && (f = !0), 0
  2663. },
  2664. C = "undefined",
  2665. k = 1 << 31,
  2666. L = {}.hasOwnProperty,
  2667. A = [],
  2668. O = A.pop,
  2669. M = A.push,
  2670. _ = A.push,
  2671. D = A.slice,
  2672. P = A.indexOf || function(e) {
  2673. for (var t = 0, n = this.length; n > t; t++)
  2674. if (this[t] === e) return t;
  2675. return -1
  2676. },
  2677. H = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
  2678. B = "[\\x20\\t\\r\\n\\f]",
  2679. j = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
  2680. F = j.replace("w", "w#"),
  2681. I = "\\[" + B + "*(" + j + ")" + B + "*(?:([*^$|!~]?=)" + B + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + F + ")|)|)" + B + "*\\]",
  2682. q = ":(" + j + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + I.replace(3, 8) + ")*)|.*)\\)|)",
  2683. R = new RegExp("^" + B + "+|((?:^|[^\\\\])(?:\\\\.)*)" + B + "+$", "g"),
  2684. U = new RegExp("^" + B + "*," + B + "*"),
  2685. z = new RegExp("^" + B + "*([>+~]|" + B + ")" + B + "*"),
  2686. W = new RegExp("=" + B + "*([^\\]'\"]*?)" + B + "*\\]", "g"),
  2687. X = new RegExp(q),
  2688. V = new RegExp("^" + F + "$"),
  2689. $ = {
  2690. ID: new RegExp("^#(" + j + ")"),
  2691. CLASS: new RegExp("^\\.(" + j + ")"),
  2692. TAG: new RegExp("^(" + j.replace("w", "w*") + ")"),
  2693. ATTR: new RegExp("^" + I),
  2694. PSEUDO: new RegExp("^" + q),
  2695. CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + B + "*(even|odd|(([+-]|)(\\d*)n|)" + B + "*(?:([+-]|)" + B + "*(\\d+)|))" + B + "*\\)|)", "i"),
  2696. bool: new RegExp("^(?:" + H + ")$", "i"),
  2697. needsContext: new RegExp("^" + B + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + B + "*((?:-\\d)?\\d*)" + B + "*\\)|)(?=[^-]|$)", "i")
  2698. },
  2699. J = /^(?:input|select|textarea|button)$/i,
  2700. K = /^h\d$/i,
  2701. Q = /^[^{]+\{\s*\[native \w/,
  2702. G = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
  2703. Y = /[+~]/,
  2704. Z = /'|\\/g,
  2705. et = new RegExp("\\\\([\\da-f]{1,6}" + B + "?|(" + B + ")|.)", "ig"),
  2706. tt = function(e, t, n) {
  2707. var r = "0x" + t - 65536;
  2708. return r !== r || n ? t : 0 > r ? String.fromCharCode(r + 65536) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320)
  2709. };
  2710. try {
  2711. _.apply(A = D.call(b.childNodes), b.childNodes), A[b.childNodes.length].nodeType
  2712. } catch (nt) {
  2713. _ = {
  2714. apply: A.length ? function(e, t) {
  2715. M.apply(e, D.call(t))
  2716. } : function(e, t) {
  2717. var n = e.length,
  2718. r = 0;
  2719. while (e[n++] = t[r++]);
  2720. e.length = n - 1
  2721. }
  2722. }
  2723. }
  2724. n = rt.support = {}, s = rt.isXML = function(e) {
  2725. var t = e && (e.ownerDocument || e).documentElement;
  2726. return t ? "HTML" !== t.nodeName : !1
  2727. }, l = rt.setDocument = function(e) {
  2728. var t, i = e ? e.ownerDocument || e : b,
  2729. o = i.defaultView;
  2730. return i !== c && 9 === i.nodeType && i.documentElement ? (c = i, h = i.documentElement, p = !s(i), o && o !== o.top && (o.addEventListener ? o.addEventListener("unload", function() {
  2731. l()
  2732. }, !1) : o.attachEvent && o.attachEvent("onunload", function() {
  2733. l()
  2734. })), n.attributes = ot(function(e) {
  2735. return e.className = "i", !e.getAttribute("className")
  2736. }), n.getElementsByTagName = ot(function(e) {
  2737. return e.appendChild(i.createComment("")), !e.getElementsByTagName("*").length
  2738. }), n.getElementsByClassName = Q.test(i.getElementsByClassName) && ot(function(e) {
  2739. return e.innerHTML = "<div class='a'></div><div class='a i'></div>", e.firstChild.className = "i", 2 === e.getElementsByClassName("i").length
  2740. }), n.getById = ot(function(e) {
  2741. return h.appendChild(e).id = y, !i.getElementsByName || !i.getElementsByName(y).length
  2742. }), n.getById ? (r.find.ID = function(e, t) {
  2743. if (typeof t.getElementById !== C && p) {
  2744. var n = t.getElementById(e);
  2745. return n && n.parentNode ? [n] : []
  2746. }
  2747. }, r.filter.ID = function(e) {
  2748. var t = e.replace(et, tt);
  2749. return function(e) {
  2750. return e.getAttribute("id") === t
  2751. }
  2752. }) : (delete r.find.ID, r.filter.ID = function(e) {
  2753. var t = e.replace(et, tt);
  2754. return function(e) {
  2755. var n = typeof e.getAttributeNode !== C && e.getAttributeNode("id");
  2756. return n && n.value === t
  2757. }
  2758. }), r.find.TAG = n.getElementsByTagName ? function(e, t) {
  2759. return typeof t.getElementsByTagName !== C ? t.getElementsByTagName(e) : void 0
  2760. } : function(e, t) {
  2761. var n, r = [],
  2762. i = 0,
  2763. s = t.getElementsByTagName(e);
  2764. if ("*" === e) {
  2765. while (n = s[i++]) 1 === n.nodeType && r.push(n);
  2766. return r
  2767. }
  2768. return s
  2769. }, r.find.CLASS = n.getElementsByClassName && function(e, t) {
  2770. return typeof t.getElementsByClassName !== C && p ? t.getElementsByClassName(e) : void 0
  2771. }, v = [], d = [], (n.qsa = Q.test(i.querySelectorAll)) && (ot(function(e) {
  2772. e.innerHTML = "<select t=''><option selected=''></option></select>", e.querySelectorAll("[t^='']").length && d.push("[*^$]=" + B + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || d.push("\\[" + B + "*(?:value|" + H + ")"), e.querySelectorAll(":checked").length || d.push(":checked")
  2773. }), ot(function(e) {
  2774. var t = i.createElement("input");
  2775. t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && d.push("name" + B + "*[*^$|!~]?="), e.querySelectorAll(":enabled").length || d.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), d.push(",.*:")
  2776. })), (n.matchesSelector = Q.test(m = h.webkitMatchesSelector || h.mozMatchesSelector || h.oMatchesSelector || h.msMatchesSelector)) && ot(function(e) {
  2777. n.disconnectedMatch = m.call(e, "div"), m.call(e, "[s!='']:x"), v.push("!=", q)
  2778. }), d = d.length && new RegExp(d.join("|")), v = v.length && new RegExp(v.join("|")), t = Q.test(h.compareDocumentPosition), g = t || Q.test(h.contains) ? function(e, t) {
  2779. var n = 9 === e.nodeType ? e.documentElement : e,
  2780. r = t && t.parentNode;
  2781. return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)))
  2782. } : function(e, t) {
  2783. if (t)
  2784. while (t = t.parentNode)
  2785. if (t === e) return !0;
  2786. return !1
  2787. }, N = t ? function(e, t) {
  2788. if (e === t) return f = !0, 0;
  2789. var r = !e.compareDocumentPosition - !t.compareDocumentPosition;
  2790. return r ? r : (r = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1, 1 & r || !n.sortDetached && t.compareDocumentPosition(e) === r ? e === i || e.ownerDocument === b && g(b, e) ? -1 : t === i || t.ownerDocument === b && g(b, t) ? 1 : a ? P.call(a, e) - P.call(a, t) : 0 : 4 & r ? -1 : 1)
  2791. } : function(e, t) {
  2792. if (e === t) return f = !0, 0;
  2793. var n, r = 0,
  2794. s = e.parentNode,
  2795. o = t.parentNode,
  2796. u = [e],
  2797. l = [t];
  2798. if (!s || !o) return e === i ? -1 : t === i ? 1 : s ? -1 : o ? 1 : a ? P.call(a, e) - P.call(a, t) : 0;
  2799. if (s === o) return at(e, t);
  2800. n = e;
  2801. while (n = n.parentNode) u.unshift(n);
  2802. n = t;
  2803. while (n = n.parentNode) l.unshift(n);
  2804. while (u[r] === l[r]) r++;
  2805. return r ? at(u[r], l[r]) : u[r] === b ? -1 : l[r] === b ? 1 : 0
  2806. }, i) : c
  2807. }, rt.matches = function(e, t) {
  2808. return rt(e, null, null, t)
  2809. }, rt.matchesSelector = function(e, t) {
  2810. if ((e.ownerDocument || e) !== c && l(e), t = t.replace(W, "='$1']"), !(!n.matchesSelector || !p || v && v.test(t) || d && d.test(t))) try {
  2811. var r = m.call(e, t);
  2812. if (r || n.disconnectedMatch || e.document && 11 !== e.document.nodeType) return r
  2813. } catch (i) {}
  2814. return rt(t, c, null, [e]).length > 0
  2815. }, rt.contains = function(e, t) {
  2816. return (e.ownerDocument || e) !== c && l(e), g(e, t)
  2817. }, rt.attr = function(e, t) {
  2818. (e.ownerDocument || e) !== c && l(e);
  2819. var i = r.attrHandle[t.toLowerCase()],
  2820. s = i && L.call(r.attrHandle, t.toLowerCase()) ? i(e, t, !p) : void 0;
  2821. return void 0 !== s ? s : n.attributes || !p ? e.getAttribute(t) : (s = e.getAttributeNode(t)) && s.specified ? s.value : null
  2822. }, rt.error = function(e) {
  2823. throw new Error("Syntax error, unrecognized expression: " + e)
  2824. }, rt.uniqueSort = function(e) {
  2825. var t, r = [],
  2826. i = 0,
  2827. s = 0;
  2828. if (f = !n.detectDuplicates, a = !n.sortStable && e.slice(0), e.sort(N), f) {
  2829. while (t = e[s++]) t === e[s] && (i = r.push(s));
  2830. while (i--) e.splice(r[i], 1)
  2831. }
  2832. return a = null, e
  2833. }, i = rt.getText = function(e) {
  2834. var t, n = "",
  2835. r = 0,
  2836. s = e.nodeType;
  2837. if (s) {
  2838. if (1 === s || 9 === s || 11 === s) {
  2839. if ("string" == typeof e.textContent) return e.textContent;
  2840. for (e = e.firstChild; e; e = e.nextSibling) n += i(e)
  2841. } else if (3 === s || 4 === s) return e.nodeValue
  2842. } else
  2843. while (t = e[r++]) n += i(t);
  2844. return n
  2845. }, r = rt.selectors = {
  2846. cacheLength: 50,
  2847. createPseudo: st,
  2848. match: $,
  2849. attrHandle: {},
  2850. find: {},
  2851. relative: {
  2852. ">": {
  2853. dir: "parentNode",
  2854. first: !0
  2855. },
  2856. " ": {
  2857. dir: "parentNode"
  2858. },
  2859. "+": {
  2860. dir: "previousSibling",
  2861. first: !0
  2862. },
  2863. "~": {
  2864. dir: "previousSibling"
  2865. }
  2866. },
  2867. preFilter: {
  2868. ATTR: function(e) {
  2869. return e[1] = e[1].replace(et, tt), e[3] = (e[4] || e[5] || "").replace(et, tt), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4)
  2870. },
  2871. CHILD: function(e) {
  2872. return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || rt.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && rt.error(e[0]), e
  2873. },
  2874. PSEUDO: function(e) {
  2875. var t, n = !e[5] && e[2];
  2876. return $.CHILD.test(e[0]) ? null : (e[3] && void 0 !== e[4] ? e[2] = e[4] : n && X.test(n) && (t = dt(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3))
  2877. }
  2878. },
  2879. filter: {
  2880. TAG: function(e) {
  2881. var t = e.replace(et, tt).toLowerCase();
  2882. return "*" === e ? function() {
  2883. return !0
  2884. } : function(e) {
  2885. return e.nodeName && e.nodeName.toLowerCase() === t
  2886. }
  2887. },
  2888. CLASS: function(e) {
  2889. var t = S[e + " "];
  2890. return t || (t = new RegExp("(^|" + B + ")" + e + "(" + B + "|$)")) && S(e, function(e) {
  2891. return t.test("string" == typeof e.className && e.className || typeof e.getAttribute !== C && e.getAttribute("class") || "")
  2892. })
  2893. },
  2894. ATTR: function(e, t, n) {
  2895. return function(r) {
  2896. var i = rt.attr(r, e);
  2897. return null == i ? "!=" === t : t ? (i += "", "=" === t ? i === n : "!=" === t ? i !== n : "^=" === t ? n && 0 === i.indexOf(n) : "*=" === t ? n && i.indexOf(n) > -1 : "$=" === t ? n && i.slice(-n.length) === n : "~=" === t ? (" " + i + " ").indexOf(n) > -1 : "|=" === t ? i === n || i.slice(0, n.length + 1) === n + "-" : !1) : !0
  2898. }
  2899. },
  2900. CHILD: function(e, t, n, r, i) {
  2901. var s = "nth" !== e.slice(0, 3),
  2902. o = "last" !== e.slice(-4),
  2903. u = "of-type" === t;
  2904. return 1 === r && 0 === i ? function(e) {
  2905. return !!e.parentNode
  2906. } : function(t, n, a) {
  2907. var f, l, c, h, p, d, v = s !== o ? "nextSibling" : "previousSibling",
  2908. m = t.parentNode,
  2909. g = u && t.nodeName.toLowerCase(),
  2910. b = !a && !u;
  2911. if (m) {
  2912. if (s) {
  2913. while (v) {
  2914. c = t;
  2915. while (c = c[v])
  2916. if (u ? c.nodeName.toLowerCase() === g : 1 === c.nodeType) return !1;
  2917. d = v = "only" === e && !d && "nextSibling"
  2918. }
  2919. return !0
  2920. }
  2921. if (d = [o ? m.firstChild : m.lastChild], o && b) {
  2922. l = m[y] || (m[y] = {}), f = l[e] || [], p = f[0] === w && f[1], h = f[0] === w && f[2], c = p && m.childNodes[p];
  2923. while (c = ++p && c && c[v] || (h = p = 0) || d.pop())
  2924. if (1 === c.nodeType && ++h && c === t) {
  2925. l[e] = [w, p, h];
  2926. break
  2927. }
  2928. } else if (b && (f = (t[y] || (t[y] = {}))[e]) && f[0] === w) h = f[1];
  2929. else
  2930. while (c = ++p && c && c[v] || (h = p = 0) || d.pop())
  2931. if ((u ? c.nodeName.toLowerCase() === g : 1 === c.nodeType) && ++h && (b && ((c[y] || (c[y] = {}))[e] = [w, h]), c === t)) break; return h -= i, h === r || h % r === 0 && h / r >= 0
  2932. }
  2933. }
  2934. },
  2935. PSEUDO: function(e, t) {
  2936. var n, i = r.pseudos[e] || r.setFilters[e.toLowerCase()] || rt.error("unsupported pseudo: " + e);
  2937. return i[y] ? i(t) : i.length > 1 ? (n = [e, e, "", t], r.setFilters.hasOwnProperty(e.toLowerCase()) ? st(function(e, n) {
  2938. var r, s = i(e, t),
  2939. o = s.length;
  2940. while (o--) r = P.call(e, s[o]), e[r] = !(n[r] = s[o])
  2941. }) : function(e) {
  2942. return i(e, 0, n)
  2943. }) : i
  2944. }
  2945. },
  2946. pseudos: {
  2947. not: st(function(e) {
  2948. var t = [],
  2949. n = [],
  2950. r = o(e.replace(R, "$1"));
  2951. return r[y] ? st(function(e, t, n, i) {
  2952. var s, o = r(e, null, i, []),
  2953. u = e.length;
  2954. while (u--)(s = o[u]) && (e[u] = !(t[u] = s))
  2955. }) : function(e, i, s) {
  2956. return t[0] = e, r(t, null, s, n), !n.pop()
  2957. }
  2958. }),
  2959. has: st(function(e) {
  2960. return function(t) {
  2961. return rt(e, t).length > 0
  2962. }
  2963. }),
  2964. contains: st(function(e) {
  2965. return function(t) {
  2966. return (t.textContent || t.innerText || i(t)).indexOf(e) > -1
  2967. }
  2968. }),
  2969. lang: st(function(e) {
  2970. return V.test(e || "") || rt.error("unsupported lang: " + e), e = e.replace(et, tt).toLowerCase(),
  2971. function(t) {
  2972. var n;
  2973. do
  2974. if (n = p ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return n = n.toLowerCase(), n === e || 0 === n.indexOf(e + "-");
  2975. while ((t = t.parentNode) && 1 === t.nodeType);
  2976. return !1
  2977. }
  2978. }),
  2979. target: function(t) {
  2980. var n = e.location && e.location.hash;
  2981. return n && n.slice(1) === t.id
  2982. },
  2983. root: function(e) {
  2984. return e === h
  2985. },
  2986. focus: function(e) {
  2987. return e === c.activeElement && (!c.hasFocus || c.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
  2988. },
  2989. enabled: function(e) {
  2990. return e.disabled === !1
  2991. },
  2992. disabled: function(e) {
  2993. return e.disabled === !0
  2994. },
  2995. checked: function(e) {
  2996. var t = e.nodeName.toLowerCase();
  2997. return "input" === t && !!e.checked || "option" === t && !!e.selected
  2998. },
  2999. selected: function(e) {
  3000. return e.parentNode && e.parentNode.selectedIndex, e.selected === !0
  3001. },
  3002. empty: function(e) {
  3003. for (e = e.firstChild; e; e = e.nextSibling)
  3004. if (e.nodeType < 6) return !1;
  3005. return !0
  3006. },
  3007. parent: function(e) {
  3008. return !r.pseudos.empty(e)
  3009. },
  3010. header: function(e) {
  3011. return K.test(e.nodeName)
  3012. },
  3013. input: function(e) {
  3014. return J.test(e.nodeName)
  3015. },
  3016. button: function(e) {
  3017. var t = e.nodeName.toLowerCase();
  3018. return "input" === t && "button" === e.type || "button" === t
  3019. },
  3020. text: function(e) {
  3021. var t;
  3022. return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
  3023. },
  3024. first: ct(function() {
  3025. return [0]
  3026. }),
  3027. last: ct(function(e, t) {
  3028. return [t - 1]
  3029. }),
  3030. eq: ct(function(e, t, n) {
  3031. return [0 > n ? n + t : n]
  3032. }),
  3033. even: ct(function(e, t) {
  3034. for (var n = 0; t > n; n += 2) e.push(n);
  3035. return e
  3036. }),
  3037. odd: ct(function(e, t) {
  3038. for (var n = 1; t > n; n += 2) e.push(n);
  3039. return e
  3040. }),
  3041. lt: ct(function(e, t, n) {
  3042. for (var r = 0 > n ? n + t : n; --r >= 0;) e.push(r);
  3043. return e
  3044. }),
  3045. gt: ct(function(e, t, n) {
  3046. for (var r = 0 > n ? n + t : n; ++r < t;) e.push(r);
  3047. return e
  3048. })
  3049. }
  3050. }, r.pseudos.nth = r.pseudos.eq;
  3051. for (t in {
  3052. radio: !0,
  3053. checkbox: !0,
  3054. file: !0,
  3055. password: !0,
  3056. image: !0
  3057. }) r.pseudos[t] = ft(t);
  3058. for (t in {
  3059. submit: !0,
  3060. reset: !0
  3061. }) r.pseudos[t] = lt(t);
  3062. pt.prototype = r.filters = r.pseudos, r.setFilters = new pt;
  3063. o = rt.compile = function(e, t) {
  3064. var n, r = [],
  3065. i = [],
  3066. s = T[e + " "];
  3067. if (!s) {
  3068. t || (t = dt(e)), n = t.length;
  3069. while (n--) s = wt(t[n]), s[y] ? r.push(s) : i.push(s);
  3070. s = T(e, Et(i, r))
  3071. }
  3072. return s
  3073. };
  3074. return n.sortStable = y.split("").sort(N).join("") === y, n.detectDuplicates = !!f, l(), n.sortDetached = ot(function(e) {
  3075. return 1 & e.compareDocumentPosition(c.createElement("div"))
  3076. }), ot(function(e) {
  3077. return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href")
  3078. }) || ut("type|href|height|width", function(e, t, n) {
  3079. return n ? void 0 : e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2)
  3080. }), n.attributes && ot(function(e) {
  3081. return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value")
  3082. }) || ut("value", function(e, t, n) {
  3083. return n || "input" !== e.nodeName.toLowerCase() ? void 0 : e.defaultValue
  3084. }), ot(function(e) {
  3085. return null == e.getAttribute("disabled")
  3086. }) || ut(H, function(e, t, n) {
  3087. var r;
  3088. return n ? void 0 : e[t] === !0 ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
  3089. }), rt
  3090. }(a);
  3091. o.find = t, o.expr = t.selectors, o.expr[":"] = o.expr.pseudos, o.unique = t.uniqueSort, o.text = t.getText, o.isXMLDoc = t.isXML, o.contains = t.contains;
  3092. var u = o.expr.match.needsContext,
  3093. v = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
  3094. w = /^.[^:#\[\.,]*$/;
  3095. o.filter = function(e, t, n) {
  3096. var r = t[0];
  3097. return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? o.find.matchesSelector(r, e) ? [r] : [] : o.find.matches(e, o.grep(t, function(e) {
  3098. return 1 === e.nodeType
  3099. }))
  3100. }, o.fn.extend({
  3101. find: function(e) {
  3102. var t, n = this.length,
  3103. r = [],
  3104. i = this;
  3105. if ("string" != typeof e) return this.pushStack(o(e).filter(function() {
  3106. for (t = 0; n > t; t++)
  3107. if (o.contains(i[t], this)) return !0
  3108. }));
  3109. for (t = 0; n > t; t++) o.find(e, i[t], r);
  3110. return r = this.pushStack(n > 1 ? o.unique(r) : r), r.selector = this.selector ? this.selector + " " + e : e, r
  3111. },
  3112. filter: function(e) {
  3113. return this.pushStack(x(this, e || [], !1))
  3114. },
  3115. not: function(e) {
  3116. return this.pushStack(x(this, e || [], !0))
  3117. },
  3118. is: function(e) {
  3119. return !!x(this, "string" == typeof e && u.test(e) ? o(e) : e || [], !1).length
  3120. }
  3121. });
  3122. var y, z = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
  3123. A = o.fn.init = function(e, t) {
  3124. var n, r;
  3125. if (!e) return this;
  3126. if ("string" == typeof e) {
  3127. if (n = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [null, e, null] : z.exec(e), !n || !n[1] && t) return !t || t.jquery ? (t || y).find(e) : this.constructor(t).find(e);
  3128. if (n[1]) {
  3129. if (t = t instanceof o ? t[0] : t, o.merge(this, o.parseHTML(n[1], t && t.nodeType ? t.ownerDocument || t : m, !0)), v.test(n[1]) && o.isPlainObject(t))
  3130. for (n in t) o.isFunction(this[n]) ? this[n](t[n]) : this.attr(n, t[n]);
  3131. return this
  3132. }
  3133. return r = m.getElementById(n[2]), r && r.parentNode && (this.length = 1, this[0] = r), this.context = m, this.selector = e, this
  3134. }
  3135. return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : o.isFunction(e) ? "undefined" != typeof y.ready ? y.ready(e) : e(o) : (void 0 !== e.selector && (this.selector = e.selector, this.context = e.context), o.makeArray(e, this))
  3136. };
  3137. A.prototype = o.fn, y = o(m);
  3138. var B = /^(?:parents|prev(?:Until|All))/,
  3139. C = {
  3140. children: !0,
  3141. contents: !0,
  3142. next: !0,
  3143. prev: !0
  3144. };
  3145. o.extend({
  3146. dir: function(e, t, n) {
  3147. var r = [],
  3148. i = void 0 !== n;
  3149. while ((e = e[t]) && 9 !== e.nodeType)
  3150. if (1 === e.nodeType) {
  3151. if (i && o(e).is(n)) break;
  3152. r.push(e)
  3153. }
  3154. return r
  3155. },
  3156. sibling: function(e, t) {
  3157. for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
  3158. return n
  3159. }
  3160. }), o.fn.extend({
  3161. has: function(e) {
  3162. var t = o(e, this),
  3163. n = t.length;
  3164. return this.filter(function() {
  3165. for (var e = 0; n > e; e++)
  3166. if (o.contains(this, t[e])) return !0
  3167. })
  3168. },
  3169. closest: function(e, t) {
  3170. for (var n, r = 0, i = this.length, s = [], a = u.test(e) || "string" != typeof e ? o(e, t || this.context) : 0; i > r; r++)
  3171. for (n = this[r]; n && n !== t; n = n.parentNode)
  3172. if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && o.find.matchesSelector(n, e))) {
  3173. s.push(n);
  3174. break
  3175. }
  3176. return this.pushStack(s.length > 1 ? o.unique(s) : s)
  3177. },
  3178. index: function(e) {
  3179. return e ? "string" == typeof e ? g.call(o(e), this[0]) : g.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
  3180. },
  3181. add: function(e, t) {
  3182. return this.pushStack(o.unique(o.merge(this.get(), o(e, t))))
  3183. },
  3184. addBack: function(e) {
  3185. return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
  3186. }
  3187. });
  3188. o.each({
  3189. parent: function(e) {
  3190. var t = e.parentNode;
  3191. return t && 11 !== t.nodeType ? t : null
  3192. },
  3193. parents: function(e) {
  3194. return o.dir(e, "parentNode")
  3195. },
  3196. parentsUntil: function(e, t, n) {
  3197. return o.dir(e, "parentNode", n)
  3198. },
  3199. next: function(e) {
  3200. return D(e, "nextSibling")
  3201. },
  3202. prev: function(e) {
  3203. return D(e, "previousSibling")
  3204. },
  3205. nextAll: function(e) {
  3206. return o.dir(e, "nextSibling")
  3207. },
  3208. prevAll: function(e) {
  3209. return o.dir(e, "previousSibling")
  3210. },
  3211. nextUntil: function(e, t, n) {
  3212. return o.dir(e, "nextSibling", n)
  3213. },
  3214. prevUntil: function(e, t, n) {
  3215. return o.dir(e, "previousSibling", n)
  3216. },
  3217. siblings: function(e) {
  3218. return o.sibling((e.parentNode || {}).firstChild, e)
  3219. },
  3220. children: function(e) {
  3221. return o.sibling(e.firstChild)
  3222. },
  3223. contents: function(e) {
  3224. return e.contentDocument || o.merge([], e.childNodes)
  3225. }
  3226. }, function(e, t) {
  3227. o.fn[e] = function(n, r) {
  3228. var i = o.map(this, t, n);
  3229. return "Until" !== e.slice(-5) && (r = n), r && "string" == typeof r && (i = o.filter(r, i)), this.length > 1 && (C[e] || o.unique(i), B.test(e) && i.reverse()), this.pushStack(i)
  3230. }
  3231. });
  3232. var E = /\S+/g,
  3233. F = {};
  3234. o.Callbacks = function(e) {
  3235. e = "string" == typeof e ? F[e] || G(e) : o.extend({}, e);
  3236. var t, n, r, i, s, u, a = [],
  3237. f = !e.once && [],
  3238. l = function(o) {
  3239. for (t = e.memory && o, n = !0, u = i || 0, i = 0, s = a.length, r = !0; a && s > u; u++)
  3240. if (a[u].apply(o[0], o[1]) === !1 && e.stopOnFalse) {
  3241. t = !1;
  3242. break
  3243. }
  3244. r = !1, a && (f ? f.length && l(f.shift()) : t ? a = [] : c.disable())
  3245. },
  3246. c = {
  3247. add: function() {
  3248. if (a) {
  3249. var n = a.length;
  3250. ! function u(t) {
  3251. o.each(t, function(t, n) {
  3252. var r = o.type(n);
  3253. "function" === r ? e.unique && c.has(n) || a.push(n) : n && n.length && "string" !== r && u(n)
  3254. })
  3255. }(arguments), r ? s = a.length : t && (i = n, l(t))
  3256. }
  3257. return this
  3258. },
  3259. remove: function() {
  3260. return a && o.each(arguments, function(e, t) {
  3261. var n;
  3262. while ((n = o.inArray(t, a, n)) > -1) a.splice(n, 1), r && (s >= n && s--, u >= n && u--)
  3263. }), this
  3264. },
  3265. has: function(e) {
  3266. return e ? o.inArray(e, a) > -1 : !(!a || !a.length)
  3267. },
  3268. empty: function() {
  3269. return a = [], s = 0, this
  3270. },
  3271. disable: function() {
  3272. return a = f = t = void 0, this
  3273. },
  3274. disabled: function() {
  3275. return !a
  3276. },
  3277. lock: function() {
  3278. return f = void 0, t || c.disable(), this
  3279. },
  3280. locked: function() {
  3281. return !f
  3282. },
  3283. fireWith: function(e, t) {
  3284. return !a || n && !f || (t = t || [], t = [e, t.slice ? t.slice() : t], r ? f.push(t) : l(t)), this
  3285. },
  3286. fire: function() {
  3287. return c.fireWith(this, arguments), this
  3288. },
  3289. fired: function() {
  3290. return !!n
  3291. }
  3292. };
  3293. return c
  3294. }, o.extend({
  3295. Deferred: function(e) {
  3296. var t = [
  3297. ["resolve", "done", o.Callbacks("once memory"), "resolved"],
  3298. ["reject", "fail", o.Callbacks("once memory"), "rejected"],
  3299. ["notify", "progress", o.Callbacks("memory")]
  3300. ],
  3301. n = "pending",
  3302. r = {
  3303. state: function() {
  3304. return n
  3305. },
  3306. always: function() {
  3307. return i.done(arguments).fail(arguments), this
  3308. },
  3309. then: function() {
  3310. var e = arguments;
  3311. return o.Deferred(function(n) {
  3312. o.each(t, function(t, s) {
  3313. var u = o.isFunction(e[t]) && e[t];
  3314. i[s[1]](function() {
  3315. var e = u && u.apply(this, arguments);
  3316. e && o.isFunction(e.promise) ? e.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[s[0] + "With"](this === r ? n.promise() : this, u ? [e] : arguments)
  3317. })
  3318. }), e = null
  3319. }).promise()
  3320. },
  3321. promise: function(e) {
  3322. return null != e ? o.extend(e, r) : r
  3323. }
  3324. },
  3325. i = {};
  3326. return r.pipe = r.then, o.each(t, function(e, s) {
  3327. var o = s[2],
  3328. u = s[3];
  3329. r[s[1]] = o.add, u && o.add(function() {
  3330. n = u
  3331. }, t[1 ^ e][2].disable, t[2][2].lock), i[s[0]] = function() {
  3332. return i[s[0] + "With"](this === i ? r : this, arguments), this
  3333. }, i[s[0] + "With"] = o.fireWith
  3334. }), r.promise(i), e && e.call(i, i), i
  3335. },
  3336. when: function(e) {
  3337. var t = 0,
  3338. n = d.call(arguments),
  3339. r = n.length,
  3340. i = 1 !== r || e && o.isFunction(e.promise) ? r : 0,
  3341. s = 1 === i ? e : o.Deferred(),
  3342. u = function(e, t, n) {
  3343. return function(r) {
  3344. t[e] = this, n[e] = arguments.length > 1 ? d.call(arguments) : r, n === a ? s.notifyWith(t, n) : --i || s.resolveWith(t, n)
  3345. }
  3346. },
  3347. a, f, l;
  3348. if (r > 1)
  3349. for (a = new Array(r), f = new Array(r), l = new Array(r); r > t; t++) n[t] && o.isFunction(n[t].promise) ? n[t].promise().done(u(t, l, n)).fail(s.reject).progress(u(t, f, a)) : --i;
  3350. return i || s.resolveWith(l, n), s.promise()
  3351. }
  3352. });
  3353. var H;
  3354. o.fn.ready = function(e) {
  3355. return o.ready.promise().done(e), this
  3356. }, o.extend({
  3357. isReady: !1,
  3358. readyWait: 1,
  3359. holdReady: function(e) {
  3360. e ? o.readyWait++ : o.ready(!0)
  3361. },
  3362. ready: function(e) {
  3363. (e === !0 ? --o.readyWait : o.isReady) || (o.isReady = !0, e !== !0 && --o.readyWait > 0 || (H.resolveWith(m, [o]), o.fn.trigger && o(m).trigger("ready").off("ready")))
  3364. }
  3365. });
  3366. o.ready.promise = function(e) {
  3367. return H || (H = o.Deferred(), "complete" === m.readyState ? setTimeout(o.ready) : (m.addEventListener("DOMContentLoaded", I, !1), a.addEventListener("load", I, !1))), H.promise(e)
  3368. }, o.ready.promise();
  3369. var J = o.access = function(e, t, n, r, i, s, u) {
  3370. var a = 0,
  3371. f = e.length,
  3372. l = null == n;
  3373. if ("object" === o.type(n)) {
  3374. i = !0;
  3375. for (a in n) o.access(e, t, a, n[a], !0, s, u)
  3376. } else if (void 0 !== r && (i = !0, o.isFunction(r) || (u = !0), l && (u ? (t.call(e, r), t = null) : (l = t, t = function(e, t, n) {
  3377. return l.call(o(e), n)
  3378. })), t))
  3379. for (; f > a; a++) t(e[a], n, u ? r : r.call(e[a], a, t(e[a], n)));
  3380. return i ? e : l ? t.call(e) : f ? t(e[0], n) : s
  3381. };
  3382. o.acceptData = function(e) {
  3383. return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType
  3384. };
  3385. K.uid = 1, K.accepts = o.acceptData, K.prototype = {
  3386. key: function(e) {
  3387. if (!K.accepts(e)) return 0;
  3388. var t = {},
  3389. n = e[this.expando];
  3390. if (!n) {
  3391. n = K.uid++;
  3392. try {
  3393. t[this.expando] = {
  3394. value: n
  3395. }, Object.defineProperties(e, t)
  3396. } catch (r) {
  3397. t[this.expando] = n, o.extend(e, t)
  3398. }
  3399. }
  3400. return this.cache[n] || (this.cache[n] = {}), n
  3401. },
  3402. set: function(e, t, n) {
  3403. var r, i = this.key(e),
  3404. s = this.cache[i];
  3405. if ("string" == typeof t) s[t] = n;
  3406. else if (o.isEmptyObject(s)) o.extend(this.cache[i], t);
  3407. else
  3408. for (r in t) s[r] = t[r];
  3409. return s
  3410. },
  3411. get: function(e, t) {
  3412. var n = this.cache[this.key(e)];
  3413. return void 0 === t ? n : n[t]
  3414. },
  3415. access: function(e, t, n) {
  3416. var r;
  3417. return void 0 === t || t && "string" == typeof t && void 0 === n ? (r = this.get(e, t), void 0 !== r ? r : this.get(e, o.camelCase(t))) : (this.set(e, t, n), void 0 !== n ? n : t)
  3418. },
  3419. remove: function(e, t) {
  3420. var n, r, i, s = this.key(e),
  3421. u = this.cache[s];
  3422. if (void 0 === t) this.cache[s] = {};
  3423. else {
  3424. o.isArray(t) ? r = t.concat(t.map(o.camelCase)) : (i = o.camelCase(t), t in u ? r = [t, i] : (r = i, r = r in u ? [r] : r.match(E) || [])), n = r.length;
  3425. while (n--) delete u[r[n]]
  3426. }
  3427. },
  3428. hasData: function(e) {
  3429. return !o.isEmptyObject(this.cache[e[this.expando]] || {})
  3430. },
  3431. discard: function(e) {
  3432. e[this.expando] && delete this.cache[e[this.expando]]
  3433. }
  3434. };
  3435. var L = new K,
  3436. M = new K,
  3437. N = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
  3438. O = /([A-Z])/g;
  3439. o.extend({
  3440. hasData: function(e) {
  3441. return M.hasData(e) || L.hasData(e)
  3442. },
  3443. data: function(e, t, n) {
  3444. return M.access(e, t, n)
  3445. },
  3446. removeData: function(e, t) {
  3447. M.remove(e, t)
  3448. },
  3449. _data: function(e, t, n) {
  3450. return L.access(e, t, n)
  3451. },
  3452. _removeData: function(e, t) {
  3453. L.remove(e, t)
  3454. }
  3455. }), o.fn.extend({
  3456. data: function(e, t) {
  3457. var n, r, i, s = this[0],
  3458. u = s && s.attributes;
  3459. if (void 0 === e) {
  3460. if (this.length && (i = M.get(s), 1 === s.nodeType && !L.get(s, "hasDataAttrs"))) {
  3461. n = u.length;
  3462. while (n--) r = u[n].name, 0 === r.indexOf("data-") && (r = o.camelCase(r.slice(5)), P(s, r, i[r]));
  3463. L.set(s, "hasDataAttrs", !0)
  3464. }
  3465. return i
  3466. }
  3467. return "object" == typeof e ? this.each(function() {
  3468. M.set(this, e)
  3469. }) : J(this, function(t) {
  3470. var n, r = o.camelCase(e);
  3471. if (s && void 0 === t) {
  3472. if (n = M.get(s, e), void 0 !== n) return n;
  3473. if (n = M.get(s, r), void 0 !== n) return n;
  3474. if (n = P(s, r, void 0), void 0 !== n) return n
  3475. } else this.each(function() {
  3476. var n = M.get(this, r);
  3477. M.set(this, r, t), -1 !== e.indexOf("-") && void 0 !== n && M.set(this, e, t)
  3478. })
  3479. }, null, t, arguments.length > 1, null, !0)
  3480. },
  3481. removeData: function(e) {
  3482. return this.each(function() {
  3483. M.remove(this, e)
  3484. })
  3485. }
  3486. }), o.extend({
  3487. queue: function(e, t, n) {
  3488. var r;
  3489. return e ? (t = (t || "fx") + "queue", r = L.get(e, t), n && (!r || o.isArray(n) ? r = L.access(e, t, o.makeArray(n)) : r.push(n)), r || []) : void 0
  3490. },
  3491. dequeue: function(e, t) {
  3492. t = t || "fx";
  3493. var n = o.queue(e, t),
  3494. r = n.length,
  3495. i = n.shift(),
  3496. s = o._queueHooks(e, t),
  3497. u = function() {
  3498. o.dequeue(e, t)
  3499. };
  3500. "inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete s.stop, i.call(e, u, s)), !r && s && s.empty.fire()
  3501. },
  3502. _queueHooks: function(e, t) {
  3503. var n = t + "queueHooks";
  3504. return L.get(e, n) || L.access(e, n, {
  3505. empty: o.Callbacks("once memory").add(function() {
  3506. L.remove(e, [t + "queue", n])
  3507. })
  3508. })
  3509. }
  3510. }), o.fn.extend({
  3511. queue: function(e, t) {
  3512. var n = 2;
  3513. return "string" != typeof e && (t = e, e = "fx", n--), arguments.length < n ? o.queue(this[0], e) : void 0 === t ? this : this.each(function() {
  3514. var n = o.queue(this, e, t);
  3515. o._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && o.dequeue(this, e)
  3516. })
  3517. },
  3518. dequeue: function(e) {
  3519. return this.each(function() {
  3520. o.dequeue(this, e)
  3521. })
  3522. },
  3523. clearQueue: function(e) {
  3524. return this.queue(e || "fx", [])
  3525. },
  3526. promise: function(e, t) {
  3527. var n, r = 1,
  3528. i = o.Deferred(),
  3529. s = this,
  3530. u = this.length,
  3531. a = function() {
  3532. --r || i.resolveWith(s, [s])
  3533. };
  3534. "string" != typeof e && (t = e, e = void 0), e = e || "fx";
  3535. while (u--) n = L.get(s[u], e + "queueHooks"), n && n.empty && (r++, n.empty.add(a));
  3536. return a(), i.promise(t)
  3537. }
  3538. });
  3539. var Q = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
  3540. R = ["Top", "Right", "Bottom", "Left"],
  3541. S = function(e, t) {
  3542. return e = t || e, "none" === o.css(e, "display") || !o.contains(e.ownerDocument, e)
  3543. },
  3544. T = /^(?:checkbox|radio)$/i;
  3545. ! function() {
  3546. var e = m.createDocumentFragment(),
  3547. t = e.appendChild(m.createElement("div"));
  3548. t.innerHTML = "<input type='radio' checked='checked' name='t'/>", l.checkClone = t.cloneNode(!0).cloneNode(!0).lastChild.checked, t.innerHTML = "<textarea>x</textarea>", l.noCloneChecked = !!t.cloneNode(!0).lastChild.defaultValue
  3549. }();
  3550. var U = "undefined";
  3551. l.focusinBubbles = "onfocusin" in a;
  3552. var V = /^key/,
  3553. W = /^(?:mouse|contextmenu)|click/,
  3554. X = /^(?:focusinfocus|focusoutblur)$/,
  3555. Y = /^([^.]*)(?:\.(.+)|)$/;
  3556. o.event = {
  3557. global: {},
  3558. add: function(e, t, n, r, i) {
  3559. var s, u, a, f, l, c, h, p, d, v, m, g = L.get(e);
  3560. if (g) {
  3561. n.handler && (s = n, n = s.handler, i = s.selector), n.guid || (n.guid = o.guid++), (f = g.events) || (f = g.events = {}), (u = g.handle) || (u = g.handle = function(t) {
  3562. return typeof o !== U && o.event.triggered !== t.type ? o.event.dispatch.apply(e, arguments) : void 0
  3563. }), t = (t || "").match(E) || [""], l = t.length;
  3564. while (l--) a = Y.exec(t[l]) || [], d = m = a[1], v = (a[2] || "").split(".").sort(), d && (h = o.event.special[d] || {}, d = (i ? h.delegateType : h.bindType) || d, h = o.event.special[d] || {}, c = o.extend({
  3565. type: d,
  3566. origType: m,
  3567. data: r,
  3568. handler: n,
  3569. guid: n.guid,
  3570. selector: i,
  3571. needsContext: i && o.expr.match.needsContext.test(i),
  3572. namespace: v.join(".")
  3573. }, s), (p = f[d]) || (p = f[d] = [], p.delegateCount = 0, h.setup && h.setup.call(e, r, v, u) !== !1 || e.addEventListener && e.addEventListener(d, u, !1)), h.add && (h.add.call(e, c), c.handler.guid || (c.handler.guid = n.guid)), i ? p.splice(p.delegateCount++, 0, c) : p.push(c), o.event.global[d] = !0)
  3574. }
  3575. },
  3576. remove: function(e, t, n, r, i) {
  3577. var s, u, a, f, l, c, h, p, d, v, m, g = L.hasData(e) && L.get(e);
  3578. if (g && (f = g.events)) {
  3579. t = (t || "").match(E) || [""], l = t.length;
  3580. while (l--)
  3581. if (a = Y.exec(t[l]) || [], d = m = a[1], v = (a[2] || "").split(".").sort(), d) {
  3582. h = o.event.special[d] || {}, d = (r ? h.delegateType : h.bindType) || d, p = f[d] || [], a = a[2] && new RegExp("(^|\\.)" + v.join("\\.(?:.*\\.|)") + "(\\.|$)"), u = s = p.length;
  3583. while (s--) c = p[s], !i && m !== c.origType || n && n.guid !== c.guid || a && !a.test(c.namespace) || r && r !== c.selector && ("**" !== r || !c.selector) || (p.splice(s, 1), c.selector && p.delegateCount--, h.remove && h.remove.call(e, c));
  3584. u && !p.length && (h.teardown && h.teardown.call(e, v, g.handle) !== !1 || o.removeEvent(e, d, g.handle), delete f[d])
  3585. } else
  3586. for (d in f) o.event.remove(e, d + t[l], n, r, !0);
  3587. o.isEmptyObject(f) && (delete g.handle, L.remove(e, "events"))
  3588. }
  3589. },
  3590. trigger: function(e, t, n, r) {
  3591. var i, s, u, f, l, c, h, p = [n || m],
  3592. d = j.call(e, "type") ? e.type : e,
  3593. v = j.call(e, "namespace") ? e.namespace.split(".") : [];
  3594. if (s = u = n = n || m, 3 !== n.nodeType && 8 !== n.nodeType && !X.test(d + o.event.triggered) && (d.indexOf(".") >= 0 && (v = d.split("."), d = v.shift(), v.sort()), l = d.indexOf(":") < 0 && "on" + d, e = e[o.expando] ? e : new o.Event(d, "object" == typeof e && e), e.isTrigger = r ? 2 : 3, e.namespace = v.join("."), e.namespace_re = e.namespace ? new RegExp("(^|\\.)" + v.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = void 0, e.target || (e.target = n), t = null == t ? [e] : o.makeArray(t, [e]), h = o.event.special[d] || {}, r || !h.trigger || h.trigger.apply(n, t) !== !1)) {
  3595. if (!r && !h.noBubble && !o.isWindow(n)) {
  3596. for (f = h.delegateType || d, X.test(f + d) || (s = s.parentNode); s; s = s.parentNode) p.push(s), u = s;
  3597. u === (n.ownerDocument || m) && p.push(u.defaultView || u.parentWindow || a)
  3598. }
  3599. i = 0;
  3600. while ((s = p[i++]) && !e.isPropagationStopped()) e.type = i > 1 ? f : h.bindType || d, c = (L.get(s, "events") || {})[e.type] && L.get(s, "handle"), c && c.apply(s, t), c = l && s[l], c && c.apply && o.acceptData(s) && (e.result = c.apply(s, t), e.result === !1 && e.preventDefault());
  3601. return e.type = d, r || e.isDefaultPrevented() || h._default && h._default.apply(p.pop(), t) !== !1 || !o.acceptData(n) || l && o.isFunction(n[d]) && !o.isWindow(n) && (u = n[l], u && (n[l] = null), o.event.triggered = d, n[d](), o.event.triggered = void 0, u && (n[l] = u)), e.result
  3602. }
  3603. },
  3604. dispatch: function(e) {
  3605. e = o.event.fix(e);
  3606. var t, n, r, i, s, u = [],
  3607. a = d.call(arguments),
  3608. f = (L.get(this, "events") || {})[e.type] || [],
  3609. l = o.event.special[e.type] || {};
  3610. if (a[0] = e, e.delegateTarget = this, !l.preDispatch || l.preDispatch.call(this, e) !== !1) {
  3611. u = o.event.handlers.call(this, e, f), t = 0;
  3612. while ((i = u[t++]) && !e.isPropagationStopped()) {
  3613. e.currentTarget = i.elem, n = 0;
  3614. while ((s = i.handlers[n++]) && !e.isImmediatePropagationStopped())(!e.namespace_re || e.namespace_re.test(s.namespace)) && (e.handleObj = s, e.data = s.data, r = ((o.event.special[s.origType] || {}).handle || s.handler).apply(i.elem, a), void 0 !== r && (e.result = r) === !1 && (e.preventDefault(), e.stopPropagation()))
  3615. }
  3616. return l.postDispatch && l.postDispatch.call(this, e), e.result
  3617. }
  3618. },
  3619. handlers: function(e, t) {
  3620. var n, r, i, s, u = [],
  3621. a = t.delegateCount,
  3622. f = e.target;
  3623. if (a && f.nodeType && (!e.button || "click" !== e.type))
  3624. for (; f !== this; f = f.parentNode || this)
  3625. if (f.disabled !== !0 || "click" !== e.type) {
  3626. for (r = [], n = 0; a > n; n++) s = t[n], i = s.selector + " ", void 0 === r[i] && (r[i] = s.needsContext ? o(i, this).index(f) >= 0 : o.find(i, this, null, [f]).length), r[i] && r.push(s);
  3627. r.length && u.push({
  3628. elem: f,
  3629. handlers: r
  3630. })
  3631. }
  3632. return a < t.length && u.push({
  3633. elem: this,
  3634. handlers: t.slice(a)
  3635. }), u
  3636. },
  3637. props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
  3638. fixHooks: {},
  3639. keyHooks: {
  3640. props: "char charCode key keyCode".split(" "),
  3641. filter: function(e, t) {
  3642. return null == e.which && (e.which = null != t.charCode ? t.charCode : t.keyCode), e
  3643. }
  3644. },
  3645. mouseHooks: {
  3646. props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
  3647. filter: function(e, t) {
  3648. var n, r, i, s = t.button;
  3649. return null == e.pageX && null != t.clientX && (n = e.target.ownerDocument || m, r = n.documentElement, i = n.body, e.pageX = t.clientX + (r && r.scrollLeft || i && i.scrollLeft || 0) - (r && r.clientLeft || i && i.clientLeft || 0), e.pageY = t.clientY + (r && r.scrollTop || i && i.scrollTop || 0) - (r && r.clientTop || i && i.clientTop || 0)), e.which || void 0 === s || (e.which = 1 & s ? 1 : 2 & s ? 3 : 4 & s ? 2 : 0), e
  3650. }
  3651. },
  3652. fix: function(e) {
  3653. if (e[o.expando]) return e;
  3654. var t, n, r, i = e.type,
  3655. s = e,
  3656. u = this.fixHooks[i];
  3657. u || (this.fixHooks[i] = u = W.test(i) ? this.mouseHooks : V.test(i) ? this.keyHooks : {}), r = u.props ? this.props.concat(u.props) : this.props, e = new o.Event(s), t = r.length;
  3658. while (t--) n = r[t], e[n] = s[n];
  3659. return e.target || (e.target = m), 3 === e.target.nodeType && (e.target = e.target.parentNode), u.filter ? u.filter(e, s) : e
  3660. },
  3661. special: {
  3662. load: {
  3663. noBubble: !0
  3664. },
  3665. focus: {
  3666. trigger: function() {
  3667. return this !== _() && this.focus ? (this.focus(), !1) : void 0
  3668. },
  3669. delegateType: "focusin"
  3670. },
  3671. blur: {
  3672. trigger: function() {
  3673. return this === _() && this.blur ? (this.blur(), !1) : void 0
  3674. },
  3675. delegateType: "focusout"
  3676. },
  3677. click: {
  3678. trigger: function() {
  3679. return "checkbox" === this.type && this.click && o.nodeName(this, "input") ? (this.click(), !1) : void 0
  3680. },
  3681. _default: function(e) {
  3682. return o.nodeName(e.target, "a")
  3683. }
  3684. },
  3685. beforeunload: {
  3686. postDispatch: function(e) {
  3687. void 0 !== e.result && (e.originalEvent.returnValue = e.result)
  3688. }
  3689. }
  3690. },
  3691. simulate: function(e, t, n, r) {
  3692. var i = o.extend(new o.Event, n, {
  3693. type: e,
  3694. isSimulated: !0,
  3695. originalEvent: {}
  3696. });
  3697. r ? o.event.trigger(i, null, t) : o.event.dispatch.call(t, i), i.isDefaultPrevented() && n.preventDefault()
  3698. }
  3699. }, o.removeEvent = function(e, t, n) {
  3700. e.removeEventListener && e.removeEventListener(t, n, !1)
  3701. }, o.Event = function(e, t) {
  3702. return this instanceof o.Event ? (e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && e.getPreventDefault && e.getPreventDefault() ? Z : $) : this.type = e, t && o.extend(this, t), this.timeStamp = e && e.timeStamp || o.now(), void(this[o.expando] = !0)) : new o.Event(e, t)
  3703. }, o.Event.prototype = {
  3704. isDefaultPrevented: $,
  3705. isPropagationStopped: $,
  3706. isImmediatePropagationStopped: $,
  3707. preventDefault: function() {
  3708. var e = this.originalEvent;
  3709. this.isDefaultPrevented = Z, e && e.preventDefault && e.preventDefault()
  3710. },
  3711. stopPropagation: function() {
  3712. var e = this.originalEvent;
  3713. this.isPropagationStopped = Z, e && e.stopPropagation && e.stopPropagation()
  3714. },
  3715. stopImmediatePropagation: function() {
  3716. this.isImmediatePropagationStopped = Z, this.stopPropagation()
  3717. }
  3718. }, o.each({
  3719. mouseenter: "mouseover",
  3720. mouseleave: "mouseout"
  3721. }, function(e, t) {
  3722. o.event.special[e] = {
  3723. delegateType: t,
  3724. bindType: t,
  3725. handle: function(e) {
  3726. var n, r = this,
  3727. i = e.relatedTarget,
  3728. s = e.handleObj;
  3729. return (!i || i !== r && !o.contains(r, i)) && (e.type = s.origType, n = s.handler.apply(this, arguments), e.type = t), n
  3730. }
  3731. }
  3732. }), l.focusinBubbles || o.each({
  3733. focus: "focusin",
  3734. blur: "focusout"
  3735. }, function(e, t) {
  3736. var n = function(e) {
  3737. o.event.simulate(t, e.target, o.event.fix(e), !0)
  3738. };
  3739. o.event.special[t] = {
  3740. setup: function() {
  3741. var r = this.ownerDocument || this,
  3742. i = L.access(r, t);
  3743. i || r.addEventListener(e, n, !0), L.access(r, t, (i || 0) + 1)
  3744. },
  3745. teardown: function() {
  3746. var r = this.ownerDocument || this,
  3747. i = L.access(r, t) - 1;
  3748. i ? L.access(r, t, i) : (r.removeEventListener(e, n, !0), L.remove(r, t))
  3749. }
  3750. }
  3751. }), o.fn.extend({
  3752. on: function(e, t, n, r, i) {
  3753. var s, u;
  3754. if ("object" == typeof e) {
  3755. "string" != typeof t && (n = n || t, t = void 0);
  3756. for (u in e) this.on(u, t, n, e[u], i);
  3757. return this
  3758. }
  3759. if (null == n && null == r ? (r = t, n = t = void 0) : null == r && ("string" == typeof t ? (r = n, n = void 0) : (r = n, n = t, t = void 0)), r === !1) r = $;
  3760. else if (!r) return this;
  3761. return 1 === i && (s = r, r = function(e) {
  3762. return o().off(e), s.apply(this, arguments)
  3763. }, r.guid = s.guid || (s.guid = o.guid++)), this.each(function() {
  3764. o.event.add(this, e, r, n, t)
  3765. })
  3766. },
  3767. one: function(e, t, n, r) {
  3768. return this.on(e, t, n, r, 1)
  3769. },
  3770. off: function(e, t, n) {
  3771. var r, i;
  3772. if (e && e.preventDefault && e.handleObj) return r = e.handleObj, o(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this;
  3773. if ("object" == typeof e) {
  3774. for (i in e) this.off(i, t, e[i]);
  3775. return this
  3776. }
  3777. return (t === !1 || "function" == typeof t) && (n = t, t = void 0), n === !1 && (n = $), this.each(function() {
  3778. o.event.remove(this, e, n, t)
  3779. })
  3780. },
  3781. trigger: function(e, t) {
  3782. return this.each(function() {
  3783. o.event.trigger(e, t, this)
  3784. })
  3785. },
  3786. triggerHandler: function(e, t) {
  3787. var n = this[0];
  3788. return n ? o.event.trigger(e, t, n, !0) : void 0
  3789. }
  3790. });
  3791. var ab = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
  3792. bb = /<([\w:]+)/,
  3793. cb = /<|&#?\w+;/,
  3794. db = /<(?:script|style|link)/i,
  3795. eb = /checked\s*(?:[^=]|=\s*.checked.)/i,
  3796. fb = /^$|\/(?:java|ecma)script/i,
  3797. gb = /^true\/(.*)/,
  3798. hb = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
  3799. ib = {
  3800. option: [1, "<select multiple='multiple'>", "</select>"],
  3801. thead: [1, "<table>", "</table>"],
  3802. col: [2, "<table><colgroup>", "</colgroup></table>"],
  3803. tr: [2, "<table><tbody>", "</tbody></table>"],
  3804. td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
  3805. _default: [0, "", ""]
  3806. };
  3807. ib.optgroup = ib.option, ib.tbody = ib.tfoot = ib.colgroup = ib.caption = ib.thead, ib.th = ib.td;
  3808. o.extend({
  3809. clone: function(e, t, n) {
  3810. var r, i, s, u, a = e.cloneNode(!0),
  3811. f = o.contains(e.ownerDocument, e);
  3812. if (!(l.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || o.isXMLDoc(e)))
  3813. for (u = ob(a), s = ob(e), r = 0, i = s.length; i > r; r++) pb(s[r], u[r]);
  3814. if (t)
  3815. if (n)
  3816. for (s = s || ob(e), u = u || ob(a), r = 0, i = s.length; i > r; r++) nb(s[r], u[r]);
  3817. else nb(e, a);
  3818. return u = ob(a, "script"), u.length > 0 && mb(u, !f && ob(e, "script")), a
  3819. },
  3820. buildFragment: function(e, t, n, r) {
  3821. for (var i, s, u, a, f, l, c = t.createDocumentFragment(), h = [], p = 0, d = e.length; d > p; p++)
  3822. if (i = e[p], i || 0 === i)
  3823. if ("object" === o.type(i)) o.merge(h, i.nodeType ? [i] : i);
  3824. else if (cb.test(i)) {
  3825. s = s || c.appendChild(t.createElement("div")), u = (bb.exec(i) || ["", ""])[1].toLowerCase(), a = ib[u] || ib._default, s.innerHTML = a[1] + i.replace(ab, "<$1></$2>") + a[2], l = a[0];
  3826. while (l--) s = s.lastChild;
  3827. o.merge(h, s.childNodes), s = c.firstChild, s.textContent = ""
  3828. } else h.push(t.createTextNode(i));
  3829. c.textContent = "", p = 0;
  3830. while (i = h[p++])
  3831. if ((!r || -1 === o.inArray(i, r)) && (f = o.contains(i.ownerDocument, i), s = ob(c.appendChild(i), "script"), f && mb(s), n)) {
  3832. l = 0;
  3833. while (i = s[l++]) fb.test(i.type || "") && n.push(i)
  3834. }
  3835. return c
  3836. },
  3837. cleanData: function(e) {
  3838. for (var t, n, r, i, s, u, a = o.event.special, f = 0; void 0 !== (n = e[f]); f++) {
  3839. if (o.acceptData(n) && (s = n[L.expando], s && (t = L.cache[s]))) {
  3840. if (r = Object.keys(t.events || {}), r.length)
  3841. for (u = 0; void 0 !== (i = r[u]); u++) a[i] ? o.event.remove(n, i) : o.removeEvent(n, i, t.handle);
  3842. L.cache[s] && delete L.cache[s]
  3843. }
  3844. delete M.cache[n[M.expando]]
  3845. }
  3846. }
  3847. }), o.fn.extend({
  3848. text: function(e) {
  3849. return J(this, function(e) {
  3850. return void 0 === e ? o.text(this) : this.empty().each(function() {
  3851. (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) && (this.textContent = e)
  3852. })
  3853. }, null, e, arguments.length)
  3854. },
  3855. append: function() {
  3856. return this.domManip(arguments, function(e) {
  3857. if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
  3858. var t = jb(this, e);
  3859. t.appendChild(e)
  3860. }
  3861. })
  3862. },
  3863. prepend: function() {
  3864. return this.domManip(arguments, function(e) {
  3865. if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
  3866. var t = jb(this, e);
  3867. t.insertBefore(e, t.firstChild)
  3868. }
  3869. })
  3870. },
  3871. before: function() {
  3872. return this.domManip(arguments, function(e) {
  3873. this.parentNode && this.parentNode.insertBefore(e, this)
  3874. })
  3875. },
  3876. after: function() {
  3877. return this.domManip(arguments, function(e) {
  3878. this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
  3879. })
  3880. },
  3881. remove: function(e, t) {
  3882. for (var n, r = e ? o.filter(e, this) : this, i = 0; null != (n = r[i]); i++) t || 1 !== n.nodeType || o.cleanData(ob(n)), n.parentNode && (t && o.contains(n.ownerDocument, n) && mb(ob(n, "script")), n.parentNode.removeChild(n));
  3883. return this
  3884. },
  3885. empty: function() {
  3886. for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (o.cleanData(ob(e, !1)), e.textContent = "");
  3887. return this
  3888. },
  3889. clone: function(e, t) {
  3890. return e = null == e ? !1 : e, t = null == t ? e : t, this.map(function() {
  3891. return o.clone(this, e, t)
  3892. })
  3893. },
  3894. html: function(e) {
  3895. return J(this, function(e) {
  3896. var t = this[0] || {},
  3897. n = 0,
  3898. r = this.length;
  3899. if (void 0 === e && 1 === t.nodeType) return t.innerHTML;
  3900. if ("string" == typeof e && !db.test(e) && !ib[(bb.exec(e) || ["", ""])[1].toLowerCase()]) {
  3901. e = e.replace(ab, "<$1></$2>");
  3902. try {
  3903. for (; r > n; n++) t = this[n] || {}, 1 === t.nodeType && (o.cleanData(ob(t, !1)), t.innerHTML = e);
  3904. t = 0
  3905. } catch (i) {}
  3906. }
  3907. t && this.empty().append(e)
  3908. }, null, e, arguments.length)
  3909. },
  3910. replaceWith: function() {
  3911. var e = arguments[0];
  3912. return this.domManip(arguments, function(t) {
  3913. e = this.parentNode, o.cleanData(ob(this)), e && e.replaceChild(t, this)
  3914. }), e && (e.length || e.nodeType) ? this : this.remove()
  3915. },
  3916. detach: function(e) {
  3917. return this.remove(e, !0)
  3918. },
  3919. domManip: function(t, n) {
  3920. t = e.apply([], t);
  3921. var r, i, s, u, a, f, c = 0,
  3922. h = this.length,
  3923. p = this,
  3924. d = h - 1,
  3925. v = t[0],
  3926. m = o.isFunction(v);
  3927. if (m || h > 1 && "string" == typeof v && !l.checkClone && eb.test(v)) return this.each(function(e) {
  3928. var r = p.eq(e);
  3929. m && (t[0] = v.call(this, e, r.html())), r.domManip(t, n)
  3930. });
  3931. if (h && (r = o.buildFragment(t, this[0].ownerDocument, !1, this), i = r.firstChild, 1 === r.childNodes.length && (r = i), i)) {
  3932. for (s = o.map(ob(r, "script"), kb), u = s.length; h > c; c++) a = r, c !== d && (a = o.clone(a, !0, !0), u && o.merge(s, ob(a, "script"))), n.call(this[c], a, c);
  3933. if (u)
  3934. for (f = s[s.length - 1].ownerDocument, o.map(s, lb), c = 0; u > c; c++) a = s[c], fb.test(a.type || "") && !L.access(a, "globalEval") && o.contains(f, a) && (a.src ? o._evalUrl && o._evalUrl(a.src) : o.globalEval(a.textContent.replace(hb, "")))
  3935. }
  3936. return this
  3937. }
  3938. }), o.each({
  3939. appendTo: "append",
  3940. prependTo: "prepend",
  3941. insertBefore: "before",
  3942. insertAfter: "after",
  3943. replaceAll: "replaceWith"
  3944. }, function(e, t) {
  3945. o.fn[e] = function(e) {
  3946. for (var n, r = [], i = o(e), s = i.length - 1, u = 0; s >= u; u++) n = u === s ? this : this.clone(!0), o(i[u])[t](n), f.apply(r, n.get());
  3947. return this.pushStack(r)
  3948. }
  3949. });
  3950. var qb, rb = {};
  3951. var ub = /^margin/,
  3952. vb = new RegExp("^(" + Q + ")(?!px)[a-z%]+$", "i"),
  3953. wb = function(e) {
  3954. return e.ownerDocument.defaultView.getComputedStyle(e, null)
  3955. };
  3956. ! function() {
  3957. function u() {
  3958. s.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%", r.appendChild(i);
  3959. var n = a.getComputedStyle(s, null);
  3960. e = "1%" !== n.top, t = "4px" === n.width, r.removeChild(i)
  3961. }
  3962. var e, t, n = "padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box",
  3963. r = m.documentElement,
  3964. i = m.createElement("div"),
  3965. s = m.createElement("div");
  3966. s.style.backgroundClip = "content-box", s.cloneNode(!0).style.backgroundClip = "", l.clearCloneStyle = "content-box" === s.style.backgroundClip, i.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px", i.appendChild(s);
  3967. a.getComputedStyle && o.extend(l, {
  3968. pixelPosition: function() {
  3969. return u(), e
  3970. },
  3971. boxSizingReliable: function() {
  3972. return null == t && u(), t
  3973. },
  3974. reliableMarginRight: function() {
  3975. var e, t = s.appendChild(m.createElement("div"));
  3976. return t.style.cssText = s.style.cssText = n, t.style.marginRight = t.style.width = "0", s.style.width = "1px", r.appendChild(i), e = !parseFloat(a.getComputedStyle(t, null).marginRight), r.removeChild(i), s.innerHTML = "", e
  3977. }
  3978. })
  3979. }(), o.swap = function(e, t, n, r) {
  3980. var i, s, o = {};
  3981. for (s in t) o[s] = e.style[s], e.style[s] = t[s];
  3982. i = n.apply(e, r || []);
  3983. for (s in t) e.style[s] = o[s];
  3984. return i
  3985. };
  3986. var zb = /^(none|table(?!-c[ea]).+)/,
  3987. Ab = new RegExp("^(" + Q + ")(.*)$", "i"),
  3988. Bb = new RegExp("^([+-])=(" + Q + ")", "i"),
  3989. Cb = {
  3990. position: "absolute",
  3991. visibility: "hidden",
  3992. display: "block"
  3993. },
  3994. Db = {
  3995. letterSpacing: 0,
  3996. fontWeight: 400
  3997. },
  3998. Eb = ["Webkit", "O", "Moz", "ms"];
  3999. o.extend({
  4000. cssHooks: {
  4001. opacity: {
  4002. get: function(e, t) {
  4003. if (t) {
  4004. var n = xb(e, "opacity");
  4005. return "" === n ? "1" : n
  4006. }
  4007. }
  4008. }
  4009. },
  4010. cssNumber: {
  4011. columnCount: !0,
  4012. fillOpacity: !0,
  4013. fontWeight: !0,
  4014. lineHeight: !0,
  4015. opacity: !0,
  4016. order: !0,
  4017. orphans: !0,
  4018. widows: !0,
  4019. zIndex: !0,
  4020. zoom: !0
  4021. },
  4022. cssProps: {
  4023. "float": "cssFloat"
  4024. },
  4025. style: function(e, t, n, r) {
  4026. if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
  4027. var i, s, u, a = o.camelCase(t),
  4028. f = e.style;
  4029. return t = o.cssProps[a] || (o.cssProps[a] = Fb(f, a)), u = o.cssHooks[t] || o.cssHooks[a], void 0 === n ? u && "get" in u && void 0 !== (i = u.get(e, !1, r)) ? i : f[t] : (s = typeof n, "string" === s && (i = Bb.exec(n)) && (n = (i[1] + 1) * i[2] + parseFloat(o.css(e, t)), s = "number"), null != n && n === n && ("number" !== s || o.cssNumber[a] || (n += "px"), l.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (f[t] = "inherit"), u && "set" in u && void 0 === (n = u.set(e, n, r)) || (f[t] = "", f[t] = n)), void 0)
  4030. }
  4031. },
  4032. css: function(e, t, n, r) {
  4033. var i, s, u, a = o.camelCase(t);
  4034. return t = o.cssProps[a] || (o.cssProps[a] = Fb(e.style, a)), u = o.cssHooks[t] || o.cssHooks[a], u && "get" in u && (i = u.get(e, !0, n)), void 0 === i && (i = xb(e, t, r)), "normal" === i && t in Db && (i = Db[t]), "" === n || n ? (s = parseFloat(i), n === !0 || o.isNumeric(s) ? s || 0 : i) : i
  4035. }
  4036. }), o.each(["height", "width"], function(e, t) {
  4037. o.cssHooks[t] = {
  4038. get: function(e, n, r) {
  4039. return n ? 0 === e.offsetWidth && zb.test(o.css(e, "display")) ? o.swap(e, Cb, function() {
  4040. return Ib(e, t, r)
  4041. }) : Ib(e, t, r) : void 0
  4042. },
  4043. set: function(e, n, r) {
  4044. var i = r && wb(e);
  4045. return Gb(e, n, r ? Hb(e, t, r, "border-box" === o.css(e, "boxSizing", !1, i), i) : 0)
  4046. }
  4047. }
  4048. }), o.cssHooks.marginRight = yb(l.reliableMarginRight, function(e, t) {
  4049. return t ? o.swap(e, {
  4050. display: "inline-block"
  4051. }, xb, [e, "marginRight"]) : void 0
  4052. }), o.each({
  4053. margin: "",
  4054. padding: "",
  4055. border: "Width"
  4056. }, function(e, t) {
  4057. o.cssHooks[e + t] = {
  4058. expand: function(n) {
  4059. for (var r = 0, i = {}, s = "string" == typeof n ? n.split(" ") : [n]; 4 > r; r++) i[e + R[r] + t] = s[r] || s[r - 2] || s[0];
  4060. return i
  4061. }
  4062. }, ub.test(e) || (o.cssHooks[e + t].set = Gb)
  4063. }), o.fn.extend({
  4064. css: function(e, t) {
  4065. return J(this, function(e, t, n) {
  4066. var r, i, s = {},
  4067. u = 0;
  4068. if (o.isArray(t)) {
  4069. for (r = wb(e), i = t.length; i > u; u++) s[t[u]] = o.css(e, t[u], !1, r);
  4070. return s
  4071. }
  4072. return void 0 !== n ? o.style(e, t, n) : o.css(e, t)
  4073. }, e, t, arguments.length > 1)
  4074. },
  4075. show: function() {
  4076. return Jb(this, !0)
  4077. },
  4078. hide: function() {
  4079. return Jb(this)
  4080. },
  4081. toggle: function(e) {
  4082. return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function() {
  4083. S(this) ? o(this).show() : o(this).hide()
  4084. })
  4085. }
  4086. });
  4087. o.Tween = Kb, Kb.prototype = {
  4088. constructor: Kb,
  4089. init: function(e, t, n, r, i, s) {
  4090. this.elem = e, this.prop = n, this.easing = i || "swing", this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = s || (o.cssNumber[n] ? "" : "px")
  4091. },
  4092. cur: function() {
  4093. var e = Kb.propHooks[this.prop];
  4094. return e && e.get ? e.get(this) : Kb.propHooks._default.get(this)
  4095. },
  4096. run: function(e) {
  4097. var t, n = Kb.propHooks[this.prop];
  4098. return this.pos = t = this.options.duration ? o.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : Kb.propHooks._default.set(this), this
  4099. }
  4100. }, Kb.prototype.init.prototype = Kb.prototype, Kb.propHooks = {
  4101. _default: {
  4102. get: function(e) {
  4103. var t;
  4104. return null == e.elem[e.prop] || e.elem.style && null != e.elem.style[e.prop] ? (t = o.css(e.elem, e.prop, ""), t && "auto" !== t ? t : 0) : e.elem[e.prop]
  4105. },
  4106. set: function(e) {
  4107. o.fx.step[e.prop] ? o.fx.step[e.prop](e) : e.elem.style && (null != e.elem.style[o.cssProps[e.prop]] || o.cssHooks[e.prop]) ? o.style(e.elem, e.prop, e.now + e.unit) : e.elem[e.prop] = e.now
  4108. }
  4109. }
  4110. }, Kb.propHooks.scrollTop = Kb.propHooks.scrollLeft = {
  4111. set: function(e) {
  4112. e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
  4113. }
  4114. }, o.easing = {
  4115. linear: function(e) {
  4116. return e
  4117. },
  4118. swing: function(e) {
  4119. return .5 - Math.cos(e * Math.PI) / 2
  4120. }
  4121. }, o.fx = Kb.prototype.init, o.fx.step = {};
  4122. var Lb, Mb, Nb = /^(?:toggle|show|hide)$/,
  4123. Ob = new RegExp("^(?:([+-])=|)(" + Q + ")([a-z%]*)$", "i"),
  4124. Pb = /queueHooks$/,
  4125. Qb = [Vb],
  4126. Rb = {
  4127. "*": [function(e, t) {
  4128. var n = this.createTween(e, t),
  4129. r = n.cur(),
  4130. i = Ob.exec(t),
  4131. s = i && i[3] || (o.cssNumber[e] ? "" : "px"),
  4132. u = (o.cssNumber[e] || "px" !== s && +r) && Ob.exec(o.css(n.elem, e)),
  4133. a = 1,
  4134. f = 20;
  4135. if (u && u[3] !== s) {
  4136. s = s || u[3], i = i || [], u = +r || 1;
  4137. do a = a || ".5", u /= a, o.style(n.elem, e, u + s); while (a !== (a = n.cur() / r) && 1 !== a && --f)
  4138. }
  4139. return i && (u = n.start = +u || +r || 0, n.unit = s, n.end = i[1] ? u + (i[1] + 1) * i[2] : +i[2]), n
  4140. }]
  4141. };
  4142. o.Animation = o.extend(Xb, {
  4143. tweener: function(e, t) {
  4144. o.isFunction(e) ? (t = e, e = ["*"]) : e = e.split(" ");
  4145. for (var n, r = 0, i = e.length; i > r; r++) n = e[r], Rb[n] = Rb[n] || [], Rb[n].unshift(t)
  4146. },
  4147. prefilter: function(e, t) {
  4148. t ? Qb.unshift(e) : Qb.push(e)
  4149. }
  4150. }), o.speed = function(e, t, n) {
  4151. var r = e && "object" == typeof e ? o.extend({}, e) : {
  4152. complete: n || !n && t || o.isFunction(e) && e,
  4153. duration: e,
  4154. easing: n && t || t && !o.isFunction(t) && t
  4155. };
  4156. return r.duration = o.fx.off ? 0 : "number" == typeof r.duration ? r.duration : r.duration in o.fx.speeds ? o.fx.speeds[r.duration] : o.fx.speeds._default, (null == r.queue || r.queue === !0) && (r.queue = "fx"), r.old = r.complete, r.complete = function() {
  4157. o.isFunction(r.old) && r.old.call(this), r.queue && o.dequeue(this, r.queue)
  4158. }, r
  4159. }, o.fn.extend({
  4160. fadeTo: function(e, t, n, r) {
  4161. return this.filter(S).css("opacity", 0).show().end().animate({
  4162. opacity: t
  4163. }, e, n, r)
  4164. },
  4165. animate: function(e, t, n, r) {
  4166. var i = o.isEmptyObject(e),
  4167. s = o.speed(t, n, r),
  4168. u = function() {
  4169. var t = Xb(this, o.extend({}, e), s);
  4170. (i || L.get(this, "finish")) && t.stop(!0)
  4171. };
  4172. return u.finish = u, i || s.queue === !1 ? this.each(u) : this.queue(s.queue, u)
  4173. },
  4174. stop: function(e, t, n) {
  4175. var r = function(e) {
  4176. var t = e.stop;
  4177. delete e.stop, t(n)
  4178. };
  4179. return "string" != typeof e && (n = t, t = e, e = void 0), t && e !== !1 && this.queue(e || "fx", []), this.each(function() {
  4180. var t = !0,
  4181. i = null != e && e + "queueHooks",
  4182. s = o.timers,
  4183. u = L.get(this);
  4184. if (i) u[i] && u[i].stop && r(u[i]);
  4185. else
  4186. for (i in u) u[i] && u[i].stop && Pb.test(i) && r(u[i]);
  4187. for (i = s.length; i--;) s[i].elem !== this || null != e && s[i].queue !== e || (s[i].anim.stop(n), t = !1, s.splice(i, 1));
  4188. (t || !n) && o.dequeue(this, e)
  4189. })
  4190. },
  4191. finish: function(e) {
  4192. return e !== !1 && (e = e || "fx"), this.each(function() {
  4193. var t, n = L.get(this),
  4194. r = n[e + "queue"],
  4195. i = n[e + "queueHooks"],
  4196. s = o.timers,
  4197. u = r ? r.length : 0;
  4198. for (n.finish = !0, o.queue(this, e, []), i && i.stop && i.stop.call(this, !0), t = s.length; t--;) s[t].elem === this && s[t].queue === e && (s[t].anim.stop(!0), s.splice(t, 1));
  4199. for (t = 0; u > t; t++) r[t] && r[t].finish && r[t].finish.call(this);
  4200. delete n.finish
  4201. })
  4202. }
  4203. }), o.each(["toggle", "show", "hide"], function(e, t) {
  4204. var n = o.fn[t];
  4205. o.fn[t] = function(e, r, i) {
  4206. return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(Tb(t, !0), e, r, i)
  4207. }
  4208. }), o.each({
  4209. slideDown: Tb("show"),
  4210. slideUp: Tb("hide"),
  4211. slideToggle: Tb("toggle"),
  4212. fadeIn: {
  4213. opacity: "show"
  4214. },
  4215. fadeOut: {
  4216. opacity: "hide"
  4217. },
  4218. fadeToggle: {
  4219. opacity: "toggle"
  4220. }
  4221. }, function(e, t) {
  4222. o.fn[e] = function(e, n, r) {
  4223. return this.animate(t, e, n, r)
  4224. }
  4225. }), o.timers = [], o.fx.tick = function() {
  4226. var e, t = 0,
  4227. n = o.timers;
  4228. for (Lb = o.now(); t < n.length; t++) e = n[t], e() || n[t] !== e || n.splice(t--, 1);
  4229. n.length || o.fx.stop(), Lb = void 0
  4230. }, o.fx.timer = function(e) {
  4231. o.timers.push(e), e() ? o.fx.start() : o.timers.pop()
  4232. }, o.fx.interval = 13, o.fx.start = function() {
  4233. Mb || (Mb = setInterval(o.fx.tick, o.fx.interval))
  4234. }, o.fx.stop = function() {
  4235. clearInterval(Mb), Mb = null
  4236. }, o.fx.speeds = {
  4237. slow: 600,
  4238. fast: 200,
  4239. _default: 400
  4240. }, o.fn.delay = function(e, t) {
  4241. return e = o.fx ? o.fx.speeds[e] || e : e, t = t || "fx", this.queue(t, function(t, n) {
  4242. var r = setTimeout(t, e);
  4243. n.stop = function() {
  4244. clearTimeout(r)
  4245. }
  4246. })
  4247. },
  4248. function() {
  4249. var e = m.createElement("input"),
  4250. t = m.createElement("select"),
  4251. n = t.appendChild(m.createElement("option"));
  4252. e.type = "checkbox", l.checkOn = "" !== e.value, l.optSelected = n.selected, t.disabled = !0, l.optDisabled = !n.disabled, e = m.createElement("input"), e.value = "t", e.type = "radio", l.radioValue = "t" === e.value
  4253. }();
  4254. var Yb, Zb, $b = o.expr.attrHandle;
  4255. o.fn.extend({
  4256. attr: function(e, t) {
  4257. return J(this, o.attr, e, t, arguments.length > 1)
  4258. },
  4259. removeAttr: function(e) {
  4260. return this.each(function() {
  4261. o.removeAttr(this, e)
  4262. })
  4263. }
  4264. }), o.extend({
  4265. attr: function(e, t, n) {
  4266. var r, i, s = e.nodeType;
  4267. if (e && 3 !== s && 8 !== s && 2 !== s) return typeof e.getAttribute === U ? o.prop(e, t, n) : (1 === s && o.isXMLDoc(e) || (t = t.toLowerCase(), r = o.attrHooks[t] || (o.expr.match.bool.test(t) ? Zb : Yb)), void 0 === n ? r && "get" in r && null !== (i = r.get(e, t)) ? i : (i = o.find.attr(e, t), null == i ? void 0 : i) : null !== n ? r && "set" in r && void 0 !== (i = r.set(e, n, t)) ? i : (e.setAttribute(t, n + ""), n) : void o.removeAttr(e, t))
  4268. },
  4269. removeAttr: function(e, t) {
  4270. var n, r, i = 0,
  4271. s = t && t.match(E);
  4272. if (s && 1 === e.nodeType)
  4273. while (n = s[i++]) r = o.propFix[n] || n, o.expr.match.bool.test(n) && (e[r] = !1), e.removeAttribute(n)
  4274. },
  4275. attrHooks: {
  4276. type: {
  4277. set: function(e, t) {
  4278. if (!l.radioValue && "radio" === t && o.nodeName(e, "input")) {
  4279. var n = e.value;
  4280. return e.setAttribute("type", t), n && (e.value = n), t
  4281. }
  4282. }
  4283. }
  4284. }
  4285. }), Zb = {
  4286. set: function(e, t, n) {
  4287. return t === !1 ? o.removeAttr(e, n) : e.setAttribute(n, n), n
  4288. }
  4289. }, o.each(o.expr.match.bool.source.match(/\w+/g), function(e, t) {
  4290. var n = $b[t] || o.find.attr;
  4291. $b[t] = function(e, t, r) {
  4292. var i, s;
  4293. return r || (s = $b[t], $b[t] = i, i = null != n(e, t, r) ? t.toLowerCase() : null, $b[t] = s), i
  4294. }
  4295. });
  4296. var _b = /^(?:input|select|textarea|button)$/i;
  4297. o.fn.extend({
  4298. prop: function(e, t) {
  4299. return J(this, o.prop, e, t, arguments.length > 1)
  4300. },
  4301. removeProp: function(e) {
  4302. return this.each(function() {
  4303. delete this[o.propFix[e] || e]
  4304. })
  4305. }
  4306. }), o.extend({
  4307. propFix: {
  4308. "for": "htmlFor",
  4309. "class": "className"
  4310. },
  4311. prop: function(e, t, n) {
  4312. var r, i, s, u = e.nodeType;
  4313. if (e && 3 !== u && 8 !== u && 2 !== u) return s = 1 !== u || !o.isXMLDoc(e), s && (t = o.propFix[t] || t, i = o.propHooks[t]), void 0 !== n ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get" in i && null !== (r = i.get(e, t)) ? r : e[t]
  4314. },
  4315. propHooks: {
  4316. tabIndex: {
  4317. get: function(e) {
  4318. return e.hasAttribute("tabindex") || _b.test(e.nodeName) || e.href ? e.tabIndex : -1
  4319. }
  4320. }
  4321. }
  4322. }), l.optSelected || (o.propHooks.selected = {
  4323. get: function(e) {
  4324. var t = e.parentNode;
  4325. return t && t.parentNode && t.parentNode.selectedIndex, null
  4326. }
  4327. }), o.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
  4328. o.propFix[this.toLowerCase()] = this
  4329. });
  4330. var ac = /[\t\r\n\f]/g;
  4331. o.fn.extend({
  4332. addClass: function(e) {
  4333. var t, n, r, i, s, u, a = "string" == typeof e && e,
  4334. f = 0,
  4335. l = this.length;
  4336. if (o.isFunction(e)) return this.each(function(t) {
  4337. o(this).addClass(e.call(this, t, this.className))
  4338. });
  4339. if (a)
  4340. for (t = (e || "").match(E) || []; l > f; f++)
  4341. if (n = this[f], r = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace(ac, " ") : " ")) {
  4342. s = 0;
  4343. while (i = t[s++]) r.indexOf(" " + i + " ") < 0 && (r += i + " ");
  4344. u = o.trim(r), n.className !== u && (n.className = u)
  4345. }
  4346. return this
  4347. },
  4348. removeClass: function(e) {
  4349. var t, n, r, i, s, u, a = 0 === arguments.length || "string" == typeof e && e,
  4350. f = 0,
  4351. l = this.length;
  4352. if (o.isFunction(e)) return this.each(function(t) {
  4353. o(this).removeClass(e.call(this, t, this.className))
  4354. });
  4355. if (a)
  4356. for (t = (e || "").match(E) || []; l > f; f++)
  4357. if (n = this[f], r = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace(ac, " ") : "")) {
  4358. s = 0;
  4359. while (i = t[s++])
  4360. while (r.indexOf(" " + i + " ") >= 0) r = r.replace(" " + i + " ", " ");
  4361. u = e ? o.trim(r) : "", n.className !== u && (n.className = u)
  4362. }
  4363. return this
  4364. },
  4365. toggleClass: function(e, t) {
  4366. var n = typeof e;
  4367. return "boolean" == typeof t && "string" === n ? t ? this.addClass(e) : this.removeClass(e) : this.each(o.isFunction(e) ? function(n) {
  4368. o(this).toggleClass(e.call(this, n, this.className, t), t)
  4369. } : function() {
  4370. if ("string" === n) {
  4371. var t, r = 0,
  4372. i = o(this),
  4373. s = e.match(E) || [];
  4374. while (t = s[r++]) i.hasClass(t) ? i.removeClass(t) : i.addClass(t)
  4375. } else(n === U || "boolean" === n) && (this.className && L.set(this, "__className__", this.className), this.className = this.className || e === !1 ? "" : L.get(this, "__className__") || "")
  4376. })
  4377. },
  4378. hasClass: function(e) {
  4379. for (var t = " " + e + " ", n = 0, r = this.length; r > n; n++)
  4380. if (1 === this[n].nodeType && (" " + this[n].className + " ").replace(ac, " ").indexOf(t) >= 0) return !0;
  4381. return !1
  4382. }
  4383. });
  4384. var bc = /\r/g;
  4385. o.fn.extend({
  4386. val: function(e) {
  4387. var t, n, r, i = this[0]; {
  4388. if (arguments.length) return r = o.isFunction(e), this.each(function(n) {
  4389. var i;
  4390. 1 === this.nodeType && (i = r ? e.call(this, n, o(this).val()) : e, null == i ? i = "" : "number" == typeof i ? i += "" : o.isArray(i) && (i = o.map(i, function(e) {
  4391. return null == e ? "" : e + ""
  4392. })), t = o.valHooks[this.type] || o.valHooks[this.nodeName.toLowerCase()], t && "set" in t && void 0 !== t.set(this, i, "value") || (this.value = i))
  4393. });
  4394. if (i) return t = o.valHooks[i.type] || o.valHooks[i.nodeName.toLowerCase()], t && "get" in t && void 0 !== (n = t.get(i, "value")) ? n : (n = i.value, "string" == typeof n ? n.replace(bc, "") : null == n ? "" : n)
  4395. }
  4396. }
  4397. }), o.extend({
  4398. valHooks: {
  4399. select: {
  4400. get: function(e) {
  4401. for (var t, n, r = e.options, i = e.selectedIndex, s = "select-one" === e.type || 0 > i, u = s ? null : [], a = s ? i + 1 : r.length, f = 0 > i ? a : s ? i : 0; a > f; f++)
  4402. if (n = r[f], !(!n.selected && f !== i || (l.optDisabled ? n.disabled : null !== n.getAttribute("disabled")) || n.parentNode.disabled && o.nodeName(n.parentNode, "optgroup"))) {
  4403. if (t = o(n).val(), s) return t;
  4404. u.push(t)
  4405. }
  4406. return u
  4407. },
  4408. set: function(e, t) {
  4409. var n, r, i = e.options,
  4410. s = o.makeArray(t),
  4411. u = i.length;
  4412. while (u--) r = i[u], (r.selected = o.inArray(o(r).val(), s) >= 0) && (n = !0);
  4413. return n || (e.selectedIndex = -1), s
  4414. }
  4415. }
  4416. }
  4417. }), o.each(["radio", "checkbox"], function() {
  4418. o.valHooks[this] = {
  4419. set: function(e, t) {
  4420. return o.isArray(t) ? e.checked = o.inArray(o(e).val(), t) >= 0 : void 0
  4421. }
  4422. }, l.checkOn || (o.valHooks[this].get = function(e) {
  4423. return null === e.getAttribute("value") ? "on" : e.value
  4424. })
  4425. }), o.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(e, t) {
  4426. o.fn[t] = function(e, n) {
  4427. return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t)
  4428. }
  4429. }), o.fn.extend({
  4430. hover: function(e, t) {
  4431. return this.mouseenter(e).mouseleave(t || e)
  4432. },
  4433. bind: function(e, t, n) {
  4434. return this.on(e, null, t, n)
  4435. },
  4436. unbind: function(e, t) {
  4437. return this.off(e, null, t)
  4438. },
  4439. delegate: function(e, t, n, r) {
  4440. return this.on(t, e, n, r)
  4441. },
  4442. undelegate: function(e, t, n) {
  4443. return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n)
  4444. }
  4445. });
  4446. var cc = o.now(),
  4447. dc = /\?/;
  4448. o.parseJSON = function(e) {
  4449. return JSON.parse(e + "")
  4450. }, o.parseXML = function(e) {
  4451. var t, n;
  4452. if (!e || "string" != typeof e) return null;
  4453. try {
  4454. n = new DOMParser, t = n.parseFromString(e, "text/xml")
  4455. } catch (r) {
  4456. t = void 0
  4457. }
  4458. return (!t || t.getElementsByTagName("parsererror").length) && o.error("Invalid XML: " + e), t
  4459. };
  4460. var ec, fc, gc = /#.*$/,
  4461. hc = /([?&])_=[^&]*/,
  4462. ic = /^(.*?):[ \t]*([^\r\n]*)$/gm,
  4463. jc = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
  4464. kc = /^(?:GET|HEAD)$/,
  4465. lc = /^\/\//,
  4466. mc = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
  4467. nc = {},
  4468. oc = {},
  4469. pc = "*/".concat("*");
  4470. try {
  4471. fc = location.href
  4472. } catch (qc) {
  4473. fc = m.createElement("a"), fc.href = "", fc = fc.href
  4474. }
  4475. ec = mc.exec(fc.toLowerCase()) || [];
  4476. o.extend({
  4477. active: 0,
  4478. lastModified: {},
  4479. etag: {},
  4480. ajaxSettings: {
  4481. url: fc,
  4482. type: "GET",
  4483. isLocal: jc.test(ec[1]),
  4484. global: !0,
  4485. processData: !0,
  4486. async: !0,
  4487. contentType: "application/x-www-form-urlencoded; charset=UTF-8",
  4488. accepts: {
  4489. "*": pc,
  4490. text: "text/plain",
  4491. html: "text/html",
  4492. xml: "application/xml, text/xml",
  4493. json: "application/json, text/javascript"
  4494. },
  4495. contents: {
  4496. xml: /xml/,
  4497. html: /html/,
  4498. json: /json/
  4499. },
  4500. responseFields: {
  4501. xml: "responseXML",
  4502. text: "responseText",
  4503. json: "responseJSON"
  4504. },
  4505. converters: {
  4506. "* text": String,
  4507. "text html": !0,
  4508. "text json": o.parseJSON,
  4509. "text xml": o.parseXML
  4510. },
  4511. flatOptions: {
  4512. url: !0,
  4513. context: !0
  4514. }
  4515. },
  4516. ajaxSetup: function(e, t) {
  4517. return t ? tc(tc(e, o.ajaxSettings), t) : tc(o.ajaxSettings, e)
  4518. },
  4519. ajaxPrefilter: rc(nc),
  4520. ajaxTransport: rc(oc),
  4521. ajax: function(e, t) {
  4522. function T(e, t, s, a) {
  4523. var l, g, y, w, E, x = t;
  4524. 2 !== b && (b = 2, u && clearTimeout(u), n = void 0, i = a || "", S.readyState = e > 0 ? 4 : 0, l = e >= 200 && 300 > e || 304 === e, s && (w = uc(c, S, s)), w = vc(c, w, S, l), l ? (c.ifModified && (E = S.getResponseHeader("Last-Modified"), E && (o.lastModified[r] = E), E = S.getResponseHeader("etag"), E && (o.etag[r] = E)), 204 === e || "HEAD" === c.type ? x = "nocontent" : 304 === e ? x = "notmodified" : (x = w.state, g = w.data, y = w.error, l = !y)) : (y = x, (e || !x) && (x = "error", 0 > e && (e = 0))), S.status = e, S.statusText = (t || x) + "", l ? d.resolveWith(h, [g, x, S]) : d.rejectWith(h, [S, x, y]), S.statusCode(m), m = void 0, f && p.trigger(l ? "ajaxSuccess" : "ajaxError", [S, c, l ? g : y]), v.fireWith(h, [S, x]), f && (p.trigger("ajaxComplete", [S, c]), --o.active || o.event.trigger("ajaxStop")))
  4525. }
  4526. "object" == typeof e && (t = e, e = void 0), t = t || {};
  4527. var n, r, i, s, u, a, f, l, c = o.ajaxSetup({}, t),
  4528. h = c.context || c,
  4529. p = c.context && (h.nodeType || h.jquery) ? o(h) : o.event,
  4530. d = o.Deferred(),
  4531. v = o.Callbacks("once memory"),
  4532. m = c.statusCode || {},
  4533. g = {},
  4534. y = {},
  4535. b = 0,
  4536. w = "canceled",
  4537. S = {
  4538. readyState: 0,
  4539. getResponseHeader: function(e) {
  4540. var t;
  4541. if (2 === b) {
  4542. if (!s) {
  4543. s = {};
  4544. while (t = ic.exec(i)) s[t[1].toLowerCase()] = t[2]
  4545. }
  4546. t = s[e.toLowerCase()]
  4547. }
  4548. return null == t ? null : t
  4549. },
  4550. getAllResponseHeaders: function() {
  4551. return 2 === b ? i : null
  4552. },
  4553. setRequestHeader: function(e, t) {
  4554. var n = e.toLowerCase();
  4555. return b || (e = y[n] = y[n] || e, g[e] = t), this
  4556. },
  4557. overrideMimeType: function(e) {
  4558. return b || (c.mimeType = e), this
  4559. },
  4560. statusCode: function(e) {
  4561. var t;
  4562. if (e)
  4563. if (2 > b)
  4564. for (t in e) m[t] = [m[t], e[t]];
  4565. else S.always(e[S.status]);
  4566. return this
  4567. },
  4568. abort: function(e) {
  4569. var t = e || w;
  4570. return n && n.abort(t), T(0, t), this
  4571. }
  4572. };
  4573. if (d.promise(S).complete = v.add, S.success = S.done, S.error = S.fail, c.url = ((e || c.url || fc) + "").replace(gc, "").replace(lc, ec[1] + "//"), c.type = t.method || t.type || c.method || c.type, c.dataTypes = o.trim(c.dataType || "*").toLowerCase().match(E) || [""], null == c.crossDomain && (a = mc.exec(c.url.toLowerCase()), c.crossDomain = !(!a || a[1] === ec[1] && a[2] === ec[2] && (a[3] || ("http:" === a[1] ? "80" : "443")) === (ec[3] || ("http:" === ec[1] ? "80" : "443")))), c.data && c.processData && "string" != typeof c.data && (c.data = o.param(c.data, c.traditional)), sc(nc, c, t, S), 2 === b) return S;
  4574. f = c.global, f && 0 === o.active++ && o.event.trigger("ajaxStart"), c.type = c.type.toUpperCase(), c.hasContent = !kc.test(c.type), r = c.url, c.hasContent || (c.data && (r = c.url += (dc.test(r) ? "&" : "?") + c.data, delete c.data), c.cache === !1 && (c.url = hc.test(r) ? r.replace(hc, "$1_=" + cc++) : r + (dc.test(r) ? "&" : "?") + "_=" + cc++)), c.ifModified && (o.lastModified[r] && S.setRequestHeader("If-Modified-Since", o.lastModified[r]), o.etag[r] && S.setRequestHeader("If-None-Match", o.etag[r])), (c.data && c.hasContent && c.contentType !== !1 || t.contentType) && S.setRequestHeader("Content-Type", c.contentType), S.setRequestHeader("Accept", c.dataTypes[0] && c.accepts[c.dataTypes[0]] ? c.accepts[c.dataTypes[0]] + ("*" !== c.dataTypes[0] ? ", " + pc + "; q=0.01" : "") : c.accepts["*"]);
  4575. for (l in c.headers) S.setRequestHeader(l, c.headers[l]);
  4576. if (c.beforeSend && (c.beforeSend.call(h, S, c) === !1 || 2 === b)) return S.abort();
  4577. w = "abort";
  4578. for (l in {
  4579. success: 1,
  4580. error: 1,
  4581. complete: 1
  4582. }) S[l](c[l]);
  4583. if (n = sc(oc, c, t, S)) {
  4584. S.readyState = 1, f && p.trigger("ajaxSend", [S, c]), c.async && c.timeout > 0 && (u = setTimeout(function() {
  4585. S.abort("timeout")
  4586. }, c.timeout));
  4587. try {
  4588. b = 1, n.send(g, T)
  4589. } catch (x) {
  4590. if (!(2 > b)) throw x;
  4591. T(-1, x)
  4592. }
  4593. } else T(-1, "No Transport");
  4594. return S
  4595. },
  4596. getJSON: function(e, t, n) {
  4597. return o.get(e, t, n, "json")
  4598. },
  4599. getScript: function(e, t) {
  4600. return o.get(e, void 0, t, "script")
  4601. }
  4602. }), o.each(["get", "post"], function(e, t) {
  4603. o[t] = function(e, n, r, i) {
  4604. return o.isFunction(n) && (i = i || r, r = n, n = void 0), o.ajax({
  4605. url: e,
  4606. type: t,
  4607. dataType: i,
  4608. data: n,
  4609. success: r
  4610. })
  4611. }
  4612. }), o.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e, t) {
  4613. o.fn[t] = function(e) {
  4614. return this.on(t, e)
  4615. }
  4616. }), o._evalUrl = function(e) {
  4617. return o.ajax({
  4618. url: e,
  4619. type: "GET",
  4620. dataType: "script",
  4621. async: !1,
  4622. global: !1,
  4623. "throws": !0
  4624. })
  4625. }, o.fn.extend({
  4626. wrapAll: function(e) {
  4627. var t;
  4628. return o.isFunction(e) ? this.each(function(t) {
  4629. o(this).wrapAll(e.call(this, t))
  4630. }) : (this[0] && (t = o(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function() {
  4631. var e = this;
  4632. while (e.firstElementChild) e = e.firstElementChild;
  4633. return e
  4634. }).append(this)), this)
  4635. },
  4636. wrapInner: function(e) {
  4637. return this.each(o.isFunction(e) ? function(t) {
  4638. o(this).wrapInner(e.call(this, t))
  4639. } : function() {
  4640. var t = o(this),
  4641. n = t.contents();
  4642. n.length ? n.wrapAll(e) : t.append(e)
  4643. })
  4644. },
  4645. wrap: function(e) {
  4646. var t = o.isFunction(e);
  4647. return this.each(function(n) {
  4648. o(this).wrapAll(t ? e.call(this, n) : e)
  4649. })
  4650. },
  4651. unwrap: function() {
  4652. return this.parent().each(function() {
  4653. o.nodeName(this, "body") || o(this).replaceWith(this.childNodes)
  4654. }).end()
  4655. }
  4656. }), o.expr.filters.hidden = function(e) {
  4657. return e.offsetWidth <= 0 && e.offsetHeight <= 0
  4658. }, o.expr.filters.visible = function(e) {
  4659. return !o.expr.filters.hidden(e)
  4660. };
  4661. var wc = /%20/g,
  4662. xc = /\[\]$/,
  4663. yc = /\r?\n/g,
  4664. zc = /^(?:submit|button|image|reset|file)$/i,
  4665. Ac = /^(?:input|select|textarea|keygen)/i;
  4666. o.param = function(e, t) {
  4667. var n, r = [],
  4668. i = function(e, t) {
  4669. t = o.isFunction(t) ? t() : null == t ? "" : t, r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t)
  4670. };
  4671. if (void 0 === t && (t = o.ajaxSettings && o.ajaxSettings.traditional), o.isArray(e) || e.jquery && !o.isPlainObject(e)) o.each(e, function() {
  4672. i(this.name, this.value)
  4673. });
  4674. else
  4675. for (n in e) Bc(n, e[n], t, i);
  4676. return r.join("&").replace(wc, "+")
  4677. }, o.fn.extend({
  4678. serialize: function() {
  4679. return o.param(this.serializeArray())
  4680. },
  4681. serializeArray: function() {
  4682. return this.map(function() {
  4683. var e = o.prop(this, "elements");
  4684. return e ? o.makeArray(e) : this
  4685. }).filter(function() {
  4686. var e = this.type;
  4687. return this.name && !o(this).is(":disabled") && Ac.test(this.nodeName) && !zc.test(e) && (this.checked || !T.test(e))
  4688. }).map(function(e, t) {
  4689. var n = o(this).val();
  4690. return null == n ? null : o.isArray(n) ? o.map(n, function(e) {
  4691. return {
  4692. name: t.name,
  4693. value: e.replace(yc, "\r\n")
  4694. }
  4695. }) : {
  4696. name: t.name,
  4697. value: n.replace(yc, "\r\n")
  4698. }
  4699. }).get()
  4700. }
  4701. }), o.ajaxSettings.xhr = function() {
  4702. try {
  4703. return new XMLHttpRequest
  4704. } catch (e) {}
  4705. };
  4706. var Cc = 0,
  4707. Dc = {},
  4708. Ec = {
  4709. 0: 200,
  4710. 1223: 204
  4711. },
  4712. Fc = o.ajaxSettings.xhr();
  4713. a.ActiveXObject && o(a).on("unload", function() {
  4714. for (var e in Dc) Dc[e]()
  4715. }), l.cors = !!Fc && "withCredentials" in Fc, l.ajax = Fc = !!Fc, o.ajaxTransport(function(e) {
  4716. var t;
  4717. return l.cors || Fc && !e.crossDomain ? {
  4718. send: function(n, r) {
  4719. var i, s = e.xhr(),
  4720. o = ++Cc;
  4721. if (s.open(e.type, e.url, e.async, e.username, e.password), e.xhrFields)
  4722. for (i in e.xhrFields) s[i] = e.xhrFields[i];
  4723. e.mimeType && s.overrideMimeType && s.overrideMimeType(e.mimeType), e.crossDomain || n["X-Requested-With"] || (n["X-Requested-With"] = "XMLHttpRequest");
  4724. for (i in n) s.setRequestHeader(i, n[i]);
  4725. t = function(e) {
  4726. return function() {
  4727. t && (delete Dc[o], t = s.onload = s.onerror = null, "abort" === e ? s.abort() : "error" === e ? r(s.status, s.statusText) : r(Ec[s.status] || s.status, s.statusText, "string" == typeof s.responseText ? {
  4728. text: s.responseText
  4729. } : void 0, s.getAllResponseHeaders()))
  4730. }
  4731. }, s.onload = t(), s.onerror = t("error"), t = Dc[o] = t("abort"), s.send(e.hasContent && e.data || null)
  4732. },
  4733. abort: function() {
  4734. t && t()
  4735. }
  4736. } : void 0
  4737. }), o.ajaxSetup({
  4738. accepts: {
  4739. script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
  4740. },
  4741. contents: {
  4742. script: /(?:java|ecma)script/
  4743. },
  4744. converters: {
  4745. "text script": function(e) {
  4746. return o.globalEval(e), e
  4747. }
  4748. }
  4749. }), o.ajaxPrefilter("script", function(e) {
  4750. void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET")
  4751. }), o.ajaxTransport("script", function(e) {
  4752. if (e.crossDomain) {
  4753. var t, n;
  4754. return {
  4755. send: function(r, i) {
  4756. t = o("<script>").prop({
  4757. async: !0,
  4758. charset: e.scriptCharset,
  4759. src: e.url
  4760. }).on("load error", n = function(e) {
  4761. t.remove(), n = null, e && i("error" === e.type ? 404 : 200, e.type)
  4762. }), m.head.appendChild(t[0])
  4763. },
  4764. abort: function() {
  4765. n && n()
  4766. }
  4767. }
  4768. }
  4769. });
  4770. var Gc = [],
  4771. Hc = /(=)\?(?=&|$)|\?\?/;
  4772. o.ajaxSetup({
  4773. jsonp: "callback",
  4774. jsonpCallback: function() {
  4775. var e = Gc.pop() || o.expando + "_" + cc++;
  4776. return this[e] = !0, e
  4777. }
  4778. }), o.ajaxPrefilter("json jsonp", function(e, t, n) {
  4779. var r, i, s, u = e.jsonp !== !1 && (Hc.test(e.url) ? "url" : "string" == typeof e.data && !(e.contentType || "").indexOf("application/x-www-form-urlencoded") && Hc.test(e.data) && "data");
  4780. return u || "jsonp" === e.dataTypes[0] ? (r = e.jsonpCallback = o.isFunction(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, u ? e[u] = e[u].replace(Hc, "$1" + r) : e.jsonp !== !1 && (e.url += (dc.test(e.url) ? "&" : "?") + e.jsonp + "=" + r), e.converters["script json"] = function() {
  4781. return s || o.error(r + " was not called"), s[0]
  4782. }, e.dataTypes[0] = "json", i = a[r], a[r] = function() {
  4783. s = arguments
  4784. }, n.always(function() {
  4785. a[r] = i, e[r] && (e.jsonpCallback = t.jsonpCallback, Gc.push(r)), s && o.isFunction(i) && i(s[0]), s = i = void 0
  4786. }), "script") : void 0
  4787. }), o.parseHTML = function(e, t, n) {
  4788. if (!e || "string" != typeof e) return null;
  4789. "boolean" == typeof t && (n = t, t = !1), t = t || m;
  4790. var r = v.exec(e),
  4791. i = !n && [];
  4792. return r ? [t.createElement(r[1])] : (r = o.buildFragment([e], t, i), i && i.length && o(i).remove(), o.merge([], r.childNodes))
  4793. };
  4794. var Ic = o.fn.load;
  4795. o.fn.load = function(e, t, n) {
  4796. if ("string" != typeof e && Ic) return Ic.apply(this, arguments);
  4797. var r, i, s, u = this,
  4798. a = e.indexOf(" ");
  4799. return a >= 0 && (r = e.slice(a), e = e.slice(0, a)), o.isFunction(t) ? (n = t, t = void 0) : t && "object" == typeof t && (i = "POST"), u.length > 0 && o.ajax({
  4800. url: e,
  4801. type: i,
  4802. dataType: "html",
  4803. data: t
  4804. }).done(function(e) {
  4805. s = arguments, u.html(r ? o("<div>").append(o.parseHTML(e)).find(r) : e)
  4806. }).complete(n && function(e, t) {
  4807. u.each(n, s || [e.responseText, t, e])
  4808. }), this
  4809. }, o.expr.filters.animated = function(e) {
  4810. return o.grep(o.timers, function(t) {
  4811. return e === t.elem
  4812. }).length
  4813. };
  4814. var Jc = a.document.documentElement;
  4815. o.offset = {
  4816. setOffset: function(e, t, n) {
  4817. var r, i, s, u, a, f, l, c = o.css(e, "position"),
  4818. h = o(e),
  4819. p = {};
  4820. "static" === c && (e.style.position = "relative"), a = h.offset(), s = o.css(e, "top"), f = o.css(e, "left"), l = ("absolute" === c || "fixed" === c) && (s + f).indexOf("auto") > -1, l ? (r = h.position(), u = r.top, i = r.left) : (u = parseFloat(s) || 0, i = parseFloat(f) || 0), o.isFunction(t) && (t = t.call(e, n, a)), null != t.top && (p.top = t.top - a.top + u), null != t.left && (p.left = t.left - a.left + i), "using" in t ? t.using.call(e, p) : h.css(p)
  4821. }
  4822. }, o.fn.extend({
  4823. offset: function(e) {
  4824. if (arguments.length) return void 0 === e ? this : this.each(function(t) {
  4825. o.offset.setOffset(this, e, t)
  4826. });
  4827. var t, n, r = this[0],
  4828. i = {
  4829. top: 0,
  4830. left: 0
  4831. },
  4832. s = r && r.ownerDocument;
  4833. if (s) return t = s.documentElement, o.contains(t, r) ? (typeof r.getBoundingClientRect !== U && (i = r.getBoundingClientRect()), n = Kc(s), {
  4834. top: i.top + n.pageYOffset - t.clientTop,
  4835. left: i.left + n.pageXOffset - t.clientLeft
  4836. }) : i
  4837. },
  4838. position: function() {
  4839. if (this[0]) {
  4840. var e, t, n = this[0],
  4841. r = {
  4842. top: 0,
  4843. left: 0
  4844. };
  4845. return "fixed" === o.css(n, "position") ? t = n.getBoundingClientRect() : (e = this.offsetParent(), t = this.offset(), o.nodeName(e[0], "html") || (r = e.offset()), r.top += o.css(e[0], "borderTopWidth", !0), r.left += o.css(e[0], "borderLeftWidth", !0)), {
  4846. top: t.top - r.top - o.css(n, "marginTop", !0),
  4847. left: t.left - r.left - o.css(n, "marginLeft", !0)
  4848. }
  4849. }
  4850. },
  4851. offsetParent: function() {
  4852. return this.map(function() {
  4853. var e = this.offsetParent || Jc;
  4854. while (e && !o.nodeName(e, "html") && "static" === o.css(e, "position")) e = e.offsetParent;
  4855. return e || Jc
  4856. })
  4857. }
  4858. }), o.each({
  4859. scrollLeft: "pageXOffset",
  4860. scrollTop: "pageYOffset"
  4861. }, function(e, t) {
  4862. var n = "pageYOffset" === t;
  4863. o.fn[e] = function(r) {
  4864. return J(this, function(e, r, i) {
  4865. var s = Kc(e);
  4866. return void 0 === i ? s ? s[t] : e[r] : void(s ? s.scrollTo(n ? a.pageXOffset : i, n ? i : a.pageYOffset) : e[r] = i)
  4867. }, e, r, arguments.length, null)
  4868. }
  4869. }), o.each(["top", "left"], function(e, t) {
  4870. o.cssHooks[t] = yb(l.pixelPosition, function(e, n) {
  4871. return n ? (n = xb(e, t), vb.test(n) ? o(e).position()[t] + "px" : n) : void 0
  4872. })
  4873. }), o.each({
  4874. Height: "height",
  4875. Width: "width"
  4876. }, function(e, t) {
  4877. o.each({
  4878. padding: "inner" + e,
  4879. content: t,
  4880. "": "outer" + e
  4881. }, function(n, r) {
  4882. o.fn[r] = function(r, i) {
  4883. var s = arguments.length && (n || "boolean" != typeof r),
  4884. u = n || (r === !0 || i === !0 ? "margin" : "border");
  4885. return J(this, function(t, n, r) {
  4886. var i;
  4887. return o.isWindow(t) ? t.document.documentElement["client" + e] : 9 === t.nodeType ? (i = t.documentElement, Math.max(t.body["scroll" + e], i["scroll" + e], t.body["offset" + e], i["offset" + e], i["client" + e])) : void 0 === r ? o.css(t, n, u) : o.style(t, n, r, u)
  4888. }, t, s ? r : void 0, s, null)
  4889. }
  4890. })
  4891. }), o.fn.size = function() {
  4892. return this.length
  4893. }, o.fn.andSelf = o.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function() {
  4894. return o
  4895. });
  4896. var Lc = a.jQuery,
  4897. Mc = a.$;
  4898. return o.noConflict = function(e) {
  4899. return a.$ === o && (a.$ = Mc), e && a.jQuery === o && (a.jQuery = Lc), o
  4900. }, typeof b === U && (a.jQuery = a.$ = o), o
  4901. });
  4902. (function(e, t) {
  4903. function n(n, r) {
  4904. function i(e) {
  4905. return u.preferFlash && Lt && !u.ignoreFlash && u.flash[e] !== t && u.flash[e]
  4906. }
  4907.  
  4908. function s(e) {
  4909. return function(t) {
  4910. var n = this._s;
  4911. return !n || !n._a ? null : e.call(this, t)
  4912. }
  4913. }
  4914. this.setupOptions = {
  4915. url: n || null,
  4916. flashVersion: 8,
  4917. debugMode: !0,
  4918. debugFlash: !1,
  4919. useConsole: !0,
  4920. consoleOnly: !0,
  4921. waitForWindowLoad: !1,
  4922. bgColor: "#ffffff",
  4923. useHighPerformance: !1,
  4924. flashPollingInterval: null,
  4925. html5PollingInterval: null,
  4926. flashLoadTimeout: 1e3,
  4927. wmode: null,
  4928. allowScriptAccess: "always",
  4929. useFlashBlock: !1,
  4930. useHTML5Audio: !0,
  4931. html5Test: /^(probably|maybe)$/i,
  4932. preferFlash: !1,
  4933. noSWFCache: !1,
  4934. idPrefix: "sound"
  4935. };
  4936. this.defaultOptions = {
  4937. autoLoad: !1,
  4938. autoPlay: !1,
  4939. from: null,
  4940. loops: 1,
  4941. onid3: null,
  4942. onload: null,
  4943. whileloading: null,
  4944. onplay: null,
  4945. onpause: null,
  4946. onresume: null,
  4947. whileplaying: null,
  4948. onposition: null,
  4949. onstop: null,
  4950. onfailure: null,
  4951. onfinish: null,
  4952. multiShot: !0,
  4953. multiShotEvents: !1,
  4954. position: null,
  4955. pan: 0,
  4956. stream: !0,
  4957. to: null,
  4958. type: null,
  4959. usePolicyFile: !1,
  4960. volume: 100
  4961. };
  4962. this.flash9Options = {
  4963. isMovieStar: null,
  4964. usePeakData: !1,
  4965. useWaveformData: !1,
  4966. useEQData: !1,
  4967. onbufferchange: null,
  4968. ondataerror: null
  4969. };
  4970. this.movieStarOptions = {
  4971. bufferTime: 3,
  4972. serverURL: null,
  4973. onconnect: null,
  4974. duration: null
  4975. };
  4976. this.audioFormats = {
  4977. mp3: {
  4978. type: ['audio/mpeg; codecs="mp3"', "audio/mpeg", "audio/mp3", "audio/MPA", "audio/mpa-robust"],
  4979. required: !0
  4980. },
  4981. mp4: {
  4982. related: ["aac", "m4a", "m4b"],
  4983. type: ['audio/mp4; codecs="mp4a.40.2"', "audio/aac", "audio/x-m4a", "audio/MP4A-LATM", "audio/mpeg4-generic"],
  4984. required: !1
  4985. },
  4986. ogg: {
  4987. type: ["audio/ogg; codecs=vorbis"],
  4988. required: !1
  4989. },
  4990. opus: {
  4991. type: ["audio/ogg; codecs=opus", "audio/opus"],
  4992. required: !1
  4993. },
  4994. wav: {
  4995. type: ['audio/wav; codecs="1"', "audio/wav", "audio/wave", "audio/x-wav"],
  4996. required: !1
  4997. }
  4998. };
  4999. this.movieID = "sm2-container";
  5000. this.id = r || "sm2movie";
  5001. this.debugID = "soundmanager-debug";
  5002. this.debugURLParam = /([#?&])debug=1/i;
  5003. this.versionNumber = "V2.97a.20131201";
  5004. this.altURL = this.movieURL = this.version = null;
  5005. this.enabled = this.swfLoaded = !1;
  5006. this.oMC = null;
  5007. this.sounds = {};
  5008. this.soundIDs = [];
  5009. this.didFlashBlock = this.muted = !1;
  5010. this.filePattern = null;
  5011. this.filePatterns = {
  5012. flash8: /\.mp3(\?.*)?$/i,
  5013. flash9: /\.mp3(\?.*)?$/i
  5014. };
  5015. this.features = {
  5016. buffering: !1,
  5017. peakData: !1,
  5018. waveformData: !1,
  5019. eqData: !1,
  5020. movieStar: !1
  5021. };
  5022. this.sandbox = {};
  5023. this.html5 = {
  5024. usingFlash: null
  5025. };
  5026. this.flash = {};
  5027. this.ignoreFlash = this.html5Only = !1;
  5028. var o, u = this,
  5029. a = null,
  5030. f = null,
  5031. l, c = navigator.userAgent,
  5032. h = e.location.href.toString(),
  5033. p = document,
  5034. d, v, m, y, b = [],
  5035. w = !1,
  5036. E = !1,
  5037. S = !1,
  5038. x = !1,
  5039. T = !1,
  5040. N, C, L, A, O, M, _, D, P, H, B, j, F, I, q, R, U, z, W, X, V, $, J, K, Q, G, Y = null,
  5041. Z = null,
  5042. et, tt, nt, rt, it, st, ot = !1,
  5043. ut = !1,
  5044. at, ft, lt, ct = 0,
  5045. ht = null,
  5046. pt, dt = [],
  5047. vt, mt = null,
  5048. gt, yt, bt, wt, Et, St, xt, Tt, Nt = Array.prototype.slice,
  5049. Ct = !1,
  5050. kt, Lt, At, Ot, Mt, _t, Dt = 0,
  5051. Pt = c.match(/(ipad|iphone|ipod)/i),
  5052. Ht = c.match(/android/i),
  5053. Bt = c.match(/msie/i),
  5054. jt = c.match(/webkit/i),
  5055. Ft = c.match(/safari/i) && !c.match(/chrome/i),
  5056. It = c.match(/opera/i),
  5057. qt = c.match(/(mobile|pre\/|xoom)/i) || Pt || Ht,
  5058. Rt = !h.match(/usehtml5audio/i) && !h.match(/sm2\-ignorebadua/i) && Ft && !c.match(/silk/i) && c.match(/OS X 10_6_([3-7])/i),
  5059. Ut = p.hasFocus !== t ? p.hasFocus() : null,
  5060. zt = Ft && (p.hasFocus === t || !p.hasFocus()),
  5061. Wt = !zt,
  5062. Xt = /(mp3|mp4|mpa|m4a|m4b)/i,
  5063. Vt = p.location ? p.location.protocol.match(/http/i) : null,
  5064. $t = !Vt ? "http://" : "",
  5065. Jt = /^\s*audio\/(?:x-)?(?:mpeg4|aac|flv|mov|mp4||m4v|m4a|m4b|mp4v|3gp|3g2)\s*(?:$|;)/i,
  5066. Kt = "mpeg4 aac flv mov mp4 m4v f4v m4a m4b mp4v 3gp 3g2".split(" "),
  5067. Qt = RegExp("\\.(" + Kt.join("|") + ")(\\?.*)?$", "i");
  5068. this.mimePattern = /^\s*audio\/(?:x-)?(?:mp(?:eg|3))\s*(?:$|;)/i;
  5069. this.useAltURL = !Vt;
  5070. var Gt;
  5071. try {
  5072. Gt = Audio !== t && (It && opera !== t && 10 > opera.version() ? new Audio(null) : new Audio).canPlayType !== t
  5073. } catch (Yt) {
  5074. Gt = !1
  5075. }
  5076. this.hasHTML5 = Gt;
  5077. this.setup = function(e) {
  5078. var n = !u.url;
  5079. e !== t && S && mt && u.ok();
  5080. L(e);
  5081. e && (n && z && e.url !== t && u.beginDelayedInit(), !z && e.url !== t && "complete" === p.readyState && setTimeout(R, 1));
  5082. return u
  5083. };
  5084. this.supported = this.ok = function() {
  5085. return mt ? S && !x : u.useHTML5Audio && u.hasHTML5
  5086. };
  5087. this.getMovie = function(t) {
  5088. return l(t) || p[t] || e[t]
  5089. };
  5090. this.createSound = function(e, n) {
  5091. function r() {
  5092. i = rt(i);
  5093. u.sounds[i.id] = new o(i);
  5094. u.soundIDs.push(i.id);
  5095. return u.sounds[i.id]
  5096. }
  5097. var i, s = null;
  5098. if (!S || !u.ok()) return !1;
  5099. n !== t && (e = {
  5100. id: e,
  5101. url: n
  5102. });
  5103. i = C(e);
  5104. i.url = pt(i.url);
  5105. void 0 === i.id && (i.id = u.setupOptions.idPrefix + Dt++);
  5106. if (st(i.id, !0)) return u.sounds[i.id];
  5107. if (yt(i)) s = r(), s._setup_html5(i);
  5108. else {
  5109. if (u.html5Only || u.html5.usingFlash && i.url && i.url.match(/data\:/i)) return r();
  5110. 8 < y && null === i.isMovieStar && (i.isMovieStar = !(!i.serverURL && !(i.type && i.type.match(Jt) || i.url && i.url.match(Qt))));
  5111. i = it(i, void 0);
  5112. s = r();
  5113. 8 === y ? f._createSound(i.id, i.loops || 1, i.usePolicyFile) : (f._createSound(i.id, i.url, i.usePeakData, i.useWaveformData, i.useEQData, i.isMovieStar, i.isMovieStar ? i.bufferTime : !1, i.loops || 1, i.serverURL, i.duration || null, i.autoPlay, !0, i.autoLoad, i.usePolicyFile), i.serverURL || (s.connected = !0, i.onconnect && i.onconnect.apply(s)));
  5114. !i.serverURL && (i.autoLoad || i.autoPlay) && s.load(i)
  5115. }!i.serverURL && i.autoPlay && s.play();
  5116. return s
  5117. };
  5118. this.destroySound = function(e, t) {
  5119. if (!st(e)) return !1;
  5120. var n = u.sounds[e],
  5121. r;
  5122. n._iO = {};
  5123. n.stop();
  5124. n.unload();
  5125. for (r = 0; r < u.soundIDs.length; r++)
  5126. if (u.soundIDs[r] === e) {
  5127. u.soundIDs.splice(r, 1);
  5128. break
  5129. }
  5130. t || n.destruct(!0);
  5131. delete u.sounds[e];
  5132. return !0
  5133. };
  5134. this.load = function(e, t) {
  5135. return !st(e) ? !1 : u.sounds[e].load(t)
  5136. };
  5137. this.unload = function(e) {
  5138. return !st(e) ? !1 : u.sounds[e].unload()
  5139. };
  5140. this.onposition = this.onPosition = function(e, t, n, r) {
  5141. return !st(e) ? !1 : u.sounds[e].onposition(t, n, r)
  5142. };
  5143. this.clearOnPosition = function(e, t, n) {
  5144. return !st(e) ? !1 : u.sounds[e].clearOnPosition(t, n)
  5145. };
  5146. this.start = this.play = function(e, t) {
  5147. var n = null,
  5148. r = t && !(t instanceof Object);
  5149. if (!S || !u.ok()) return !1;
  5150. if (st(e, r)) r && (t = {
  5151. url: t
  5152. });
  5153. else {
  5154. if (!r) return !1;
  5155. r && (t = {
  5156. url: t
  5157. });
  5158. t && t.url && (t.id = e, n = u.createSound(t).play())
  5159. }
  5160. null === n && (n = u.sounds[e].play(t));
  5161. return n
  5162. };
  5163. this.setPosition = function(e, t) {
  5164. return !st(e) ? !1 : u.sounds[e].setPosition(t)
  5165. };
  5166. this.stop = function(e) {
  5167. return !st(e) ? !1 : u.sounds[e].stop()
  5168. };
  5169. this.stopAll = function() {
  5170. for (var e in u.sounds) u.sounds.hasOwnProperty(e) && u.sounds[e].stop()
  5171. };
  5172. this.pause = function(e) {
  5173. return !st(e) ? !1 : u.sounds[e].pause()
  5174. };
  5175. this.pauseAll = function() {
  5176. var e;
  5177. for (e = u.soundIDs.length - 1; 0 <= e; e--) u.sounds[u.soundIDs[e]].pause()
  5178. };
  5179. this.resume = function(e) {
  5180. return !st(e) ? !1 : u.sounds[e].resume()
  5181. };
  5182. this.resumeAll = function() {
  5183. var e;
  5184. for (e = u.soundIDs.length - 1; 0 <= e; e--) u.sounds[u.soundIDs[e]].resume()
  5185. };
  5186. this.togglePause = function(e) {
  5187. return !st(e) ? !1 : u.sounds[e].togglePause()
  5188. };
  5189. this.setPan = function(e, t) {
  5190. return !st(e) ? !1 : u.sounds[e].setPan(t)
  5191. };
  5192. this.setVolume = function(e, t) {
  5193. return !st(e) ? !1 : u.sounds[e].setVolume(t)
  5194. };
  5195. this.mute = function(e) {
  5196. var t = 0;
  5197. e instanceof String && (e = null);
  5198. if (e) return !st(e) ? !1 : u.sounds[e].mute();
  5199. for (t = u.soundIDs.length - 1; 0 <= t; t--) u.sounds[u.soundIDs[t]].mute();
  5200. return u.muted = !0
  5201. };
  5202. this.muteAll = function() {
  5203. u.mute()
  5204. };
  5205. this.unmute = function(e) {
  5206. e instanceof String && (e = null);
  5207. if (e) return !st(e) ? !1 : u.sounds[e].unmute();
  5208. for (e = u.soundIDs.length - 1; 0 <= e; e--) u.sounds[u.soundIDs[e]].unmute();
  5209. u.muted = !1;
  5210. return !0
  5211. };
  5212. this.unmuteAll = function() {
  5213. u.unmute()
  5214. };
  5215. this.toggleMute = function(e) {
  5216. return !st(e) ? !1 : u.sounds[e].toggleMute()
  5217. };
  5218. this.getMemoryUse = function() {
  5219. var e = 0;
  5220. f && 8 !== y && (e = parseInt(f._getMemoryUse(), 10));
  5221. return e
  5222. };
  5223. this.disable = function(n) {
  5224. var r;
  5225. n === t && (n = !1);
  5226. if (x) return !1;
  5227. x = !0;
  5228. for (r = u.soundIDs.length - 1; 0 <= r; r--) K(u.sounds[u.soundIDs[r]]);
  5229. N(n);
  5230. Tt.remove(e, "load", _);
  5231. return !0
  5232. };
  5233. this.canPlayMIME = function(e) {
  5234. var t;
  5235. u.hasHTML5 && (t = bt({
  5236. type: e
  5237. }));
  5238. !t && mt && (t = e && u.ok() ? !!(8 < y && e.match(Jt) || e.match(u.mimePattern)) : null);
  5239. return t
  5240. };
  5241. this.canPlayURL = function(e) {
  5242. var t;
  5243. u.hasHTML5 && (t = bt({
  5244. url: e
  5245. }));
  5246. !t && mt && (t = e && u.ok() ? !!e.match(u.filePattern) : null);
  5247. return t
  5248. };
  5249. this.canPlayLink = function(e) {
  5250. return e.type !== t && e.type && u.canPlayMIME(e.type) ? !0 : u.canPlayURL(e.href)
  5251. };
  5252. this.getSoundById = function(e, t) {
  5253. return !e ? null : u.sounds[e]
  5254. };
  5255. this.onready = function(t, n) {
  5256. if ("function" === typeof t) n || (n = e), O("onready", t, n), M();
  5257. else throw et("needFunction", "onready");
  5258. return !0
  5259. };
  5260. this.ontimeout = function(t, n) {
  5261. if ("function" === typeof t) n || (n = e), O("ontimeout", t, n), M({
  5262. type: "ontimeout"
  5263. });
  5264. else throw et("needFunction", "ontimeout");
  5265. return !0
  5266. };
  5267. this._wD = this._writeDebug = function(e, t) {
  5268. return !0
  5269. };
  5270. this._debug = function() {};
  5271. this.reboot = function(t, n) {
  5272. var r, i, s;
  5273. for (r = u.soundIDs.length - 1; 0 <= r; r--) u.sounds[u.soundIDs[r]].destruct();
  5274. if (f) try {
  5275. Bt && (Z = f.innerHTML), Y = f.parentNode.removeChild(f)
  5276. } catch (o) {}
  5277. Z = Y = mt = f = null;
  5278. u.enabled = z = S = ot = ut = w = E = x = Ct = u.swfLoaded = !1;
  5279. u.soundIDs = [];
  5280. u.sounds = {};
  5281. Dt = 0;
  5282. if (t) b = [];
  5283. else
  5284. for (r in b)
  5285. if (b.hasOwnProperty(r)) {
  5286. i = 0;
  5287. for (s = b[r].length; i < s; i++) b[r][i].fired = !1
  5288. }
  5289. u.html5 = {
  5290. usingFlash: null
  5291. };
  5292. u.flash = {};
  5293. u.html5Only = !1;
  5294. u.ignoreFlash = !1;
  5295. e.setTimeout(function() {
  5296. q();
  5297. n || u.beginDelayedInit()
  5298. }, 20);
  5299. return u
  5300. };
  5301. this.reset = function() {
  5302. return u.reboot(!0, !0)
  5303. };
  5304. this.getMoviePercent = function() {
  5305. return f && "PercentLoaded" in f ? f.PercentLoaded() : null
  5306. };
  5307. this.beginDelayedInit = function() {
  5308. T = !0;
  5309. R();
  5310. setTimeout(function() {
  5311. if (ut) return !1;
  5312. X();
  5313. I();
  5314. return ut = !0
  5315. }, 20);
  5316. D()
  5317. };
  5318. this.destruct = function() {
  5319. u.disable(!0)
  5320. };
  5321. o = function(e) {
  5322. var n, r, i = this,
  5323. s, o, l, c, h, p, d = !1,
  5324. v = [],
  5325. m = 0,
  5326. g, b, w = null,
  5327. E;
  5328. r = n = null;
  5329. this.sID = this.id = e.id;
  5330. this.url = e.url;
  5331. this._iO = this.instanceOptions = this.options = C(e);
  5332. this.pan = this.options.pan;
  5333. this.volume = this.options.volume;
  5334. this.isHTML5 = !1;
  5335. this._a = null;
  5336. E = this.url ? !1 : !0;
  5337. this.id3 = {};
  5338. this._debug = function() {};
  5339. this.load = function(e) {
  5340. var n = null,
  5341. r;
  5342. e !== t ? i._iO = C(e, i.options) : (e = i.options, i._iO = e, w && w !== i.url && (i._iO.url = i.url, i.url = null));
  5343. i._iO.url || (i._iO.url = i.url);
  5344. i._iO.url = pt(i._iO.url);
  5345. r = i.instanceOptions = i._iO;
  5346. if (!r.url && !i.url) return i;
  5347. if (r.url === i.url && 0 !== i.readyState && 2 !== i.readyState) return 3 === i.readyState && r.onload && _t(i, function() {
  5348. r.onload.apply(i, [!!i.duration])
  5349. }), i;
  5350. i.loaded = !1;
  5351. i.readyState = 1;
  5352. i.playState = 0;
  5353. i.id3 = {};
  5354. if (yt(r)) n = i._setup_html5(r), n._called_load || (i._html5_canplay = !1, i.url !== r.url && (i._a.src = r.url, i.setPosition(0)), i._a.autobuffer = "auto", i._a.preload = "auto", i._a._called_load = !0);
  5355. else {
  5356. if (u.html5Only || i._iO.url && i._iO.url.match(/data\:/i)) return i;
  5357. try {
  5358. i.isHTML5 = !1, i._iO = it(rt(r)), r = i._iO, 8 === y ? f._load(i.id, r.url, r.stream, r.autoPlay, r.usePolicyFile) : f._load(i.id, r.url, !!r.stream, !!r.autoPlay, r.loops || 1, !!r.autoLoad, r.usePolicyFile)
  5359. } catch (s) {
  5360. V({
  5361. type: "SMSOUND_LOAD_JS_EXCEPTION",
  5362. fatal: !0
  5363. })
  5364. }
  5365. }
  5366. i.url = r.url;
  5367. return i
  5368. };
  5369. this.unload = function() {
  5370. 0 !== i.readyState && (i.isHTML5 ? (c(), i._a && (i._a.pause(), w = Et(i._a))) : 8 === y ? f._unload(i.id, "about:blank") : f._unload(i.id), s());
  5371. return i
  5372. };
  5373. this.destruct = function(e) {
  5374. i.isHTML5 ? (c(), i._a && (i._a.pause(), Et(i._a), Ct || l(), i._a._s = null, i._a = null)) : (i._iO.onfailure = null, f._destroySound(i.id));
  5375. e || u.destroySound(i.id, !0)
  5376. };
  5377. this.start = this.play = function(e, n) {
  5378. var r, s, o, a, l;
  5379. s = !0;
  5380. s = null;
  5381. n = n === t ? !0 : n;
  5382. e || (e = {});
  5383. i.url && (i._iO.url = i.url);
  5384. i._iO = C(i._iO, i.options);
  5385. i._iO = C(e, i._iO);
  5386. i._iO.url = pt(i._iO.url);
  5387. i.instanceOptions = i._iO;
  5388. if (!i.isHTML5 && i._iO.serverURL && !i.connected) return i.getAutoPlay() || i.setAutoPlay(!0), i;
  5389. yt(i._iO) && (i._setup_html5(i._iO), h());
  5390. 1 === i.playState && !i.paused && (r = i._iO.multiShot, r || (i.isHTML5 && i.setPosition(i._iO.position), s = i));
  5391. if (null !== s) return s;
  5392. e.url && e.url !== i.url && (!i.readyState && !i.isHTML5 && 8 === y && E ? E = !1 : i.load(i._iO));
  5393. i.loaded || (0 === i.readyState ? (!i.isHTML5 && !u.html5Only ? (i._iO.autoPlay = !0, i.load(i._iO)) : i.isHTML5 ? i.load(i._iO) : s = i, i.instanceOptions = i._iO) : 2 === i.readyState && (s = i));
  5394. if (null !== s) return s;
  5395. !i.isHTML5 && 9 === y && 0 < i.position && i.position === i.duration && (e.position = 0);
  5396. if (i.paused && 0 <= i.position && (!i._iO.serverURL || 0 < i.position)) i.resume();
  5397. else {
  5398. i._iO = C(e, i._iO);
  5399. if (null !== i._iO.from && null !== i._iO.to && 0 === i.instanceCount && 0 === i.playState && !i._iO.serverURL) {
  5400. r = function() {
  5401. i._iO = C(e, i._iO);
  5402. i.play(i._iO)
  5403. };
  5404. if (i.isHTML5 && !i._html5_canplay) i.load({
  5405. _oncanplay: r
  5406. }), s = !1;
  5407. else if (!i.isHTML5 && !i.loaded && (!i.readyState || 2 !== i.readyState)) i.load({
  5408. onload: r
  5409. }), s = !1;
  5410. if (null !== s) return s;
  5411. i._iO = b()
  5412. }(!i.instanceCount || i._iO.multiShotEvents || i.isHTML5 && i._iO.multiShot && !Ct || !i.isHTML5 && 8 < y && !i.getAutoPlay()) && i.instanceCount++;
  5413. i._iO.onposition && 0 === i.playState && p(i);
  5414. i.playState = 1;
  5415. i.paused = !1;
  5416. i.position = i._iO.position !== t && !isNaN(i._iO.position) ? i._iO.position : 0;
  5417. i.isHTML5 || (i._iO = it(rt(i._iO)));
  5418. i._iO.onplay && n && (i._iO.onplay.apply(i), d = !0);
  5419. i.setVolume(i._iO.volume, !0);
  5420. i.setPan(i._iO.pan, !0);
  5421. i.isHTML5 ? 2 > i.instanceCount ? (h(), s = i._setup_html5(), i.setPosition(i._iO.position), s.play()) : (o = new Audio(i._iO.url), a = function() {
  5422. Tt.remove(o, "ended", a);
  5423. i._onfinish(i);
  5424. Et(o);
  5425. o = null
  5426. }, l = function() {
  5427. Tt.remove(o, "canplay", l);
  5428. try {
  5429. o.currentTime = i._iO.position / 1e3
  5430. } catch (e) {}
  5431. o.play()
  5432. }, Tt.add(o, "ended", a), void 0 !== i._iO.volume && (o.volume = Math.max(0, Math.min(1, i._iO.volume / 100))), i.muted && (o.muted = !0), i._iO.position ? Tt.add(o, "canplay", l) : o.play()) : (s = f._start(i.id, i._iO.loops || 1, 9 === y ? i.position : i.position / 1e3, i._iO.multiShot || !1), 9 === y && !s && i._iO.onplayerror && i._iO.onplayerror.apply(i))
  5433. }
  5434. return i
  5435. };
  5436. this.stop = function(e) {
  5437. var t = i._iO;
  5438. 1 === i.playState && (i._onbufferchange(0), i._resetOnPosition(0), i.paused = !1, i.isHTML5 || (i.playState = 0), g(), t.to && i.clearOnPosition(t.to), i.isHTML5 ? i._a && (e = i.position, i.setPosition(0), i.position = e, i._a.pause(), i.playState = 0, i._onTimer(), c()) : (f._stop(i.id, e), t.serverURL && i.unload()), i.instanceCount = 0, i._iO = {}, t.onstop && t.onstop.apply(i));
  5439. return i
  5440. };
  5441. this.setAutoPlay = function(e) {
  5442. i._iO.autoPlay = e;
  5443. i.isHTML5 || (f._setAutoPlay(i.id, e), e && !i.instanceCount && 1 === i.readyState && i.instanceCount++)
  5444. };
  5445. this.getAutoPlay = function() {
  5446. return i._iO.autoPlay
  5447. };
  5448. this.setPosition = function(e) {
  5449. e === t && (e = 0);
  5450. var n = i.isHTML5 ? Math.max(e, 0) : Math.min(i.duration || i._iO.duration, Math.max(e, 0));
  5451. i.position = n;
  5452. e = i.position / 1e3;
  5453. i._resetOnPosition(i.position);
  5454. i._iO.position = n;
  5455. if (i.isHTML5) {
  5456. if (i._a) {
  5457. if (i._html5_canplay) {
  5458. if (i._a.currentTime !== e) try {
  5459. i._a.currentTime = e, (0 === i.playState || i.paused) && i._a.pause()
  5460. } catch (r) {}
  5461. } else if (e) return i;
  5462. i.paused && i._onTimer(!0)
  5463. }
  5464. } else e = 9 === y ? i.position : e, i.readyState && 2 !== i.readyState && f._setPosition(i.id, e, i.paused || !i.playState, i._iO.multiShot);
  5465. return i
  5466. };
  5467. this.pause = function(e) {
  5468. if (i.paused || 0 === i.playState && 1 !== i.readyState) return i;
  5469. i.paused = !0;
  5470. i.isHTML5 ? (i._setup_html5().pause(), c()) : (e || e === t) && f._pause(i.id, i._iO.multiShot);
  5471. i._iO.onpause && i._iO.onpause.apply(i);
  5472. return i
  5473. };
  5474. this.resume = function() {
  5475. var e = i._iO;
  5476. if (!i.paused) return i;
  5477. i.paused = !1;
  5478. i.playState = 1;
  5479. i.isHTML5 ? (i._setup_html5().play(), h()) : (e.isMovieStar && !e.serverURL && i.setPosition(i.position), f._pause(i.id, e.multiShot));
  5480. !d && e.onplay ? (e.onplay.apply(i), d = !0) : e.onresume && e.onresume.apply(i);
  5481. return i
  5482. };
  5483. this.togglePause = function() {
  5484. if (0 === i.playState) return i.play({
  5485. position: 9 === y && !i.isHTML5 ? i.position : i.position / 1e3
  5486. }), i;
  5487. i.paused ? i.resume() : i.pause();
  5488. return i
  5489. };
  5490. this.setPan = function(e, n) {
  5491. e === t && (e = 0);
  5492. n === t && (n = !1);
  5493. i.isHTML5 || f._setPan(i.id, e);
  5494. i._iO.pan = e;
  5495. n || (i.pan = e, i.options.pan = e);
  5496. return i
  5497. };
  5498. this.setVolume = function(e, n) {
  5499. e === t && (e = 100);
  5500. n === t && (n = !1);
  5501. i.isHTML5 ? i._a && (u.muted && !i.muted && (i.muted = !0, i._a.muted = !0), i._a.volume = Math.max(0, Math.min(1, e / 100))) : f._setVolume(i.id, u.muted && !i.muted || i.muted ? 0 : e);
  5502. i._iO.volume = e;
  5503. n || (i.volume = e, i.options.volume = e);
  5504. return i
  5505. };
  5506. this.mute = function() {
  5507. i.muted = !0;
  5508. i.isHTML5 ? i._a && (i._a.muted = !0) : f._setVolume(i.id, 0);
  5509. return i
  5510. };
  5511. this.unmute = function() {
  5512. i.muted = !1;
  5513. var e = i._iO.volume !== t;
  5514. i.isHTML5 ? i._a && (i._a.muted = !1) : f._setVolume(i.id, e ? i._iO.volume : i.options.volume);
  5515. return i
  5516. };
  5517. this.toggleMute = function() {
  5518. return i.muted ? i.unmute() : i.mute()
  5519. };
  5520. this.onposition = this.onPosition = function(e, n, r) {
  5521. v.push({
  5522. position: parseInt(e, 10),
  5523. method: n,
  5524. scope: r !== t ? r : i,
  5525. fired: !1
  5526. });
  5527. return i
  5528. };
  5529. this.clearOnPosition = function(e, t) {
  5530. var n;
  5531. e = parseInt(e, 10);
  5532. if (isNaN(e)) return !1;
  5533. for (n = 0; n < v.length; n++)
  5534. if (e === v[n].position && (!t || t === v[n].method)) v[n].fired && m--, v.splice(n, 1)
  5535. };
  5536. this._processOnPosition = function() {
  5537. var e, t;
  5538. e = v.length;
  5539. if (!e || !i.playState || m >= e) return !1;
  5540. for (e -= 1; 0 <= e; e--) t = v[e], !t.fired && i.position >= t.position && (t.fired = !0, m++, t.method.apply(t.scope, [t.position]));
  5541. return !0
  5542. };
  5543. this._resetOnPosition = function(e) {
  5544. var t, n;
  5545. t = v.length;
  5546. if (!t) return !1;
  5547. for (t -= 1; 0 <= t; t--) n = v[t], n.fired && e <= n.position && (n.fired = !1, m--);
  5548. return !0
  5549. };
  5550. b = function() {
  5551. var e = i._iO,
  5552. t = e.from,
  5553. n = e.to,
  5554. r, s;
  5555. s = function() {
  5556. i.clearOnPosition(n, s);
  5557. i.stop()
  5558. };
  5559. r = function() {
  5560. if (null !== n && !isNaN(n)) i.onPosition(n, s)
  5561. };
  5562. null !== t && !isNaN(t) && (e.position = t, e.multiShot = !1, r());
  5563. return e
  5564. };
  5565. p = function() {
  5566. var e, t = i._iO.onposition;
  5567. if (t)
  5568. for (e in t)
  5569. if (t.hasOwnProperty(e)) i.onPosition(parseInt(e, 10), t[e])
  5570. };
  5571. g = function() {
  5572. var e, t = i._iO.onposition;
  5573. if (t)
  5574. for (e in t) t.hasOwnProperty(e) && i.clearOnPosition(parseInt(e, 10))
  5575. };
  5576. h = function() {
  5577. i.isHTML5 && at(i)
  5578. };
  5579. c = function() {
  5580. i.isHTML5 && ft(i)
  5581. };
  5582. s = function(e) {
  5583. e || (v = [], m = 0);
  5584. d = !1;
  5585. i._hasTimer = null;
  5586. i._a = null;
  5587. i._html5_canplay = !1;
  5588. i.bytesLoaded = null;
  5589. i.bytesTotal = null;
  5590. i.duration = i._iO && i._iO.duration ? i._iO.duration : null;
  5591. i.durationEstimate = null;
  5592. i.buffered = [];
  5593. i.eqData = [];
  5594. i.eqData.left = [];
  5595. i.eqData.right = [];
  5596. i.failures = 0;
  5597. i.isBuffering = !1;
  5598. i.instanceOptions = {};
  5599. i.instanceCount = 0;
  5600. i.loaded = !1;
  5601. i.metadata = {};
  5602. i.readyState = 0;
  5603. i.muted = !1;
  5604. i.paused = !1;
  5605. i.peakData = {
  5606. left: 0,
  5607. right: 0
  5608. };
  5609. i.waveformData = {
  5610. left: [],
  5611. right: []
  5612. };
  5613. i.playState = 0;
  5614. i.position = null;
  5615. i.id3 = {}
  5616. };
  5617. s();
  5618. this._onTimer = function(e) {
  5619. var t, s = !1,
  5620. o = {};
  5621. if (i._hasTimer || e) {
  5622. if (i._a && (e || (0 < i.playState || 1 === i.readyState) && !i.paused)) t = i._get_html5_duration(), t !== n && (n = t, i.duration = t, s = !0), i.durationEstimate = i.duration, t = 1e3 * i._a.currentTime || 0, t !== r && (r = t, s = !0), (s || e) && i._whileplaying(t, o, o, o, o);
  5623. return s
  5624. }
  5625. };
  5626. this._get_html5_duration = function() {
  5627. var e = i._iO;
  5628. return (e = i._a && i._a.duration ? 1e3 * i._a.duration : e && e.duration ? e.duration : null) && !isNaN(e) && Infinity !== e ? e : null
  5629. };
  5630. this._apply_loop = function(e, t) {
  5631. e.loop = 1 < t ? "loop" : ""
  5632. };
  5633. this._setup_html5 = function(e) {
  5634. e = C(i._iO, e);
  5635. var t = Ct ? a : i._a,
  5636. n = decodeURI(e.url),
  5637. r;
  5638. Ct ? n === decodeURI(kt) && (r = !0) : n === decodeURI(w) && (r = !0);
  5639. if (t) {
  5640. if (t._s)
  5641. if (Ct) t._s && t._s.playState && !r && t._s.stop();
  5642. else if (!Ct && n === decodeURI(w)) return i._apply_loop(t, e.loops), t;
  5643. r || (w && s(!1), t.src = e.url, kt = w = i.url = e.url, t._called_load = !1)
  5644. } else e.autoLoad || e.autoPlay ? (i._a = new Audio(e.url), i._a.load()) : i._a = It && 10 > opera.version() ? new Audio(null) : new Audio, t = i._a, t._called_load = !1, Ct && (a = t);
  5645. i.isHTML5 = !0;
  5646. i._a = t;
  5647. t._s = i;
  5648. o();
  5649. i._apply_loop(t, e.loops);
  5650. e.autoLoad || e.autoPlay ? i.load() : (t.autobuffer = !1, t.preload = "auto");
  5651. return t
  5652. };
  5653. o = function() {
  5654. if (i._a._added_events) return !1;
  5655. var e;
  5656. i._a._added_events = !0;
  5657. for (e in Mt) Mt.hasOwnProperty(e) && i._a && i._a.addEventListener(e, Mt[e], !1);
  5658. return !0
  5659. };
  5660. l = function() {
  5661. var e;
  5662. i._a._added_events = !1;
  5663. for (e in Mt) Mt.hasOwnProperty(e) && i._a && i._a.removeEventListener(e, Mt[e], !1)
  5664. };
  5665. this._onload = function(e) {
  5666. var t = !!e || !i.isHTML5 && 8 === y && i.duration;
  5667. i.loaded = t;
  5668. i.readyState = t ? 3 : 2;
  5669. i._onbufferchange(0);
  5670. i._iO.onload && _t(i, function() {
  5671. i._iO.onload.apply(i, [t])
  5672. });
  5673. return !0
  5674. };
  5675. this._onbufferchange = function(e) {
  5676. if (0 === i.playState || e && i.isBuffering || !e && !i.isBuffering) return !1;
  5677. i.isBuffering = 1 === e;
  5678. i._iO.onbufferchange && i._iO.onbufferchange.apply(i);
  5679. return !0
  5680. };
  5681. this._onsuspend = function() {
  5682. i._iO.onsuspend && i._iO.onsuspend.apply(i);
  5683. return !0
  5684. };
  5685. this._onfailure = function(e, t, n) {
  5686. i.failures++;
  5687. if (i._iO.onfailure && 1 === i.failures) i._iO.onfailure(i, e, t, n)
  5688. };
  5689. this._onfinish = function() {
  5690. var e = i._iO.onfinish;
  5691. i._onbufferchange(0);
  5692. i._resetOnPosition(0);
  5693. i.instanceCount && (i.instanceCount--, i.instanceCount || (g(), i.playState = 0, i.paused = !1, i.instanceCount = 0, i.instanceOptions = {}, i._iO = {}, c(), i.isHTML5 && (i.position = 0)), (!i.instanceCount || i._iO.multiShotEvents) && e && _t(i, function() {
  5694. e.apply(i)
  5695. }))
  5696. };
  5697. this._whileloading = function(e, t, n, r) {
  5698. var s = i._iO;
  5699. i.bytesLoaded = e;
  5700. i.bytesTotal = t;
  5701. i.duration = Math.floor(n);
  5702. i.bufferLength = r;
  5703. i.durationEstimate = !i.isHTML5 && !s.isMovieStar ? s.duration ? i.duration > s.duration ? i.duration : s.duration : parseInt(i.bytesTotal / i.bytesLoaded * i.duration, 10) : i.duration;
  5704. i.isHTML5 || (i.buffered = [{
  5705. start: 0,
  5706. end: i.duration
  5707. }]);
  5708. (3 !== i.readyState || i.isHTML5) && s.whileloading && s.whileloading.apply(i)
  5709. };
  5710. this._whileplaying = function(e, n, r, s, o) {
  5711. var u = i._iO;
  5712. if (isNaN(e) || null === e) return !1;
  5713. i.position = Math.max(0, e);
  5714. i._processOnPosition();
  5715. !i.isHTML5 && 8 < y && (u.usePeakData && n !== t && n && (i.peakData = {
  5716. left: n.leftPeak,
  5717. right: n.rightPeak
  5718. }), u.useWaveformData && r !== t && r && (i.waveformData = {
  5719. left: r.split(","),
  5720. right: s.split(",")
  5721. }), u.useEQData && o !== t && o && o.leftEQ && (e = o.leftEQ.split(","), i.eqData = e, i.eqData.left = e, o.rightEQ !== t && o.rightEQ && (i.eqData.right = o.rightEQ.split(","))));
  5722. 1 === i.playState && (!i.isHTML5 && 8 === y && !i.position && i.isBuffering && i._onbufferchange(0), u.whileplaying && u.whileplaying.apply(i));
  5723. return !0
  5724. };
  5725. this._oncaptiondata = function(e) {
  5726. i.captiondata = e;
  5727. i._iO.oncaptiondata && i._iO.oncaptiondata.apply(i, [e])
  5728. };
  5729. this._onmetadata = function(e, t) {
  5730. var n = {},
  5731. r, s;
  5732. r = 0;
  5733. for (s = e.length; r < s; r++) n[e[r]] = t[r];
  5734. i.metadata = n;
  5735. i._iO.onmetadata && i._iO.onmetadata.apply(i)
  5736. };
  5737. this._onid3 = function(e, t) {
  5738. var n = [],
  5739. r, s;
  5740. r = 0;
  5741. for (s = e.length; r < s; r++) n[e[r]] = t[r];
  5742. i.id3 = C(i.id3, n);
  5743. i._iO.onid3 && i._iO.onid3.apply(i)
  5744. };
  5745. this._onconnect = function(e) {
  5746. e = 1 === e;
  5747. if (i.connected = e) i.failures = 0, st(i.id) && (i.getAutoPlay() ? i.play(t, i.getAutoPlay()) : i._iO.autoLoad && i.load()), i._iO.onconnect && i._iO.onconnect.apply(i, [e])
  5748. };
  5749. this._ondataerror = function(e) {
  5750. 0 < i.playState && i._iO.ondataerror && i._iO.ondataerror.apply(i)
  5751. }
  5752. };
  5753. W = function() {
  5754. return p.body || p.getElementsByTagName("div")[0]
  5755. };
  5756. l = function(e) {
  5757. return p.getElementById(e)
  5758. };
  5759. C = function(e, n) {
  5760. var r = e || {},
  5761. i, s;
  5762. i = n === t ? u.defaultOptions : n;
  5763. for (s in i) i.hasOwnProperty(s) && r[s] === t && (r[s] = "object" !== typeof i[s] || null === i[s] ? i[s] : C(r[s], i[s]));
  5764. return r
  5765. };
  5766. _t = function(t, n) {
  5767. !t.isHTML5 && 8 === y ? e.setTimeout(n, 0) : n()
  5768. };
  5769. A = {
  5770. onready: 1,
  5771. ontimeout: 1,
  5772. defaultOptions: 1,
  5773. flash9Options: 1,
  5774. movieStarOptions: 1
  5775. };
  5776. L = function(e, n) {
  5777. var r, i = !0,
  5778. s = n !== t,
  5779. o = u.setupOptions;
  5780. for (r in e)
  5781. if (e.hasOwnProperty(r))
  5782. if ("object" !== typeof e[r] || null === e[r] || e[r] instanceof Array || e[r] instanceof RegExp) s && A[n] !== t ? u[n][r] = e[r] : o[r] !== t ? (u.setupOptions[r] = e[r], u[r] = e[r]) : A[r] === t ? i = !1 : u[r] instanceof Function ? u[r].apply(u, e[r] instanceof Array ? e[r] : [e[r]]) : u[r] = e[r];
  5783. else if (A[r] === t) i = !1;
  5784. else return L(e[r], r);
  5785. return i
  5786. };
  5787. Tt = function() {
  5788. function t(e) {
  5789. e = Nt.call(e);
  5790. var t = e.length;
  5791. r ? (e[1] = "on" + e[1], 3 < t && e.pop()) : 3 === t && e.push(!1);
  5792. return e
  5793. }
  5794.  
  5795. function n(e, t) {
  5796. var n = e.shift(),
  5797. s = [i[t]];
  5798. if (r) n[s](e[0], e[1]);
  5799. else n[s].apply(n, e)
  5800. }
  5801. var r = e.attachEvent,
  5802. i = {
  5803. add: r ? "attachEvent" : "addEventListener",
  5804. remove: r ? "detachEvent" : "removeEventListener"
  5805. };
  5806. return {
  5807. add: function() {
  5808. n(t(arguments), "add")
  5809. },
  5810. remove: function() {
  5811. n(t(arguments), "remove")
  5812. }
  5813. }
  5814. }();
  5815. Mt = {
  5816. abort: s(function() {}),
  5817. canplay: s(function() {
  5818. var e = this._s,
  5819. n;
  5820. if (e._html5_canplay) return !0;
  5821. e._html5_canplay = !0;
  5822. e._onbufferchange(0);
  5823. n = e._iO.position !== t && !isNaN(e._iO.position) ? e._iO.position / 1e3 : null;
  5824. if (e.position && this.currentTime !== n) try {
  5825. this.currentTime = n
  5826. } catch (r) {}
  5827. e._iO._oncanplay && e._iO._oncanplay()
  5828. }),
  5829. canplaythrough: s(function() {
  5830. var e = this._s;
  5831. e.loaded || (e._onbufferchange(0), e._whileloading(e.bytesLoaded, e.bytesTotal, e._get_html5_duration()), e._onload(!0))
  5832. }),
  5833. ended: s(function() {
  5834. this._s._onfinish()
  5835. }),
  5836. error: s(function() {
  5837. this._s._onload(!1)
  5838. }),
  5839. loadeddata: s(function() {
  5840. var e = this._s;
  5841. !e._loaded && !Ft && (e.duration = e._get_html5_duration())
  5842. }),
  5843. loadedmetadata: s(function() {}),
  5844. loadstart: s(function() {
  5845. this._s._onbufferchange(1)
  5846. }),
  5847. play: s(function() {
  5848. this._s._onbufferchange(0)
  5849. }),
  5850. playing: s(function() {
  5851. this._s._onbufferchange(0)
  5852. }),
  5853. progress: s(function(e) {
  5854. var t = this._s,
  5855. n, r, i = 0,
  5856. i = e.target.buffered;
  5857. n = e.loaded || 0;
  5858. var s = e.total || 1;
  5859. t.buffered = [];
  5860. if (i && i.length) {
  5861. n = 0;
  5862. for (r = i.length; n < r; n++) t.buffered.push({
  5863. start: 1e3 * i.start(n),
  5864. end: 1e3 * i.end(n)
  5865. });
  5866. i = 1e3 * (i.end(0) - i.start(0));
  5867. n = Math.min(1, i / (1e3 * e.target.duration))
  5868. }
  5869. isNaN(n) || (t._onbufferchange(0), t._whileloading(n, s, t._get_html5_duration()), n && s && n === s && Mt.canplaythrough.call(this, e))
  5870. }),
  5871. ratechange: s(function() {}),
  5872. suspend: s(function(e) {
  5873. var t = this._s;
  5874. Mt.progress.call(this, e);
  5875. t._onsuspend()
  5876. }),
  5877. stalled: s(function() {}),
  5878. timeupdate: s(function() {
  5879. this._s._onTimer()
  5880. }),
  5881. waiting: s(function() {
  5882. this._s._onbufferchange(1)
  5883. })
  5884. };
  5885. yt = function(e) {
  5886. return !e || !e.type && !e.url && !e.serverURL ? !1 : e.serverURL || e.type && i(e.type) ? !1 : e.type ? bt({
  5887. type: e.type
  5888. }) : bt({
  5889. url: e.url
  5890. }) || u.html5Only || e.url.match(/data\:/i)
  5891. };
  5892. Et = function(e) {
  5893. var t;
  5894. e && (t = Ft ? "about:blank" : u.html5.canPlayType("audio/wav") ? "data:audio/wave;base64,/UklGRiYAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQIAAAD//w==" : "about:blank", e.src = t, void 0 !== e._called_unload && (e._called_load = !1));
  5895. Ct && (kt = null);
  5896. return t
  5897. };
  5898. bt = function(e) {
  5899. if (!u.useHTML5Audio || !u.hasHTML5) return !1;
  5900. var n = e.url || null;
  5901. e = e.type || null;
  5902. var r = u.audioFormats,
  5903. s;
  5904. if (e && u.html5[e] !== t) return u.html5[e] && !i(e);
  5905. if (!wt) {
  5906. wt = [];
  5907. for (s in r) r.hasOwnProperty(s) && (wt.push(s), r[s].related && (wt = wt.concat(r[s].related)));
  5908. wt = RegExp("\\.(" + wt.join("|") + ")(\\?.*)?$", "i")
  5909. }
  5910. s = n ? n.toLowerCase().match(wt) : null;
  5911. !s || !s.length ? e && (n = e.indexOf(";"), s = (-1 !== n ? e.substr(0, n) : e).substr(6)) : s = s[1];
  5912. s && u.html5[s] !== t ? n = u.html5[s] && !i(s) : (e = "audio/" + s, n = u.html5.canPlayType({
  5913. type: e
  5914. }), n = (u.html5[s] = n) && u.html5[e] && !i(e));
  5915. return n
  5916. };
  5917. xt = function() {
  5918. function e(e) {
  5919. var t, r = t = !1;
  5920. if (!n || "function" !== typeof n.canPlayType) return t;
  5921. if (e instanceof Array) {
  5922. a = 0;
  5923. for (t = e.length; a < t; a++)
  5924. if (u.html5[e[a]] || n.canPlayType(e[a]).match(u.html5Test)) r = !0, u.html5[e[a]] = !0, u.flash[e[a]] = !!e[a].match(Xt);
  5925. t = r
  5926. } else e = n && "function" === typeof n.canPlayType ? n.canPlayType(e) : !1, t = !(!e || !e.match(u.html5Test));
  5927. return t
  5928. }
  5929. if (!u.useHTML5Audio || !u.hasHTML5) return mt = u.html5.usingFlash = !0, !1;
  5930. var n = Audio !== t ? It && 10 > opera.version() ? new Audio(null) : new Audio : null,
  5931. r, i, s = {},
  5932. o, a;
  5933. o = u.audioFormats;
  5934. for (r in o)
  5935. if (o.hasOwnProperty(r) && (i = "audio/" + r, s[r] = e(o[r].type), s[i] = s[r], r.match(Xt) ? (u.flash[r] = !0, u.flash[i] = !0) : (u.flash[r] = !1, u.flash[i] = !1), o[r] && o[r].related))
  5936. for (a = o[r].related.length - 1; 0 <= a; a--) s["audio/" + o[r].related[a]] = s[r], u.html5[o[r].related[a]] = s[r], u.flash[o[r].related[a]] = s[r];
  5937. s.canPlayType = n ? e : null;
  5938. u.html5 = C(u.html5, s);
  5939. u.html5.usingFlash = gt();
  5940. mt = u.html5.usingFlash;
  5941. return !0
  5942. };
  5943. F = {};
  5944. et = function() {};
  5945. rt = function(e) {
  5946. 8 === y && 1 < e.loops && e.stream && (e.stream = !1);
  5947. return e
  5948. };
  5949. it = function(e, t) {
  5950. if (e && !e.usePolicyFile && (e.onid3 || e.usePeakData || e.useWaveformData || e.useEQData)) e.usePolicyFile = !0;
  5951. return e
  5952. };
  5953. d = function() {
  5954. return !1
  5955. };
  5956. K = function(e) {
  5957. for (var t in e) e.hasOwnProperty(t) && "function" === typeof e[t] && (e[t] = d)
  5958. };
  5959. Q = function(e) {
  5960. e === t && (e = !1);
  5961. (x || e) && u.disable(e)
  5962. };
  5963. G = function(e) {
  5964. var t = null;
  5965. if (e)
  5966. if (e.match(/\.swf(\?.*)?$/i)) {
  5967. if (t = e.substr(e.toLowerCase().lastIndexOf(".swf?") + 4)) return e
  5968. } else e.lastIndexOf("/") !== e.length - 1 && (e += "/");
  5969. e = (e && -1 !== e.lastIndexOf("/") ? e.substr(0, e.lastIndexOf("/") + 1) : "./") + u.movieURL;
  5970. u.noSWFCache && (e += "?ts=" + (new Date).getTime());
  5971. return e
  5972. };
  5973. B = function() {
  5974. y = parseInt(u.flashVersion, 10);
  5975. 8 !== y && 9 !== y && (u.flashVersion = y = 8);
  5976. var e = u.debugMode || u.debugFlash ? "_debug.swf" : ".swf";
  5977. u.useHTML5Audio && !u.html5Only && u.audioFormats.mp4.required && 9 > y && (u.flashVersion = y = 9);
  5978. u.version = u.versionNumber + (u.html5Only ? " (HTML5-only mode)" : 9 === y ? " (AS3/Flash 9)" : " (AS2/Flash 8)");
  5979. 8 < y ? (u.defaultOptions = C(u.defaultOptions, u.flash9Options), u.features.buffering = !0, u.defaultOptions = C(u.defaultOptions, u.movieStarOptions), u.filePatterns.flash9 = RegExp("\\.(mp3|" + Kt.join("|") + ")(\\?.*)?$", "i"), u.features.movieStar = !0) : u.features.movieStar = !1;
  5980. u.filePattern = u.filePatterns[8 !== y ? "flash9" : "flash8"];
  5981. u.movieURL = (8 === y ? "soundmanager2.swf" : "soundmanager2_flash9.swf").replace(".swf", e);
  5982. u.features.peakData = u.features.waveformData = u.features.eqData = 8 < y
  5983. };
  5984. $ = function(e, t) {
  5985. if (!f) return !1;
  5986. f._setPolling(e, t)
  5987. };
  5988. J = function() {};
  5989. st = this.getSoundById;
  5990. nt = function() {
  5991. var e = [];
  5992. u.debugMode && e.push("sm2_debug");
  5993. u.debugFlash && e.push("flash_debug");
  5994. u.useHighPerformance && e.push("high_performance");
  5995. return e.join(" ")
  5996. };
  5997. tt = function() {
  5998. et("fbHandler");
  5999. var e = u.getMoviePercent(),
  6000. t = {
  6001. type: "FLASHBLOCK"
  6002. };
  6003. if (u.html5Only) return !1;
  6004. u.ok() ? u.oMC && (u.oMC.className = [nt(), "movieContainer", "swf_loaded" + (u.didFlashBlock ? " swf_unblocked" : "")].join(" ")) : (mt && (u.oMC.className = nt() + " movieContainer " + (null === e ? "swf_timedout" : "swf_error")), u.didFlashBlock = !0, M({
  6005. type: "ontimeout",
  6006. ignoreInit: !0,
  6007. error: t
  6008. }), V(t))
  6009. };
  6010. O = function(e, n, r) {
  6011. b[e] === t && (b[e] = []);
  6012. b[e].push({
  6013. method: n,
  6014. scope: r || null,
  6015. fired: !1
  6016. })
  6017. };
  6018. M = function(e) {
  6019. e || (e = {
  6020. type: u.ok() ? "onready" : "ontimeout"
  6021. });
  6022. if (!S && e && !e.ignoreInit || "ontimeout" === e.type && (u.ok() || x && !e.ignoreInit)) return !1;
  6023. var t = {
  6024. success: e && e.ignoreInit ? u.ok() : !x
  6025. },
  6026. n = e && e.type ? b[e.type] || [] : [],
  6027. r = [],
  6028. i, t = [t],
  6029. s = mt && !u.ok();
  6030. e.error && (t[0].error = e.error);
  6031. e = 0;
  6032. for (i = n.length; e < i; e++) !0 !== n[e].fired && r.push(n[e]);
  6033. if (r.length) {
  6034. e = 0;
  6035. for (i = r.length; e < i; e++) r[e].scope ? r[e].method.apply(r[e].scope, t) : r[e].method.apply(this, t), s || (r[e].fired = !0)
  6036. }
  6037. return !0
  6038. };
  6039. _ = function() {
  6040. e.setTimeout(function() {
  6041. u.useFlashBlock && tt();
  6042. M();
  6043. "function" === typeof u.onload && u.onload.apply(e);
  6044. u.waitForWindowLoad && Tt.add(e, "load", _)
  6045. }, 1)
  6046. };
  6047. At = function() {
  6048. if (Lt !== t) return Lt;
  6049. var n = !1,
  6050. r = navigator,
  6051. i = r.plugins,
  6052. s, o = e.ActiveXObject;
  6053. if (i && i.length)(r = r.mimeTypes) && r["application/x-shockwave-flash"] && r["application/x-shockwave-flash"].enabledPlugin && r["application/x-shockwave-flash"].enabledPlugin.description && (n = !0);
  6054. else if (o !== t && !c.match(/MSAppHost/i)) {
  6055. try {
  6056. s = new o("ShockwaveFlash.ShockwaveFlash")
  6057. } catch (u) {
  6058. s = null
  6059. }
  6060. n = !!s
  6061. }
  6062. return Lt = n
  6063. };
  6064. gt = function() {
  6065. var e, t, n = u.audioFormats;
  6066. if (Pt && c.match(/os (1|2|3_0|3_1)/i)) u.hasHTML5 = !1, u.html5Only = !0, u.oMC && (u.oMC.style.display = "none");
  6067. else if (u.useHTML5Audio && (!u.html5 || !u.html5.canPlayType)) u.hasHTML5 = !1;
  6068. if (u.useHTML5Audio && u.hasHTML5)
  6069. for (t in vt = !0, n)
  6070. if (n.hasOwnProperty(t) && n[t].required)
  6071. if (u.html5.canPlayType(n[t].type)) {
  6072. if (u.preferFlash && (u.flash[t] || u.flash[n[t].type])) e = !0
  6073. } else vt = !1, e = !0;
  6074. u.ignoreFlash && (e = !1, vt = !0);
  6075. u.html5Only = u.hasHTML5 && u.useHTML5Audio && !e;
  6076. return !u.html5Only
  6077. };
  6078. pt = function(e) {
  6079. var t, n, r = 0;
  6080. if (e instanceof Array) {
  6081. t = 0;
  6082. for (n = e.length; t < n; t++)
  6083. if (e[t] instanceof Object) {
  6084. if (u.canPlayMIME(e[t].type)) {
  6085. r = t;
  6086. break
  6087. }
  6088. } else if (u.canPlayURL(e[t])) {
  6089. r = t;
  6090. break
  6091. }
  6092. e[r].url && (e[r] = e[r].url);
  6093. e = e[r]
  6094. }
  6095. return e
  6096. };
  6097. at = function(e) {
  6098. e._hasTimer || (e._hasTimer = !0, !qt && u.html5PollingInterval && (null === ht && 0 === ct && (ht = setInterval(lt, u.html5PollingInterval)), ct++))
  6099. };
  6100. ft = function(e) {
  6101. e._hasTimer && (e._hasTimer = !1, !qt && u.html5PollingInterval && ct--)
  6102. };
  6103. lt = function() {
  6104. var e;
  6105. if (null !== ht && !ct) return clearInterval(ht), ht = null, !1;
  6106. for (e = u.soundIDs.length - 1; 0 <= e; e--) u.sounds[u.soundIDs[e]].isHTML5 && u.sounds[u.soundIDs[e]]._hasTimer && u.sounds[u.soundIDs[e]]._onTimer()
  6107. };
  6108. V = function(n) {
  6109. n = n !== t ? n : {};
  6110. "function" === typeof u.onerror && u.onerror.apply(e, [{
  6111. type: n.type !== t ? n.type : null
  6112. }]);
  6113. n.fatal !== t && n.fatal && u.disable()
  6114. };
  6115. Ot = function() {
  6116. if (!Rt || !At()) return !1;
  6117. var e = u.audioFormats,
  6118. t, n;
  6119. for (n in e)
  6120. if (e.hasOwnProperty(n) && ("mp3" === n || "mp4" === n))
  6121. if (u.html5[n] = !1, e[n] && e[n].related)
  6122. for (t = e[n].related.length - 1; 0 <= t; t--) u.html5[e[n].related[t]] = !1
  6123. };
  6124. this._setSandboxType = function(e) {};
  6125. this._externalInterfaceOK = function(e) {
  6126. if (u.swfLoaded) return !1;
  6127. u.swfLoaded = !0;
  6128. zt = !1;
  6129. Rt && Ot();
  6130. setTimeout(m, Bt ? 100 : 1)
  6131. };
  6132. X = function(e, n) {
  6133. function r(e, t) {
  6134. return '<param name="' + e + '" value="' + t + '" />'
  6135. }
  6136. if (w && E) return !1;
  6137. if (u.html5Only) return B(), u.oMC = l(u.movieID), m(), E = w = !0, !1;
  6138. var i = n || u.url,
  6139. s = u.altURL || i,
  6140. o = W(),
  6141. a = nt(),
  6142. f = null,
  6143. f = p.getElementsByTagName("html")[0],
  6144. h, d, v, f = f && f.dir && f.dir.match(/rtl/i);
  6145. e = e === t ? u.id : e;
  6146. B();
  6147. u.url = G(Vt ? i : s);
  6148. n = u.url;
  6149. u.wmode = !u.wmode && u.useHighPerformance ? "transparent" : u.wmode;
  6150. if (null !== u.wmode && (c.match(/msie 8/i) || !Bt && !u.useHighPerformance) && navigator.platform.match(/win32|win64/i)) dt.push(F.spcWmode), u.wmode = null;
  6151. o = {
  6152. name: e,
  6153. id: e,
  6154. src: n,
  6155. quality: "high",
  6156. allowScriptAccess: u.allowScriptAccess,
  6157. bgcolor: u.bgColor,
  6158. pluginspage: $t + "www.macromedia.com/go/getflashplayer",
  6159. title: "JS/Flash audio component (SoundManager 2)",
  6160. type: "application/x-shockwave-flash",
  6161. wmode: u.wmode,
  6162. hasPriority: "true"
  6163. };
  6164. u.debugFlash && (o.FlashVars = "debug=1");
  6165. u.wmode || delete o.wmode;
  6166. if (Bt) i = p.createElement("div"), d = ['<object id="' + e + '" data="' + n + '" type="' + o.type + '" title="' + o.title + '" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="' + $t + 'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0">', r("movie", n), r("AllowScriptAccess", u.allowScriptAccess), r("quality", o.quality), u.wmode ? r("wmode", u.wmode) : "", r("bgcolor", u.bgColor), r("hasPriority", "true"), u.debugFlash ? r("FlashVars", o.FlashVars) : "", "</object>"].join("");
  6167. else
  6168. for (h in i = p.createElement("embed"), o) o.hasOwnProperty(h) && i.setAttribute(h, o[h]);
  6169. J();
  6170. a = nt();
  6171. if (o = W())
  6172. if (u.oMC = l(u.movieID) || p.createElement("div"), u.oMC.id) v = u.oMC.className, u.oMC.className = (v ? v + " " : "movieContainer") + (a ? " " + a : ""), u.oMC.appendChild(i), Bt && (h = u.oMC.appendChild(p.createElement("div")), h.className = "sm2-object-box", h.innerHTML = d), E = !0;
  6173. else {
  6174. u.oMC.id = u.movieID;
  6175. u.oMC.className = "movieContainer " + a;
  6176. h = a = null;
  6177. u.useFlashBlock || (u.useHighPerformance ? a = {
  6178. position: "fixed",
  6179. width: "8px",
  6180. height: "8px",
  6181. bottom: "0px",
  6182. left: "0px",
  6183. overflow: "hidden"
  6184. } : (a = {
  6185. position: "absolute",
  6186. width: "6px",
  6187. height: "6px",
  6188. top: "-9999px",
  6189. left: "-9999px"
  6190. }, f && (a.left = Math.abs(parseInt(a.left, 10)) + "px")));
  6191. jt && (u.oMC.style.zIndex = 1e4);
  6192. if (!u.debugFlash)
  6193. for (v in a) a.hasOwnProperty(v) && (u.oMC.style[v] = a[v]);
  6194. try {
  6195. Bt || u.oMC.appendChild(i), o.appendChild(u.oMC), Bt && (h = u.oMC.appendChild(p.createElement("div")), h.className = "sm2-object-box", h.innerHTML = d), E = !0
  6196. } catch (g) {
  6197. throw Error(et("domError") + " \n" + g.toString())
  6198. }
  6199. }
  6200. return w = !0
  6201. };
  6202. I = function() {
  6203. if (u.html5Only) return X(), !1;
  6204. if (f || !u.url) return !1;
  6205. f = u.getMovie(u.id);
  6206. f || (Y ? (Bt ? u.oMC.innerHTML = Z : u.oMC.appendChild(Y), Y = null, w = !0) : X(u.id, u.url), f = u.getMovie(u.id));
  6207. "function" === typeof u.oninitmovie && setTimeout(u.oninitmovie, 1);
  6208. return !0
  6209. };
  6210. D = function() {
  6211. setTimeout(P, 1e3)
  6212. };
  6213. H = function() {
  6214. e.setTimeout(function() {
  6215. u.setup({
  6216. preferFlash: !1
  6217. }).reboot();
  6218. u.didFlashBlock = !0;
  6219. u.beginDelayedInit()
  6220. }, 1)
  6221. };
  6222. P = function() {
  6223. var t, n = !1;
  6224. if (!u.url || ot) return !1;
  6225. ot = !0;
  6226. Tt.remove(e, "load", D);
  6227. if (Lt && zt && !Ut) return !1;
  6228. S || (t = u.getMoviePercent(), 0 < t && 100 > t && (n = !0));
  6229. setTimeout(function() {
  6230. t = u.getMoviePercent();
  6231. if (n) return ot = !1, e.setTimeout(D, 1), !1;
  6232. !S && Wt && (null === t ? u.useFlashBlock || 0 === u.flashLoadTimeout ? u.useFlashBlock && tt() : !u.useFlashBlock && vt ? H() : M({
  6233. type: "ontimeout",
  6234. ignoreInit: !0,
  6235. error: {
  6236. type: "INIT_FLASHBLOCK"
  6237. }
  6238. }) : 0 !== u.flashLoadTimeout && (!u.useFlashBlock && vt ? H() : Q(!0)))
  6239. }, u.flashLoadTimeout)
  6240. };
  6241. j = function() {
  6242. if (Ut || !zt) return Tt.remove(e, "focus", j), !0;
  6243. Ut = Wt = !0;
  6244. ot = !1;
  6245. D();
  6246. Tt.remove(e, "focus", j);
  6247. return !0
  6248. };
  6249. N = function(t) {
  6250. if (S) return !1;
  6251. if (u.html5Only) return S = !0, _(), !0;
  6252. var n = !0,
  6253. r;
  6254. if (!u.useFlashBlock || !u.flashLoadTimeout || u.getMoviePercent()) S = !0;
  6255. r = {
  6256. type: !Lt && mt ? "NO_FLASH" : "INIT_TIMEOUT"
  6257. };
  6258. if (x || t) u.useFlashBlock && u.oMC && (u.oMC.className = nt() + " " + (null === u.getMoviePercent() ? "swf_timedout" : "swf_error")), M({
  6259. type: "ontimeout",
  6260. error: r,
  6261. ignoreInit: !0
  6262. }), V(r), n = !1;
  6263. x || (u.waitForWindowLoad && !T ? Tt.add(e, "load", _) : _());
  6264. return n
  6265. };
  6266. v = function() {
  6267. var e, n = u.setupOptions;
  6268. for (e in n) n.hasOwnProperty(e) && (u[e] === t ? u[e] = n[e] : u[e] !== n[e] && (u.setupOptions[e] = u[e]))
  6269. };
  6270. m = function() {
  6271. if (S) return !1;
  6272. if (u.html5Only) return S || (Tt.remove(e, "load", u.beginDelayedInit), u.enabled = !0, N()), !0;
  6273. I();
  6274. try {
  6275. f._externalInterfaceTest(!1), $(!0, u.flashPollingInterval || (u.useHighPerformance ? 10 : 50)), u.debugMode || f._disableDebug(), u.enabled = !0, u.html5Only || Tt.add(e, "unload", d)
  6276. } catch (t) {
  6277. return V({
  6278. type: "JS_TO_FLASH_EXCEPTION",
  6279. fatal: !0
  6280. }), Q(!0), N(), !1
  6281. }
  6282. N();
  6283. Tt.remove(e, "load", u.beginDelayedInit);
  6284. return !0
  6285. };
  6286. R = function() {
  6287. if (z) return !1;
  6288. z = !0;
  6289. v();
  6290. J();
  6291. !Lt && u.hasHTML5 && u.setup({
  6292. useHTML5Audio: !0,
  6293. preferFlash: !1
  6294. });
  6295. xt();
  6296. !Lt && mt && (dt.push(F.needFlash), u.setup({
  6297. flashLoadTimeout: 1
  6298. }));
  6299. p.removeEventListener && p.removeEventListener("DOMContentLoaded", R, !1);
  6300. I();
  6301. return !0
  6302. };
  6303. St = function() {
  6304. "complete" === p.readyState && (R(), p.detachEvent("onreadystatechange", St));
  6305. return !0
  6306. };
  6307. U = function() {
  6308. T = !0;
  6309. Tt.remove(e, "load", U)
  6310. };
  6311. q = function() {
  6312. if (qt && (u.setupOptions.useHTML5Audio = !0, u.setupOptions.preferFlash = !1, Pt || Ht && !c.match(/android\s2\.3/i))) Pt && (u.ignoreFlash = !0), Ct = !0
  6313. };
  6314. q();
  6315. At();
  6316. Tt.add(e, "focus", j);
  6317. Tt.add(e, "load", D);
  6318. Tt.add(e, "load", U);
  6319. p.addEventListener ? p.addEventListener("DOMContentLoaded", R, !1) : p.attachEvent ? p.attachEvent("onreadystatechange", St) : V({
  6320. type: "NO_DOM2_EVENTS",
  6321. fatal: !0
  6322. })
  6323. }
  6324. var r = null;
  6325. if (void 0 === e.SM2_DEFER || !SM2_DEFER) r = new n;
  6326. e.SoundManager = n;
  6327. e.soundManager = r
  6328. })(window);
  6329. jQuery.fn.center = function() {
  6330. this.css("top", Math.max(0, ($(window).innerHeight() - this.height()) / 2 + $(window).scrollTop()) + "px");
  6331. if (this.css("width") >= $(window).innerWidth()) {
  6332. $("#graybox").css("left", "0px")
  6333. } else {
  6334. this.css("margin-left", "-" + this.width() / 2 + "px")
  6335. }
  6336. return this
  6337. };
  6338. $(document).ready(function() {
  6339. initGraybox()
  6340. });
  6341. (function(e, t, n) {
  6342. "use strict";
  6343. var r, i, s, o, u, a, f, l, c, h, p, d, v, m, g, y, b, w, E, S, x, T, N, C, k, L, A, O, M, _, D;
  6344. N = {
  6345. paneClass: "nano-pane",
  6346. sliderClass: "nano-slider",
  6347. contentClass: "nano-content",
  6348. iOSNativeScrolling: false,
  6349. preventPageScrolling: false,
  6350. disableResize: false,
  6351. alwaysVisible: false,
  6352. flashDelay: 1500,
  6353. sliderMinHeight: 20,
  6354. sliderMaxHeight: null,
  6355. documentContext: null,
  6356. windowContext: null
  6357. };
  6358. w = "scrollbar";
  6359. b = "scroll";
  6360. c = "mousedown";
  6361. h = "mouseenter";
  6362. p = "mousemove";
  6363. v = "mousewheel";
  6364. d = "mouseup";
  6365. y = "resize";
  6366. u = "drag";
  6367. a = "enter";
  6368. S = "up";
  6369. g = "panedown";
  6370. s = "DOMMouseScroll";
  6371. o = "down";
  6372. x = "wheel";
  6373. f = "keydown";
  6374. l = "keyup";
  6375. E = "touchmove";
  6376. r = t.navigator.appName === "Microsoft Internet Explorer" && /msie 7./i.test(t.navigator.appVersion) && t.ActiveXObject;
  6377. i = null;
  6378. A = t.requestAnimationFrame;
  6379. T = t.cancelAnimationFrame;
  6380. M = n.createElement("div").style;
  6381. D = function() {
  6382. var e, t, n, r, i, s;
  6383. r = ["t", "webkitT", "MozT", "msT", "OT"];
  6384. for (e = i = 0, s = r.length; i < s; e = ++i) {
  6385. n = r[e];
  6386. t = r[e] + "ransform";
  6387. if (t in M) {
  6388. return r[e].substr(0, r[e].length - 1)
  6389. }
  6390. }
  6391. return false
  6392. }();
  6393. _ = function(e) {
  6394. if (D === false) {
  6395. return false
  6396. }
  6397. if (D === "") {
  6398. return e
  6399. }
  6400. return D + e.charAt(0).toUpperCase() + e.substr(1)
  6401. };
  6402. O = _("transform");
  6403. k = O !== false;
  6404. C = function() {
  6405. var e, t, r;
  6406. e = n.createElement("div");
  6407. t = e.style;
  6408. t.position = "absolute";
  6409. t.width = "100px";
  6410. t.height = "100px";
  6411. t.overflow = b;
  6412. t.top = "-9999px";
  6413. n.body.appendChild(e);
  6414. r = e.offsetWidth - e.clientWidth;
  6415. n.body.removeChild(e);
  6416. return r
  6417. };
  6418. L = function() {
  6419. var e, n, r;
  6420. n = t.navigator.userAgent;
  6421. e = /(?=.+Mac OS X)(?=.+Firefox)/.test(n);
  6422. if (!e) {
  6423. return false
  6424. }
  6425. r = /Firefox\/\d{2}\./.exec(n);
  6426. if (r) {
  6427. r = r[0].replace(/\D+/g, "")
  6428. }
  6429. return e && +r > 23
  6430. };
  6431. m = function() {
  6432. function f(r, s) {
  6433. this.el = r;
  6434. this.options = s;
  6435. i || (i = C());
  6436. this.$el = e(this.el);
  6437. this.doc = e(this.options.documentContext || n);
  6438. this.win = e(this.options.windowContext || t);
  6439. this.body = this.doc.find("body");
  6440. this.$content = this.$el.children("." + s.contentClass);
  6441. this.$content.attr("tabindex", this.options.tabIndex || 0);
  6442. this.content = this.$content[0];
  6443. this.previousPosition = 0;
  6444. if (this.options.iOSNativeScrolling && this.el.style.WebkitOverflowScrolling != null) {
  6445. this.nativeScrolling()
  6446. } else {
  6447. this.generate()
  6448. }
  6449. this.createEvents();
  6450. this.addEvents();
  6451. this.reset()
  6452. }
  6453. f.prototype.preventScrolling = function(e, t) {
  6454. if (!this.isActive) {
  6455. return
  6456. }
  6457. if (e.type === s) {
  6458. if (t === o && e.originalEvent.detail > 0 || t === S && e.originalEvent.detail < 0) {
  6459. e.preventDefault()
  6460. }
  6461. } else if (e.type === v) {
  6462. if (!e.originalEvent || !e.originalEvent.wheelDelta) {
  6463. return
  6464. }
  6465. if (t === o && e.originalEvent.wheelDelta < 0 || t === S && e.originalEvent.wheelDelta > 0) {
  6466. e.preventDefault()
  6467. }
  6468. }
  6469. };
  6470. f.prototype.nativeScrolling = function() {
  6471. this.$content.css({
  6472. WebkitOverflowScrolling: "touch"
  6473. });
  6474. this.iOSNativeScrolling = true;
  6475. this.isActive = true
  6476. };
  6477. f.prototype.updateScrollValues = function() {
  6478. var e, t;
  6479. e = this.content;
  6480. this.maxScrollTop = e.scrollHeight - e.clientHeight;
  6481. this.prevScrollTop = this.contentScrollTop || 0;
  6482. this.contentScrollTop = e.scrollTop;
  6483. t = this.contentScrollTop > this.previousPosition ? "down" : this.contentScrollTop < this.previousPosition ? "up" : "same";
  6484. this.previousPosition = this.contentScrollTop;
  6485. if (t !== "same") {
  6486. this.$el.trigger("update", {
  6487. position: this.contentScrollTop,
  6488. maximum: this.maxScrollTop,
  6489. direction: t
  6490. })
  6491. }
  6492. if (!this.iOSNativeScrolling) {
  6493. this.maxSliderTop = this.paneHeight - this.sliderHeight;
  6494. this.sliderTop = this.maxScrollTop === 0 ? 0 : this.contentScrollTop * this.maxSliderTop / this.maxScrollTop
  6495. }
  6496. };
  6497. f.prototype.setOnScrollStyles = function() {
  6498. var e;
  6499. if (k) {
  6500. e = {};
  6501. e[O] = "translate(0, " + this.sliderTop + "px)"
  6502. } else {
  6503. e = {
  6504. top: this.sliderTop
  6505. }
  6506. }
  6507. if (A) {
  6508. if (T && this.scrollRAF) {
  6509. T(this.scrollRAF)
  6510. }
  6511. this.scrollRAF = A(function(t) {
  6512. return function() {
  6513. t.scrollRAF = null;
  6514. return t.slider.css(e)
  6515. }
  6516. }(this))
  6517. } else {
  6518. this.slider.css(e)
  6519. }
  6520. };
  6521. f.prototype.createEvents = function() {
  6522. this.events = {
  6523. down: function(e) {
  6524. return function(t) {
  6525. e.isBeingDragged = true;
  6526. e.offsetY = t.pageY - e.slider.offset().top;
  6527. if (!e.slider.is(t.target)) {
  6528. e.offsetY = 0
  6529. }
  6530. e.pane.addClass("active");
  6531. e.doc.bind(p, e.events[u]).bind(d, e.events[S]);
  6532. e.body.bind(h, e.events[a]);
  6533. return false
  6534. }
  6535. }(this),
  6536. drag: function(e) {
  6537. return function(t) {
  6538. e.sliderY = t.pageY - e.$el.offset().top - e.paneTop - (e.offsetY || e.sliderHeight * .5);
  6539. e.scroll();
  6540. if (e.contentScrollTop >= e.maxScrollTop && e.prevScrollTop !== e.maxScrollTop) {
  6541. e.$el.trigger("scrollend")
  6542. } else if (e.contentScrollTop === 0 && e.prevScrollTop !== 0) {
  6543. e.$el.trigger("scrolltop")
  6544. }
  6545. return false
  6546. }
  6547. }(this),
  6548. up: function(e) {
  6549. return function(t) {
  6550. e.isBeingDragged = false;
  6551. e.pane.removeClass("active");
  6552. e.doc.unbind(p, e.events[u]).unbind(d, e.events[S]);
  6553. e.body.unbind(h, e.events[a]);
  6554. return false
  6555. }
  6556. }(this),
  6557. resize: function(e) {
  6558. return function(t) {
  6559. e.reset()
  6560. }
  6561. }(this),
  6562. panedown: function(e) {
  6563. return function(t) {
  6564. e.sliderY = (t.offsetY || t.originalEvent.layerY) - e.sliderHeight * .5;
  6565. e.scroll();
  6566. e.events.down(t);
  6567. return false
  6568. }
  6569. }(this),
  6570. scroll: function(e) {
  6571. return function(t) {
  6572. e.updateScrollValues();
  6573. if (e.isBeingDragged) {
  6574. return
  6575. }
  6576. if (!e.iOSNativeScrolling) {
  6577. e.sliderY = e.sliderTop;
  6578. e.setOnScrollStyles()
  6579. }
  6580. if (t == null) {
  6581. return
  6582. }
  6583. if (e.contentScrollTop >= e.maxScrollTop) {
  6584. if (e.options.preventPageScrolling) {
  6585. e.preventScrolling(t, o)
  6586. }
  6587. if (e.prevScrollTop !== e.maxScrollTop) {
  6588. e.$el.trigger("scrollend")
  6589. }
  6590. } else if (e.contentScrollTop === 0) {
  6591. if (e.options.preventPageScrolling) {
  6592. e.preventScrolling(t, S)
  6593. }
  6594. if (e.prevScrollTop !== 0) {
  6595. e.$el.trigger("scrolltop")
  6596. }
  6597. }
  6598. }
  6599. }(this),
  6600. wheel: function(e) {
  6601. return function(t) {
  6602. var n;
  6603. if (t == null) {
  6604. return
  6605. }
  6606. n = t.delta || t.wheelDelta || t.originalEvent && t.originalEvent.wheelDelta || -t.detail || t.originalEvent && -t.originalEvent.detail;
  6607. if (n) {
  6608. e.sliderY += -n / 3
  6609. }
  6610. e.scroll();
  6611. return false
  6612. }
  6613. }(this),
  6614. enter: function(e) {
  6615. return function(t) {
  6616. var n;
  6617. if (!e.isBeingDragged) {
  6618. return
  6619. }
  6620. if ((t.buttons || t.which) !== 1) {
  6621. return (n = e.events)[S].apply(n, arguments)
  6622. }
  6623. }
  6624. }(this)
  6625. }
  6626. };
  6627. f.prototype.addEvents = function() {
  6628. var e;
  6629. this.removeEvents();
  6630. e = this.events;
  6631. if (!this.options.disableResize) {
  6632. this.win.bind(y, e[y])
  6633. }
  6634. if (!this.iOSNativeScrolling) {
  6635. this.slider.bind(c, e[o]);
  6636. this.pane.bind(c, e[g]).bind("" + v + " " + s, e[x])
  6637. }
  6638. this.$content.bind("" + b + " " + v + " " + s + " " + E, e[b])
  6639. };
  6640. f.prototype.removeEvents = function() {
  6641. var e;
  6642. e = this.events;
  6643. this.win.unbind(y, e[y]);
  6644. if (!this.iOSNativeScrolling) {
  6645. this.slider.unbind();
  6646. this.pane.unbind()
  6647. }
  6648. this.$content.unbind("" + b + " " + v + " " + s + " " + E, e[b])
  6649. };
  6650. f.prototype.generate = function() {
  6651. var e, n, r, s, o, u, a;
  6652. s = this.options;
  6653. u = s.paneClass, a = s.sliderClass, e = s.contentClass;
  6654. if (!(o = this.$el.children("." + u)).length && !o.children("." + a).length) {
  6655. this.$el.append('<div class="' + u + '"><div class="' + a + '" /></div>')
  6656. }
  6657. this.pane = this.$el.children("." + u);
  6658. this.slider = this.pane.find("." + a);
  6659. if (i === 0 && L()) {
  6660. r = t.getComputedStyle(this.content, null).getPropertyValue("padding-right").replace(/[^0-9.]+/g, "");
  6661. n = {
  6662. right: -14,
  6663. paddingRight: +r + 14
  6664. }
  6665. } else if (i) {
  6666. n = {
  6667. right: -i
  6668. };
  6669. this.$el.addClass("has-scrollbar")
  6670. }
  6671. if (n != null) {
  6672. this.$content.css(n)
  6673. }
  6674. return this
  6675. };
  6676. f.prototype.restore = function() {
  6677. this.stopped = false;
  6678. if (!this.iOSNativeScrolling) {
  6679. this.pane.show()
  6680. }
  6681. this.addEvents()
  6682. };
  6683. f.prototype.reset = function() {
  6684. var e, t, n, s, o, u, a, f, l, c, h, p;
  6685. if (this.iOSNativeScrolling) {
  6686. this.contentHeight = this.content.scrollHeight;
  6687. return
  6688. }
  6689. if (!this.$el.find("." + this.options.paneClass).length) {
  6690. this.generate().stop()
  6691. }
  6692. if (this.stopped) {
  6693. this.restore()
  6694. }
  6695. e = this.content;
  6696. s = e.style;
  6697. o = s.overflowY;
  6698. if (r) {
  6699. this.$content.css({
  6700. height: this.$content.height()
  6701. })
  6702. }
  6703. t = e.scrollHeight + i;
  6704. c = parseInt(this.$el.css("max-height"), 10);
  6705. if (c > 0) {
  6706. this.$el.height("");
  6707. this.$el.height(e.scrollHeight > c ? c : e.scrollHeight)
  6708. }
  6709. a = this.pane.outerHeight(false);
  6710. l = parseInt(this.pane.css("top"), 10);
  6711. u = parseInt(this.pane.css("bottom"), 10);
  6712. f = a + l + u;
  6713. p = Math.round(f / t * f);
  6714. if (p < this.options.sliderMinHeight) {
  6715. p = this.options.sliderMinHeight
  6716. } else if (this.options.sliderMaxHeight != null && p > this.options.sliderMaxHeight) {
  6717. p = this.options.sliderMaxHeight
  6718. }
  6719. if (o === b && s.overflowX !== b) {
  6720. p += i
  6721. }
  6722. this.maxSliderTop = f - p;
  6723. this.contentHeight = t;
  6724. this.paneHeight = a;
  6725. this.paneOuterHeight = f;
  6726. this.sliderHeight = p;
  6727. this.paneTop = l;
  6728. this.slider.height(p);
  6729. this.events.scroll();
  6730. this.pane.show();
  6731. this.isActive = true;
  6732. if (e.scrollHeight === e.clientHeight || this.pane.outerHeight(true) >= e.scrollHeight && o !== b) {
  6733. this.pane.hide();
  6734. this.isActive = false
  6735. } else if (this.el.clientHeight === e.scrollHeight && o === b) {
  6736. this.slider.hide()
  6737. } else {
  6738. this.slider.show()
  6739. }
  6740. this.pane.css({
  6741. opacity: this.options.alwaysVisible ? 1 : "",
  6742. visibility: this.options.alwaysVisible ? "visible" : ""
  6743. });
  6744. n = this.$content.css("position");
  6745. if (n === "static" || n === "relative") {
  6746. h = parseInt(this.$content.css("right"), 10);
  6747. if (h) {
  6748. this.$content.css({
  6749. right: "",
  6750. marginRight: h
  6751. })
  6752. }
  6753. }
  6754. return this
  6755. };
  6756. f.prototype.scroll = function() {
  6757. if (!this.isActive) {
  6758. return
  6759. }
  6760. this.sliderY = Math.max(0, this.sliderY);
  6761. this.sliderY = Math.min(this.maxSliderTop, this.sliderY);
  6762. this.$content.scrollTop(this.maxScrollTop * this.sliderY / this.maxSliderTop);
  6763. if (!this.iOSNativeScrolling) {
  6764. this.updateScrollValues();
  6765. this.setOnScrollStyles()
  6766. }
  6767. return this
  6768. };
  6769. f.prototype.scrollBottom = function(e) {
  6770. if (!this.isActive) {
  6771. return
  6772. }
  6773. this.$content.scrollTop(this.contentHeight - this.$content.height() - e).trigger(v);
  6774. this.stop().restore();
  6775. return this
  6776. };
  6777. f.prototype.scrollTop = function(e) {
  6778. if (!this.isActive) {
  6779. return
  6780. }
  6781. this.$content.scrollTop(+e).trigger(v);
  6782. this.stop().restore();
  6783. return this
  6784. };
  6785. f.prototype.scrollTo = function(e) {
  6786. if (!this.isActive) {
  6787. return
  6788. }
  6789. this.scrollTop(this.$el.find(e).get(0).offsetTop);
  6790. return this
  6791. };
  6792. f.prototype.stop = function() {
  6793. if (T && this.scrollRAF) {
  6794. T(this.scrollRAF);
  6795. this.scrollRAF = null
  6796. }
  6797. this.stopped = true;
  6798. this.removeEvents();
  6799. if (!this.iOSNativeScrolling) {
  6800. this.pane.hide()
  6801. }
  6802. return this
  6803. };
  6804. f.prototype.destroy = function() {
  6805. if (!this.stopped) {
  6806. this.stop()
  6807. }
  6808. if (!this.iOSNativeScrolling && this.pane.length) {
  6809. this.pane.remove()
  6810. }
  6811. if (r) {
  6812. this.$content.height("")
  6813. }
  6814. this.$content.removeAttr("tabindex");
  6815. if (this.$el.hasClass("has-scrollbar")) {
  6816. this.$el.removeClass("has-scrollbar");
  6817. this.$content.css({
  6818. right: ""
  6819. })
  6820. }
  6821. return this
  6822. };
  6823. f.prototype.flash = function() {
  6824. if (this.iOSNativeScrolling) {
  6825. return
  6826. }
  6827. if (!this.isActive) {
  6828. return
  6829. }
  6830. this.reset();
  6831. this.pane.addClass("flashed");
  6832. setTimeout(function(e) {
  6833. return function() {
  6834. e.pane.removeClass("flashed")
  6835. }
  6836. }(this), this.options.flashDelay);
  6837. return this
  6838. };
  6839. return f
  6840. }();
  6841. e.fn.nanoScroller = function(t) {
  6842. return this.each(function() {
  6843. var n, r;
  6844. if (!(r = this.nanoscroller)) {
  6845. n = e.extend({}, N, t);
  6846. this.nanoscroller = r = new m(this, n)
  6847. }
  6848. if (t && typeof t === "object") {
  6849. e.extend(r.options, t);
  6850. if (t.scrollBottom != null) {
  6851. return r.scrollBottom(t.scrollBottom)
  6852. }
  6853. if (t.scrollTop != null) {
  6854. return r.scrollTop(t.scrollTop)
  6855. }
  6856. if (t.scrollTo) {
  6857. return r.scrollTo(t.scrollTo)
  6858. }
  6859. if (t.scroll === "bottom") {
  6860. return r.scrollBottom(0)
  6861. }
  6862. if (t.scroll === "top") {
  6863. return r.scrollTop(0)
  6864. }
  6865. if (t.scroll && t.scroll instanceof e) {
  6866. return r.scrollTo(t.scroll)
  6867. }
  6868. if (t.stop) {
  6869. return r.stop()
  6870. }
  6871. if (t.destroy) {
  6872. return r.destroy()
  6873. }
  6874. if (t.flash) {
  6875. return r.flash()
  6876. }
  6877. }
  6878. return r.reset()
  6879. })
  6880. };
  6881. e.fn.nanoScroller.Constructor = m
  6882. })(jQuery, window, document);
  6883. (function(e) {
  6884. "use strict";
  6885. if (typeof define === "function" && define.amd) {
  6886. define(e)
  6887. } else if (typeof module != "undefined" && typeof module.exports != "undefined") {
  6888. module.exports = e()
  6889. } else {
  6890. window["Sortable"] = e()
  6891. }
  6892. })(function() {
  6893. "use strict";
  6894.  
  6895. function S(e, t) {
  6896. this.el = e;
  6897. this.options = t = t || {};
  6898. var n = {
  6899. group: Math.random(),
  6900. store: null,
  6901. handle: null,
  6902. draggable: e.children[0] && e.children[0].nodeName || (/[uo]l/i.test(e.nodeName) ? "li" : "*"),
  6903. ghostClass: "sortable-ghost",
  6904. ignore: "a, img",
  6905. filter: null
  6906. };
  6907. for (var r in n) {
  6908. t[r] = t[r] || n[r]
  6909. }
  6910. y.forEach(function(n) {
  6911. t[n] = x(this, t[n] || b);
  6912. C(e, n.substr(2).toLowerCase(), t[n])
  6913. });
  6914. e[l] = t.group;
  6915. for (var i in this) {
  6916. if (i.charAt(0) === "_") {
  6917. this[i] = x(this, this[i])
  6918. }
  6919. }
  6920. C(e, "mousedown", this._onTapStart);
  6921. C(e, "touchstart", this._onTapStart);
  6922. d && C(e, "selectstart", this._onTapStart);
  6923. C(e, "dragover", this._onDragOver);
  6924. C(e, "dragenter", this._onDragOver);
  6925. E.push(this._onDragOver);
  6926. t.store && this.sort(t.store.get(this))
  6927. }
  6928.  
  6929. function x(e, t) {
  6930. var n = w.call(arguments, 2);
  6931. return t.bind ? t.bind.apply(t, [e].concat(n)) : function() {
  6932. return t.apply(e, n.concat(w.call(arguments)))
  6933. }
  6934. }
  6935.  
  6936. function T(e, t, n) {
  6937. if (t === "*") {
  6938. return e
  6939. } else if (e) {
  6940. n = n || h;
  6941. t = t.split(".");
  6942. var r = t.shift().toUpperCase(),
  6943. i = new RegExp("\\s(" + t.join("|") + ")\\s", "g");
  6944. do {
  6945. if ((r === "" || e.nodeName == r) && (!t.length || ((" " + e.className + " ").match(i) || []).length == t.length)) {
  6946. return e
  6947. }
  6948. } while (e !== n && (e = e.parentNode))
  6949. }
  6950. return null
  6951. }
  6952.  
  6953. function N(e) {
  6954. e.dataTransfer.dropEffect = "move";
  6955. e.preventDefault()
  6956. }
  6957.  
  6958. function C(e, t, n) {
  6959. e.addEventListener(t, n, false)
  6960. }
  6961.  
  6962. function k(e, t, n) {
  6963. e.removeEventListener(t, n, false)
  6964. }
  6965.  
  6966. function L(e, t, n) {
  6967. if (e) {
  6968. if (e.classList) {
  6969. e.classList[n ? "add" : "remove"](t)
  6970. } else {
  6971. var r = (" " + e.className + " ").replace(/\s+/g, " ").replace(" " + t + " ", "");
  6972. e.className = r + (n ? " " + t : "")
  6973. }
  6974. }
  6975. }
  6976.  
  6977. function A(e, t, n) {
  6978. if (e && e.style) {
  6979. if (n === void 0) {
  6980. if (h.defaultView && h.defaultView.getComputedStyle) {
  6981. n = h.defaultView.getComputedStyle(e, "")
  6982. } else if (e.currentStyle) {
  6983. n = e.currentStyle
  6984. }
  6985. return t === void 0 ? n : n[t]
  6986. } else {
  6987. e.style[t] = n + (typeof n === "string" ? "" : "px")
  6988. }
  6989. }
  6990. }
  6991.  
  6992. function O(e, t, n) {
  6993. if (e) {
  6994. var r = e.getElementsByTagName(t),
  6995. i = 0,
  6996. s = r.length;
  6997. if (n) {
  6998. for (; i < s; i++) {
  6999. n(r[i], i)
  7000. }
  7001. }
  7002. return r
  7003. }
  7004. return []
  7005. }
  7006.  
  7007. function M(e) {
  7008. return e.draggable = false
  7009. }
  7010.  
  7011. function _() {
  7012. v = false
  7013. }
  7014.  
  7015. function D(e, t) {
  7016. var n = e.lastElementChild.getBoundingClientRect();
  7017. return t.clientY - (n.top + n.height) > 5
  7018. }
  7019.  
  7020. function P(e) {
  7021. var t = e.tagName + e.className + e.src + e.href + e.textContent,
  7022. n = t.length,
  7023. r = 0;
  7024. while (n--) {
  7025. r += t.charCodeAt(n)
  7026. }
  7027. return r.toString(36)
  7028. }
  7029. var e, t, n, r, i, s, o, u, a, f, l = "Sortable" + (new Date).getTime(),
  7030. c = window,
  7031. h = c.document,
  7032. p = c.parseInt,
  7033. d = !!h.createElement("div").dragDrop,
  7034. v = false,
  7035. m = function(e, t) {
  7036. var n = h.createEvent("Event");
  7037. n.initEvent(e, true, true);
  7038. n.item = t;
  7039. return n
  7040. },
  7041. g = function(e, t, n) {
  7042. e.dispatchEvent(m(t, n || e))
  7043. },
  7044. y = "onAdd onUpdate onRemove onStart onEnd onFilter".split(" "),
  7045. b = function() {},
  7046. w = [].slice,
  7047. E = [];
  7048. S.prototype = {
  7049. constructor: S,
  7050. _applyEffects: function() {
  7051. L(e, this.options.ghostClass, true)
  7052. },
  7053. _onTapStart: function(t) {
  7054. var i = t.touches && t.touches[0],
  7055. s = (i || t).target,
  7056. o = this.options,
  7057. f = this.el,
  7058. l = o.filter;
  7059. if (typeof l === "function" && l.call(this, s, this)) {
  7060. g(f, "filter", s);
  7061. return
  7062. } else if (l) {
  7063. l = l.split(",").filter(function(e) {
  7064. return T(s, e.trim(), f)
  7065. });
  7066. if (l.length) {
  7067. g(f, "filter", s);
  7068. return
  7069. }
  7070. }
  7071. if (o.handle) {
  7072. s = T(s, o.handle, f)
  7073. }
  7074. s = T(s, o.draggable, f);
  7075. if (s && t.type == "selectstart") {
  7076. if (s.tagName != "A" && s.tagName != "IMG") {
  7077. s.dragDrop()
  7078. }
  7079. }
  7080. if (s && !e && s.parentNode === f) {
  7081. a = t;
  7082. n = this.el;
  7083. e = s;
  7084. r = e.nextSibling;
  7085. u = this.options.group;
  7086. e.draggable = true;
  7087. o.ignore.split(",").forEach(function(e) {
  7088. O(s, e.trim(), M)
  7089. });
  7090. if (i) {
  7091. a = {
  7092. target: s,
  7093. clientX: i.clientX,
  7094. clientY: i.clientY
  7095. };
  7096. this._onDragStart(a, true);
  7097. t.preventDefault()
  7098. }
  7099. C(h, "mouseup", this._onDrop);
  7100. C(h, "touchend", this._onDrop);
  7101. C(h, "touchcancel", this._onDrop);
  7102. C(this.el, "dragstart", this._onDragStart);
  7103. C(this.el, "dragend", this._onDrop);
  7104. C(h, "dragover", N);
  7105. try {
  7106. if (h.selection) {
  7107. h.selection.empty()
  7108. } else {
  7109. window.getSelection().removeAllRanges()
  7110. }
  7111. } catch (c) {}
  7112. g(e, "start")
  7113. }
  7114. },
  7115. _emulateDragOver: function() {
  7116. if (f) {
  7117. A(t, "display", "none");
  7118. var e = h.elementFromPoint(f.clientX, f.clientY),
  7119. n = e,
  7120. r = this.options.group,
  7121. i = E.length;
  7122. if (n) {
  7123. do {
  7124. if (n[l] === r) {
  7125. while (i--) {
  7126. E[i]({
  7127. clientX: f.clientX,
  7128. clientY: f.clientY,
  7129. target: e,
  7130. rootEl: n
  7131. })
  7132. }
  7133. break
  7134. }
  7135. e = n
  7136. } while (n = n.parentNode)
  7137. }
  7138. A(t, "display", "")
  7139. }
  7140. },
  7141. _onTouchMove: function(e) {
  7142. if (a) {
  7143. var n = e.touches[0],
  7144. r = n.clientX - a.clientX,
  7145. i = n.clientY - a.clientY,
  7146. s = "translate3d(" + r + "px," + i + "px,0)";
  7147. f = n;
  7148. A(t, "webkitTransform", s);
  7149. A(t, "mozTransform", s);
  7150. A(t, "msTransform", s);
  7151. A(t, "transform", s);
  7152. e.preventDefault()
  7153. }
  7154. },
  7155. _onDragStart: function(r, i) {
  7156. var s = r.dataTransfer;
  7157. this._offUpEvents();
  7158. if (i) {
  7159. var o = e.getBoundingClientRect(),
  7160. u = A(e),
  7161. a;
  7162. t = e.cloneNode(true);
  7163. A(t, "top", o.top - p(u.marginTop, 10));
  7164. A(t, "left", o.left - p(u.marginLeft, 10));
  7165. A(t, "width", o.width);
  7166. A(t, "height", o.height);
  7167. A(t, "opacity", "0.8");
  7168. A(t, "position", "fixed");
  7169. A(t, "zIndex", "100000");
  7170. n.appendChild(t);
  7171. a = t.getBoundingClientRect();
  7172. A(t, "width", o.width * 2 - a.width);
  7173. A(t, "height", o.height * 2 - a.height);
  7174. C(h, "touchmove", this._onTouchMove);
  7175. C(h, "touchend", this._onDrop);
  7176. C(h, "touchcancel", this._onDrop);
  7177. this._loopId = setInterval(this._emulateDragOver, 150)
  7178. } else {
  7179. s.effectAllowed = "move";
  7180. s.setData("Text", e.textContent);
  7181. C(h, "drop", this._onDrop)
  7182. }
  7183. setTimeout(this._applyEffects)
  7184. },
  7185. _onDragOver: function(n) {
  7186. if (!window.sortableLastTime) {
  7187. window.sortableLastTime = (new Date).getTime()
  7188. }
  7189. var r = 50;
  7190. var a = (new Date).getTime();
  7191. if (a - sortableLastTime >= r) {
  7192. sortableLastTime = a;
  7193. if (!v && u === this.options.group && (n.rootEl === void 0 || n.rootEl === this.el)) {
  7194. var f = this.el,
  7195. c = T(n.target, this.options.draggable, f);
  7196. if (f.children.length === 0 || f.children[0] === t || f === n.target && D(f, n)) {
  7197. f.appendChild(e)
  7198. } else if (c && c !== e && c.parentNode[l] !== void 0) {
  7199. if (i !== c) {
  7200. i = c;
  7201. s = A(c);
  7202. o = c.getBoundingClientRect()
  7203. }
  7204. var h = o,
  7205. p = h.right - h.left,
  7206. d = h.bottom - h.top,
  7207. m = /left|right|inline/.test(s.cssFloat + s.display),
  7208. g = c.offsetWidth > e.offsetWidth,
  7209. y = c.offsetHeight > e.offsetHeight,
  7210. b = (m ? (n.clientX - h.left) / p : (n.clientY - h.top) / d) > .5,
  7211. w = c.nextElementSibling,
  7212. E;
  7213. v = true;
  7214. setTimeout(_, 30);
  7215. if (m) {
  7216. E = c.previousElementSibling === e && !g || b && g
  7217. } else {
  7218. E = w !== e && !y || b && y
  7219. }
  7220. if (E && !w) {
  7221. f.appendChild(e)
  7222. } else {
  7223. c.parentNode.insertBefore(e, E ? w : c)
  7224. }
  7225. var S = h.bottom,
  7226. x = this.el.clientHeight,
  7227. N = 15;
  7228. var C = x - N,
  7229. k = x + N;
  7230. if (S >= C && S <= k) {
  7231. this.el.scrollTop = this.el.scrollTop + d
  7232. }
  7233. if (h.top < N + 10) {
  7234. if (this.el.scrollTop > 0) this.el.scrollTop = this.el.scrollTop - d
  7235. }
  7236. }
  7237. }
  7238. }
  7239. },
  7240. _offUpEvents: function() {
  7241. k(h, "mouseup", this._onDrop);
  7242. k(h, "touchmove", this._onTouchMove);
  7243. k(h, "touchend", this._onDrop);
  7244. k(h, "touchcancel", this._onDrop)
  7245. },
  7246. _onDrop: function(o) {
  7247. clearInterval(this._loopId);
  7248. k(h, "drop", this._onDrop);
  7249. k(h, "dragover", N);
  7250. k(this.el, "dragend", this._onDrop);
  7251. k(this.el, "dragstart", this._onDragStart);
  7252. k(this.el, "selectstart", this._onTapStart);
  7253. this._offUpEvents();
  7254. if (o) {
  7255. o.preventDefault();
  7256. o.stopPropagation();
  7257. if (t) {
  7258. t.parentNode.removeChild(t)
  7259. }
  7260. if (e) {
  7261. M(e);
  7262. L(e, this.options.ghostClass, false);
  7263. if (!n.contains(e)) {
  7264. g(n, "remove", e);
  7265. g(e, "add")
  7266. } else if (e.nextSibling !== r) {
  7267. g(e, "update")
  7268. }
  7269. g(e, "end")
  7270. }
  7271. n = e = t = r = a = f = i = s = u = null;
  7272. this.options.store && this.options.store.set(this)
  7273. }
  7274. },
  7275. toArray: function() {
  7276. var e = [],
  7277. t, n = this.el.children,
  7278. r = 0,
  7279. i = n.length;
  7280. for (; r < i; r++) {
  7281. t = n[r];
  7282. e.push(t.getAttribute("data-id") || P(t))
  7283. }
  7284. return e
  7285. },
  7286. sort: function(e) {
  7287. var t = {},
  7288. n = this.el;
  7289. this.toArray().forEach(function(e, r) {
  7290. t[e] = n.children[r]
  7291. });
  7292. e.forEach(function(e) {
  7293. if (t[e]) {
  7294. n.removeChild(t[e]);
  7295. n.appendChild(t[e])
  7296. }
  7297. })
  7298. },
  7299. closest: function(e, t) {
  7300. return T(e, t || this.options.draggable, this.el)
  7301. },
  7302. destroy: function() {
  7303. var e = this.el,
  7304. t = this.options;
  7305. y.forEach(function(n) {
  7306. k(e, n.substr(2).toLowerCase(), t[n])
  7307. });
  7308. k(e, "mousedown", this._onTapStart);
  7309. k(e, "touchstart", this._onTapStart);
  7310. k(e, "selectstart", this._onTapStart);
  7311. k(e, "dragover", this._onDragOver);
  7312. k(e, "dragenter", this._onDragOver);
  7313. Array.prototype.forEach.call(e.querySelectorAll("[draggable]"), function(e) {
  7314. e.removeAttribute("draggable")
  7315. });
  7316. E.splice(E.indexOf(this._onDragOver), 1);
  7317. this._onDrop();
  7318. this.el = null
  7319. }
  7320. };
  7321. S.utils = {
  7322. on: C,
  7323. off: k,
  7324. css: A,
  7325. find: O,
  7326. bind: x,
  7327. closest: T,
  7328. toggleClass: L,
  7329. createEvent: m,
  7330. dispatchEvent: g
  7331. };
  7332. S.version = "0.5.0";
  7333. return S
  7334. });
  7335. (function(e) {
  7336. function t(t) {
  7337. var n = t || window.event,
  7338. r = [].slice.call(arguments, 1),
  7339. i = 0,
  7340. s = true,
  7341. o = 0,
  7342. u = 0;
  7343. t = e.event.fix(n);
  7344. t.type = "mousewheel";
  7345. if (n.wheelDelta) {
  7346. i = n.wheelDelta / 120
  7347. }
  7348. if (n.detail) {
  7349. i = -n.detail / 3
  7350. }
  7351. u = i;
  7352. if (n.axis !== undefined && n.axis === n.HORIZONTAL_AXIS) {
  7353. u = 0;
  7354. o = -1 * i
  7355. }
  7356. if (n.wheelDeltaY !== undefined) {
  7357. u = n.wheelDeltaY / 120
  7358. }
  7359. if (n.wheelDeltaX !== undefined) {
  7360. o = -1 * n.wheelDeltaX / 120
  7361. }
  7362. r.unshift(t, i, o, u);
  7363. return (e.event.dispatch || e.event.handle).apply(this, r)
  7364. }
  7365. var n = ["DOMMouseScroll", "mousewheel"];
  7366. if (e.event.fixHooks) {
  7367. for (var r = n.length; r;) {
  7368. e.event.fixHooks[n[--r]] = e.event.mouseHooks
  7369. }
  7370. }
  7371. e.event.special.mousewheel = {
  7372. setup: function() {
  7373. if (this.addEventListener) {
  7374. for (var e = n.length; e;) {
  7375. this.addEventListener(n[--e], t, false)
  7376. }
  7377. } else {
  7378. this.onmousewheel = t
  7379. }
  7380. },
  7381. teardown: function() {
  7382. if (this.removeEventListener) {
  7383. for (var e = n.length; e;) {
  7384. this.removeEventListener(n[--e], t, false)
  7385. }
  7386. } else {
  7387. this.onmousewheel = null
  7388. }
  7389. }
  7390. };
  7391. e.fn.extend({
  7392. mousewheel: function(e) {
  7393. return e ? this.bind("mousewheel", e) : this.trigger("mousewheel")
  7394. },
  7395. unmousewheel: function(e) {
  7396. return this.unbind("mousewheel", e)
  7397. }
  7398. })
  7399. })(jQuery);
  7400. (function() {
  7401. function e() {
  7402. var e = false;
  7403. if ("localStorage" in window) {
  7404. try {
  7405. window.localStorage.setItem("_tmptest", "tmpval");
  7406. e = true;
  7407. window.localStorage.removeItem("_tmptest")
  7408. } catch (n) {}
  7409. }
  7410. if (e) {
  7411. try {
  7412. if (window.localStorage) {
  7413. E = window.localStorage;
  7414. T = "localStorage";
  7415. k = E.jStorage_update
  7416. }
  7417. } catch (s) {}
  7418. } else if ("globalStorage" in window) {
  7419. try {
  7420. if (window.globalStorage) {
  7421. E = window.globalStorage[window.location.hostname];
  7422. T = "globalStorage";
  7423. k = E.jStorage_update
  7424. }
  7425. } catch (o) {}
  7426. } else {
  7427. S = document.createElement("link");
  7428. if (S.addBehavior) {
  7429. S.style.behavior = "url(#default#userData)";
  7430. document.getElementsByTagName("head")[0].appendChild(S);
  7431. try {
  7432. S.load("jStorage")
  7433. } catch (u) {
  7434. S.setAttribute("jStorage", "{}");
  7435. S.save("jStorage");
  7436. S.load("jStorage")
  7437. }
  7438. var f = "{}";
  7439. try {
  7440. f = S.getAttribute("jStorage")
  7441. } catch (l) {}
  7442. try {
  7443. k = S.getAttribute("jStorage_update")
  7444. } catch (p) {}
  7445. E.jStorage = f;
  7446. T = "userDataBehavior"
  7447. } else {
  7448. S = null;
  7449. return
  7450. }
  7451. }
  7452. a();
  7453. c();
  7454. t("local");
  7455. t("session");
  7456. r();
  7457. h();
  7458. if ("addEventListener" in window) {
  7459. window.addEventListener("pageshow", function(e) {
  7460. if (e.persisted) {
  7461. i()
  7462. }
  7463. }, false)
  7464. }
  7465. }
  7466.  
  7467. function t(e, n) {
  7468. function r() {
  7469. if (e != "session") {
  7470. return
  7471. }
  7472. try {
  7473. f = b.parse(window.name || "{}")
  7474. } catch (t) {
  7475. f = {}
  7476. }
  7477. }
  7478.  
  7479. function i() {
  7480. if (e != "session") {
  7481. return
  7482. }
  7483. window.name = b.stringify(f)
  7484. }
  7485. var s = false,
  7486. o = 0,
  7487. u, a, f = {};
  7488. var l = Math.random();
  7489. if (!n && typeof window[e + "Storage"] != "undefined") {
  7490. return
  7491. }
  7492. if (e == "local" && window.globalStorage) {
  7493. localStorage = window.globalStorage[window.location.hostname];
  7494. return
  7495. }
  7496. if (T != "userDataBehavior") {
  7497. return
  7498. }
  7499. if (n && window[e + "Storage"] && window[e + "Storage"].parentNode) {
  7500. window[e + "Storage"].parentNode.removeChild(window[e + "Storage"])
  7501. }
  7502. a = document.createElement("button");
  7503. document.getElementsByTagName("head")[0].appendChild(a);
  7504. if (e == "local") {
  7505. f = w
  7506. } else if (e == "session") {
  7507. r()
  7508. }
  7509. for (u in f) {
  7510. if (f.hasOwnProperty(u) && u != "__jstorage_meta" && u != "length" && typeof f[u] != "undefined") {
  7511. if (!(u in a)) {
  7512. o++
  7513. }
  7514. a[u] = f[u]
  7515. }
  7516. }
  7517. a.length = o;
  7518. a.key = function(e) {
  7519. var t = 0,
  7520. n;
  7521. r();
  7522. for (n in f) {
  7523. if (f.hasOwnProperty(n) && n != "__jstorage_meta" && n != "length" && typeof f[n] != "undefined") {
  7524. if (t == e) {
  7525. return n
  7526. }
  7527. t++
  7528. }
  7529. }
  7530. };
  7531. a.getItem = function(t) {
  7532. r();
  7533. if (e == "session") {
  7534. return f[t]
  7535. }
  7536. return y.jStorage.get(t)
  7537. };
  7538. a.setItem = function(e, t) {
  7539. if (typeof t == "undefined") {
  7540. return
  7541. }
  7542. a[e] = (t || "").toString()
  7543. };
  7544. a.removeItem = function(t) {
  7545. if (e == "local") {
  7546. return y.jStorage.deleteKey(t)
  7547. }
  7548. a[t] = undefined;
  7549. s = true;
  7550. if (t in a) {
  7551. a.removeAttribute(t)
  7552. }
  7553. s = false
  7554. };
  7555. a.clear = function() {
  7556. if (e == "session") {
  7557. window.name = "";
  7558. t("session", true);
  7559. return
  7560. }
  7561. y.jStorage.flush()
  7562. };
  7563. if (e == "local") {
  7564. D = function(e, t) {
  7565. if (e == "length") {
  7566. return
  7567. }
  7568. s = true;
  7569. if (typeof t == "undefined") {
  7570. if (e in a) {
  7571. o--;
  7572. a.removeAttribute(e)
  7573. }
  7574. } else {
  7575. if (!(e in a)) {
  7576. o++
  7577. }
  7578. a[e] = (t || "").toString()
  7579. }
  7580. a.length = o;
  7581. s = false
  7582. }
  7583. }
  7584. a.attachEvent("onpropertychange", function(t) {
  7585. if (t.propertyName == "length") {
  7586. return
  7587. }
  7588. if (s || t.propertyName == "length") {
  7589. return
  7590. }
  7591. if (e == "local") {
  7592. if (!(t.propertyName in f) && typeof a[t.propertyName] != "undefined") {
  7593. o++
  7594. }
  7595. } else if (e == "session") {
  7596. r();
  7597. if (typeof a[t.propertyName] != "undefined" && !(t.propertyName in f)) {
  7598. f[t.propertyName] = a[t.propertyName];
  7599. o++
  7600. } else if (typeof a[t.propertyName] == "undefined" && t.propertyName in f) {
  7601. delete f[t.propertyName];
  7602. o--
  7603. } else {
  7604. f[t.propertyName] = a[t.propertyName]
  7605. }
  7606. i();
  7607. a.length = o;
  7608. return
  7609. }
  7610. y.jStorage.set(t.propertyName, a[t.propertyName]);
  7611. a.length = o
  7612. });
  7613. window[e + "Storage"] = a
  7614. }
  7615.  
  7616. function n() {
  7617. var e = "{}";
  7618. if (T == "userDataBehavior") {
  7619. S.load("jStorage");
  7620. try {
  7621. e = S.getAttribute("jStorage")
  7622. } catch (t) {}
  7623. try {
  7624. k = S.getAttribute("jStorage_update")
  7625. } catch (n) {}
  7626. E.jStorage = e
  7627. }
  7628. a();
  7629. c();
  7630. h()
  7631. }
  7632.  
  7633. function r() {
  7634. if (T == "localStorage" || T == "globalStorage") {
  7635. if ("addEventListener" in window) {
  7636. window.addEventListener("storage", i, false)
  7637. } else {
  7638. document.attachEvent("onstorage", i)
  7639. }
  7640. } else if (T == "userDataBehavior") {
  7641. setInterval(i, 1e3)
  7642. }
  7643. }
  7644.  
  7645. function i() {
  7646. var e;
  7647. clearTimeout(C);
  7648. C = setTimeout(function() {
  7649. if (T == "localStorage" || T == "globalStorage") {
  7650. e = E.jStorage_update
  7651. } else if (T == "userDataBehavior") {
  7652. S.load("jStorage");
  7653. try {
  7654. e = S.getAttribute("jStorage_update")
  7655. } catch (t) {}
  7656. }
  7657. if (e && e != k) {
  7658. k = e;
  7659. s()
  7660. }
  7661. }, 25)
  7662. }
  7663.  
  7664. function s() {
  7665. var e = b.parse(b.stringify(w.__jstorage_meta.CRC32)),
  7666. t;
  7667. n();
  7668. t = b.parse(b.stringify(w.__jstorage_meta.CRC32));
  7669. var r, i = [],
  7670. s = [];
  7671. for (r in e) {
  7672. if (e.hasOwnProperty(r)) {
  7673. if (!t[r]) {
  7674. s.push(r);
  7675. continue
  7676. }
  7677. if (e[r] != t[r]) {
  7678. i.push(r)
  7679. }
  7680. }
  7681. }
  7682. for (r in t) {
  7683. if (t.hasOwnProperty(r)) {
  7684. if (!e[r]) {
  7685. i.push(r)
  7686. }
  7687. }
  7688. }
  7689. o(i, "updated");
  7690. o(s, "deleted")
  7691. }
  7692.  
  7693. function o(e, t) {
  7694. e = [].concat(e || []);
  7695. if (t == "flushed") {
  7696. e = [];
  7697. for (var n in N) {
  7698. if (N.hasOwnProperty(n)) {
  7699. e.push(n)
  7700. }
  7701. }
  7702. t = "deleted"
  7703. }
  7704. for (var r = 0, i = e.length; r < i; r++) {
  7705. if (N[e[r]]) {
  7706. for (var s = 0, o = N[e[r]].length; s < o; s++) {
  7707. N[e[r]][s](e[r], t)
  7708. }
  7709. }
  7710. }
  7711. }
  7712.  
  7713. function u() {
  7714. var e = (+(new Date)).toString();
  7715. if (T == "localStorage" || T == "globalStorage") {
  7716. E.jStorage_update = e
  7717. } else if (T == "userDataBehavior") {
  7718. S.setAttribute("jStorage_update", e);
  7719. S.save("jStorage")
  7720. }
  7721. i()
  7722. }
  7723.  
  7724. function a() {
  7725. if (E.jStorage) {
  7726. try {
  7727. w = b.parse(String(E.jStorage))
  7728. } catch (e) {
  7729. E.jStorage = "{}"
  7730. }
  7731. } else {
  7732. E.jStorage = "{}"
  7733. }
  7734. x = E.jStorage ? String(E.jStorage).length : 0;
  7735. if (!w.__jstorage_meta) {
  7736. w.__jstorage_meta = {}
  7737. }
  7738. if (!w.__jstorage_meta.CRC32) {
  7739. w.__jstorage_meta.CRC32 = {}
  7740. }
  7741. }
  7742.  
  7743. function f() {
  7744. d();
  7745. try {
  7746. E.jStorage = b.stringify(w);
  7747. if (S) {
  7748. S.setAttribute("jStorage", E.jStorage);
  7749. S.save("jStorage")
  7750. }
  7751. x = E.jStorage ? String(E.jStorage).length : 0
  7752. } catch (e) {}
  7753. }
  7754.  
  7755. function l(e) {
  7756. if (!e || typeof e != "string" && typeof e != "number") {
  7757. throw new TypeError("Key name must be string or numeric")
  7758. }
  7759. if (e == "__jstorage_meta") {
  7760. throw new TypeError("Reserved key name")
  7761. }
  7762. return true
  7763. }
  7764.  
  7765. function c() {
  7766. var e, t, n, r, i = Infinity,
  7767. s = false,
  7768. a = [];
  7769. clearTimeout(O);
  7770. if (!w.__jstorage_meta || typeof w.__jstorage_meta.TTL != "object") {
  7771. return
  7772. }
  7773. e = +(new Date);
  7774. n = w.__jstorage_meta.TTL;
  7775. r = w.__jstorage_meta.CRC32;
  7776. for (t in n) {
  7777. if (n.hasOwnProperty(t)) {
  7778. if (n[t] <= e) {
  7779. delete n[t];
  7780. delete r[t];
  7781. delete w[t];
  7782. s = true;
  7783. a.push(t)
  7784. } else if (n[t] < i) {
  7785. i = n[t]
  7786. }
  7787. }
  7788. }
  7789. if (i != Infinity) {
  7790. O = setTimeout(c, i - e)
  7791. }
  7792. if (s) {
  7793. f();
  7794. u();
  7795. o(a, "deleted")
  7796. }
  7797. }
  7798.  
  7799. function h() {
  7800. if (!w.__jstorage_meta.PubSub) {
  7801. return
  7802. }
  7803. var e, t = A;
  7804. for (var n = len = w.__jstorage_meta.PubSub.length - 1; n >= 0; n--) {
  7805. e = w.__jstorage_meta.PubSub[n];
  7806. if (e[0] > A) {
  7807. t = e[0];
  7808. p(e[1], e[2])
  7809. }
  7810. }
  7811. A = t
  7812. }
  7813.  
  7814. function p(e, t) {
  7815. if (L[e]) {
  7816. for (var n = 0, r = L[e].length; n < r; n++) {
  7817. L[e][n](e, b.parse(b.stringify(t)))
  7818. }
  7819. }
  7820. }
  7821.  
  7822. function d() {
  7823. if (!w.__jstorage_meta.PubSub) {
  7824. return
  7825. }
  7826. var e = +(new Date) - 2e3;
  7827. for (var t = 0, n = w.__jstorage_meta.PubSub.length; t < n; t++) {
  7828. if (w.__jstorage_meta.PubSub[t][0] <= e) {
  7829. w.__jstorage_meta.PubSub.splice(t, w.__jstorage_meta.PubSub.length - t);
  7830. break
  7831. }
  7832. }
  7833. if (!w.__jstorage_meta.PubSub.length) {
  7834. delete w.__jstorage_meta.PubSub
  7835. }
  7836. }
  7837.  
  7838. function v(e, t) {
  7839. if (!w.__jstorage_meta) {
  7840. w.__jstorage_meta = {}
  7841. }
  7842. if (!w.__jstorage_meta.PubSub) {
  7843. w.__jstorage_meta.PubSub = []
  7844. }
  7845. w.__jstorage_meta.PubSub.unshift([+(new Date), e, t]);
  7846. f();
  7847. u()
  7848. }
  7849.  
  7850. function m(e, t) {
  7851. t = t || 0;
  7852. var n = 0,
  7853. r = 0;
  7854. t = t ^ -1;
  7855. for (var i = 0, s = e.length; i < s; i++) {
  7856. n = (t ^ e.charCodeAt(i)) & 255;
  7857. r = "0x" + M.substr(n * 9, 8);
  7858. t = t >>> 8 ^ r
  7859. }
  7860. return t ^ -1
  7861. }
  7862. var g = "0.3.0",
  7863. y = window.jQuery || window.$ || (window.$ = {}),
  7864. b = {
  7865. parse: window.JSON && (window.JSON.parse || window.JSON.decode) || String.prototype.evalJSON && function(e) {
  7866. return String(e).evalJSON()
  7867. } || y.parseJSON || y.evalJSON,
  7868. stringify: Object.toJSON || window.JSON && (window.JSON.stringify || window.JSON.encode) || y.toJSON
  7869. };
  7870. if (!b.parse || !b.stringify) {
  7871. throw new Error("No JSON support found, include //cdnjs.cloudflare.com/ajax/libs/json2/20110223/json2.js to page")
  7872. }
  7873. var w = {},
  7874. E = {
  7875. jStorage: "{}"
  7876. },
  7877. S = null,
  7878. x = 0,
  7879. T = false,
  7880. N = {},
  7881. C = false,
  7882. k = 0,
  7883. L = {},
  7884. A = +(new Date),
  7885. O, M = "00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 " + "0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 " + "6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 " + "FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 " + "A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 " + "32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 " + "56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 " + "C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 " + "E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 " + "6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 " + "12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE " + "A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 " + "DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 " + "5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 " + "2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF " + "04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 " + "7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 " + "FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 " + "A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C " + "36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 " + "5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 " + "C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 " + "EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D " + "7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 " + "18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 " + "A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A " + "D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A " + "53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 " + "2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D",
  7886. _ = {
  7887. isXML: function(e) {
  7888. var t = (e ? e.ownerDocument || e : 0).documentElement;
  7889. return t ? t.nodeName !== "HTML" : false
  7890. },
  7891. encode: function(e) {
  7892. if (!this.isXML(e)) {
  7893. return false
  7894. }
  7895. try {
  7896. return (new XMLSerializer).serializeToString(e)
  7897. } catch (t) {
  7898. try {
  7899. return e.xml
  7900. } catch (n) {}
  7901. }
  7902. return false
  7903. },
  7904. decode: function(e) {
  7905. var t = "DOMParser" in window && (new DOMParser).parseFromString || window.ActiveXObject && function(e) {
  7906. var t = new ActiveXObject("Microsoft.XMLDOM");
  7907. t.async = "false";
  7908. t.loadXML(e);
  7909. return t
  7910. },
  7911. n;
  7912. if (!t) {
  7913. return false
  7914. }
  7915. n = t.call("DOMParser" in window && new DOMParser || window, e, "text/xml");
  7916. return this.isXML(n) ? n : false
  7917. }
  7918. },
  7919. D = function() {};
  7920. y.jStorage = {
  7921. version: g,
  7922. set: function(e, t, n) {
  7923. l(e);
  7924. n = n || {};
  7925. if (typeof t == "undefined") {
  7926. this.deleteKey(e);
  7927. return t
  7928. }
  7929. if (_.isXML(t)) {
  7930. t = {
  7931. _is_xml: true,
  7932. xml: _.encode(t)
  7933. }
  7934. } else if (typeof t == "function") {
  7935. return undefined
  7936. } else if (t && typeof t == "object") {
  7937. t = b.parse(b.stringify(t))
  7938. }
  7939. w[e] = t;
  7940. w.__jstorage_meta.CRC32[e] = m(b.stringify(t));
  7941. this.setTTL(e, n.TTL || 0);
  7942. D(e, t);
  7943. o(e, "updated");
  7944. return t
  7945. },
  7946. get: function(e, t) {
  7947. l(e);
  7948. if (e in w) {
  7949. if (w[e] && typeof w[e] == "object" && w[e]._is_xml && w[e]._is_xml) {
  7950. return _.decode(w[e].xml)
  7951. } else {
  7952. return w[e]
  7953. }
  7954. }
  7955. return typeof t == "undefined" ? null : t
  7956. },
  7957. deleteKey: function(e) {
  7958. l(e);
  7959. if (e in w) {
  7960. delete w[e];
  7961. if (typeof w.__jstorage_meta.TTL == "object" && e in w.__jstorage_meta.TTL) {
  7962. delete w.__jstorage_meta.TTL[e]
  7963. }
  7964. delete w.__jstorage_meta.CRC32[e];
  7965. D(e, undefined);
  7966. f();
  7967. u();
  7968. o(e, "deleted");
  7969. return true
  7970. }
  7971. return false
  7972. },
  7973. setTTL: function(e, t) {
  7974. var n = +(new Date);
  7975. l(e);
  7976. t = Number(t) || 0;
  7977. if (e in w) {
  7978. if (!w.__jstorage_meta.TTL) {
  7979. w.__jstorage_meta.TTL = {}
  7980. }
  7981. if (t > 0) {
  7982. w.__jstorage_meta.TTL[e] = n + t
  7983. } else {
  7984. delete w.__jstorage_meta.TTL[e]
  7985. }
  7986. f();
  7987. c();
  7988. u();
  7989. return true
  7990. }
  7991. return false
  7992. },
  7993. getTTL: function(e) {
  7994. var t = +(new Date),
  7995. n;
  7996. l(e);
  7997. if (e in w && w.__jstorage_meta.TTL && w.__jstorage_meta.TTL[e]) {
  7998. n = w.__jstorage_meta.TTL[e] - t;
  7999. return n || 0
  8000. }
  8001. return 0
  8002. },
  8003. flush: function() {
  8004. w = {
  8005. __jstorage_meta: {
  8006. CRC32: {}
  8007. }
  8008. };
  8009. t("local", true);
  8010. f();
  8011. u();
  8012. o(null, "flushed");
  8013. return true
  8014. },
  8015. storageObj: function() {
  8016. function e() {}
  8017. e.prototype = w;
  8018. return new e
  8019. },
  8020. index: function() {
  8021. var e = [],
  8022. t;
  8023. for (t in w) {
  8024. if (w.hasOwnProperty(t) && t != "__jstorage_meta") {
  8025. e.push(t)
  8026. }
  8027. }
  8028. return e
  8029. },
  8030. storageSize: function() {
  8031. return x
  8032. },
  8033. currentBackend: function() {
  8034. return T
  8035. },
  8036. storageAvailable: function() {
  8037. return !!T
  8038. },
  8039. listenKeyChange: function(e, t) {
  8040. l(e);
  8041. if (!N[e]) {
  8042. N[e] = []
  8043. }
  8044. N[e].push(t)
  8045. },
  8046. stopListening: function(e, t) {
  8047. l(e);
  8048. if (!N[e]) {
  8049. return
  8050. }
  8051. if (!t) {
  8052. delete N[e];
  8053. return
  8054. }
  8055. for (var n = N[e].length - 1; n >= 0; n--) {
  8056. if (N[e][n] == t) {
  8057. N[e].splice(n, 1)
  8058. }
  8059. }
  8060. },
  8061. subscribe: function(e, t) {
  8062. e = (e || "").toString();
  8063. if (!e) {
  8064. throw new TypeError("Channel not defined")
  8065. }
  8066. if (!L[e]) {
  8067. L[e] = []
  8068. }
  8069. L[e].push(t)
  8070. },
  8071. publish: function(e, t) {
  8072. e = (e || "").toString();
  8073. if (!e) {
  8074. throw new TypeError("Channel not defined")
  8075. }
  8076. v(e, t)
  8077. },
  8078. reInit: function() {
  8079. n()
  8080. }
  8081. };
  8082. e()
  8083. })();
  8084. jQuery.fn.extend({
  8085. everyTime: function(e, t, n, r) {
  8086. return this.each(function() {
  8087. jQuery.timer.add(this, e, t, n, r)
  8088. })
  8089. },
  8090. oneTime: function(e, t, n) {
  8091. return this.each(function() {
  8092. jQuery.timer.add(this, e, t, n, 1)
  8093. })
  8094. },
  8095. stopTime: function(e, t) {
  8096. return this.each(function() {
  8097. jQuery.timer.remove(this, e, t)
  8098. })
  8099. }
  8100. });
  8101. jQuery.extend({
  8102. timer: {
  8103. global: [],
  8104. guid: 1,
  8105. dataKey: "jQuery.timer",
  8106. regex: /^([0-9]+(?:\.[0-9]*)?)\s*(.*s)?$/,
  8107. powers: {
  8108. ms: 1,
  8109. cs: 10,
  8110. ds: 100,
  8111. s: 1e3,
  8112. das: 1e4,
  8113. hs: 1e5,
  8114. ks: 1e6
  8115. },
  8116. timeParse: function(e) {
  8117. if (e == undefined || e == null) return null;
  8118. var t = this.regex.exec(jQuery.trim(e.toString()));
  8119. return t[2] ? parseFloat(t[1]) * (this.powers[t[2]] || 1) : e
  8120. },
  8121. add: function(e, t, n, r, i) {
  8122. var s = 0;
  8123. if (jQuery.isFunction(n)) {
  8124. i || (i = r);
  8125. r = n;
  8126. n = t
  8127. }
  8128. t = jQuery.timer.timeParse(t);
  8129. if (!(typeof t != "number" || isNaN(t) || t < 0)) {
  8130. if (typeof i != "number" || isNaN(i) || i < 0) i = 0;
  8131. i = i || 0;
  8132. var o = jQuery.data(e, this.dataKey) || jQuery.data(e, this.dataKey, {});
  8133. o[n] || (o[n] = {});
  8134. r.timerID = r.timerID || this.guid++;
  8135. var u = function() {
  8136. if (++s > i && i !== 0 || r.call(e, s) === false) jQuery.timer.remove(e, n, r)
  8137. };
  8138. u.timerID = r.timerID;
  8139. o[n][r.timerID] || (o[n][r.timerID] = window.setInterval(u, t));
  8140. this.global.push(e)
  8141. }
  8142. },
  8143. remove: function(e, t, n) {
  8144. var r = jQuery.data(e, this.dataKey),
  8145. i;
  8146. if (r) {
  8147. if (t) {
  8148. if (r[t]) {
  8149. if (n) {
  8150. if (n.timerID) {
  8151. window.clearInterval(r[t][n.timerID]);
  8152. delete r[t][n.timerID]
  8153. }
  8154. } else
  8155. for (n in r[t]) {
  8156. window.clearInterval(r[t][n]);
  8157. delete r[t][n]
  8158. }
  8159. for (i in r[t]) break;
  8160. if (!i) {
  8161. i = null;
  8162. delete r[t]
  8163. }
  8164. }
  8165. } else
  8166. for (t in r) this.remove(e, t, n);
  8167. for (i in r) break;
  8168. i || jQuery.removeData(e, this.dataKey)
  8169. }
  8170. }
  8171. }
  8172. });
  8173. jQuery(window).bind("unload", function() {
  8174. jQuery.each(jQuery.timer.global, function(e, t) {
  8175. jQuery.timer.remove(t)
  8176. })
  8177. });
  8178. (function(e, t) {
  8179. "use strict";
  8180. var n = e.History = e.History || {},
  8181. r = e.jQuery;
  8182. if (typeof n.Adapter != "undefined") throw new Error("History.js Adapter has already been loaded...");
  8183. n.Adapter = {
  8184. bind: function(e, t, n) {
  8185. r(e).bind(t, n)
  8186. },
  8187. trigger: function(e, t, n) {
  8188. r(e).trigger(t, n)
  8189. },
  8190. extractEventData: function(e, n, r) {
  8191. var i = n && n.originalEvent && n.originalEvent[e] || r && r[e] || t;
  8192. return i
  8193. },
  8194. onDomLoad: function(e) {
  8195. r(e)
  8196. }
  8197. }, typeof n.init != "undefined" && n.init()
  8198. })(window);
  8199. (function(e, t) {
  8200. "use strict";
  8201. var n = e.console || t,
  8202. r = e.document,
  8203. i = e.navigator,
  8204. s = e.sessionStorage || false,
  8205. o = e.setTimeout,
  8206. u = e.clearTimeout,
  8207. a = e.setInterval,
  8208. f = e.clearInterval,
  8209. l = e.JSON,
  8210. c = e.alert,
  8211. h = e.History = e.History || {},
  8212. p = e.history;
  8213. l.stringify = l.stringify || l.encode;
  8214. l.parse = l.parse || l.decode;
  8215. if (typeof h.init !== "undefined") {
  8216. throw new Error("History.js Core has already been loaded...")
  8217. }
  8218. h.init = function() {
  8219. if (typeof h.Adapter === "undefined") {
  8220. return false
  8221. }
  8222. if (typeof h.initCore !== "undefined") {
  8223. h.initCore()
  8224. }
  8225. if (typeof h.initHtml4 !== "undefined") {
  8226. h.initHtml4()
  8227. }
  8228. return true
  8229. };
  8230. h.initCore = function() {
  8231. if (typeof h.initCore.initialized !== "undefined") {
  8232. return false
  8233. } else {
  8234. h.initCore.initialized = true
  8235. }
  8236. h.options = h.options || {};
  8237. h.options.hashChangeInterval = h.options.hashChangeInterval || 100;
  8238. h.options.safariPollInterval = h.options.safariPollInterval || 500;
  8239. h.options.doubleCheckInterval = h.options.doubleCheckInterval || 500;
  8240. h.options.storeInterval = h.options.storeInterval || 1e3;
  8241. h.options.busyDelay = h.options.busyDelay || 250;
  8242. h.options.debug = h.options.debug || false;
  8243. h.options.initialTitle = h.options.initialTitle || r.title;
  8244. h.intervalList = [];
  8245. h.clearAllIntervals = function() {
  8246. var e, t = h.intervalList;
  8247. if (typeof t !== "undefined" && t !== null) {
  8248. for (e = 0; e < t.length; e++) {
  8249. f(t[e])
  8250. }
  8251. h.intervalList = null
  8252. }
  8253. };
  8254. h.debug = function() {
  8255. if (h.options.debug || false) {
  8256. h.log.apply(h, arguments)
  8257. }
  8258. };
  8259. h.log = function() {
  8260. var e = !(typeof n === "undefined" || typeof n.log === "undefined" || typeof n.log.apply === "undefined"),
  8261. t = r.getElementById("log"),
  8262. i, s, o, u, a;
  8263. if (e) {
  8264. u = Array.prototype.slice.call(arguments);
  8265. i = u.shift();
  8266. if (typeof n.debug !== "undefined") {
  8267. n.debug.apply(n, [i, u])
  8268. } else {
  8269. n.log.apply(n, [i, u])
  8270. }
  8271. } else {
  8272. i = "\n" + arguments[0] + "\n"
  8273. }
  8274. for (s = 1, o = arguments.length; s < o; ++s) {
  8275. a = arguments[s];
  8276. if (typeof a === "object" && typeof l !== "undefined") {
  8277. try {
  8278. a = l.stringify(a)
  8279. } catch (f) {}
  8280. }
  8281. i += "\n" + a + "\n"
  8282. }
  8283. if (t) {
  8284. t.value += i + "\n-----\n";
  8285. t.scrollTop = t.scrollHeight - t.clientHeight
  8286. } else if (!e) {
  8287. c(i)
  8288. }
  8289. return true
  8290. };
  8291. h.getInternetExplorerMajorVersion = function() {
  8292. var e = h.getInternetExplorerMajorVersion.cached = typeof h.getInternetExplorerMajorVersion.cached !== "undefined" ? h.getInternetExplorerMajorVersion.cached : function() {
  8293. var e = 3,
  8294. t = r.createElement("div"),
  8295. n = t.getElementsByTagName("i");
  8296. while ((t.innerHTML = "<!--[if gt IE " + ++e + "]><i></i><![endif]-->") && n[0]) {}
  8297. return e > 4 ? e : false
  8298. }();
  8299. return e
  8300. };
  8301. h.isInternetExplorer = function() {
  8302. var e = h.isInternetExplorer.cached = typeof h.isInternetExplorer.cached !== "undefined" ? h.isInternetExplorer.cached : Boolean(h.getInternetExplorerMajorVersion());
  8303. return e
  8304. };
  8305. h.emulated = {
  8306. pushState: !Boolean(e.history && e.history.pushState && e.history.replaceState && !(/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test(i.userAgent) || /AppleWebKit\/5([0-2]|3[0-2])/i.test(i.userAgent))),
  8307. hashChange: Boolean(!("onhashchange" in e || "onhashchange" in r) || h.isInternetExplorer() && h.getInternetExplorerMajorVersion() < 8)
  8308. };
  8309. h.enabled = !h.emulated.pushState;
  8310. h.bugs = {
  8311. setHash: Boolean(!h.emulated.pushState && i.vendor === "Apple Computer, Inc." && /AppleWebKit\/5([0-2]|3[0-3])/.test(i.userAgent)),
  8312. safariPoll: Boolean(!h.emulated.pushState && i.vendor === "Apple Computer, Inc." && /AppleWebKit\/5([0-2]|3[0-3])/.test(i.userAgent)),
  8313. ieDoubleCheck: Boolean(h.isInternetExplorer() && h.getInternetExplorerMajorVersion() < 8),
  8314. hashEscape: Boolean(h.isInternetExplorer() && h.getInternetExplorerMajorVersion() < 7)
  8315. };
  8316. h.isEmptyObject = function(e) {
  8317. for (var t in e) {
  8318. return false
  8319. }
  8320. return true
  8321. };
  8322. h.cloneObject = function(e) {
  8323. var t, n;
  8324. if (e) {
  8325. t = l.stringify(e);
  8326. n = l.parse(t)
  8327. } else {
  8328. n = {}
  8329. }
  8330. return n
  8331. };
  8332. h.getRootUrl = function() {
  8333. var e = r.location.protocol + "//" + (r.location.hostname || r.location.host);
  8334. if (r.location.port || false) {
  8335. e += ":" + r.location.port
  8336. }
  8337. e += "/";
  8338. return e
  8339. };
  8340. h.getBaseHref = function() {
  8341. var e = r.getElementsByTagName("base"),
  8342. t = null,
  8343. n = "";
  8344. if (e.length === 1) {
  8345. t = e[0];
  8346. n = t.href.replace(/[^\/]+$/, "")
  8347. }
  8348. n = n.replace(/\/+$/, "");
  8349. if (n) n += "/";
  8350. return n
  8351. };
  8352. h.getBaseUrl = function() {
  8353. var e = h.getBaseHref() || h.getBasePageUrl() || h.getRootUrl();
  8354. return e
  8355. };
  8356. h.getPageUrl = function() {
  8357. var e = h.getState(false, false),
  8358. t = (e || {}).url || r.location.href,
  8359. n;
  8360. n = t.replace(/\/+$/, "").replace(/[^\/]+$/, function(e, t, n) {
  8361. return /\./.test(e) ? e : e + "/"
  8362. });
  8363. return n
  8364. };
  8365. h.getBasePageUrl = function() {
  8366. var e = r.location.href.replace(/[#\?].*/, "").replace(/[^\/]+$/, function(e, t, n) {
  8367. return /[^\/]$/.test(e) ? "" : e
  8368. }).replace(/\/+$/, "") + "/";
  8369. return e
  8370. };
  8371. h.getFullUrl = function(e, t) {
  8372. var n = e,
  8373. r = e.substring(0, 1);
  8374. t = typeof t === "undefined" ? true : t;
  8375. if (/[a-z]+\:\/\//.test(e)) {} else if (r === "/") {
  8376. n = h.getRootUrl() + e.replace(/^\/+/, "")
  8377. } else if (r === "#") {
  8378. n = h.getPageUrl().replace(/#.*/, "") + e
  8379. } else if (r === "?") {
  8380. n = h.getPageUrl().replace(/[\?#].*/, "") + e
  8381. } else {
  8382. if (t) {
  8383. n = h.getBaseUrl() + e.replace(/^(\.\/)+/, "")
  8384. } else {
  8385. n = h.getBasePageUrl() + e.replace(/^(\.\/)+/, "")
  8386. }
  8387. }
  8388. return n.replace(/\#$/, "")
  8389. };
  8390. h.getShortUrl = function(e) {
  8391. var t = e,
  8392. n = h.getBaseUrl(),
  8393. r = h.getRootUrl();
  8394. if (h.emulated.pushState) {
  8395. t = t.replace(n, "")
  8396. }
  8397. t = t.replace(r, "/");
  8398. if (h.isTraditionalAnchor(t)) {
  8399. t = "./" + t
  8400. }
  8401. t = t.replace(/^(\.\/)+/g, "./").replace(/\#$/, "");
  8402. return t
  8403. };
  8404. h.store = {};
  8405. h.idToState = h.idToState || {};
  8406. h.stateToId = h.stateToId || {};
  8407. h.urlToId = h.urlToId || {};
  8408. h.storedStates = h.storedStates || [];
  8409. h.savedStates = h.savedStates || [];
  8410. h.normalizeStore = function() {
  8411. h.store.idToState = h.store.idToState || {};
  8412. h.store.urlToId = h.store.urlToId || {};
  8413. h.store.stateToId = h.store.stateToId || {}
  8414. };
  8415. h.getState = function(e, t) {
  8416. if (typeof e === "undefined") {
  8417. e = true
  8418. }
  8419. if (typeof t === "undefined") {
  8420. t = true
  8421. }
  8422. var n = h.getLastSavedState();
  8423. if (!n && t) {
  8424. n = h.createStateObject()
  8425. }
  8426. if (e) {
  8427. n = h.cloneObject(n);
  8428. n.url = n.cleanUrl || n.url
  8429. }
  8430. return n
  8431. };
  8432. h.getIdByState = function(e) {
  8433. var t = h.extractId(e.url),
  8434. n;
  8435. if (!t) {
  8436. n = h.getStateString(e);
  8437. if (typeof h.stateToId[n] !== "undefined") {
  8438. t = h.stateToId[n]
  8439. } else if (typeof h.store.stateToId[n] !== "undefined") {
  8440. t = h.store.stateToId[n]
  8441. } else {
  8442. while (true) {
  8443. t = (new Date).getTime() + String(Math.random()).replace(/\D/g, "");
  8444. if (typeof h.idToState[t] === "undefined" && typeof h.store.idToState[t] === "undefined") {
  8445. break
  8446. }
  8447. }
  8448. h.stateToId[n] = t;
  8449. h.idToState[t] = e
  8450. }
  8451. }
  8452. return t
  8453. };
  8454. h.normalizeState = function(e) {
  8455. var t, n;
  8456. if (!e || typeof e !== "object") {
  8457. e = {}
  8458. }
  8459. if (typeof e.normalized !== "undefined") {
  8460. return e
  8461. }
  8462. if (!e.data || typeof e.data !== "object") {
  8463. e.data = {}
  8464. }
  8465. t = {};
  8466. t.normalized = true;
  8467. t.title = e.title || "";
  8468. t.url = h.getFullUrl(h.unescapeString(e.url || r.location.href));
  8469. t.hash = h.getShortUrl(t.url);
  8470. t.data = h.cloneObject(e.data);
  8471. t.id = h.getIdByState(t);
  8472. t.cleanUrl = t.url.replace(/\??\&_suid.*/, "");
  8473. t.url = t.cleanUrl;
  8474. n = !h.isEmptyObject(t.data);
  8475. if (t.title || n) {
  8476. t.hash = h.getShortUrl(t.url).replace(/\??\&_suid.*/, "");
  8477. if (!/\?/.test(t.hash)) {
  8478. t.hash += "?"
  8479. }
  8480. t.hash += "&_suid=" + t.id
  8481. }
  8482. t.hashedUrl = h.getFullUrl(t.hash);
  8483. if ((h.emulated.pushState || h.bugs.safariPoll) && h.hasUrlDuplicate(t)) {
  8484. t.url = t.hashedUrl
  8485. }
  8486. return t
  8487. };
  8488. h.createStateObject = function(e, t, n) {
  8489. var r = {
  8490. data: e,
  8491. title: t,
  8492. url: n
  8493. };
  8494. r = h.normalizeState(r);
  8495. return r
  8496. };
  8497. h.getStateById = function(e) {
  8498. e = String(e);
  8499. var n = h.idToState[e] || h.store.idToState[e] || t;
  8500. return n
  8501. };
  8502. h.getStateString = function(e) {
  8503. var t, n, r;
  8504. t = h.normalizeState(e);
  8505. n = {
  8506. data: t.data,
  8507. title: e.title,
  8508. url: e.url
  8509. };
  8510. r = l.stringify(n);
  8511. return r
  8512. };
  8513. h.getStateId = function(e) {
  8514. var t, n;
  8515. t = h.normalizeState(e);
  8516. n = t.id;
  8517. return n
  8518. };
  8519. h.getHashByState = function(e) {
  8520. var t, n;
  8521. t = h.normalizeState(e);
  8522. n = t.hash;
  8523. return n
  8524. };
  8525. h.extractId = function(e) {
  8526. var t, n, r;
  8527. n = /(.*)\&_suid=([0-9]+)$/.exec(e);
  8528. r = n ? n[1] || e : e;
  8529. t = n ? String(n[2] || "") : "";
  8530. return t || false
  8531. };
  8532. h.isTraditionalAnchor = function(e) {
  8533. var t = !/[\/\?\.]/.test(e);
  8534. return t
  8535. };
  8536. h.extractState = function(e, t) {
  8537. var n = null,
  8538. r, i;
  8539. t = t || false;
  8540. r = h.extractId(e);
  8541. if (r) {
  8542. n = h.getStateById(r)
  8543. }
  8544. if (!n) {
  8545. i = h.getFullUrl(e);
  8546. r = h.getIdByUrl(i) || false;
  8547. if (r) {
  8548. n = h.getStateById(r)
  8549. }
  8550. if (!n && t && !h.isTraditionalAnchor(e)) {
  8551. n = h.createStateObject(null, null, i)
  8552. }
  8553. }
  8554. return n
  8555. };
  8556. h.getIdByUrl = function(e) {
  8557. var n = h.urlToId[e] || h.store.urlToId[e] || t;
  8558. return n
  8559. };
  8560. h.getLastSavedState = function() {
  8561. return h.savedStates[h.savedStates.length - 1] || t
  8562. };
  8563. h.getLastStoredState = function() {
  8564. return h.storedStates[h.storedStates.length - 1] || t
  8565. };
  8566. h.hasUrlDuplicate = function(e) {
  8567. var t = false,
  8568. n;
  8569. n = h.extractState(e.url);
  8570. t = n && n.id !== e.id;
  8571. return t
  8572. };
  8573. h.storeState = function(e) {
  8574. h.urlToId[e.url] = e.id;
  8575. h.storedStates.push(h.cloneObject(e));
  8576. return e
  8577. };
  8578. h.isLastSavedState = function(e) {
  8579. var t = false,
  8580. n, r, i;
  8581. if (h.savedStates.length) {
  8582. n = e.id;
  8583. r = h.getLastSavedState();
  8584. i = r.id;
  8585. t = n === i
  8586. }
  8587. return t
  8588. };
  8589. h.saveState = function(e) {
  8590. if (h.isLastSavedState(e)) {
  8591. return false
  8592. }
  8593. h.savedStates.push(h.cloneObject(e));
  8594. return true
  8595. };
  8596. h.getStateByIndex = function(e) {
  8597. var t = null;
  8598. if (typeof e === "undefined") {
  8599. t = h.savedStates[h.savedStates.length - 1]
  8600. } else if (e < 0) {
  8601. t = h.savedStates[h.savedStates.length + e]
  8602. } else {
  8603. t = h.savedStates[e]
  8604. }
  8605. return t
  8606. };
  8607. h.getHash = function() {
  8608. var e = h.unescapeHash(r.location.hash);
  8609. return e
  8610. };
  8611. h.unescapeString = function(t) {
  8612. var n = t,
  8613. r;
  8614. while (true) {
  8615. r = e.unescape(n);
  8616. if (r === n) {
  8617. break
  8618. }
  8619. n = r
  8620. }
  8621. return n
  8622. };
  8623. h.unescapeHash = function(e) {
  8624. var t = h.normalizeHash(e);
  8625. t = h.unescapeString(t);
  8626. return t
  8627. };
  8628. h.normalizeHash = function(e) {
  8629. var t = e.replace(/[^#]*#/, "").replace(/#.*/, "");
  8630. return t
  8631. };
  8632. h.setHash = function(e, t) {
  8633. var n, i, s;
  8634. if (t !== false && h.busy()) {
  8635. h.pushQueue({
  8636. scope: h,
  8637. callback: h.setHash,
  8638. args: arguments,
  8639. queue: t
  8640. });
  8641. return false
  8642. }
  8643. n = h.escapeHash(e);
  8644. h.busy(true);
  8645. i = h.extractState(e, true);
  8646. if (i && !h.emulated.pushState) {
  8647. h.pushState(i.data, i.title, i.url, false)
  8648. } else if (r.location.hash !== n) {
  8649. if (h.bugs.setHash) {
  8650. s = h.getPageUrl();
  8651. h.pushState(null, null, s + "#" + n, false)
  8652. } else {
  8653. r.location.hash = n
  8654. }
  8655. }
  8656. return h
  8657. };
  8658. h.escapeHash = function(t) {
  8659. var n = h.normalizeHash(t);
  8660. n = e.escape(n);
  8661. if (!h.bugs.hashEscape) {
  8662. n = n.replace(/\%21/g, "!").replace(/\%26/g, "&").replace(/\%3D/g, "=").replace(/\%3F/g, "?")
  8663. }
  8664. return n
  8665. };
  8666. h.getHashByUrl = function(e) {
  8667. var t = String(e).replace(/([^#]*)#?([^#]*)#?(.*)/, "$2");
  8668. t = h.unescapeHash(t);
  8669. return t
  8670. };
  8671. h.setTitle = function(e) {
  8672. var t = e.title,
  8673. n;
  8674. if (!t) {
  8675. n = h.getStateByIndex(0);
  8676. if (n && n.url === e.url) {
  8677. t = n.title || h.options.initialTitle
  8678. }
  8679. }
  8680. try {
  8681. r.getElementsByTagName("title")[0].innerHTML = t.replace("<", "&lt;").replace(">", "&gt;").replace(" & ", " & ")
  8682. } catch (i) {}
  8683. r.title = t;
  8684. return h
  8685. };
  8686. h.queues = [];
  8687. h.busy = function(e) {
  8688. if (typeof e !== "undefined") {
  8689. h.busy.flag = e
  8690. } else if (typeof h.busy.flag === "undefined") {
  8691. h.busy.flag = false
  8692. }
  8693. if (!h.busy.flag) {
  8694. u(h.busy.timeout);
  8695. var t = function() {
  8696. var e, n, r;
  8697. if (h.busy.flag) return;
  8698. for (e = h.queues.length - 1; e >= 0; --e) {
  8699. n = h.queues[e];
  8700. if (n.length === 0) continue;
  8701. r = n.shift();
  8702. h.fireQueueItem(r);
  8703. h.busy.timeout = o(t, h.options.busyDelay)
  8704. }
  8705. };
  8706. h.busy.timeout = o(t, h.options.busyDelay)
  8707. }
  8708. return h.busy.flag
  8709. };
  8710. h.busy.flag = false;
  8711. h.fireQueueItem = function(e) {
  8712. return e.callback.apply(e.scope || h, e.args || [])
  8713. };
  8714. h.pushQueue = function(e) {
  8715. h.queues[e.queue || 0] = h.queues[e.queue || 0] || [];
  8716. h.queues[e.queue || 0].push(e);
  8717. return h
  8718. };
  8719. h.queue = function(e, t) {
  8720. if (typeof e === "function") {
  8721. e = {
  8722. callback: e
  8723. }
  8724. }
  8725. if (typeof t !== "undefined") {
  8726. e.queue = t
  8727. }
  8728. if (h.busy()) {
  8729. h.pushQueue(e)
  8730. } else {
  8731. h.fireQueueItem(e)
  8732. }
  8733. return h
  8734. };
  8735. h.clearQueue = function() {
  8736. h.busy.flag = false;
  8737. h.queues = [];
  8738. return h
  8739. };
  8740. h.stateChanged = false;
  8741. h.doubleChecker = false;
  8742. h.doubleCheckComplete = function() {
  8743. h.stateChanged = true;
  8744. h.doubleCheckClear();
  8745. return h
  8746. };
  8747. h.doubleCheckClear = function() {
  8748. if (h.doubleChecker) {
  8749. u(h.doubleChecker);
  8750. h.doubleChecker = false
  8751. }
  8752. return h
  8753. };
  8754. h.doubleCheck = function(e) {
  8755. h.stateChanged = false;
  8756. h.doubleCheckClear();
  8757. if (h.bugs.ieDoubleCheck) {
  8758. h.doubleChecker = o(function() {
  8759. h.doubleCheckClear();
  8760. if (!h.stateChanged) {
  8761. e()
  8762. }
  8763. return true
  8764. }, h.options.doubleCheckInterval)
  8765. }
  8766. return h
  8767. };
  8768. h.safariStatePoll = function() {
  8769. var t = h.extractState(r.location.href),
  8770. n;
  8771. if (!h.isLastSavedState(t)) {
  8772. n = t
  8773. } else {
  8774. return
  8775. }
  8776. if (!n) {
  8777. n = h.createStateObject()
  8778. }
  8779. h.Adapter.trigger(e, "popstate");
  8780. return h
  8781. };
  8782. h.back = function(e) {
  8783. if (e !== false && h.busy()) {
  8784. h.pushQueue({
  8785. scope: h,
  8786. callback: h.back,
  8787. args: arguments,
  8788. queue: e
  8789. });
  8790. return false
  8791. }
  8792. h.busy(true);
  8793. h.doubleCheck(function() {
  8794. h.back(false)
  8795. });
  8796. p.go(-1);
  8797. return true
  8798. };
  8799. h.forward = function(e) {
  8800. if (e !== false && h.busy()) {
  8801. h.pushQueue({
  8802. scope: h,
  8803. callback: h.forward,
  8804. args: arguments,
  8805. queue: e
  8806. });
  8807. return false
  8808. }
  8809. h.busy(true);
  8810. h.doubleCheck(function() {
  8811. h.forward(false)
  8812. });
  8813. p.go(1);
  8814. return true
  8815. };
  8816. h.go = function(e, t) {
  8817. var n;
  8818. if (e > 0) {
  8819. for (n = 1; n <= e; ++n) {
  8820. h.forward(t)
  8821. }
  8822. } else if (e < 0) {
  8823. for (n = -1; n >= e; --n) {
  8824. h.back(t)
  8825. }
  8826. } else {
  8827. throw new Error("History.go: History.go requires a positive or negative integer passed.")
  8828. }
  8829. return h
  8830. };
  8831. if (h.emulated.pushState) {
  8832. var d = function() {};
  8833. h.pushState = h.pushState || d;
  8834. h.replaceState = h.replaceState || d
  8835. } else {
  8836. h.onPopState = function(t, n) {
  8837. var i = false,
  8838. s = false,
  8839. o, u;
  8840. h.doubleCheckComplete();
  8841. o = h.getHash();
  8842. if (o) {
  8843. u = h.extractState(o || r.location.href, true);
  8844. if (u) {
  8845. h.replaceState(u.data, u.title, u.url, false)
  8846. } else {
  8847. h.Adapter.trigger(e, "anchorchange");
  8848. h.busy(false)
  8849. }
  8850. h.expectedStateId = false;
  8851. return false
  8852. }
  8853. i = h.Adapter.extractEventData("state", t, n) || false;
  8854. if (i) {
  8855. s = h.getStateById(i)
  8856. } else if (h.expectedStateId) {
  8857. s = h.getStateById(h.expectedStateId)
  8858. } else {
  8859. s = h.extractState(r.location.href)
  8860. }
  8861. if (!s) {
  8862. s = h.createStateObject(null, null, r.location.href)
  8863. }
  8864. h.expectedStateId = false;
  8865. if (h.isLastSavedState(s)) {
  8866. h.busy(false);
  8867. return false
  8868. }
  8869. h.storeState(s);
  8870. h.saveState(s);
  8871. h.setTitle(s);
  8872. h.Adapter.trigger(e, "statechange");
  8873. h.busy(false);
  8874. return true
  8875. };
  8876. h.Adapter.bind(e, "popstate", h.onPopState);
  8877. h.pushState = function(t, n, r, i) {
  8878. if (h.getHashByUrl(r) && h.emulated.pushState) {
  8879. throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).")
  8880. }
  8881. if (i !== false && h.busy()) {
  8882. h.pushQueue({
  8883. scope: h,
  8884. callback: h.pushState,
  8885. args: arguments,
  8886. queue: i
  8887. });
  8888. return false
  8889. }
  8890. h.busy(true);
  8891. var s = h.createStateObject(t, n, r);
  8892. if (h.isLastSavedState(s)) {
  8893. h.busy(false)
  8894. } else {
  8895. h.storeState(s);
  8896. h.expectedStateId = s.id;
  8897. p.pushState(s.id, s.title, r);
  8898. h.Adapter.trigger(e, "popstate")
  8899. }
  8900. return true
  8901. };
  8902. h.replaceState = function(t, n, r, i) {
  8903. if (h.getHashByUrl(r) && h.emulated.pushState) {
  8904. throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).")
  8905. }
  8906. if (i !== false && h.busy()) {
  8907. h.pushQueue({
  8908. scope: h,
  8909. callback: h.replaceState,
  8910. args: arguments,
  8911. queue: i
  8912. });
  8913. return false
  8914. }
  8915. h.busy(true);
  8916. var s = h.createStateObject(t, n, r);
  8917. if (h.isLastSavedState(s)) {
  8918. h.busy(false)
  8919. } else {
  8920. h.storeState(s);
  8921. h.expectedStateId = s.id;
  8922. p.replaceState(s.id, s.title, s.url);
  8923. h.Adapter.trigger(e, "popstate")
  8924. }
  8925. return true
  8926. }
  8927. }
  8928. if (s) {
  8929. try {
  8930. h.store = l.parse(s.getItem("History.store")) || {}
  8931. } catch (v) {
  8932. h.store = {}
  8933. }
  8934. h.normalizeStore()
  8935. } else {
  8936. h.store = {};
  8937. h.normalizeStore()
  8938. }
  8939. h.Adapter.bind(e, "beforeunload", h.clearAllIntervals);
  8940. h.Adapter.bind(e, "unload", h.clearAllIntervals);
  8941. h.saveState(h.storeState(h.extractState(r.location.href, true)));
  8942. if (s) {
  8943. h.onUnload = function() {
  8944. var e, t;
  8945. try {
  8946. e = l.parse(s.getItem("History.store")) || {}
  8947. } catch (n) {
  8948. e = {}
  8949. }
  8950. e.idToState = e.idToState || {};
  8951. e.urlToId = e.urlToId || {};
  8952. e.stateToId = e.stateToId || {};
  8953. for (t in h.idToState) {
  8954. if (!h.idToState.hasOwnProperty(t)) {
  8955. continue
  8956. }
  8957. e.idToState[t] = h.idToState[t]
  8958. }
  8959. for (t in h.urlToId) {
  8960. if (!h.urlToId.hasOwnProperty(t)) {
  8961. continue
  8962. }
  8963. e.urlToId[t] = h.urlToId[t]
  8964. }
  8965. for (t in h.stateToId) {
  8966. if (!h.stateToId.hasOwnProperty(t)) {
  8967. continue
  8968. }
  8969. e.stateToId[t] = h.stateToId[t]
  8970. }
  8971. h.store = e;
  8972. h.normalizeStore();
  8973. s.setItem("History.store", l.stringify(e))
  8974. };
  8975. h.intervalList.push(a(h.onUnload, h.options.storeInterval));
  8976. h.Adapter.bind(e, "beforeunload", h.onUnload);
  8977. h.Adapter.bind(e, "unload", h.onUnload)
  8978. }
  8979. if (!h.emulated.pushState) {
  8980. if (h.bugs.safariPoll) {
  8981. h.intervalList.push(a(h.safariStatePoll, h.options.safariPollInterval))
  8982. }
  8983. if (i.vendor === "Apple Computer, Inc." || (i.appCodeName || "") === "Mozilla") {
  8984. h.Adapter.bind(e, "hashchange", function() {
  8985. h.Adapter.trigger(e, "popstate")
  8986. });
  8987. if (h.getHash()) {
  8988. h.Adapter.onDomLoad(function() {
  8989. h.Adapter.trigger(e, "hashchange")
  8990. })
  8991. }
  8992. }
  8993. }
  8994. };
  8995. h.init()
  8996. })(window);
  8997. (function(e, t) {
  8998. var n = e.History,
  8999. r = e.jQuery,
  9000. i = e.document;
  9001. if (!n.enabled) {
  9002. return false
  9003. }
  9004. r(function() {
  9005. var t = "#xx1,#content,article:first,.article:first,.post:first",
  9006. s = r(t).filter(":first"),
  9007. o = s.get(0),
  9008. u = r("#menu,#nav,nav:first,.nav:first").filter(":first"),
  9009. a = "active selected current youarehere",
  9010. f = ".active,.selected,.current,.youarehere",
  9011. l = "> li,> ul > li",
  9012. c = r(i.body),
  9013. h = n.getRootUrl(),
  9014. p = {
  9015. duration: 800,
  9016. easing: "swing"
  9017. };
  9018. if (s.length === 0) {
  9019. s = c
  9020. }
  9021. r.expr[":"].internal = function(e, t, n, i) {
  9022. var s = r(e),
  9023. o = s.attr("href") || "",
  9024. u;
  9025. u = o.substring(0, h.length) === h || o.indexOf(":") === -1;
  9026. return u
  9027. };
  9028. var d = function(e) {
  9029. var t = String(e).replace(/<\!DOCTYPE[^>]*>/i, "").replace(/<(html|head|body|title|meta|script)([\s\>])/gi, '<div class="document-$1"$2').replace(/<\/(html|head|body|title|meta|script)\>/gi, "</div>");
  9030. return t
  9031. };
  9032. r.fn.ajaxify = function() {
  9033. var t = r(this);
  9034. t.find("a:internal:not(.no-ajaxy)").click(function(t) {
  9035. var s = r(this),
  9036. o = s.attr("href"),
  9037. u = s.attr("title") || null;
  9038. if (t.which == 2 || t.metaKey) {
  9039. return true
  9040. }
  9041. e.custom_ref = i.location.href;
  9042. n.pushState(null, u, o);
  9043. t.preventDefault();
  9044. return false
  9045. });
  9046. return t
  9047. };
  9048. c.ajaxify();
  9049. r(e).bind("statechange", function() {
  9050. var p = n.getState(),
  9051. v = e.location.href;
  9052. relativeUrl = v.replace(h, "");
  9053. c.addClass("loading");
  9054. s.animate({
  9055. opacity: .7
  9056. }, 100);
  9057. r.ajax({
  9058. url: v,
  9059. complete: function(n) {
  9060. var h = r(d(n.responseText)),
  9061. p = h.find(".document-body:first"),
  9062. m = p.find(t).filter(":first"),
  9063. g, y, b;
  9064. b = m.find(".document-script");
  9065. if (b.length) {
  9066. b.detach()
  9067. }
  9068. y = m.html() || h.html();
  9069. if (!y) {
  9070. i.location.href = v;
  9071. return false
  9072. }
  9073. g = u.find(l);
  9074. g.filter(f).removeClass(a);
  9075. g = g.has('a[href^="' + relativeUrl + '"],a[href^="/' + relativeUrl + '"],a[href^="' + v + '"]');
  9076. if (g.length === 1) {
  9077. g.addClass(a)
  9078. }
  9079. s.stop(true, true);
  9080. s.html(y).ajaxify().css("opacity", 100).show();
  9081. i.title = h.find(".document-title:first").text();
  9082. try {
  9083. i.getElementsByTagName("title")[0].innerHTML = i.title.replace("<", "&lt;").replace(">", "&gt;").replace(" & ", " & ")
  9084. } catch (w) {}
  9085. b.each(function() {
  9086. var e = r(this),
  9087. t = e.text(),
  9088. n = i.createElement("script");
  9089. n.appendChild(i.createTextNode(t));
  9090. o.appendChild(n)
  9091. });
  9092. c.removeClass("loading");
  9093. gettune.history();
  9094. if (typeof e.pageTracker !== "undefined") {
  9095. e.pageTracker._trackPageview(relativeUrl)
  9096. }
  9097. r("div.nano").nanoScroller({
  9098. stop: true
  9099. }).nanoScroller()
  9100. }
  9101. })
  9102. })
  9103. })
  9104. })(window);
  9105. var SM = soundManager,
  9106. player = null;
  9107. jQuery(document).ready(function() {
  9108. player = new Player;
  9109. player.init()
  9110. });
  9111. jQuery(document).ready(function() {
  9112. gettune = new GetTune;
  9113. gettune.init()
  9114. })
Add Comment
Please, Sign In to add comment