Advertisement
Guest User

Untitled

a guest
Dec 25th, 2016
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ! function(a, b, c) {
  2.     "function" == typeof define && define.amd ? define(["jquery"], function(d) {
  3.         return c(d, a, b), d.mobile
  4.     }) : c(a.jQuery, a, b)
  5. }(this, document, function(a, b, c, d) {
  6.     ! function(a) {
  7.         a.mobile = {}
  8.     }(a),
  9.     function(a, b, d) {
  10.         var e = {};
  11.         a.mobile = a.extend(a.mobile, {
  12.             version: "1.3.2",
  13.             ns: "",
  14.             subPageUrlKey: "ui-page",
  15.             activePageClass: "ui-page-active",
  16.             activeBtnClass: "ui-btn-active",
  17.             focusClass: "ui-focus",
  18.             ajaxEnabled: !0,
  19.             hashListeningEnabled: !0,
  20.             linkBindingEnabled: !0,
  21.             defaultPageTransition: "fade",
  22.             maxTransitionWidth: !1,
  23.             minScrollBack: 250,
  24.             touchOverflowEnabled: !1,
  25.             defaultDialogTransition: "pop",
  26.             pageLoadErrorMessage: "Error Loading Page",
  27.             pageLoadErrorMessageTheme: "e",
  28.             phonegapNavigationEnabled: !1,
  29.             autoInitializePage: !0,
  30.             pushStateEnabled: !0,
  31.             ignoreContentEnabled: !1,
  32.             orientationChangeEnabled: !0,
  33.             buttonMarkup: {
  34.                 hoverDelay: 200
  35.             },
  36.             window: a(b),
  37.             document: a(c),
  38.             keyCode: {
  39.                 ALT: 18,
  40.                 BACKSPACE: 8,
  41.                 CAPS_LOCK: 20,
  42.                 COMMA: 188,
  43.                 COMMAND: 91,
  44.                 COMMAND_LEFT: 91,
  45.                 COMMAND_RIGHT: 93,
  46.                 CONTROL: 17,
  47.                 DELETE: 46,
  48.                 DOWN: 40,
  49.                 END: 35,
  50.                 ENTER: 13,
  51.                 ESCAPE: 27,
  52.                 HOME: 36,
  53.                 INSERT: 45,
  54.                 LEFT: 37,
  55.                 MENU: 93,
  56.                 NUMPAD_ADD: 107,
  57.                 NUMPAD_DECIMAL: 110,
  58.                 NUMPAD_DIVIDE: 111,
  59.                 NUMPAD_ENTER: 108,
  60.                 NUMPAD_MULTIPLY: 106,
  61.                 NUMPAD_SUBTRACT: 109,
  62.                 PAGE_DOWN: 34,
  63.                 PAGE_UP: 33,
  64.                 PERIOD: 190,
  65.                 RIGHT: 39,
  66.                 SHIFT: 16,
  67.                 SPACE: 32,
  68.                 TAB: 9,
  69.                 UP: 38,
  70.                 WINDOWS: 91
  71.             },
  72.             behaviors: {},
  73.             silentScroll: function(c) {
  74.                 "number" !== a.type(c) && (c = a.mobile.defaultHomeScroll), a.event.special.scrollstart.enabled = !1, setTimeout(function() {
  75.                     b.scrollTo(0, c), a.mobile.document.trigger("silentscroll", {
  76.                         x: 0,
  77.                         y: c
  78.                     })
  79.                 }, 20), setTimeout(function() {
  80.                     a.event.special.scrollstart.enabled = !0
  81.                 }, 150)
  82.             },
  83.             nsNormalizeDict: e,
  84.             nsNormalize: function(b) {
  85.                 return b ? e[b] || (e[b] = a.camelCase(a.mobile.ns + b)) : void 0
  86.             },
  87.             getInheritedTheme: function(a, b) {
  88.                 for (var c, d, e = a[0], f = "", g = /ui-(bar|body|overlay)-([a-z])\b/; e && (c = e.className || "", !(c && (d = g.exec(c)) && (f = d[2])));) e = e.parentNode;
  89.                 return f || b || "a"
  90.             },
  91.             closestPageData: function(a) {
  92.                 return a.closest(':jqmData(role="page"), :jqmData(role="dialog")').data("mobile-page")
  93.             },
  94.             enhanceable: function(a) {
  95.                 return this.haveParents(a, "enhance")
  96.             },
  97.             hijackable: function(a) {
  98.                 return this.haveParents(a, "ajax")
  99.             },
  100.             haveParents: function(b, c) {
  101.                 if (!a.mobile.ignoreContentEnabled) return b;
  102.                 for (var d, e, f, g = b.length, h = a(), i = 0; g > i; i++) {
  103.                     for (e = b.eq(i), f = !1, d = b[i]; d;) {
  104.                         var j = d.getAttribute ? d.getAttribute("data-" + a.mobile.ns + c) : "";
  105.                         if ("false" === j) {
  106.                             f = !0;
  107.                             break
  108.                         }
  109.                         d = d.parentNode
  110.                     }
  111.                     f || (h = h.add(e))
  112.                 }
  113.                 return h
  114.             },
  115.             getScreenHeight: function() {
  116.                 return b.innerHeight || a.mobile.window.height()
  117.             }
  118.         }, a.mobile), a.fn.jqmData = function(b, c) {
  119.             var e;
  120.             return "undefined" != typeof b && (b && (b = a.mobile.nsNormalize(b)), e = arguments.length < 2 || c === d ? this.data(b) : this.data(b, c)), e
  121.         }, a.jqmData = function(b, c, d) {
  122.             var e;
  123.             return "undefined" != typeof c && (e = a.data(b, c ? a.mobile.nsNormalize(c) : c, d)), e
  124.         }, a.fn.jqmRemoveData = function(b) {
  125.             return this.removeData(a.mobile.nsNormalize(b))
  126.         }, a.jqmRemoveData = function(b, c) {
  127.             return a.removeData(b, a.mobile.nsNormalize(c))
  128.         }, a.fn.removeWithDependents = function() {
  129.             a.removeWithDependents(this)
  130.         }, a.removeWithDependents = function(b) {
  131.             var c = a(b);
  132.             (c.jqmData("dependents") || a()).remove(), c.remove()
  133.         }, a.fn.addDependents = function(b) {
  134.             a.addDependents(a(this), b)
  135.         }, a.addDependents = function(b, c) {
  136.             var d = a(b).jqmData("dependents") || a();
  137.             a(b).jqmData("dependents", a.merge(d, c))
  138.         }, a.fn.getEncodedText = function() {
  139.             return a("<div/>").text(a(this).text()).html()
  140.         }, a.fn.jqmEnhanceable = function() {
  141.             return a.mobile.enhanceable(this)
  142.         }, a.fn.jqmHijackable = function() {
  143.             return a.mobile.hijackable(this)
  144.         };
  145.         var f = a.find,
  146.             g = /:jqmData\(([^)]*)\)/g;
  147.         a.find = function(b, c, d, e) {
  148.             return b = b.replace(g, "[data-" + (a.mobile.ns || "") + "$1]"), f.call(this, b, c, d, e)
  149.         }, a.extend(a.find, f), a.find.matches = function(b, c) {
  150.             return a.find(b, null, null, c)
  151.         }, a.find.matchesSelector = function(b, c) {
  152.             return a.find(c, null, null, [b]).length > 0
  153.         }
  154.     }(a, this),
  155.     function(a, b) {
  156.         var c = 0,
  157.             d = Array.prototype.slice,
  158.             e = a.cleanData;
  159.         a.cleanData = function(b) {
  160.             for (var c, d = 0; null != (c = b[d]); d++) try {
  161.                 a(c).triggerHandler("remove")
  162.             } catch (f) {}
  163.             e(b)
  164.         }, a.widget = function(b, c, d) {
  165.             var e, f, g, h, i = b.split(".")[0];
  166.             b = b.split(".")[1], e = i + "-" + b, d || (d = c, c = a.Widget), a.expr[":"][e.toLowerCase()] = function(b) {
  167.                 return !!a.data(b, e)
  168.             }, a[i] = a[i] || {}, f = a[i][b], g = a[i][b] = function(a, b) {
  169.                 return this._createWidget ? (arguments.length && this._createWidget(a, b), void 0) : new g(a, b)
  170.             }, a.extend(g, f, {
  171.                 version: d.version,
  172.                 _proto: a.extend({}, d),
  173.                 _childConstructors: []
  174.             }), h = new c, h.options = a.widget.extend({}, h.options), a.each(d, function(b, e) {
  175.                 a.isFunction(e) && (d[b] = function() {
  176.                     var a = function() {
  177.                             return c.prototype[b].apply(this, arguments)
  178.                         },
  179.                         d = function(a) {
  180.                             return c.prototype[b].apply(this, a)
  181.                         };
  182.                     return function() {
  183.                         var b, c = this._super,
  184.                             f = this._superApply;
  185.                         return this._super = a, this._superApply = d, b = e.apply(this, arguments), this._super = c, this._superApply = f, b
  186.                     }
  187.                 }())
  188.             }), g.prototype = a.widget.extend(h, {
  189.                 widgetEventPrefix: f ? h.widgetEventPrefix : b
  190.             }, d, {
  191.                 constructor: g,
  192.                 namespace: i,
  193.                 widgetName: b,
  194.                 widgetFullName: e
  195.             }), f ? (a.each(f._childConstructors, function(b, c) {
  196.                 var d = c.prototype;
  197.                 a.widget(d.namespace + "." + d.widgetName, g, c._proto)
  198.             }), delete f._childConstructors) : c._childConstructors.push(g), a.widget.bridge(b, g)
  199.         }, a.widget.extend = function(c) {
  200.             for (var e, f, g = d.call(arguments, 1), h = 0, i = g.length; i > h; h++)
  201.                 for (e in g[h]) f = g[h][e], g[h].hasOwnProperty(e) && f !== b && (c[e] = a.isPlainObject(f) ? a.isPlainObject(c[e]) ? a.widget.extend({}, c[e], f) : a.widget.extend({}, f) : f);
  202.             return c
  203.         }, a.widget.bridge = function(c, e) {
  204.             var f = e.prototype.widgetFullName || c;
  205.             a.fn[c] = function(g) {
  206.                 var h = "string" == typeof g,
  207.                     i = d.call(arguments, 1),
  208.                     j = this;
  209.                 return g = !h && i.length ? a.widget.extend.apply(null, [g].concat(i)) : g, h ? this.each(function() {
  210.                     var d, e = a.data(this, f);
  211.                     return e ? a.isFunction(e[g]) && "_" !== g.charAt(0) ? (d = e[g].apply(e, i), d !== e && d !== b ? (j = d && d.jquery ? j.pushStack(d.get()) : d, !1) : void 0) : a.error("no such method '" + g + "' for " + c + " widget instance") : a.error("cannot call methods on " + c + " prior to initialization; " + "attempted to call method '" + g + "'")
  212.                 }) : this.each(function() {
  213.                     var b = a.data(this, f);
  214.                     b ? b.option(g || {})._init() : a.data(this, f, new e(g, this))
  215.                 }), j
  216.             }
  217.         }, a.Widget = function() {}, a.Widget._childConstructors = [], a.Widget.prototype = {
  218.             widgetName: "widget",
  219.             widgetEventPrefix: "",
  220.             defaultElement: "<div>",
  221.             options: {
  222.                 disabled: !1,
  223.                 create: null
  224.             },
  225.             _createWidget: function(b, d) {
  226.                 d = a(d || this.defaultElement || this)[0], this.element = a(d), this.uuid = c++, this.eventNamespace = "." + this.widgetName + this.uuid, this.options = a.widget.extend({}, this.options, this._getCreateOptions(), b), this.bindings = a(), this.hoverable = a(), this.focusable = a(), d !== this && (a.data(d, this.widgetFullName, this), this._on(!0, this.element, {
  227.                     remove: function(a) {
  228.                         a.target === d && this.destroy()
  229.                     }
  230.                 }), this.document = a(d.style ? d.ownerDocument : d.document || d), this.window = a(this.document[0].defaultView || this.document[0].parentWindow)), this._create(), this._trigger("create", null, this._getCreateEventData()), this._init()
  231.             },
  232.             _getCreateOptions: a.noop,
  233.             _getCreateEventData: a.noop,
  234.             _create: a.noop,
  235.             _init: a.noop,
  236.             destroy: function() {
  237.                 this._destroy(), this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(a.camelCase(this.widgetFullName)), this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName + "-disabled " + "ui-state-disabled"), this.bindings.unbind(this.eventNamespace), this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus")
  238.             },
  239.             _destroy: a.noop,
  240.             widget: function() {
  241.                 return this.element
  242.             },
  243.             option: function(c, d) {
  244.                 var e, f, g, h = c;
  245.                 if (0 === arguments.length) return a.widget.extend({}, this.options);
  246.                 if ("string" == typeof c)
  247.                     if (h = {}, e = c.split("."), c = e.shift(), e.length) {
  248.                         for (f = h[c] = a.widget.extend({}, this.options[c]), g = 0; g < e.length - 1; g++) f[e[g]] = f[e[g]] || {}, f = f[e[g]];
  249.                         if (c = e.pop(), d === b) return f[c] === b ? null : f[c];
  250.                         f[c] = d
  251.                     } else {
  252.                         if (d === b) return this.options[c] === b ? null : this.options[c];
  253.                         h[c] = d
  254.                     }
  255.                 return this._setOptions(h), this
  256.             },
  257.             _setOptions: function(a) {
  258.                 var b;
  259.                 for (b in a) this._setOption(b, a[b]);
  260.                 return this
  261.             },
  262.             _setOption: function(a, b) {
  263.                 return this.options[a] = b, "disabled" === a && (this.widget().toggleClass(this.widgetFullName + "-disabled ui-state-disabled", !!b).attr("aria-disabled", b), this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus")), this
  264.             },
  265.             enable: function() {
  266.                 return this._setOption("disabled", !1)
  267.             },
  268.             disable: function() {
  269.                 return this._setOption("disabled", !0)
  270.             },
  271.             _on: function(b, c, d) {
  272.                 var e, f = this;
  273.                 "boolean" != typeof b && (d = c, c = b, b = !1), d ? (c = e = a(c), this.bindings = this.bindings.add(c)) : (d = c, c = this.element, e = this.widget()), a.each(d, function(d, g) {
  274.                     function h() {
  275.                         return b || f.options.disabled !== !0 && !a(this).hasClass("ui-state-disabled") ? ("string" == typeof g ? f[g] : g).apply(f, arguments) : void 0
  276.                     }
  277.                     "string" != typeof g && (h.guid = g.guid = g.guid || h.guid || a.guid++);
  278.                     var i = d.match(/^(\w+)\s*(.*)$/),
  279.                         j = i[1] + f.eventNamespace,
  280.                         k = i[2];
  281.                     k ? e.delegate(k, j, h) : c.bind(j, h)
  282.                 })
  283.             },
  284.             _off: function(a, b) {
  285.                 b = (b || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, a.unbind(b).undelegate(b)
  286.             },
  287.             _delay: function(a, b) {
  288.                 function c() {
  289.                     return ("string" == typeof a ? d[a] : a).apply(d, arguments)
  290.                 }
  291.                 var d = this;
  292.                 return setTimeout(c, b || 0)
  293.             },
  294.             _hoverable: function(b) {
  295.                 this.hoverable = this.hoverable.add(b), this._on(b, {
  296.                     mouseenter: function(b) {
  297.                         a(b.currentTarget).addClass("ui-state-hover")
  298.                     },
  299.                     mouseleave: function(b) {
  300.                         a(b.currentTarget).removeClass("ui-state-hover")
  301.                     }
  302.                 })
  303.             },
  304.             _focusable: function(b) {
  305.                 this.focusable = this.focusable.add(b), this._on(b, {
  306.                     focusin: function(b) {
  307.                         a(b.currentTarget).addClass("ui-state-focus")
  308.                     },
  309.                     focusout: function(b) {
  310.                         a(b.currentTarget).removeClass("ui-state-focus")
  311.                     }
  312.                 })
  313.             },
  314.             _trigger: function(b, c, d) {
  315.                 var e, f, g = this.options[b];
  316.                 if (d = d || {}, c = a.Event(c), c.type = (b === this.widgetEventPrefix ? b : this.widgetEventPrefix + b).toLowerCase(), c.target = this.element[0], f = c.originalEvent)
  317.                     for (e in f) e in c || (c[e] = f[e]);
  318.                 return this.element.trigger(c, d), !(a.isFunction(g) && g.apply(this.element[0], [c].concat(d)) === !1 || c.isDefaultPrevented())
  319.             }
  320.         }, a.each({
  321.             show: "fadeIn",
  322.             hide: "fadeOut"
  323.         }, function(b, c) {
  324.             a.Widget.prototype["_" + b] = function(d, e, f) {
  325.                 "string" == typeof e && (e = {
  326.                     effect: e
  327.                 });
  328.                 var g, h = e ? e === !0 || "number" == typeof e ? c : e.effect || c : b;
  329.                 e = e || {}, "number" == typeof e && (e = {
  330.                     duration: e
  331.                 }), g = !a.isEmptyObject(e), e.complete = f, e.delay && d.delay(e.delay), g && a.effects && a.effects.effect[h] ? d[b](e) : h !== b && d[h] ? d[h](e.duration, e.easing, f) : d.queue(function(c) {
  332.                     a(this)[b](), f && f.call(d[0]), c()
  333.                 })
  334.             }
  335.         })
  336.     }(a),
  337.     function(a, b) {
  338.         a.widget("mobile.widget", {
  339.             _createWidget: function() {
  340.                 a.Widget.prototype._createWidget.apply(this, arguments), this._trigger("init")
  341.             },
  342.             _getCreateOptions: function() {
  343.                 var c = this.element,
  344.                     d = {};
  345.                 return a.each(this.options, function(a) {
  346.                     var e = c.jqmData(a.replace(/[A-Z]/g, function(a) {
  347.                         return "-" + a.toLowerCase()
  348.                     }));
  349.                     e !== b && (d[a] = e)
  350.                 }), d
  351.             },
  352.             enhanceWithin: function(b, c) {
  353.                 this.enhance(a(this.options.initSelector, a(b)), c)
  354.             },
  355.             enhance: function(b, c) {
  356.                 var d, e, f = a(b);
  357.                 f = a.mobile.enhanceable(f), c && f.length && (d = a.mobile.closestPageData(f), e = d && d.keepNativeSelector() || "", f = f.not(e)), f[this.widgetName]()
  358.             },
  359.             raise: function(a) {
  360.                 throw "Widget [" + this.widgetName + "]: " + a
  361.             }
  362.         })
  363.     }(a),
  364.     function(a) {
  365.         a.extend(a.mobile, {
  366.             loadingMessageTextVisible: d,
  367.             loadingMessageTheme: d,
  368.             loadingMessage: d,
  369.             showPageLoadingMsg: function(b, c, d) {
  370.                 a.mobile.loading("show", b, c, d)
  371.             },
  372.             hidePageLoadingMsg: function() {
  373.                 a.mobile.loading("hide")
  374.             },
  375.             loading: function() {
  376.                 this.loaderWidget.loader.apply(this.loaderWidget, arguments)
  377.             }
  378.         });
  379.         var b = "ui-loader",
  380.             c = a("html"),
  381.             e = a.mobile.window;
  382.         a.widget("mobile.loader", {
  383.             options: {
  384.                 theme: "a",
  385.                 textVisible: !1,
  386.                 html: "",
  387.                 text: "loading"
  388.             },
  389.             defaultHtml: "<div class='" + b + "'>" + "<span class='ui-icon ui-icon-loading'></span>" + "<h1></h1>" + "</div>",
  390.             fakeFixLoader: function() {
  391.                 var b = a("." + a.mobile.activeBtnClass).first();
  392.                 this.element.css({
  393.                     top: a.support.scrollTop && e.scrollTop() + e.height() / 2 || b.length && b.offset().top || 100
  394.                 })
  395.             },
  396.             checkLoaderPosition: function() {
  397.                 var b = this.element.offset(),
  398.                     c = e.scrollTop(),
  399.                     d = a.mobile.getScreenHeight();
  400.                 (b.top < c || b.top - c > d) && (this.element.addClass("ui-loader-fakefix"), this.fakeFixLoader(), e.unbind("scroll", this.checkLoaderPosition).bind("scroll", a.proxy(this.fakeFixLoader, this)))
  401.             },
  402.             resetHtml: function() {
  403.                 this.element.html(a(this.defaultHtml).html())
  404.             },
  405.             show: function(f, g, h) {
  406.                 var i, j, k;
  407.                 this.resetHtml(), "object" === a.type(f) ? (k = a.extend({}, this.options, f), f = k.theme || a.mobile.loadingMessageTheme) : (k = this.options, f = f || a.mobile.loadingMessageTheme || k.theme), j = g || a.mobile.loadingMessage || k.text, c.addClass("ui-loading"), (a.mobile.loadingMessage !== !1 || k.html) && (i = a.mobile.loadingMessageTextVisible !== d ? a.mobile.loadingMessageTextVisible : k.textVisible, this.element.attr("class", b + " ui-corner-all ui-body-" + f + " ui-loader-" + (i || g || f.text ? "verbose" : "default") + (k.textonly || h ? " ui-loader-textonly" : "")), k.html ? this.element.html(k.html) : this.element.find("h1").text(j), this.element.appendTo(a.mobile.pageContainer), this.checkLoaderPosition(), e.bind("scroll", a.proxy(this.checkLoaderPosition, this)))
  408.             },
  409.             hide: function() {
  410.                 c.removeClass("ui-loading"), a.mobile.loadingMessage && this.element.removeClass("ui-loader-fakefix"), a.mobile.window.unbind("scroll", this.fakeFixLoader), a.mobile.window.unbind("scroll", this.checkLoaderPosition)
  411.             }
  412.         }), e.bind("pagecontainercreate", function() {
  413.             a.mobile.loaderWidget = a.mobile.loaderWidget || a(a.mobile.loader.prototype.defaultHtml).loader()
  414.         })
  415.     }(a, this),
  416.     function(a, b, d) {
  417.         function e(a) {
  418.             return a = a || location.href, "#" + a.replace(/^[^#]*#?(.*)$/, "$1")
  419.         }
  420.         var f, g = "hashchange",
  421.             h = c,
  422.             i = a.event.special,
  423.             j = h.documentMode,
  424.             k = "on" + g in b && (j === d || j > 7);
  425.         a.fn[g] = function(a) {
  426.             return a ? this.bind(g, a) : this.trigger(g)
  427.         }, a.fn[g].delay = 50, i[g] = a.extend(i[g], {
  428.             setup: function() {
  429.                 return k ? !1 : (a(f.start), void 0)
  430.             },
  431.             teardown: function() {
  432.                 return k ? !1 : (a(f.stop), void 0)
  433.             }
  434.         }), f = function() {
  435.             function c() {
  436.                 var d = e(),
  437.                     h = n(j);
  438.                 d !== j ? (m(j = d, h), a(b).trigger(g)) : h !== j && (location.href = location.href.replace(/#.*/, "") + h), f = setTimeout(c, a.fn[g].delay)
  439.             }
  440.             var f, i = {},
  441.                 j = e(),
  442.                 l = function(a) {
  443.                     return a
  444.                 },
  445.                 m = l,
  446.                 n = l;
  447.             return i.start = function() {
  448.                 f || c()
  449.             }, i.stop = function() {
  450.                 f && clearTimeout(f), f = d
  451.             }, b.attachEvent && !b.addEventListener && !k && function() {
  452.                 var b, d;
  453.                 i.start = function() {
  454.                     b || (d = a.fn[g].src, d = d && d + e(), b = a('<iframe tabindex="-1" title="empty"/>').hide().one("load", function() {
  455.                         d || m(e()), c()
  456.                     }).attr("src", d || "javascript:0").insertAfter("body")[0].contentWindow, h.onpropertychange = function() {
  457.                         try {
  458.                             "title" === event.propertyName && (b.document.title = h.title)
  459.                         } catch (a) {}
  460.                     })
  461.                 }, i.stop = l, n = function() {
  462.                     return e(b.location.href)
  463.                 }, m = function(c, d) {
  464.                     var e = b.document,
  465.                         f = a.fn[g].domain;
  466.                     c !== d && (e.title = h.title, e.open(), f && e.write('<script>document.domain="' + f + '"</script>'), e.close(), b.location.hash = c)
  467.                 }
  468.             }(), i
  469.         }()
  470.     }(a, this),
  471.     function(a) {
  472.         b.matchMedia = b.matchMedia || function(a) {
  473.             var b, c = a.documentElement,
  474.                 d = c.firstElementChild || c.firstChild,
  475.                 e = a.createElement("body"),
  476.                 f = a.createElement("div");
  477.             return f.id = "mq-test-1", f.style.cssText = "position:absolute;top:-100em", e.style.background = "none", e.appendChild(f),
  478.                 function(a) {
  479.                     return f.innerHTML = '&shy;<style media="' + a + '"> #mq-test-1 { width: 42px; }</style>', c.insertBefore(e, d), b = 42 === f.offsetWidth, c.removeChild(e), {
  480.                         matches: b,
  481.                         media: a
  482.                     }
  483.                 }
  484.         }(c), a.mobile.media = function(a) {
  485.             return b.matchMedia(a).matches
  486.         }
  487.     }(a),
  488.     function(a) {
  489.         var b = {
  490.             touch: "ontouchend" in c
  491.         };
  492.         a.mobile.support = a.mobile.support || {}, a.extend(a.support, b), a.extend(a.mobile.support, b)
  493.     }(a),
  494.     function(a) {
  495.         a.extend(a.support, {
  496.             orientation: "orientation" in b && "onorientationchange" in b
  497.         })
  498.     }(a),
  499.     function(a, d) {
  500.         function e(a) {
  501.             var b = a.charAt(0).toUpperCase() + a.substr(1),
  502.                 c = (a + " " + n.join(b + " ") + b).split(" ");
  503.             for (var e in c)
  504.                 if (m[c[e]] !== d) return !0
  505.         }
  506.  
  507.         function f(a, b, d) {
  508.             for (var e, f = c.createElement("div"), g = function(a) {
  509.                     return a.charAt(0).toUpperCase() + a.substr(1)
  510.                 }, h = function(a) {
  511.                     return "" === a ? "" : "-" + a.charAt(0).toLowerCase() + a.substr(1) + "-"
  512.                 }, i = function(c) {
  513.                     var d = h(c) + a + ": " + b + ";",
  514.                         i = g(c),
  515.                         j = i + ("" === i ? a : g(a));
  516.                     f.setAttribute("style", d), f.style[j] && (e = !0)
  517.                 }, j = d ? d : n, k = 0; k < j.length; k++) i(j[k]);
  518.             return !!e
  519.         }
  520.  
  521.         function g() {
  522.             var e = "transform-3d",
  523.                 f = a.mobile.media("(-" + n.join("-" + e + "),(-") + "-" + e + "),(" + e + ")");
  524.             if (f) return !!f;
  525.             var g = c.createElement("div"),
  526.                 h = {
  527.                     MozTransform: "-moz-transform",
  528.                     transform: "transform"
  529.                 };
  530.             l.append(g);
  531.             for (var i in h) g.style[i] !== d && (g.style[i] = "translate3d( 100px, 1px, 1px )", f = b.getComputedStyle(g).getPropertyValue(h[i]));
  532.             return !!f && "none" !== f
  533.         }
  534.  
  535.         function h() {
  536.             var b, c, d = location.protocol + "//" + location.host + location.pathname + "ui-dir/",
  537.                 e = a("head base"),
  538.                 f = null,
  539.                 g = "";
  540.             return e.length ? g = e.attr("href") : e = f = a("<base>", {
  541.                 href: d
  542.             }).appendTo("head"), b = a("<a href='testurl' />").prependTo(l), c = b[0].href, e[0].href = g || location.pathname, f && f.remove(), 0 === c.indexOf(d)
  543.         }
  544.  
  545.         function i() {
  546.             var a, d = c.createElement("x"),
  547.                 e = c.documentElement,
  548.                 f = b.getComputedStyle;
  549.             return "pointerEvents" in d.style ? (d.style.pointerEvents = "auto", d.style.pointerEvents = "x", e.appendChild(d), a = f && "auto" === f(d, "").pointerEvents, e.removeChild(d), !!a) : !1
  550.         }
  551.  
  552.         function j() {
  553.             var a = c.createElement("div");
  554.             return "undefined" != typeof a.getBoundingClientRect
  555.         }
  556.  
  557.         function k() {
  558.             var a = b,
  559.                 c = navigator.userAgent,
  560.                 d = navigator.platform,
  561.                 e = c.match(/AppleWebKit\/([0-9]+)/),
  562.                 f = !!e && e[1],
  563.                 g = c.match(/Fennec\/([0-9]+)/),
  564.                 h = !!g && g[1],
  565.                 i = c.match(/Opera Mobi\/([0-9]+)/),
  566.                 j = !!i && i[1];
  567.             return (d.indexOf("iPhone") > -1 || d.indexOf("iPad") > -1 || d.indexOf("iPod") > -1) && f && 534 > f || a.operamini && "[object OperaMini]" === {}.toString.call(a.operamini) || i && 7458 > j || c.indexOf("Android") > -1 && f && 533 > f || h && 6 > h || "palmGetResource" in b && f && 534 > f || c.indexOf("MeeGo") > -1 && c.indexOf("NokiaBrowser/8.5.0") > -1 ? !1 : !0
  568.         }
  569.         var l = a("<body>").prependTo("html"),
  570.             m = l[0].style,
  571.             n = ["Webkit", "Moz", "O"],
  572.             o = "palmGetResource" in b,
  573.             p = b.opera,
  574.             q = b.operamini && "[object OperaMini]" === {}.toString.call(b.operamini),
  575.             r = b.blackberry && !e("-webkit-transform");
  576.         a.extend(a.mobile, {
  577.             browser: {}
  578.         }), a.mobile.browser.oldIE = function() {
  579.             var a = 3,
  580.                 b = c.createElement("div"),
  581.                 d = b.all || [];
  582.             do b.innerHTML = "<!--[if gt IE " + ++a + "]><br><![endif]-->"; while (d[0]);
  583.             return a > 4 ? a : !a
  584.         }(), a.extend(a.support, {
  585.             cssTransitions: "WebKitTransitionEvent" in b || f("transition", "height 100ms linear", ["Webkit", "Moz", ""]) && !a.mobile.browser.oldIE && !p,
  586.             pushState: "pushState" in history && "replaceState" in history && !(b.navigator.userAgent.indexOf("Firefox") >= 0 && b.top !== b) && -1 === b.navigator.userAgent.search(/CriOS/),
  587.             mediaquery: a.mobile.media("only all"),
  588.             cssPseudoElement: !!e("content"),
  589.             touchOverflow: !!e("overflowScrolling"),
  590.             cssTransform3d: g(),
  591.             boxShadow: !!e("boxShadow") && !r,
  592.             fixedPosition: k(),
  593.             scrollTop: ("pageXOffset" in b || "scrollTop" in c.documentElement || "scrollTop" in l[0]) && !o && !q,
  594.             dynamicBaseTag: h(),
  595.             cssPointerEvents: i(),
  596.             boundingRect: j()
  597.         }), l.remove();
  598.         var s = function() {
  599.             var a = b.navigator.userAgent;
  600.             return a.indexOf("Nokia") > -1 && (a.indexOf("Symbian/3") > -1 || a.indexOf("Series60/5") > -1) && a.indexOf("AppleWebKit") > -1 && a.match(/(BrowserNG|NokiaBrowser)\/7\.[0-3]/)
  601.         }();
  602.         a.mobile.gradeA = function() {
  603.             return (a.support.mediaquery || a.mobile.browser.oldIE && a.mobile.browser.oldIE >= 7) && (a.support.boundingRect || null !== a.fn.jquery.match(/1\.[0-7+]\.[0-9+]?/))
  604.         }, a.mobile.ajaxBlacklist = b.blackberry && !b.WebKitPoint || q || s, s && a(function() {
  605.             a("head link[rel='stylesheet']").attr("rel", "alternate stylesheet").attr("rel", "stylesheet")
  606.         }), a.support.boxShadow || a("html").addClass("ui-mobile-nosupport-boxshadow")
  607.     }(a),
  608.     function(a, b) {
  609.         var c, d = a.mobile.window;
  610.         a.event.special.navigate = c = {
  611.             bound: !1,
  612.             pushStateEnabled: !0,
  613.             originalEventName: b,
  614.             isPushStateEnabled: function() {
  615.                 return a.support.pushState && a.mobile.pushStateEnabled === !0 && this.isHashChangeEnabled()
  616.             },
  617.             isHashChangeEnabled: function() {
  618.                 return a.mobile.hashListeningEnabled === !0
  619.             },
  620.             popstate: function(b) {
  621.                 var c = new a.Event("navigate"),
  622.                     e = new a.Event("beforenavigate"),
  623.                     f = b.originalEvent.state || {};
  624.                 location.href, d.trigger(e), e.isDefaultPrevented() || (b.historyState && a.extend(f, b.historyState), c.originalEvent = b, setTimeout(function() {
  625.                     d.trigger(c, {
  626.                         state: f
  627.                     })
  628.                 }, 0))
  629.             },
  630.             hashchange: function(b) {
  631.                 var c = new a.Event("navigate"),
  632.                     e = new a.Event("beforenavigate");
  633.                 d.trigger(e), e.isDefaultPrevented() || (c.originalEvent = b, d.trigger(c, {
  634.                     state: b.hashchangeState || {}
  635.                 }))
  636.             },
  637.             setup: function() {
  638.                 c.bound || (c.bound = !0, c.isPushStateEnabled() ? (c.originalEventName = "popstate", d.bind("popstate.navigate", c.popstate)) : c.isHashChangeEnabled() && (c.originalEventName = "hashchange", d.bind("hashchange.navigate", c.hashchange)))
  639.             }
  640.         }
  641.     }(a),
  642.     function(a, c) {
  643.         var d, e, f = "&ui-state=dialog";
  644.         a.mobile.path = d = {
  645.             uiStateKey: "&ui-state",
  646.             urlParseRE: /^\s*(((([^:\/#\?]+:)?(?:(\/\/)((?:(([^:@\/#\?]+)(?:\:([^:@\/#\?]+))?)@)?(([^:\/#\?\]\[]+|\[[^\/\]@#?]+\])(?:\:([0-9]+))?))?)?)?((\/?(?:[^\/\?#]+\/+)*)([^\?#]*)))?(\?[^#]+)?)(#.*)?/,
  647.             getLocation: function(a) {
  648.                 var b = a ? this.parseUrl(a) : location,
  649.                     c = this.parseUrl(a || location.href).hash;
  650.                 return c = "#" === c ? "" : c, b.protocol + "//" + b.host + b.pathname + b.search + c
  651.             },
  652.             parseLocation: function() {
  653.                 return this.parseUrl(this.getLocation())
  654.             },
  655.             parseUrl: function(b) {
  656.                 if ("object" === a.type(b)) return b;
  657.                 var c = d.urlParseRE.exec(b || "") || [];
  658.                 return {
  659.                     href: c[0] || "",
  660.                     hrefNoHash: c[1] || "",
  661.                     hrefNoSearch: c[2] || "",
  662.                     domain: c[3] || "",
  663.                     protocol: c[4] || "",
  664.                     doubleSlash: c[5] || "",
  665.                     authority: c[6] || "",
  666.                     username: c[8] || "",
  667.                     password: c[9] || "",
  668.                     host: c[10] || "",
  669.                     hostname: c[11] || "",
  670.                     port: c[12] || "",
  671.                     pathname: c[13] || "",
  672.                     directory: c[14] || "",
  673.                     filename: c[15] || "",
  674.                     search: c[16] || "",
  675.                     hash: c[17] || ""
  676.                 }
  677.             },
  678.             makePathAbsolute: function(a, b) {
  679.                 if (a && "/" === a.charAt(0)) return a;
  680.                 a = a || "", b = b ? b.replace(/^\/|(\/[^\/]*|[^\/]+)$/g, "") : "";
  681.                 for (var c = b ? b.split("/") : [], d = a.split("/"), e = 0; e < d.length; e++) {
  682.                     var f = d[e];
  683.                     switch (f) {
  684.                         case ".":
  685.                             break;
  686.                         case "..":
  687.                             c.length && c.pop();
  688.                             break;
  689.                         default:
  690.                             c.push(f)
  691.                     }
  692.                 }
  693.                 return "/" + c.join("/")
  694.             },
  695.             isSameDomain: function(a, b) {
  696.                 return d.parseUrl(a).domain === d.parseUrl(b).domain
  697.             },
  698.             isRelativeUrl: function(a) {
  699.                 return "" === d.parseUrl(a).protocol
  700.             },
  701.             isAbsoluteUrl: function(a) {
  702.                 return "" !== d.parseUrl(a).protocol
  703.             },
  704.             makeUrlAbsolute: function(a, b) {
  705.                 if (!d.isRelativeUrl(a)) return a;
  706.                 b === c && (b = this.documentBase);
  707.                 var e = d.parseUrl(a),
  708.                     f = d.parseUrl(b),
  709.                     g = e.protocol || f.protocol,
  710.                     h = e.protocol ? e.doubleSlash : e.doubleSlash || f.doubleSlash,
  711.                     i = e.authority || f.authority,
  712.                     j = "" !== e.pathname,
  713.                     k = d.makePathAbsolute(e.pathname || f.filename, f.pathname),
  714.                     l = e.search || !j && f.search || "",
  715.                     m = e.hash;
  716.                 return g + h + i + k + l + m
  717.             },
  718.             addSearchParams: function(b, c) {
  719.                 var e = d.parseUrl(b),
  720.                     f = "object" == typeof c ? a.param(c) : c,
  721.                     g = e.search || "?";
  722.                 return e.hrefNoSearch + g + ("?" !== g.charAt(g.length - 1) ? "&" : "") + f + (e.hash || "")
  723.             },
  724.             convertUrlToDataUrl: function(a) {
  725.                 var c = d.parseUrl(a);
  726.                 return d.isEmbeddedPage(c) ? c.hash.split(f)[0].replace(/^#/, "").replace(/\?.*$/, "") : d.isSameDomain(c, this.documentBase) ? c.hrefNoHash.replace(this.documentBase.domain, "").split(f)[0] : b.decodeURIComponent(a)
  727.             },
  728.             get: function(a) {
  729.                 return a === c && (a = d.parseLocation().hash), d.stripHash(a).replace(/[^\/]*\.[^\/*]+$/, "")
  730.             },
  731.             set: function(a) {
  732.                 location.hash = a
  733.             },
  734.             isPath: function(a) {
  735.                 return /\//.test(a)
  736.             },
  737.             clean: function(a) {
  738.                 return a.replace(this.documentBase.domain, "")
  739.             },
  740.             stripHash: function(a) {
  741.                 return a.replace(/^#/, "")
  742.             },
  743.             stripQueryParams: function(a) {
  744.                 return a.replace(/\?.*$/, "")
  745.             },
  746.             cleanHash: function(a) {
  747.                 return d.stripHash(a.replace(/\?.*$/, "").replace(f, ""))
  748.             },
  749.             isHashValid: function(a) {
  750.                 return /^#[^#]+$/.test(a)
  751.             },
  752.             isExternal: function(a) {
  753.                 var b = d.parseUrl(a);
  754.                 return b.protocol && b.domain !== this.documentUrl.domain ? !0 : !1
  755.             },
  756.             hasProtocol: function(a) {
  757.                 return /^(:?\w+:)/.test(a)
  758.             },
  759.             isEmbeddedPage: function(a) {
  760.                 var b = d.parseUrl(a);
  761.                 return "" !== b.protocol ? !this.isPath(b.hash) && b.hash && (b.hrefNoHash === this.documentUrl.hrefNoHash || this.documentBaseDiffers && b.hrefNoHash === this.documentBase.hrefNoHash) : /^#/.test(b.href)
  762.             },
  763.             squash: function(a, b) {
  764.                 var c, e, f, g, h = this.isPath(a),
  765.                     i = this.parseUrl(a),
  766.                     j = i.hash,
  767.                     k = "";
  768.                 return b = b || (d.isPath(a) ? d.getLocation() : d.getDocumentUrl()), e = h ? d.stripHash(a) : a, e = d.isPath(i.hash) ? d.stripHash(i.hash) : e, g = e.indexOf(this.uiStateKey), g > -1 && (k = e.slice(g), e = e.slice(0, g)), c = d.makeUrlAbsolute(e, b), f = this.parseUrl(c).search, h ? ((d.isPath(j) || 0 === j.replace("#", "").indexOf(this.uiStateKey)) && (j = ""), k && -1 === j.indexOf(this.uiStateKey) && (j += k), -1 === j.indexOf("#") && "" !== j && (j = "#" + j), c = d.parseUrl(c), c = c.protocol + "//" + c.host + c.pathname + f + j) : c += c.indexOf("#") > -1 ? k : "#" + k, c
  769.             },
  770.             isPreservableHash: function(a) {
  771.                 return 0 === a.replace("#", "").indexOf(this.uiStateKey)
  772.             }
  773.         }, d.documentUrl = d.parseLocation(), e = a("head").find("base"), d.documentBase = e.length ? d.parseUrl(d.makeUrlAbsolute(e.attr("href"), d.documentUrl.href)) : d.documentUrl, d.documentBaseDiffers = d.documentUrl.hrefNoHash !== d.documentBase.hrefNoHash, d.getDocumentUrl = function(b) {
  774.             return b ? a.extend({}, d.documentUrl) : d.documentUrl.href
  775.         }, d.getDocumentBase = function(b) {
  776.             return b ? a.extend({}, d.documentBase) : d.documentBase.href
  777.         }
  778.     }(a),
  779.     function(a, b) {
  780.         a.mobile.path, a.mobile.History = function(a, b) {
  781.             this.stack = a || [], this.activeIndex = b || 0
  782.         }, a.extend(a.mobile.History.prototype, {
  783.             getActive: function() {
  784.                 return this.stack[this.activeIndex]
  785.             },
  786.             getLast: function() {
  787.                 return this.stack[this.previousIndex]
  788.             },
  789.             getNext: function() {
  790.                 return this.stack[this.activeIndex + 1]
  791.             },
  792.             getPrev: function() {
  793.                 return this.stack[this.activeIndex - 1]
  794.             },
  795.             add: function(a, b) {
  796.                 b = b || {}, this.getNext() && this.clearForward(), b.hash && -1 === b.hash.indexOf("#") && (b.hash = "#" + b.hash), b.url = a, this.stack.push(b), this.activeIndex = this.stack.length - 1
  797.             },
  798.             clearForward: function() {
  799.                 this.stack = this.stack.slice(0, this.activeIndex + 1)
  800.             },
  801.             find: function(a, b, c) {
  802.                 b = b || this.stack;
  803.                 var d, e, f, g = b.length;
  804.                 for (e = 0; g > e; e++)
  805.                     if (d = b[e], (decodeURIComponent(a) === decodeURIComponent(d.url) || decodeURIComponent(a) === decodeURIComponent(d.hash)) && (f = e, c)) return f;
  806.                 return f
  807.             },
  808.             closest: function(a) {
  809.                 var c, d = this.activeIndex;
  810.                 return c = this.find(a, this.stack.slice(0, d)), c === b && (c = this.find(a, this.stack.slice(d), !0), c = c === b ? c : c + d), c
  811.             },
  812.             direct: function(c) {
  813.                 var d = this.closest(c.url),
  814.                     e = this.activeIndex;
  815.                 d !== b && (this.activeIndex = d, this.previousIndex = e), e > d ? (c.present || c.back || a.noop)(this.getActive(), "back") : d > e ? (c.present || c.forward || a.noop)(this.getActive(), "forward") : d === b && c.missing && c.missing(this.getActive())
  816.             }
  817.         })
  818.     }(a),
  819.     function(a) {
  820.         var d = a.mobile.path,
  821.             e = location.href;
  822.         a.mobile.Navigator = function(b) {
  823.             this.history = b, this.ignoreInitialHashChange = !0, a.mobile.window.bind({
  824.                 "popstate.history": a.proxy(this.popstate, this),
  825.                 "hashchange.history": a.proxy(this.hashchange, this)
  826.             })
  827.         }, a.extend(a.mobile.Navigator.prototype, {
  828.             squash: function(e, f) {
  829.                 var g, h, i = d.isPath(e) ? d.stripHash(e) : e;
  830.                 return h = d.squash(e), g = a.extend({
  831.                     hash: i,
  832.                     url: h
  833.                 }, f), b.history.replaceState(g, g.title || c.title, h), g
  834.             },
  835.             hash: function(a, b) {
  836.                 var c, e, f;
  837.                 if (c = d.parseUrl(a), e = d.parseLocation(), e.pathname + e.search === c.pathname + c.search) f = c.hash ? c.hash : c.pathname + c.search;
  838.                 else if (d.isPath(a)) {
  839.                     var g = d.parseUrl(b);
  840.                     f = g.pathname + g.search + (d.isPreservableHash(g.hash) ? g.hash.replace("#", "") : "")
  841.                 } else f = a;
  842.                 return f
  843.             },
  844.             go: function(e, f, g) {
  845.                 var h, i, j, k, l = a.event.special.navigate.isPushStateEnabled();
  846.                 i = d.squash(e), j = this.hash(e, i), g && j !== d.stripHash(d.parseLocation().hash) && (this.preventNextHashChange = g), this.preventHashAssignPopState = !0, b.location.hash = j, this.preventHashAssignPopState = !1, h = a.extend({
  847.                     url: i,
  848.                     hash: j,
  849.                     title: c.title
  850.                 }, f), l && (k = new a.Event("popstate"), k.originalEvent = {
  851.                     type: "popstate",
  852.                     state: null
  853.                 }, this.squash(e, h), g || (this.ignorePopState = !0, a.mobile.window.trigger(k))), this.history.add(h.url, h)
  854.             },
  855.             popstate: function(b) {
  856.                 var c, f;
  857.                 if (a.event.special.navigate.isPushStateEnabled()) return this.preventHashAssignPopState ? (this.preventHashAssignPopState = !1, b.stopImmediatePropagation(), void 0) : this.ignorePopState ? (this.ignorePopState = !1, void 0) : !b.originalEvent.state && 1 === this.history.stack.length && this.ignoreInitialHashChange && (this.ignoreInitialHashChange = !1, location.href === e) ? (b.preventDefault(), void 0) : (c = d.parseLocation().hash, !b.originalEvent.state && c ? (f = this.squash(c), this.history.add(f.url, f), b.historyState = f, void 0) : (this.history.direct({
  858.                     url: (b.originalEvent.state || {}).url || c,
  859.                     present: function(c, d) {
  860.                         b.historyState = a.extend({}, c), b.historyState.direction = d
  861.                     }
  862.                 }), void 0))
  863.             },
  864.             hashchange: function(b) {
  865.                 var e, f;
  866.                 if (a.event.special.navigate.isHashChangeEnabled() && !a.event.special.navigate.isPushStateEnabled()) {
  867.                     if (this.preventNextHashChange) return this.preventNextHashChange = !1, b.stopImmediatePropagation(), void 0;
  868.                     e = this.history, f = d.parseLocation().hash, this.history.direct({
  869.                         url: f,
  870.                         present: function(c, d) {
  871.                             b.hashchangeState = a.extend({}, c), b.hashchangeState.direction = d
  872.                         },
  873.                         missing: function() {
  874.                             e.add(f, {
  875.                                 hash: f,
  876.                                 title: c.title
  877.                             })
  878.                         }
  879.                     })
  880.                 }
  881.             }
  882.         })
  883.     }(a),
  884.     function(a) {
  885.         a.mobile.navigate = function(b, c, d) {
  886.             a.mobile.navigate.navigator.go(b, c, d)
  887.         }, a.mobile.navigate.history = new a.mobile.History, a.mobile.navigate.navigator = new a.mobile.Navigator(a.mobile.navigate.history);
  888.         var b = a.mobile.path.parseLocation();
  889.         a.mobile.navigate.history.add(b.href, {
  890.             hash: b.hash
  891.         })
  892.     }(a),
  893.     function(a, b, c, d) {
  894.         function e(a) {
  895.             for (; a && "undefined" != typeof a.originalEvent;) a = a.originalEvent;
  896.             return a
  897.         }
  898.  
  899.         function f(b, c) {
  900.             var f, g, h, i, j, k, l, m, n, o = b.type;
  901.             if (b = a.Event(b), b.type = c, f = b.originalEvent, g = a.event.props, o.search(/^(mouse|click)/) > -1 && (g = D), f)
  902.                 for (l = g.length, i; l;) i = g[--l], b[i] = f[i];
  903.             if (o.search(/mouse(down|up)|click/) > -1 && !b.which && (b.which = 1), -1 !== o.search(/^touch/) && (h = e(f), o = h.touches, j = h.changedTouches, k = o && o.length ? o[0] : j && j.length ? j[0] : d))
  904.                 for (m = 0, n = B.length; n > m; m++) i = B[m], b[i] = k[i];
  905.             return b
  906.         }
  907.  
  908.         function g(b) {
  909.             for (var c, d, e = {}; b;) {
  910.                 c = a.data(b, y);
  911.                 for (d in c) c[d] && (e[d] = e.hasVirtualBinding = !0);
  912.                 b = b.parentNode
  913.             }
  914.             return e
  915.         }
  916.  
  917.         function h(b, c) {
  918.             for (var d; b;) {
  919.                 if (d = a.data(b, y), d && (!c || d[c])) return b;
  920.                 b = b.parentNode
  921.             }
  922.             return null
  923.         }
  924.  
  925.         function i() {
  926.             L = !1
  927.         }
  928.  
  929.         function j() {
  930.             L = !0
  931.         }
  932.  
  933.         function k() {
  934.             P = 0, J.length = 0, K = !1, j()
  935.         }
  936.  
  937.         function l() {
  938.             i()
  939.         }
  940.  
  941.         function m() {
  942.             n(), F = setTimeout(function() {
  943.                 F = 0, k()
  944.             }, a.vmouse.resetTimerDuration)
  945.         }
  946.  
  947.         function n() {
  948.             F && (clearTimeout(F), F = 0)
  949.         }
  950.  
  951.         function o(b, c, d) {
  952.             var e;
  953.             return (d && d[b] || !d && h(c.target, b)) && (e = f(c, b), a(c.target).trigger(e)), e
  954.         }
  955.  
  956.         function p(b) {
  957.             var c = a.data(b.target, z);
  958.             if (!(K || P && P === c)) {
  959.                 var d = o("v" + b.type, b);
  960.                 d && (d.isDefaultPrevented() && b.preventDefault(), d.isPropagationStopped() && b.stopPropagation(), d.isImmediatePropagationStopped() && b.stopImmediatePropagation())
  961.             }
  962.         }
  963.  
  964.         function q(b) {
  965.             var c, d, f = e(b).touches;
  966.             if (f && 1 === f.length && (c = b.target, d = g(c), d.hasVirtualBinding)) {
  967.                 P = O++, a.data(c, z, P), n(), l(), I = !1;
  968.                 var h = e(b).touches[0];
  969.                 G = h.pageX, H = h.pageY, o("vmouseover", b, d), o("vmousedown", b, d)
  970.             }
  971.         }
  972.  
  973.         function r(a) {
  974.             L || (I || o("vmousecancel", a, g(a.target)), I = !0, m())
  975.         }
  976.  
  977.         function s(b) {
  978.             if (!L) {
  979.                 var c = e(b).touches[0],
  980.                     d = I,
  981.                     f = a.vmouse.moveDistanceThreshold,
  982.                     h = g(b.target);
  983.                 I = I || Math.abs(c.pageX - G) > f || Math.abs(c.pageY - H) > f, I && !d && o("vmousecancel", b, h), o("vmousemove", b, h), m()
  984.             }
  985.         }
  986.  
  987.         function t(a) {
  988.             if (!L) {
  989.                 j();
  990.                 var b, c = g(a.target);
  991.                 if (o("vmouseup", a, c), !I) {
  992.                     var d = o("vclick", a, c);
  993.                     d && d.isDefaultPrevented() && (b = e(a).changedTouches[0], J.push({
  994.                         touchID: P,
  995.                         x: b.clientX,
  996.                         y: b.clientY
  997.                     }), K = !0)
  998.                 }
  999.                 o("vmouseout", a, c), I = !1, m()
  1000.             }
  1001.         }
  1002.  
  1003.         function u(b) {
  1004.             var c, d = a.data(b, y);
  1005.             if (d)
  1006.                 for (c in d)
  1007.                     if (d[c]) return !0;
  1008.             return !1
  1009.         }
  1010.  
  1011.         function v() {}
  1012.  
  1013.         function w(b) {
  1014.             var c = b.substr(1);
  1015.             return {
  1016.                 setup: function() {
  1017.                     u(this) || a.data(this, y, {});
  1018.                     var d = a.data(this, y);
  1019.                     d[b] = !0, E[b] = (E[b] || 0) + 1, 1 === E[b] && N.bind(c, p), a(this).bind(c, v), M && (E.touchstart = (E.touchstart || 0) + 1, 1 === E.touchstart && N.bind("touchstart", q).bind("touchend", t).bind("touchmove", s).bind("scroll", r))
  1020.                 },
  1021.                 teardown: function() {
  1022.                     --E[b], E[b] || N.unbind(c, p), M && (--E.touchstart, E.touchstart || N.unbind("touchstart", q).unbind("touchmove", s).unbind("touchend", t).unbind("scroll", r));
  1023.                     var d = a(this),
  1024.                         e = a.data(this, y);
  1025.                     e && (e[b] = !1), d.unbind(c, v), u(this) || d.removeData(y)
  1026.                 }
  1027.             }
  1028.         }
  1029.         var x, y = "virtualMouseBindings",
  1030.             z = "virtualTouchID",
  1031.             A = "vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel".split(" "),
  1032.             B = "clientX clientY pageX pageY screenX screenY".split(" "),
  1033.             C = a.event.mouseHooks ? a.event.mouseHooks.props : [],
  1034.             D = a.event.props.concat(C),
  1035.             E = {},
  1036.             F = 0,
  1037.             G = 0,
  1038.             H = 0,
  1039.             I = !1,
  1040.             J = [],
  1041.             K = !1,
  1042.             L = !1,
  1043.             M = "addEventListener" in c,
  1044.             N = a(c),
  1045.             O = 1,
  1046.             P = 0;
  1047.         a.vmouse = {
  1048.             moveDistanceThreshold: 10,
  1049.             clickDistanceThreshold: 10,
  1050.             resetTimerDuration: 1500
  1051.         };
  1052.         for (var Q = 0; Q < A.length; Q++) a.event.special[A[Q]] = w(A[Q]);
  1053.         M && c.addEventListener("click", function(b) {
  1054.             var c, d, e, f, g, h, i = J.length,
  1055.                 j = b.target;
  1056.             if (i)
  1057.                 for (c = b.clientX, d = b.clientY, x = a.vmouse.clickDistanceThreshold, e = j; e;) {
  1058.                     for (f = 0; i > f; f++)
  1059.                         if (g = J[f], h = 0, e === j && Math.abs(g.x - c) < x && Math.abs(g.y - d) < x || a.data(e, z) === g.touchID) return b.preventDefault(), b.stopPropagation(), void 0;
  1060.                     e = e.parentNode
  1061.                 }
  1062.         }, !0)
  1063.     }(a, b, c),
  1064.     function(a, b, d) {
  1065.         function e(b, c, d) {
  1066.             var e = d.type;
  1067.             d.type = c, a.event.dispatch.call(b, d), d.type = e
  1068.         }
  1069.         var f = a(c);
  1070.         a.each("touchstart touchmove touchend tap taphold swipe swipeleft swiperight scrollstart scrollstop".split(" "), function(b, c) {
  1071.             a.fn[c] = function(a) {
  1072.                 return a ? this.bind(c, a) : this.trigger(c)
  1073.             }, a.attrFn && (a.attrFn[c] = !0)
  1074.         });
  1075.         var g = a.mobile.support.touch,
  1076.             h = "touchmove scroll",
  1077.             i = g ? "touchstart" : "mousedown",
  1078.             j = g ? "touchend" : "mouseup",
  1079.             k = g ? "touchmove" : "mousemove";
  1080.         a.event.special.scrollstart = {
  1081.             enabled: !0,
  1082.             setup: function() {
  1083.                 function b(a, b) {
  1084.                     c = b, e(f, c ? "scrollstart" : "scrollstop", a)
  1085.                 }
  1086.                 var c, d, f = this,
  1087.                     g = a(f);
  1088.                 g.bind(h, function(e) {
  1089.                     a.event.special.scrollstart.enabled && (c || b(e, !0), clearTimeout(d), d = setTimeout(function() {
  1090.                         b(e, !1)
  1091.                     }, 50))
  1092.                 })
  1093.             }
  1094.         }, a.event.special.tap = {
  1095.             tapholdThreshold: 750,
  1096.             setup: function() {
  1097.                 var b = this,
  1098.                     c = a(b);
  1099.                 c.bind("vmousedown", function(d) {
  1100.                     function g() {
  1101.                         clearTimeout(j)
  1102.                     }
  1103.  
  1104.                     function h() {
  1105.                         g(), c.unbind("vclick", i).unbind("vmouseup", g), f.unbind("vmousecancel", h)
  1106.                     }
  1107.  
  1108.                     function i(a) {
  1109.                         h(), k === a.target && e(b, "tap", a)
  1110.                     }
  1111.                     if (d.which && 1 !== d.which) return !1;
  1112.                     var j, k = d.target;
  1113.                     d.originalEvent, c.bind("vmouseup", g).bind("vclick", i), f.bind("vmousecancel", h), j = setTimeout(function() {
  1114.                         e(b, "taphold", a.Event("taphold", {
  1115.                             target: k
  1116.                         }))
  1117.                     }, a.event.special.tap.tapholdThreshold)
  1118.                 })
  1119.             }
  1120.         }, a.event.special.swipe = {
  1121.             scrollSupressionThreshold: 30,
  1122.             durationThreshold: 1e3,
  1123.             horizontalDistanceThreshold: 30,
  1124.             verticalDistanceThreshold: 75,
  1125.             start: function(b) {
  1126.                 var c = b.originalEvent.touches ? b.originalEvent.touches[0] : b;
  1127.                 return {
  1128.                     time: (new Date).getTime(),
  1129.                     coords: [c.pageX, c.pageY],
  1130.                     origin: a(b.target)
  1131.                 }
  1132.             },
  1133.             stop: function(a) {
  1134.                 var b = a.originalEvent.touches ? a.originalEvent.touches[0] : a;
  1135.                 return {
  1136.                     time: (new Date).getTime(),
  1137.                     coords: [b.pageX, b.pageY]
  1138.                 }
  1139.             },
  1140.             handleSwipe: function(b, c) {
  1141.                 c.time - b.time < a.event.special.swipe.durationThreshold && Math.abs(b.coords[0] - c.coords[0]) > a.event.special.swipe.horizontalDistanceThreshold && Math.abs(b.coords[1] - c.coords[1]) < a.event.special.swipe.verticalDistanceThreshold && b.origin.trigger("swipe").trigger(b.coords[0] > c.coords[0] ? "swipeleft" : "swiperight")
  1142.             },
  1143.             setup: function() {
  1144.                 var b = this,
  1145.                     c = a(b);
  1146.                 c.bind(i, function(b) {
  1147.                     function e(b) {
  1148.                         g && (f = a.event.special.swipe.stop(b), Math.abs(g.coords[0] - f.coords[0]) > a.event.special.swipe.scrollSupressionThreshold && b.preventDefault())
  1149.                     }
  1150.                     var f, g = a.event.special.swipe.start(b);
  1151.                     c.bind(k, e).one(j, function() {
  1152.                         c.unbind(k, e), g && f && a.event.special.swipe.handleSwipe(g, f), g = f = d
  1153.                     })
  1154.                 })
  1155.             }
  1156.         }, a.each({
  1157.             scrollstop: "scrollstart",
  1158.             taphold: "tap",
  1159.             swipeleft: "swipe",
  1160.             swiperight: "swipe"
  1161.         }, function(b, c) {
  1162.             a.event.special[b] = {
  1163.                 setup: function() {
  1164.                     a(this).bind(c, a.noop)
  1165.                 }
  1166.             }
  1167.         })
  1168.     }(a, this),
  1169.     function(a) {
  1170.         a.event.special.throttledresize = {
  1171.             setup: function() {
  1172.                 a(this).bind("resize", f)
  1173.             },
  1174.             teardown: function() {
  1175.                 a(this).unbind("resize", f)
  1176.             }
  1177.         };
  1178.         var b, c, d, e = 250,
  1179.             f = function() {
  1180.                 c = (new Date).getTime(), d = c - g, d >= e ? (g = c, a(this).trigger("throttledresize")) : (b && clearTimeout(b), b = setTimeout(f, e - d))
  1181.             },
  1182.             g = 0
  1183.     }(a),
  1184.     function(a, b) {
  1185.         function d() {
  1186.             var a = e();
  1187.             a !== f && (f = a, i.trigger(j))
  1188.         }
  1189.         var e, f, g, h, i = a(b),
  1190.             j = "orientationchange",
  1191.             k = {
  1192.                 0: !0,
  1193.                 180: !0
  1194.             };
  1195.         if (a.support.orientation) {
  1196.             var l = b.innerWidth || i.width(),
  1197.                 m = b.innerHeight || i.height(),
  1198.                 n = 50;
  1199.             g = l > m && l - m > n, h = k[b.orientation], (g && h || !g && !h) && (k = {
  1200.                 "-90": !0,
  1201.                 90: !0
  1202.             })
  1203.         }
  1204.         a.event.special.orientationchange = a.extend({}, a.event.special.orientationchange, {
  1205.             setup: function() {
  1206.                 return a.support.orientation && !a.event.special.orientationchange.disabled ? !1 : (f = e(), i.bind("throttledresize", d), void 0)
  1207.             },
  1208.             teardown: function() {
  1209.                 return a.support.orientation && !a.event.special.orientationchange.disabled ? !1 : (i.unbind("throttledresize", d), void 0)
  1210.             },
  1211.             add: function(a) {
  1212.                 var b = a.handler;
  1213.                 a.handler = function(a) {
  1214.                     return a.orientation = e(), b.apply(this, arguments)
  1215.                 }
  1216.             }
  1217.         }), a.event.special.orientationchange.orientation = e = function() {
  1218.             var d = !0,
  1219.                 e = c.documentElement;
  1220.             return d = a.support.orientation ? k[b.orientation] : e && e.clientWidth / e.clientHeight < 1.1, d ? "portrait" : "landscape"
  1221.         }, a.fn[j] = function(a) {
  1222.             return a ? this.bind(j, a) : this.trigger(j)
  1223.         }, a.attrFn && (a.attrFn[j] = !0)
  1224.     }(a, this),
  1225.     function(a) {
  1226.         a.widget("mobile.page", a.mobile.widget, {
  1227.             options: {
  1228.                 theme: "c",
  1229.                 domCache: !1,
  1230.                 keepNativeDefault: ":jqmData(role='none'), :jqmData(role='nojs')"
  1231.             },
  1232.             _create: function() {
  1233.                 return this._trigger("beforecreate") === !1 ? !1 : (this.element.attr("tabindex", "0").addClass("ui-page ui-body-" + this.options.theme), this._on(this.element, {
  1234.                     pagebeforehide: "removeContainerBackground",
  1235.                     pagebeforeshow: "_handlePageBeforeShow"
  1236.                 }), void 0)
  1237.             },
  1238.             _handlePageBeforeShow: function() {
  1239.                 this.setContainerBackground()
  1240.             },
  1241.             removeContainerBackground: function() {
  1242.                 a.mobile.pageContainer.removeClass("ui-overlay-" + a.mobile.getInheritedTheme(this.element.parent()))
  1243.             },
  1244.             setContainerBackground: function(b) {
  1245.                 this.options.theme && a.mobile.pageContainer.addClass("ui-overlay-" + (b || this.options.theme))
  1246.             },
  1247.             keepNativeSelector: function() {
  1248.                 var b = this.options,
  1249.                     c = b.keepNative && a.trim(b.keepNative);
  1250.                 return c && b.keepNative !== b.keepNativeDefault ? [b.keepNative, b.keepNativeDefault].join(", ") : b.keepNativeDefault
  1251.             }
  1252.         })
  1253.     }(a),
  1254.     function(a, b, c) {
  1255.         var d = function(d) {
  1256.                 return d === c && (d = !0),
  1257.                     function(c, e, f, g) {
  1258.                         var h = new a.Deferred,
  1259.                             i = e ? " reverse" : "",
  1260.                             j = a.mobile.urlHistory.getActive(),
  1261.                             k = j.lastScroll || a.mobile.defaultHomeScroll,
  1262.                             l = a.mobile.getScreenHeight(),
  1263.                             m = a.mobile.maxTransitionWidth !== !1 && a.mobile.window.width() > a.mobile.maxTransitionWidth,
  1264.                             n = !a.support.cssTransitions || m || !c || "none" === c || Math.max(a.mobile.window.scrollTop(), k) > a.mobile.getMaxScrollForTransition(),
  1265.                             o = " ui-page-pre-in",
  1266.                             p = function() {
  1267.                                 a.mobile.pageContainer.toggleClass("ui-mobile-viewport-transitioning viewport-" + c)
  1268.                             },
  1269.                             q = function() {
  1270.                                 a.event.special.scrollstart.enabled = !1, b.scrollTo(0, k), setTimeout(function() {
  1271.                                     a.event.special.scrollstart.enabled = !0
  1272.                                 }, 150)
  1273.                             },
  1274.                             r = function() {
  1275.                                 g.removeClass(a.mobile.activePageClass + " out in reverse " + c).height("")
  1276.                             },
  1277.                             s = function() {
  1278.                                 d ? g.animationComplete(t) : t(), g.height(l + a.mobile.window.scrollTop()).addClass(c + " out" + i)
  1279.                             },
  1280.                             t = function() {
  1281.                                 g && d && r(), u()
  1282.                             },
  1283.                             u = function() {
  1284.                                 f.css("z-index", -10), f.addClass(a.mobile.activePageClass + o), a.mobile.focusPage(f), f.height(l + k), q(), f.css("z-index", ""), n || f.animationComplete(v), f.removeClass(o).addClass(c + " in" + i), n && v()
  1285.                             },
  1286.                             v = function() {
  1287.                                 d || g && r(), f.removeClass("out in reverse " + c).height(""), p(), a.mobile.window.scrollTop() !== k && q(), h.resolve(c, e, f, g, !0)
  1288.                             };
  1289.                         return p(), g && !n ? s() : t(), h.promise()
  1290.                     }
  1291.             },
  1292.             e = d(),
  1293.             f = d(!1),
  1294.             g = function() {
  1295.                 return 3 * a.mobile.getScreenHeight()
  1296.             };
  1297.         a.mobile.defaultTransitionHandler = e, a.mobile.transitionHandlers = {
  1298.             "default": a.mobile.defaultTransitionHandler,
  1299.             sequential: e,
  1300.             simultaneous: f
  1301.         }, a.mobile.transitionFallbacks = {}, a.mobile._maybeDegradeTransition = function(b) {
  1302.             return b && !a.support.cssTransform3d && a.mobile.transitionFallbacks[b] && (b = a.mobile.transitionFallbacks[b]), b
  1303.         }, a.mobile.getMaxScrollForTransition = a.mobile.getMaxScrollForTransition || g
  1304.     }(a, this),
  1305.     function(a, d) {
  1306.         function e(b) {
  1307.             !p || p.closest("." + a.mobile.activePageClass).length && !b || p.removeClass(a.mobile.activeBtnClass), p = null
  1308.         }
  1309.  
  1310.         function f() {
  1311.             t = !1, s.length > 0 && a.mobile.changePage.apply(null, s.pop())
  1312.         }
  1313.  
  1314.         function g(b, c, d, e) {
  1315.             c && c.data("mobile-page")._trigger("beforehide", null, {
  1316.                 nextPage: b
  1317.             }), b.data("mobile-page")._trigger("beforeshow", null, {
  1318.                 prevPage: c || a("")
  1319.             }), a.mobile.hidePageLoadingMsg(), d = a.mobile._maybeDegradeTransition(d);
  1320.             var f = a.mobile.transitionHandlers[d || "default"] || a.mobile.defaultTransitionHandler,
  1321.                 g = f(d, e, b, c);
  1322.             return g.done(function() {
  1323.                 c && c.data("mobile-page")._trigger("hide", null, {
  1324.                     nextPage: b
  1325.                 }), b.data("mobile-page")._trigger("show", null, {
  1326.                     prevPage: c || a("")
  1327.                 })
  1328.             }), g
  1329.         }
  1330.  
  1331.         function h(b, c) {
  1332.             c && b.attr("data-" + a.mobile.ns + "role", c), b.page()
  1333.         }
  1334.  
  1335.         function i() {
  1336.             var b = a.mobile.activePage && k(a.mobile.activePage);
  1337.             return b || x.hrefNoHash
  1338.         }
  1339.  
  1340.         function j(a) {
  1341.             for (; a && ("string" != typeof a.nodeName || "a" !== a.nodeName.toLowerCase());) a = a.parentNode;
  1342.             return a
  1343.         }
  1344.  
  1345.         function k(b) {
  1346.             var c = a(b).closest(".ui-page").jqmData("url"),
  1347.                 d = x.hrefNoHash;
  1348.             return c && n.isPath(c) || (c = d), n.makeUrlAbsolute(c, d)
  1349.         }
  1350.         var l = a.mobile.window,
  1351.             m = (a("html"), a("head")),
  1352.             n = a.extend(a.mobile.path, {
  1353.                 getFilePath: function(b) {
  1354.                     var c = "&" + a.mobile.subPageUrlKey;
  1355.                     return b && b.split(c)[0].split(u)[0]
  1356.                 },
  1357.                 isFirstPageUrl: function(b) {
  1358.                     var c = n.parseUrl(n.makeUrlAbsolute(b, this.documentBase)),
  1359.                         e = c.hrefNoHash === this.documentUrl.hrefNoHash || this.documentBaseDiffers && c.hrefNoHash === this.documentBase.hrefNoHash,
  1360.                         f = a.mobile.firstPage,
  1361.                         g = f && f[0] ? f[0].id : d;
  1362.                     return e && (!c.hash || "#" === c.hash || g && c.hash.replace(/^#/, "") === g)
  1363.                 },
  1364.                 isPermittedCrossDomainRequest: function(b, c) {
  1365.                     return a.mobile.allowCrossDomainPages && "file:" === b.protocol && -1 !== c.search(/^https?:/)
  1366.                 }
  1367.             }),
  1368.             o = null,
  1369.             p = null,
  1370.             q = a.Deferred(),
  1371.             r = a.mobile.navigate.history,
  1372.             s = [],
  1373.             t = !1,
  1374.             u = "&ui-state=dialog",
  1375.             v = m.children("base"),
  1376.             w = n.documentUrl,
  1377.             x = n.documentBase,
  1378.             y = (n.documentBaseDiffers, a.mobile.getScreenHeight),
  1379.             z = a.support.dynamicBaseTag ? {
  1380.                 element: v.length ? v : a("<base>", {
  1381.                     href: x.hrefNoHash
  1382.                 }).prependTo(m),
  1383.                 set: function(a) {
  1384.                     a = n.parseUrl(a).hrefNoHash, z.element.attr("href", n.makeUrlAbsolute(a, x))
  1385.                 },
  1386.                 reset: function() {
  1387.                     z.element.attr("href", x.hrefNoSearch)
  1388.                 }
  1389.             } : d;
  1390.         a.mobile.getDocumentUrl = n.getDocumentUrl, a.mobile.getDocumentBase = n.getDocumentBase, a.mobile.back = function() {
  1391.             var a = b.navigator;
  1392.             this.phonegapNavigationEnabled && a && a.app && a.app.backHistory ? a.app.backHistory() : b.history.back()
  1393.         }, a.mobile.focusPage = function(a) {
  1394.             var b = a.find("[autofocus]"),
  1395.                 c = a.find(".ui-title:eq(0)");
  1396.             return b.length ? (b.focus(), void 0) : (c.length ? c.focus() : a.focus(), void 0)
  1397.         };
  1398.         var A, B, C = !0;
  1399.         A = function() {
  1400.             if (C) {
  1401.                 var b = a.mobile.urlHistory.getActive();
  1402.                 if (b) {
  1403.                     var c = l.scrollTop();
  1404.                     b.lastScroll = c < a.mobile.minScrollBack ? a.mobile.defaultHomeScroll : c
  1405.                 }
  1406.             }
  1407.         }, B = function() {
  1408.             setTimeout(A, 100)
  1409.         }, l.bind(a.support.pushState ? "popstate" : "hashchange", function() {
  1410.             C = !1
  1411.         }), l.one(a.support.pushState ? "popstate" : "hashchange", function() {
  1412.             C = !0
  1413.         }), l.one("pagecontainercreate", function() {
  1414.             a.mobile.pageContainer.bind("pagechange", function() {
  1415.                 C = !0, l.unbind("scrollstop", B), l.bind("scrollstop", B)
  1416.             })
  1417.         }), l.bind("scrollstop", B), a.mobile._maybeDegradeTransition = a.mobile._maybeDegradeTransition || function(a) {
  1418.             return a
  1419.         }, a.mobile.resetActivePageHeight = function(b) {
  1420.             var c = a("." + a.mobile.activePageClass),
  1421.                 d = parseFloat(c.css("padding-top")),
  1422.                 e = parseFloat(c.css("padding-bottom")),
  1423.                 f = parseFloat(c.css("border-top-width")),
  1424.                 g = parseFloat(c.css("border-bottom-width"));
  1425.             b = "number" == typeof b ? b : y(), c.css("min-height", b - d - e - f - g)
  1426.         }, a.fn.animationComplete = function(b) {
  1427.             return a.support.cssTransitions ? a(this).one("webkitAnimationEnd animationend", b) : (setTimeout(b, 0), a(this))
  1428.         }, a.mobile.path = n, a.mobile.base = z, a.mobile.urlHistory = r, a.mobile.dialogHashKey = u, a.mobile.allowCrossDomainPages = !1, a.mobile._bindPageRemove = function() {
  1429.             var b = a(this);
  1430.             !b.data("mobile-page").options.domCache && b.is(":jqmData(external-page='true')") && b.bind("pagehide.remove", function() {
  1431.                 var b = a(this),
  1432.                     c = new a.Event("pageremove");
  1433.                 b.trigger(c), c.isDefaultPrevented() || b.removeWithDependents()
  1434.             })
  1435.         }, a.mobile.loadPage = function(b, c) {
  1436.             var e = a.Deferred(),
  1437.                 f = a.extend({}, a.mobile.loadPage.defaults, c),
  1438.                 g = null,
  1439.                 j = null,
  1440.                 k = n.makeUrlAbsolute(b, i());
  1441.             f.data && "get" === f.type && (k = n.addSearchParams(k, f.data), f.data = d), f.data && "post" === f.type && (f.reloadPage = !0);
  1442.             var l = n.getFilePath(k),
  1443.                 m = n.convertUrlToDataUrl(k);
  1444.             if (f.pageContainer = f.pageContainer || a.mobile.pageContainer, g = f.pageContainer.children("[data-" + a.mobile.ns + "url='" + m + "']"), 0 === g.length && m && !n.isPath(m) && (g = f.pageContainer.children("#" + m).attr("data-" + a.mobile.ns + "url", m).jqmData("url", m)), 0 === g.length)
  1445.                 if (a.mobile.firstPage && n.isFirstPageUrl(l)) a.mobile.firstPage.parent().length && (g = a(a.mobile.firstPage));
  1446.                 else if (n.isEmbeddedPage(l)) return e.reject(k, c), e.promise();
  1447.             if (g.length) {
  1448.                 if (!f.reloadPage) return h(g, f.role), e.resolve(k, c, g), z && !c.prefetch && z.set(b), e.promise();
  1449.                 j = g
  1450.             }
  1451.             var o = f.pageContainer,
  1452.                 p = new a.Event("pagebeforeload"),
  1453.                 q = {
  1454.                     url: b,
  1455.                     absUrl: k,
  1456.                     dataUrl: m,
  1457.                     deferred: e,
  1458.                     options: f
  1459.                 };
  1460.             if (o.trigger(p, q), p.isDefaultPrevented()) return e.promise();
  1461.             if (f.showLoadMsg) var r = setTimeout(function() {
  1462.                     a.mobile.showPageLoadingMsg()
  1463.                 }, f.loadMsgDelay),
  1464.                 s = function() {
  1465.                     clearTimeout(r), a.mobile.hidePageLoadingMsg()
  1466.                 };
  1467.             return !z || "undefined" != typeof c && "undefined" != typeof c.prefetch || z.reset(), a.mobile.allowCrossDomainPages || n.isSameDomain(w, k) ? a.ajax({
  1468.                 url: l,
  1469.                 type: f.type,
  1470.                 data: f.data,
  1471.                 contentType: f.contentType,
  1472.                 dataType: "html",
  1473.                 success: function(d, i, o) {
  1474.                     var p = a("<div></div>"),
  1475.                         r = d.match(/<title[^>]*>([^<]*)/) && RegExp.$1,
  1476.                         t = new RegExp("(<[^>]+\\bdata-" + a.mobile.ns + "role=[\"']?page[\"']?[^>]*>)"),
  1477.                         u = new RegExp("\\bdata-" + a.mobile.ns + "url=[\"']?([^\"'>]*)[\"']?");
  1478.                     if (t.test(d) && RegExp.$1 && u.test(RegExp.$1) && RegExp.$1 && (b = l = n.getFilePath(a("<div>" + RegExp.$1 + "</div>").text())), !z || "undefined" != typeof c && "undefined" != typeof c.prefetch || z.set(l), p.get(0).innerHTML = d, g = p.find(":jqmData(role='page'), :jqmData(role='dialog')").first(), g.length || (g = a("<div data-" + a.mobile.ns + "role='page'>" + (d.split(/<\/?body[^>]*>/gim)[1] || "") + "</div>")), r && !g.jqmData("title") && (~r.indexOf("&") && (r = a("<div>" + r + "</div>").text()), g.jqmData("title", r)), !a.support.dynamicBaseTag) {
  1479.                         var v = n.get(l);
  1480.                         g.find("[src], link[href], a[rel='external'], :jqmData(ajax='false'), a[target]").each(function() {
  1481.                             var b = a(this).is("[href]") ? "href" : a(this).is("[src]") ? "src" : "action",
  1482.                                 c = a(this).attr(b);
  1483.                             c = c.replace(location.protocol + "//" + location.host + location.pathname, ""), /^(\w+:|#|\/)/.test(c) || a(this).attr(b, v + c)
  1484.                         })
  1485.                     }
  1486.                     g.attr("data-" + a.mobile.ns + "url", n.convertUrlToDataUrl(l)).attr("data-" + a.mobile.ns + "external-page", !0).appendTo(f.pageContainer), g.one("pagecreate", a.mobile._bindPageRemove), h(g, f.role), k.indexOf("&" + a.mobile.subPageUrlKey) > -1 && (g = f.pageContainer.children("[data-" + a.mobile.ns + "url='" + m + "']")), f.showLoadMsg && s(), q.xhr = o, q.textStatus = i, q.page = g, f.pageContainer.trigger("pageload", q), e.resolve(k, c, g, j)
  1487.                 },
  1488.                 error: function(b, d, g) {
  1489.                     z && z.set(n.get()), q.xhr = b, q.textStatus = d, q.errorThrown = g;
  1490.                     var h = new a.Event("pageloadfailed");
  1491.                     f.pageContainer.trigger(h, q), h.isDefaultPrevented() || (f.showLoadMsg && (s(), a.mobile.showPageLoadingMsg(a.mobile.pageLoadErrorMessageTheme, a.mobile.pageLoadErrorMessage, !0), setTimeout(a.mobile.hidePageLoadingMsg, 1500)), e.reject(k, c))
  1492.                 }
  1493.             }) : e.reject(k, c), e.promise()
  1494.         }, a.mobile.loadPage.defaults = {
  1495.             type: "get",
  1496.             data: d,
  1497.             reloadPage: !1,
  1498.             role: d,
  1499.             showLoadMsg: !1,
  1500.             pageContainer: d,
  1501.             loadMsgDelay: 50
  1502.         }, a.mobile.changePage = function(b, j) {
  1503.             if (t) return s.unshift(arguments), void 0;
  1504.             var k, l = a.extend({}, a.mobile.changePage.defaults, j);
  1505.             l.pageContainer = l.pageContainer || a.mobile.pageContainer, l.fromPage = l.fromPage || a.mobile.activePage, k = "string" == typeof b;
  1506.             var m = l.pageContainer,
  1507.                 o = new a.Event("pagebeforechange"),
  1508.                 p = {
  1509.                     toPage: b,
  1510.                     options: l
  1511.                 };
  1512.             if (p.absUrl = k ? n.makeUrlAbsolute(b, i()) : b.data("absUrl"), m.trigger(o, p), !o.isDefaultPrevented()) {
  1513.                 if (b = p.toPage, k = "string" == typeof b, t = !0, k) return l.target = b, a.mobile.loadPage(b, l).done(function(b, c, d, e) {
  1514.                     t = !1, c.duplicateCachedPage = e, d.data("absUrl", p.absUrl), a.mobile.changePage(d, c)
  1515.                 }).fail(function() {
  1516.                     e(!0), f(), l.pageContainer.trigger("pagechangefailed", p)
  1517.                 }), void 0;
  1518.                 b[0] !== a.mobile.firstPage[0] || l.dataUrl || (l.dataUrl = w.hrefNoHash);
  1519.                 var q = l.fromPage,
  1520.                     v = l.dataUrl && n.convertUrlToDataUrl(l.dataUrl) || b.jqmData("url"),
  1521.                     x = v,
  1522.                     y = (n.getFilePath(v), r.getActive()),
  1523.                     z = 0 === r.activeIndex,
  1524.                     A = 0,
  1525.                     B = c.title,
  1526.                     C = "dialog" === l.role || "dialog" === b.jqmData("role");
  1527.                 if (q && q[0] === b[0] && !l.allowSamePageTransition) return t = !1, m.trigger("pagechange", p), l.fromHashChange && r.direct({
  1528.                     url: v
  1529.                 }), void 0;
  1530.                 h(b, l.role), l.fromHashChange && (A = "back" === j.direction ? -1 : 1);
  1531.                 try {
  1532.                     c.activeElement && "body" !== c.activeElement.nodeName.toLowerCase() ? a(c.activeElement).blur() : a("input:focus, textarea:focus, select:focus").blur()
  1533.                 } catch (D) {}
  1534.                 var E = !1;
  1535.                 C && y && (y.url && y.url.indexOf(u) > -1 && a.mobile.activePage && !a.mobile.activePage.is(".ui-dialog") && r.activeIndex > 0 && (l.changeHash = !1, E = !0), v = y.url || "", v += !E && v.indexOf("#") > -1 ? u : "#" + u, 0 === r.activeIndex && v === r.initialDst && (v += u));
  1536.                 var F = y ? b.jqmData("title") || b.children(":jqmData(role='header')").find(".ui-title").text() : B;
  1537.                 if (F && B === c.title && (B = F), b.jqmData("title") || b.jqmData("title", B), l.transition = l.transition || (A && !z ? y.transition : d) || (C ? a.mobile.defaultDialogTransition : a.mobile.defaultPageTransition), !A && E && (r.getActive().pageUrl = x), v && !l.fromHashChange) {
  1538.                     var G;
  1539.                     !n.isPath(v) && v.indexOf("#") < 0 && (v = "#" + v), G = {
  1540.                         transition: l.transition,
  1541.                         title: B,
  1542.                         pageUrl: x,
  1543.                         role: l.role
  1544.                     }, l.changeHash !== !1 && a.mobile.hashListeningEnabled ? a.mobile.navigate(v, G, !0) : b[0] !== a.mobile.firstPage[0] && a.mobile.navigate.history.add(v, G)
  1545.                 }
  1546.                 c.title = B, a.mobile.activePage = b, l.reverse = l.reverse || 0 > A, g(b, q, l.transition, l.reverse).done(function(c, d, g, h, i) {
  1547.                     e(), l.duplicateCachedPage && l.duplicateCachedPage.remove(), i || a.mobile.focusPage(b), f(), m.trigger("pagechange", p)
  1548.                 })
  1549.             }
  1550.         }, a.mobile.changePage.defaults = {
  1551.             transition: d,
  1552.             reverse: !1,
  1553.             changeHash: !0,
  1554.             fromHashChange: !1,
  1555.             role: d,
  1556.             duplicateCachedPage: d,
  1557.             pageContainer: d,
  1558.             showLoadMsg: !0,
  1559.             dataUrl: d,
  1560.             fromPage: d,
  1561.             allowSamePageTransition: !1
  1562.         }, a.mobile.navreadyDeferred = a.Deferred(), a.mobile._registerInternalEvents = function() {
  1563.             var c = function(b, c) {
  1564.                 var d, e, f, g, h = !0;
  1565.                 return !a.mobile.ajaxEnabled || b.is(":jqmData(ajax='false')") || !b.jqmHijackable().length || b.attr("target") ? !1 : (d = b.attr("action"), g = (b.attr("method") || "get").toLowerCase(), d || (d = k(b), "get" === g && (d = n.parseUrl(d).hrefNoSearch), d === x.hrefNoHash && (d = w.hrefNoSearch)), d = n.makeUrlAbsolute(d, k(b)), n.isExternal(d) && !n.isPermittedCrossDomainRequest(w, d) ? !1 : (c || (e = b.serializeArray(), o && o[0].form === b[0] && (f = o.attr("name"), f && (a.each(e, function(a, b) {
  1566.                     return b.name === f ? (f = "", !1) : void 0
  1567.                 }), f && e.push({
  1568.                     name: f,
  1569.                     value: o.attr("value")
  1570.                 }))), h = {
  1571.                     url: d,
  1572.                     options: {
  1573.                         type: g,
  1574.                         data: a.param(e),
  1575.                         transition: b.jqmData("transition"),
  1576.                         reverse: "reverse" === b.jqmData("direction"),
  1577.                         reloadPage: !0
  1578.                     }
  1579.                 }), h))
  1580.             };
  1581.             a.mobile.document.delegate("form", "submit", function(b) {
  1582.                 var d = c(a(this));
  1583.                 d && (a.mobile.changePage(d.url, d.options), b.preventDefault())
  1584.             }), a.mobile.document.bind("vclick", function(b) {
  1585.                 var d, f, g = b.target,
  1586.                     h = !1;
  1587.                 if (!(b.which > 1) && a.mobile.linkBindingEnabled) {
  1588.                     if (o = a(g), a.data(g, "mobile-button")) {
  1589.                         if (!c(a(g).closest("form"), !0)) return;
  1590.                         g.parentNode && (g = g.parentNode)
  1591.                     } else {
  1592.                         if (g = j(g), !g || "#" === n.parseUrl(g.getAttribute("href") || "#").hash) return;
  1593.                         if (!a(g).jqmHijackable().length) return
  1594.                     }~g.className.indexOf("ui-link-inherit") ? g.parentNode && (f = a.data(g.parentNode, "buttonElements")) : f = a.data(g, "buttonElements"), f ? g = f.outer : h = !0, d = a(g), h && (d = d.closest(".ui-btn")), d.length > 0 && !d.hasClass("ui-disabled") && (e(!0), p = d, p.addClass(a.mobile.activeBtnClass))
  1595.                 }
  1596.             }), a.mobile.document.bind("click", function(c) {
  1597.                 if (a.mobile.linkBindingEnabled && !c.isDefaultPrevented()) {
  1598.                     var f, g = j(c.target),
  1599.                         h = a(g);
  1600.                     if (g && !(c.which > 1) && h.jqmHijackable().length) {
  1601.                         if (f = function() {
  1602.                                 b.setTimeout(function() {
  1603.                                     e(!0)
  1604.                                 }, 200)
  1605.                             }, h.is(":jqmData(rel='back')")) return a.mobile.back(), !1;
  1606.                         var i = k(h),
  1607.                             l = n.makeUrlAbsolute(h.attr("href") || "#", i);
  1608.                         if (!a.mobile.ajaxEnabled && !n.isEmbeddedPage(l)) return f(), void 0;
  1609.                         if (-1 !== l.search("#")) {
  1610.                             if (l = l.replace(/[^#]*#/, ""), !l) return c.preventDefault(), void 0;
  1611.                             l = n.isPath(l) ? n.makeUrlAbsolute(l, i) : n.makeUrlAbsolute("#" + l, w.hrefNoHash)
  1612.                         }
  1613.                         var m = h.is("[rel='external']") || h.is(":jqmData(ajax='false')") || h.is("[target]"),
  1614.                             o = m || n.isExternal(l) && !n.isPermittedCrossDomainRequest(w, l);
  1615.                         if (o) return f(), void 0;
  1616.                         var p = h.jqmData("transition"),
  1617.                             q = "reverse" === h.jqmData("direction") || h.jqmData("back"),
  1618.                             r = h.attr("data-" + a.mobile.ns + "rel") || d;
  1619.                         a.mobile.changePage(l, {
  1620.                             transition: p,
  1621.                             reverse: q,
  1622.                             role: r,
  1623.                             link: h
  1624.                         }), c.preventDefault()
  1625.                     }
  1626.                 }
  1627.             }), a.mobile.document.delegate(".ui-page", "pageshow.prefetch", function() {
  1628.                 var b = [];
  1629.                 a(this).find("a:jqmData(prefetch)").each(function() {
  1630.                     var c = a(this),
  1631.                         d = c.attr("href");
  1632.                     d && -1 === a.inArray(d, b) && (b.push(d), a.mobile.loadPage(d, {
  1633.                         role: c.attr("data-" + a.mobile.ns + "rel"),
  1634.                         prefetch: !0
  1635.                     }))
  1636.                 })
  1637.             }), a.mobile._handleHashChange = function(c, e) {
  1638.                 var f = n.stripHash(c),
  1639.                     g = 0 === a.mobile.urlHistory.stack.length ? "none" : d,
  1640.                     h = {
  1641.                         changeHash: !1,
  1642.                         fromHashChange: !0,
  1643.                         reverse: "back" === e.direction
  1644.                     };
  1645.                 if (a.extend(h, e, {
  1646.                         transition: (r.getLast() || {}).transition || g
  1647.                     }), r.activeIndex > 0 && f.indexOf(u) > -1 && r.initialDst !== f) {
  1648.                     if (a.mobile.activePage && !a.mobile.activePage.is(".ui-dialog")) return "back" === e.direction ? a.mobile.back() : b.history.forward(), void 0;
  1649.                     f = e.pageUrl;
  1650.                     var i = a.mobile.urlHistory.getActive();
  1651.                     a.extend(h, {
  1652.                         role: i.role,
  1653.                         transition: i.transition,
  1654.                         reverse: "back" === e.direction
  1655.                     })
  1656.                 }
  1657.                 f ? (f = n.isPath(f) ? f : n.makeUrlAbsolute("#" + f, x), f === n.makeUrlAbsolute("#" + r.initialDst, x) && r.stack.length && r.stack[0].url !== r.initialDst.replace(u, "") && (f = a.mobile.firstPage), a.mobile.changePage(f, h)) : a.mobile.changePage(a.mobile.firstPage, h)
  1658.             }, l.bind("navigate", function(b, c) {
  1659.                 var d;
  1660.                 b.originalEvent && b.originalEvent.isDefaultPrevented() || (d = a.event.special.navigate.originalEventName.indexOf("hashchange") > -1 ? c.state.hash : c.state.url, d || (d = a.mobile.path.parseLocation().hash), d && "#" !== d && 0 !== d.indexOf("#" + a.mobile.path.uiStateKey) || (d = location.href), a.mobile._handleHashChange(d, c.state))
  1661.             }), a.mobile.document.bind("pageshow", a.mobile.resetActivePageHeight), a.mobile.window.bind("throttledresize", a.mobile.resetActivePageHeight)
  1662.         }, a(function() {
  1663.             q.resolve()
  1664.         }), a.when(q, a.mobile.navreadyDeferred).done(function() {
  1665.             a.mobile._registerInternalEvents()
  1666.         })
  1667.     }(a),
  1668.     function(a) {
  1669.         a.mobile.transitionFallbacks.flip = "fade"
  1670.     }(a, this),
  1671.     function(a) {
  1672.         a.mobile.transitionFallbacks.flow = "fade"
  1673.     }(a, this),
  1674.     function(a) {
  1675.         a.mobile.transitionFallbacks.pop = "fade"
  1676.     }(a, this),
  1677.     function(a) {
  1678.         a.mobile.transitionHandlers.slide = a.mobile.transitionHandlers.simultaneous, a.mobile.transitionFallbacks.slide = "fade"
  1679.     }(a, this),
  1680.     function(a) {
  1681.         a.mobile.transitionFallbacks.slidedown = "fade"
  1682.     }(a, this),
  1683.     function(a) {
  1684.         a.mobile.transitionFallbacks.slidefade = "fade"
  1685.     }(a, this),
  1686.     function(a) {
  1687.         a.mobile.transitionFallbacks.slideup = "fade"
  1688.     }(a, this),
  1689.     function(a) {
  1690.         a.mobile.transitionFallbacks.turn = "fade"
  1691.     }(a, this),
  1692.     function(a) {
  1693.         a.mobile.page.prototype.options.degradeInputs = {
  1694.             color: !1,
  1695.             date: !1,
  1696.             datetime: !1,
  1697.             "datetime-local": !1,
  1698.             email: !1,
  1699.             month: !1,
  1700.             number: !1,
  1701.             range: "number",
  1702.             search: "text",
  1703.             tel: !1,
  1704.             time: !1,
  1705.             url: !1,
  1706.             week: !1
  1707.         }, a.mobile.document.bind("pagecreate create", function(b) {
  1708.             var c, d = a.mobile.closestPageData(a(b.target));
  1709.             d && (c = d.options, a(b.target).find("input").not(d.keepNativeSelector()).each(function() {
  1710.                 var b = a(this),
  1711.                     d = this.getAttribute("type"),
  1712.                     e = c.degradeInputs[d] || "text";
  1713.                 if (c.degradeInputs[d]) {
  1714.                     var f = a("<div>").html(b.clone()).html(),
  1715.                         g = f.indexOf(" type=") > -1,
  1716.                         h = g ? /\s+type=["']?\w+['"]?/ : /\/?>/,
  1717.                         i = ' type="' + e + '" data-' + a.mobile.ns + 'type="' + d + '"' + (g ? "" : ">");
  1718.                     b.replaceWith(f.replace(h, i))
  1719.                 }
  1720.             }))
  1721.         })
  1722.     }(a),
  1723.     function(a) {
  1724.         a.widget("mobile.dialog", a.mobile.widget, {
  1725.             options: {
  1726.                 closeBtn: "left",
  1727.                 closeBtnText: "Close",
  1728.                 overlayTheme: "a",
  1729.                 corners: !0,
  1730.                 initSelector: ":jqmData(role='dialog')"
  1731.             },
  1732.             _handlePageBeforeShow: function() {
  1733.                 this._isCloseable = !0, this.options.overlayTheme && this.element.page("removeContainerBackground").page("setContainerBackground", this.options.overlayTheme)
  1734.             },
  1735.             _handlePageBeforeHide: function() {
  1736.                 this._isCloseable = !1
  1737.             },
  1738.             _create: function() {
  1739.                 var b = this.element,
  1740.                     c = this.options.corners ? " ui-corner-all" : "",
  1741.                     d = a("<div/>", {
  1742.                         role: "dialog",
  1743.                         "class": "ui-dialog-contain ui-overlay-shadow" + c
  1744.                     });
  1745.                 b.addClass("ui-dialog ui-overlay-" + this.options.overlayTheme), b.wrapInner(d), b.bind("vclick submit", function(b) {
  1746.                     var c, d = a(b.target).closest("vclick" === b.type ? "a" : "form");
  1747.                     d.length && !d.jqmData("transition") && (c = a.mobile.urlHistory.getActive() || {}, d.attr("data-" + a.mobile.ns + "transition", c.transition || a.mobile.defaultDialogTransition).attr("data-" + a.mobile.ns + "direction", "reverse"))
  1748.                 }), this._on(b, {
  1749.                     pagebeforeshow: "_handlePageBeforeShow",
  1750.                     pagebeforehide: "_handlePageBeforeHide"
  1751.                 }), a.extend(this, {
  1752.                     _createComplete: !1
  1753.                 }), this._setCloseBtn(this.options.closeBtn)
  1754.             },
  1755.             _setCloseBtn: function(b) {
  1756.                 var c, d, e = this;
  1757.                 this._headerCloseButton && (this._headerCloseButton.remove(), this._headerCloseButton = null), "none" !== b && (d = "left" === b ? "left" : "right", c = a("<a href='#' class='ui-btn-" + d + "' data-" + a.mobile.ns + "icon='delete' data-" + a.mobile.ns + "iconpos='notext'>" + this.options.closeBtnText + "</a>"), this.element.children().find(":jqmData(role='header')").first().prepend(c), this._createComplete && a.fn.buttonMarkup && c.buttonMarkup(), this._createComplete = !0, c.bind("click", function() {
  1758.                     e.close()
  1759.                 }), this._headerCloseButton = c)
  1760.             },
  1761.             _setOption: function(a, b) {
  1762.                 "closeBtn" === a && this._setCloseBtn(b), this._super(a, b)
  1763.             },
  1764.             close: function() {
  1765.                 var b, c, d = a.mobile.navigate.history;
  1766.                 this._isCloseable && (this._isCloseable = !1, a.mobile.hashListeningEnabled && d.activeIndex > 0 ? a.mobile.back() : (b = Math.max(0, d.activeIndex - 1), c = d.stack[b].pageUrl || d.stack[b].url, d.previousIndex = d.activeIndex, d.activeIndex = b, a.mobile.path.isPath(c) || (c = a.mobile.path.makeUrlAbsolute("#" + c)), a.mobile.changePage(c, {
  1767.                     direction: "back",
  1768.                     changeHash: !1,
  1769.                     fromHashChange: !0
  1770.                 })))
  1771.             }
  1772.         }), a.mobile.document.delegate(a.mobile.dialog.prototype.options.initSelector, "pagecreate", function() {
  1773.             a.mobile.dialog.prototype.enhance(this)
  1774.         })
  1775.     }(a, this),
  1776.     function(a) {
  1777.         a.mobile.page.prototype.options.backBtnText = "Back", a.mobile.page.prototype.options.addBackBtn = !1, a.mobile.page.prototype.options.backBtnTheme = null, a.mobile.page.prototype.options.headerTheme = "a", a.mobile.page.prototype.options.footerTheme = "a", a.mobile.page.prototype.options.contentTheme = null, a.mobile.document.bind("pagecreate", function(b) {
  1778.             var c = a(b.target),
  1779.                 d = c.data("mobile-page").options,
  1780.                 e = c.jqmData("role"),
  1781.                 f = d.theme;
  1782.             a(":jqmData(role='header'), :jqmData(role='footer'), :jqmData(role='content')", c).jqmEnhanceable().each(function() {
  1783.                 var b, g, h, i, j = a(this),
  1784.                     k = j.jqmData("role"),
  1785.                     l = j.jqmData("theme"),
  1786.                     m = l || d.contentTheme || "dialog" === e && f;
  1787.                 if (j.addClass("ui-" + k), "header" === k || "footer" === k) {
  1788.                     var n = l || ("header" === k ? d.headerTheme : d.footerTheme) || f;
  1789.                     j.addClass("ui-bar-" + n).attr("role", "header" === k ? "banner" : "contentinfo"), "header" === k && (b = j.children("a, button"), g = b.hasClass("ui-btn-left"), h = b.hasClass("ui-btn-right"), g = g || b.eq(0).not(".ui-btn-right").addClass("ui-btn-left").length, h = h || b.eq(1).addClass("ui-btn-right").length), d.addBackBtn && "header" === k && a(".ui-page").length > 1 && c.jqmData("url") !== a.mobile.path.stripHash(location.hash) && !g && (i = a("<a href='javascript:void(0);' class='ui-btn-left' data-" + a.mobile.ns + "rel='back' data-" + a.mobile.ns + "icon='arrow-l'>" + d.backBtnText + "</a>").attr("data-" + a.mobile.ns + "theme", d.backBtnTheme || n).prependTo(j)), j.children("h1, h2, h3, h4, h5, h6").addClass("ui-title").attr({
  1790.                         role: "heading",
  1791.                         "aria-level": "1"
  1792.                     })
  1793.                 } else "content" === k && (m && j.addClass("ui-body-" + m), j.attr("role", "main"))
  1794.             })
  1795.         })
  1796.     }(a),
  1797.     function(a, b) {
  1798.         function d(a) {
  1799.             for (var b; a && (b = "string" == typeof a.className && a.className + " ", !(b && b.indexOf("ui-btn ") > -1 && b.indexOf("ui-disabled ") < 0));) a = a.parentNode;
  1800.             return a
  1801.         }
  1802.  
  1803.         function e(d, e, f, g, h) {
  1804.             var i = a.data(d[0], "buttonElements");
  1805.             d.removeClass(e).addClass(f), i && (i.bcls = a(c.createElement("div")).addClass(i.bcls + " " + f).removeClass(e).attr("class"), g !== b && (i.hover = g), i.state = h)
  1806.         }
  1807.         var f = function(a, c) {
  1808.             var d = a.getAttribute(c);
  1809.             return "true" === d ? !0 : "false" === d ? !1 : null === d ? b : d
  1810.         };
  1811.         a.fn.buttonMarkup = function(d) {
  1812.             var e, h = this,
  1813.                 i = "data-" + a.mobile.ns;
  1814.             d = d && "object" === a.type(d) ? d : {};
  1815.             for (var j = 0; j < h.length; j++) {
  1816.                 var k, l, m, n, o, p, q = h.eq(j),
  1817.                     r = q[0],
  1818.                     s = a.extend({}, a.fn.buttonMarkup.defaults, {
  1819.                         icon: d.icon !== b ? d.icon : f(r, i + "icon"),
  1820.                         iconpos: d.iconpos !== b ? d.iconpos : f(r, i + "iconpos"),
  1821.                         theme: d.theme !== b ? d.theme : f(r, i + "theme") || a.mobile.getInheritedTheme(q, "c"),
  1822.                         inline: d.inline !== b ? d.inline : f(r, i + "inline"),
  1823.                         shadow: d.shadow !== b ? d.shadow : f(r, i + "shadow"),
  1824.                         corners: d.corners !== b ? d.corners : f(r, i + "corners"),
  1825.                         iconshadow: d.iconshadow !== b ? d.iconshadow : f(r, i + "iconshadow"),
  1826.                         mini: d.mini !== b ? d.mini : f(r, i + "mini")
  1827.                     }, d),
  1828.                     t = "ui-btn-inner",
  1829.                     u = "ui-btn-text",
  1830.                     v = !1,
  1831.                     w = "up";
  1832.                 for (e in s) s[e] === b || null === s[e] ? q.removeAttr(i + e) : r.setAttribute(i + e, s[e]);
  1833.                 for (p = a.data("INPUT" === r.tagName || "BUTTON" === r.tagName ? r.parentNode : r, "buttonElements"), p ? (r = p.outer, q = a(r), m = p.inner, n = p.text, a(p.icon).remove(), p.icon = null, v = p.hover, w = p.state) : (m = c.createElement(s.wrapperEls), n = c.createElement(s.wrapperEls)), o = s.icon ? c.createElement("span") : null, g && !p && g(), s.theme || (s.theme = a.mobile.getInheritedTheme(q, "c")), k = "ui-btn ", k += v ? "ui-btn-hover-" + s.theme : "", k += w ? " ui-btn-" + w + "-" + s.theme : "", k += s.shadow ? " ui-shadow" : "", k += s.corners ? " ui-btn-corner-all" : "", s.mini !== b && (k += s.mini === !0 ? " ui-mini" : " ui-fullsize"), s.inline !== b && (k += s.inline === !0 ? " ui-btn-inline" : " ui-btn-block"), s.icon && (s.icon = "ui-icon-" + s.icon, s.iconpos = s.iconpos || "left", l = "ui-icon " + s.icon, s.iconshadow && (l += " ui-icon-shadow")), s.iconpos && (k += " ui-btn-icon-" + s.iconpos, "notext" !== s.iconpos || q.attr("title") || q.attr("title", q.getEncodedText())), p && q.removeClass(p.bcls || ""), q.removeClass("ui-link").addClass(k), m.className = t, n.className = u, p || m.appendChild(n), o && (o.className = l, p && p.icon || (o.innerHTML = "&#160;", m.appendChild(o))); r.firstChild && !p;) n.appendChild(r.firstChild);
  1834.                 p || r.appendChild(m), p = {
  1835.                     hover: v,
  1836.                     state: w,
  1837.                     bcls: k,
  1838.                     outer: r,
  1839.                     inner: m,
  1840.                     text: n,
  1841.                     icon: o
  1842.                 }, a.data(r, "buttonElements", p), a.data(m, "buttonElements", p), a.data(n, "buttonElements", p), o && a.data(o, "buttonElements", p)
  1843.             }
  1844.             return this
  1845.         }, a.fn.buttonMarkup.defaults = {
  1846.             corners: !0,
  1847.             shadow: !0,
  1848.             iconshadow: !0,
  1849.             wrapperEls: "span"
  1850.         };
  1851.         var g = function() {
  1852.             var c, f, h = a.mobile.buttonMarkup.hoverDelay;
  1853.             a.mobile.document.bind({
  1854.                 "vmousedown vmousecancel vmouseup vmouseover vmouseout focus blur scrollstart": function(g) {
  1855.                     var i, j = a(d(g.target)),
  1856.                         k = g.originalEvent && /^touch/.test(g.originalEvent.type),
  1857.                         l = g.type;
  1858.                     j.length && (i = j.attr("data-" + a.mobile.ns + "theme"), "vmousedown" === l ? k ? c = setTimeout(function() {
  1859.                         e(j, "ui-btn-up-" + i, "ui-btn-down-" + i, b, "down")
  1860.                     }, h) : e(j, "ui-btn-up-" + i, "ui-btn-down-" + i, b, "down") : "vmousecancel" === l || "vmouseup" === l ? e(j, "ui-btn-down-" + i, "ui-btn-up-" + i, b, "up") : "vmouseover" === l || "focus" === l ? k ? f = setTimeout(function() {
  1861.                         e(j, "ui-btn-up-" + i, "ui-btn-hover-" + i, !0, "")
  1862.                     }, h) : e(j, "ui-btn-up-" + i, "ui-btn-hover-" + i, !0, "") : ("vmouseout" === l || "blur" === l || "scrollstart" === l) && (e(j, "ui-btn-hover-" + i + " ui-btn-down-" + i, "ui-btn-up-" + i, !1, "up"), c && clearTimeout(c), f && clearTimeout(f)))
  1863.                 },
  1864.                 "focusin focus": function(b) {
  1865.                     a(d(b.target)).addClass(a.mobile.focusClass)
  1866.                 },
  1867.                 "focusout blur": function(b) {
  1868.                     a(d(b.target)).removeClass(a.mobile.focusClass)
  1869.                 }
  1870.             }), g = null
  1871.         };
  1872.         a.mobile.document.bind("pagecreate create", function(b) {
  1873.             a(":jqmData(role='button'), .ui-bar > a, .ui-header > a, .ui-footer > a, .ui-bar > :jqmData(role='controlgroup') > a", b.target).jqmEnhanceable().not("button, input, .ui-btn, :jqmData(role='none'), :jqmData(role='nojs')").buttonMarkup()
  1874.         })
  1875.     }(a),
  1876.     function(a, b) {
  1877.         a.widget("mobile.collapsible", a.mobile.widget, {
  1878.             options: {
  1879.                 expandCueText: " click to expand contents",
  1880.                 collapseCueText: " click to collapse contents",
  1881.                 collapsed: !0,
  1882.                 heading: "h1,h2,h3,h4,h5,h6,legend",
  1883.                 collapsedIcon: "plus",
  1884.                 expandedIcon: "minus",
  1885.                 iconpos: "left",
  1886.                 theme: null,
  1887.                 contentTheme: null,
  1888.                 inset: !0,
  1889.                 corners: !0,
  1890.                 mini: !1,
  1891.                 initSelector: ":jqmData(role='collapsible')"
  1892.             },
  1893.             _create: function() {
  1894.                 var c = this.element,
  1895.                     d = this.options,
  1896.                     e = c.addClass("ui-collapsible"),
  1897.                     f = c.children(d.heading).first(),
  1898.                     g = e.wrapInner("<div class='ui-collapsible-content'></div>").children(".ui-collapsible-content"),
  1899.                     h = c.closest(":jqmData(role='collapsible-set')").addClass("ui-collapsible-set"),
  1900.                     i = "";
  1901.                 f.is("legend") && (f = a("<div role='heading'>" + f.html() + "</div>").insertBefore(f), f.next().remove()), h.length ? (d.theme || (d.theme = h.jqmData("theme") || a.mobile.getInheritedTheme(h, "c")), d.contentTheme || (d.contentTheme = h.jqmData("content-theme")), d.collapsedIcon = c.jqmData("collapsed-icon") || h.jqmData("collapsed-icon") || d.collapsedIcon, d.expandedIcon = c.jqmData("expanded-icon") || h.jqmData("expanded-icon") || d.expandedIcon, d.iconpos = c.jqmData("iconpos") || h.jqmData("iconpos") || d.iconpos, d.inset = h.jqmData("inset") !== b ? h.jqmData("inset") : !0, d.corners = !1, d.mini || (d.mini = h.jqmData("mini"))) : d.theme || (d.theme = a.mobile.getInheritedTheme(c, "c")), d.inset && (i += " ui-collapsible-inset", d.corners && (i += " ui-corner-all")), d.contentTheme && (i += " ui-collapsible-themed-content", g.addClass("ui-body-" + d.contentTheme)), "" !== i && e.addClass(i), f.insertBefore(g).addClass("ui-collapsible-heading").append("<span class='ui-collapsible-heading-status'></span>").wrapInner("<a href='#' class='ui-collapsible-heading-toggle'></a>").find("a").first().buttonMarkup({
  1902.                     shadow: !1,
  1903.                     corners: !1,
  1904.                     iconpos: d.iconpos,
  1905.                     icon: d.collapsedIcon,
  1906.                     mini: d.mini,
  1907.                     theme: d.theme
  1908.                 }), e.bind("expand collapse", function(b) {
  1909.                     if (!b.isDefaultPrevented()) {
  1910.                         var c = a(this),
  1911.                             e = "collapse" === b.type;
  1912.                         b.preventDefault(), f.toggleClass("ui-collapsible-heading-collapsed", e).find(".ui-collapsible-heading-status").text(e ? d.expandCueText : d.collapseCueText).end().find(".ui-icon").toggleClass("ui-icon-" + d.expandedIcon, !e).toggleClass("ui-icon-" + d.collapsedIcon, e || d.expandedIcon === d.collapsedIcon).end().find("a").first().removeClass(a.mobile.activeBtnClass), c.toggleClass("ui-collapsible-collapsed", e), g.toggleClass("ui-collapsible-content-collapsed", e).attr("aria-hidden", e), g.trigger("updatelayout")
  1913.                     }
  1914.                 }).trigger(d.collapsed ? "collapse" : "expand"), f.bind("tap", function() {
  1915.                     f.find("a").first().addClass(a.mobile.activeBtnClass)
  1916.                 }).bind("click", function(a) {
  1917.                     var b = f.is(".ui-collapsible-heading-collapsed") ? "expand" : "collapse";
  1918.                     e.trigger(b), a.preventDefault(), a.stopPropagation()
  1919.                 })
  1920.             }
  1921.         }), a.mobile.document.bind("pagecreate create", function(b) {
  1922.             a.mobile.collapsible.prototype.enhanceWithin(b.target)
  1923.         })
  1924.     }(a),
  1925.     function(a) {
  1926.         a.mobile.behaviors.addFirstLastClasses = {
  1927.             _getVisibles: function(a, b) {
  1928.                 var c;
  1929.                 return b ? c = a.not(".ui-screen-hidden") : (c = a.filter(":visible"), 0 === c.length && (c = a.not(".ui-screen-hidden"))), c
  1930.             },
  1931.             _addFirstLastClasses: function(a, b, c) {
  1932.                 a.removeClass("ui-first-child ui-last-child"), b.eq(0).addClass("ui-first-child").end().last().addClass("ui-last-child"), c || this.element.trigger("updatelayout")
  1933.             }
  1934.         }
  1935.     }(a),
  1936.     function(a, b) {
  1937.         a.widget("mobile.collapsibleset", a.mobile.widget, a.extend({
  1938.             options: {
  1939.                 initSelector: ":jqmData(role='collapsible-set')"
  1940.             },
  1941.             _create: function() {
  1942.                 var c = this.element.addClass("ui-collapsible-set"),
  1943.                     d = this.options;
  1944.                 d.theme || (d.theme = a.mobile.getInheritedTheme(c, "c")), d.contentTheme || (d.contentTheme = c.jqmData("content-theme")), d.corners || (d.corners = c.jqmData("corners")), c.jqmData("inset") !== b && (d.inset = c.jqmData("inset")), d.inset = d.inset !== b ? d.inset : !0, d.corners = d.corners !== b ? d.corners : !0, d.corners && d.inset && c.addClass("ui-corner-all"), c.jqmData("collapsiblebound") || c.jqmData("collapsiblebound", !0).bind("expand", function(b) {
  1945.                     var c = a(b.target).closest(".ui-collapsible");
  1946.                     c.parent().is(":jqmData(role='collapsible-set')") && c.siblings(".ui-collapsible").trigger("collapse")
  1947.                 })
  1948.             },
  1949.             _init: function() {
  1950.                 var a = this.element,
  1951.                     b = a.children(":jqmData(role='collapsible')"),
  1952.                     c = b.filter(":jqmData(collapsed='false')");
  1953.                 this._refresh("true"), c.trigger("expand")
  1954.             },
  1955.             _refresh: function(b) {
  1956.                 var c = this.element.children(":jqmData(role='collapsible')");
  1957.                 a.mobile.collapsible.prototype.enhance(c.not(".ui-collapsible")), this._addFirstLastClasses(c, this._getVisibles(c, b), b)
  1958.             },
  1959.             refresh: function() {
  1960.                 this._refresh(!1)
  1961.             }
  1962.         }, a.mobile.behaviors.addFirstLastClasses)), a.mobile.document.bind("pagecreate create", function(b) {
  1963.             a.mobile.collapsibleset.prototype.enhanceWithin(b.target)
  1964.         })
  1965.     }(a),
  1966.     function(a) {
  1967.         a.fn.fieldcontain = function() {
  1968.             return this.addClass("ui-field-contain ui-body ui-br").contents().filter(function() {
  1969.                 return 3 === this.nodeType && !/\S/.test(this.nodeValue)
  1970.             }).remove()
  1971.         }, a(c).bind("pagecreate create", function(b) {
  1972.             a(":jqmData(role='fieldcontain')", b.target).jqmEnhanceable().fieldcontain()
  1973.         })
  1974.     }(a),
  1975.     function(a) {
  1976.         a.fn.grid = function(b) {
  1977.             return this.each(function() {
  1978.                 var c, d = a(this),
  1979.                     e = a.extend({
  1980.                         grid: null
  1981.                     }, b),
  1982.                     f = d.children(),
  1983.                     g = {
  1984.                         solo: 1,
  1985.                         a: 2,
  1986.                         b: 3,
  1987.                         c: 4,
  1988.                         d: 5
  1989.                     },
  1990.                     h = e.grid;
  1991.                 if (!h)
  1992.                     if (f.length <= 5)
  1993.                         for (var i in g) g[i] === f.length && (h = i);
  1994.                     else h = "a", d.addClass("ui-grid-duo");
  1995.                 c = g[h], d.addClass("ui-grid-" + h), f.filter(":nth-child(" + c + "n+1)").addClass("ui-block-a"), c > 1 && f.filter(":nth-child(" + c + "n+2)").addClass("ui-block-b"), c > 2 && f.filter(":nth-child(" + c + "n+3)").addClass("ui-block-c"), c > 3 && f.filter(":nth-child(" + c + "n+4)").addClass("ui-block-d"), c > 4 && f.filter(":nth-child(" + c + "n+5)").addClass("ui-block-e")
  1996.             })
  1997.         }
  1998.     }(a),
  1999.     function(a, b) {
  2000.         a.widget("mobile.navbar", a.mobile.widget, {
  2001.             options: {
  2002.                 iconpos: "top",
  2003.                 grid: null,
  2004.                 initSelector: ":jqmData(role='navbar')"
  2005.             },
  2006.             _create: function() {
  2007.                 var d = this.element,
  2008.                     e = d.find("a"),
  2009.                     f = e.filter(":jqmData(icon)").length ? this.options.iconpos : b;
  2010.                 d.addClass("ui-navbar ui-mini").attr("role", "navigation").find("ul").jqmEnhanceable().grid({
  2011.                     grid: this.options.grid
  2012.                 }), e.buttonMarkup({
  2013.                     corners: !1,
  2014.                     shadow: !1,
  2015.                     inline: !0,
  2016.                     iconpos: f
  2017.                 }), d.delegate("a", "vclick", function(b) {
  2018.                     var d = a(b.target).is("a") ? a(this) : a(this).parent("a");
  2019.                     if (!d.is(".ui-disabled, .ui-btn-active")) {
  2020.                         e.removeClass(a.mobile.activeBtnClass), a(this).addClass(a.mobile.activeBtnClass);
  2021.                         var f = a(this);
  2022.                         a(c).one("pagehide", function() {
  2023.                             f.removeClass(a.mobile.activeBtnClass)
  2024.                         })
  2025.                     }
  2026.                 }), d.closest(".ui-page").bind("pagebeforeshow", function() {
  2027.                     e.filter(".ui-state-persist").addClass(a.mobile.activeBtnClass)
  2028.                 })
  2029.             }
  2030.         }), a.mobile.document.bind("pagecreate create", function(b) {
  2031.             a.mobile.navbar.prototype.enhanceWithin(b.target)
  2032.         })
  2033.     }(a),
  2034.     function(a) {
  2035.         var b = {};
  2036.         a.widget("mobile.listview", a.mobile.widget, a.extend({
  2037.             options: {
  2038.                 theme: null,
  2039.                 countTheme: "c",
  2040.                 headerTheme: "b",
  2041.                 dividerTheme: "b",
  2042.                 icon: "arrow-r",
  2043.                 splitIcon: "arrow-r",
  2044.                 splitTheme: "b",
  2045.                 corners: !0,
  2046.                 shadow: !0,
  2047.                 inset: !1,
  2048.                 initSelector: ":jqmData(role='listview')"
  2049.             },
  2050.             _create: function() {
  2051.                 var a = this,
  2052.                     b = "";
  2053.                 b += a.options.inset ? " ui-listview-inset" : "", a.options.inset && (b += a.options.corners ? " ui-corner-all" : "", b += a.options.shadow ? " ui-shadow" : ""), a.element.addClass(function(a, c) {
  2054.                     return c + " ui-listview" + b
  2055.                 }), a.refresh(!0)
  2056.             },
  2057.             _findFirstElementByTagName: function(a, b, c, d) {
  2058.                 var e = {};
  2059.                 for (e[c] = e[d] = !0; a;) {
  2060.                     if (e[a.nodeName]) return a;
  2061.                     a = a[b]
  2062.                 }
  2063.                 return null
  2064.             },
  2065.             _getChildrenByTagName: function(b, c, d) {
  2066.                 var e = [],
  2067.                     f = {};
  2068.                 for (f[c] = f[d] = !0, b = b.firstChild; b;) f[b.nodeName] && e.push(b), b = b.nextSibling;
  2069.                 return a(e)
  2070.             },
  2071.             _addThumbClasses: function(b) {
  2072.                 var c, d, e = b.length;
  2073.                 for (c = 0; e > c; c++) d = a(this._findFirstElementByTagName(b[c].firstChild, "nextSibling", "img", "IMG")), d.length && (d.addClass("ui-li-thumb"), a(this._findFirstElementByTagName(d[0].parentNode, "parentNode", "li", "LI")).addClass(d.is(".ui-li-icon") ? "ui-li-has-icon" : "ui-li-has-thumb"))
  2074.             },
  2075.             refresh: function(b) {
  2076.                 this.parentPage = this.element.closest(".ui-page"), this._createSubPages();
  2077.                 var d, e, f, g, h, i, j, k, l, m, n, o, p = this.options,
  2078.                     q = this.element,
  2079.                     r = q.jqmData("dividertheme") || p.dividerTheme,
  2080.                     s = q.jqmData("splittheme"),
  2081.                     t = q.jqmData("spliticon"),
  2082.                     u = q.jqmData("icon"),
  2083.                     v = this._getChildrenByTagName(q[0], "li", "LI"),
  2084.                     w = !!a.nodeName(q[0], "ol"),
  2085.                     x = !a.support.cssPseudoElement,
  2086.                     y = q.attr("start"),
  2087.                     z = {};
  2088.                 w && x && q.find(".ui-li-dec").remove(), w && (y || 0 === y ? x ? j = parseInt(y, 10) : (k = parseInt(y, 10) - 1, q.css("counter-reset", "listnumbering " + k)) : x && (j = 1)), p.theme || (p.theme = a.mobile.getInheritedTheme(this.element, "c"));
  2089.                 for (var A = 0, B = v.length; B > A; A++) {
  2090.                     if (d = v.eq(A), e = "ui-li", b || !d.hasClass("ui-li")) {
  2091.                         f = d.jqmData("theme") || p.theme, g = this._getChildrenByTagName(d[0], "a", "A");
  2092.                         var C = "list-divider" === d.jqmData("role");
  2093.                         g.length && !C ? (n = d.jqmData("icon"), d.buttonMarkup({
  2094.                             wrapperEls: "div",
  2095.                             shadow: !1,
  2096.                             corners: !1,
  2097.                             iconpos: "right",
  2098.                             icon: g.length > 1 || n === !1 ? !1 : n || u || p.icon,
  2099.                             theme: f
  2100.                         }), n !== !1 && 1 === g.length && d.addClass("ui-li-has-arrow"), g.first().removeClass("ui-link").addClass("ui-link-inherit"), g.length > 1 && (e += " ui-li-has-alt", h = g.last(), i = s || h.jqmData("theme") || p.splitTheme, o = h.jqmData("icon"), h.appendTo(d).attr("title", a.trim(h.getEncodedText())).addClass("ui-li-link-alt").empty().buttonMarkup({
  2101.                             shadow: !1,
  2102.                             corners: !1,
  2103.                             theme: f,
  2104.                             icon: !1,
  2105.                             iconpos: "notext"
  2106.                         }).find(".ui-btn-inner").append(a(c.createElement("span")).buttonMarkup({
  2107.                             shadow: !0,
  2108.                             corners: !0,
  2109.                             theme: i,
  2110.                             iconpos: "notext",
  2111.                             icon: o || n || t || p.splitIcon
  2112.                         })))) : C ? (e += " ui-li-divider ui-bar-" + (d.jqmData("theme") || r), d.attr("role", "heading"), w && (y || 0 === y ? x ? j = parseInt(y, 10) : (l = parseInt(y, 10) - 1, d.css("counter-reset", "listnumbering " + l)) : x && (j = 1))) : e += " ui-li-static ui-btn-up-" + f
  2113.                     }
  2114.                     w && x && e.indexOf("ui-li-divider") < 0 && (m = e.indexOf("ui-li-static") > 0 ? d : d.find(".ui-link-inherit"), m.addClass("ui-li-jsnumbering").prepend("<span class='ui-li-dec'>" + j++ + ". </span>")), z[e] || (z[e] = []), z[e].push(d[0])
  2115.                 }
  2116.                 for (e in z) a(z[e]).addClass(e).children(".ui-btn-inner").addClass(e);
  2117.                 q.find("h1, h2, h3, h4, h5, h6").addClass("ui-li-heading").end().find("p, dl").addClass("ui-li-desc").end().find(".ui-li-aside").each(function() {
  2118.                     var b = a(this);
  2119.                     b.prependTo(b.parent())
  2120.                 }).end().find(".ui-li-count").each(function() {
  2121.                     a(this).closest("li").addClass("ui-li-has-count")
  2122.                 }).addClass("ui-btn-up-" + (q.jqmData("counttheme") || this.options.countTheme) + " ui-btn-corner-all"), this._addThumbClasses(v), this._addThumbClasses(q.find(".ui-link-inherit")), this._addFirstLastClasses(v, this._getVisibles(v, b), b), this._trigger("afterrefresh")
  2123.             },
  2124.             _idStringEscape: function(a) {
  2125.                 return a.replace(/[^a-zA-Z0-9]/g, "-")
  2126.             },
  2127.             _createSubPages: function() {
  2128.                 var c, d = this.element,
  2129.                     e = d.closest(".ui-page"),
  2130.                     f = e.jqmData("url"),
  2131.                     g = f || e[0][a.expando],
  2132.                     h = d.attr("id"),
  2133.                     i = this.options,
  2134.                     j = "data-" + a.mobile.ns,
  2135.                     k = this,
  2136.                     l = e.find(":jqmData(role='footer')").jqmData("id");
  2137.                 if ("undefined" == typeof b[g] && (b[g] = -1), h = h || ++b[g], a(d.find("li>ul, li>ol").toArray().reverse()).each(function(b) {
  2138.                         var e, g, k = a(this),
  2139.                             m = k.attr("id") || h + "-" + b,
  2140.                             n = k.parent(),
  2141.                             o = a(k.prevAll().toArray().reverse()),
  2142.                             p = o.length ? o : a("<span>" + a.trim(n.contents()[0].nodeValue) + "</span>"),
  2143.                             q = p.first().getEncodedText(),
  2144.                             r = (f || "") + "&" + a.mobile.subPageUrlKey + "=" + m,
  2145.                             s = k.jqmData("theme") || i.theme,
  2146.                             t = k.jqmData("counttheme") || d.jqmData("counttheme") || i.countTheme;
  2147.                         c = !0, e = k.detach().wrap("<div " + j + "role='page' " + j + "url='" + r + "' " + j + "theme='" + s + "' " + j + "count-theme='" + t + "'><div " + j + "role='content'></div></div>").parent().before("<div " + j + "role='header' " + j + "theme='" + i.headerTheme + "'><div class='ui-title'>" + q + "</div></div>").after(l ? a("<div " + j + "role='footer' " + j + "id='" + l + "'>") : "").parent().appendTo(a.mobile.pageContainer), e.page(), g = n.find("a:first"), g.length || (g = a("<a/>").html(p || q).prependTo(n.empty())), g.attr("href", "#" + r)
  2148.                     }).listview(), c && e.is(":jqmData(external-page='true')") && e.data("mobile-page").options.domCache === !1) {
  2149.                     var m = function(b, c) {
  2150.                         var d, g = c.nextPage,
  2151.                             h = new a.Event("pageremove");
  2152.                         c.nextPage && (d = g.jqmData("url"), 0 !== d.indexOf(f + "&" + a.mobile.subPageUrlKey) && (k.childPages().remove(), e.trigger(h), h.isDefaultPrevented() || e.removeWithDependents()))
  2153.                     };
  2154.                     e.unbind("pagehide.remove").bind("pagehide.remove", m)
  2155.                 }
  2156.             },
  2157.             childPages: function() {
  2158.                 var b = this.parentPage.jqmData("url");
  2159.                 return a(":jqmData(url^='" + b + "&" + a.mobile.subPageUrlKey + "')")
  2160.             }
  2161.         }, a.mobile.behaviors.addFirstLastClasses)), a.mobile.document.bind("pagecreate create", function(b) {
  2162.             a.mobile.listview.prototype.enhanceWithin(b.target)
  2163.         })
  2164.     }(a),
  2165.     function(a) {
  2166.         var b = a("meta[name=viewport]"),
  2167.             c = b.attr("content"),
  2168.             d = c + ",maximum-scale=1, user-scalable=no",
  2169.             e = c + ",maximum-scale=10, user-scalable=yes",
  2170.             f = /(user-scalable[\s]*=[\s]*no)|(maximum-scale[\s]*=[\s]*1)[$,\s]/.test(c);
  2171.         a.mobile.zoom = a.extend({}, {
  2172.             enabled: !f,
  2173.             locked: !1,
  2174.             disable: function(c) {
  2175.                 f || a.mobile.zoom.locked || (b.attr("content", d), a.mobile.zoom.enabled = !1, a.mobile.zoom.locked = c || !1)
  2176.             },
  2177.             enable: function(c) {
  2178.                 f || a.mobile.zoom.locked && c !== !0 || (b.attr("content", e), a.mobile.zoom.enabled = !0, a.mobile.zoom.locked = !1)
  2179.             },
  2180.             restore: function() {
  2181.                 f || (b.attr("content", c), a.mobile.zoom.enabled = !0)
  2182.             }
  2183.         })
  2184.     }(a),
  2185.     function(a) {
  2186.         a.widget("mobile.textinput", a.mobile.widget, {
  2187.             options: {
  2188.                 theme: null,
  2189.                 mini: !1,
  2190.                 preventFocusZoom: /iPhone|iPad|iPod/.test(navigator.platform) && navigator.userAgent.indexOf("AppleWebKit") > -1,
  2191.                 initSelector: "input[type='text'], input[type='search'], :jqmData(type='search'), input[type='number'], :jqmData(type='number'), input[type='password'], input[type='email'], input[type='url'], input[type='tel'], textarea, input[type='time'], input[type='date'], input[type='month'], input[type='week'], input[type='datetime'], input[type='datetime-local'], input[type='color'], input:not([type]), input[type='file']",
  2192.                 clearBtn: !1,
  2193.                 clearSearchButtonText: null,
  2194.                 clearBtnText: "clear text",
  2195.                 disabled: !1
  2196.             },
  2197.             _create: function() {
  2198.                 function b() {
  2199.                     setTimeout(function() {
  2200.                         d.toggleClass("ui-input-clear-hidden", !f.val())
  2201.                     }, 0)
  2202.                 }
  2203.                 var c, d, e = this,
  2204.                     f = this.element,
  2205.                     g = this.options,
  2206.                     h = g.theme || a.mobile.getInheritedTheme(this.element, "c"),
  2207.                     i = " ui-body-" + h,
  2208.                     j = g.mini ? " ui-mini" : "",
  2209.                     k = f.is("[type='search'], :jqmData(type='search')"),
  2210.                     l = g.clearSearchButtonText || g.clearBtnText,
  2211.                     m = f.is("textarea, :jqmData(type='range')"),
  2212.                     n = !!g.clearBtn && !m,
  2213.                     o = f.is("input") && !f.is(":jqmData(type='range')");
  2214.                 if (a("label[for='" + f.attr("id") + "']").addClass("ui-input-text"), c = f.addClass("ui-input-text ui-body-" + h), "undefined" == typeof f[0].autocorrect || a.support.touchOverflow || (f[0].setAttribute("autocorrect", "off"), f[0].setAttribute("autocomplete", "off")), k ? c = f.wrap("<div class='ui-input-search ui-shadow-inset ui-btn-corner-all ui-btn-shadow ui-icon-searchfield" + i + j + "'></div>").parent() : o && (c = f.wrap("<div class='ui-input-text ui-shadow-inset ui-corner-all ui-btn-shadow" + i + j + "'></div>").parent()), n || k ? (d = a("<a href='#' class='ui-input-clear' title='" + l + "'>" + l + "</a>").bind("click", function(a) {
  2215.                         f.val("").focus().trigger("change"), d.addClass("ui-input-clear-hidden"), a.preventDefault()
  2216.                     }).appendTo(c).buttonMarkup({
  2217.                         icon: "delete",
  2218.                         iconpos: "notext",
  2219.                         corners: !0,
  2220.                         shadow: !0,
  2221.                         mini: g.mini
  2222.                     }), k || c.addClass("ui-input-has-clear"), b(), f.bind("paste cut keyup input focus change blur", b)) : o || k || f.addClass("ui-corner-all ui-shadow-inset" + i + j), f.focus(function() {
  2223.                         g.preventFocusZoom && a.mobile.zoom.disable(!0), c.addClass(a.mobile.focusClass)
  2224.                     }).blur(function() {
  2225.                         c.removeClass(a.mobile.focusClass), g.preventFocusZoom && a.mobile.zoom.enable(!0)
  2226.                     }), f.is("textarea")) {
  2227.                     var p, q = 15,
  2228.                         r = 100;
  2229.                     this._keyup = function() {
  2230.                         var a = f[0].scrollHeight,
  2231.                             b = f[0].clientHeight;
  2232.                         if (a > b) {
  2233.                             var c = parseFloat(f.css("padding-top")),
  2234.                                 d = parseFloat(f.css("padding-bottom")),
  2235.                                 e = c + d;
  2236.                             f.height(a - e + q)
  2237.                         }
  2238.                     }, f.on("keyup change input paste", function() {
  2239.                         clearTimeout(p), p = setTimeout(e._keyup, r)
  2240.                     }), this._on(!0, a.mobile.document, {
  2241.                         pagechange: "_keyup"
  2242.                     }), a.trim(f.val()) && this._on(!0, a.mobile.window, {
  2243.                         load: "_keyup"
  2244.                     })
  2245.                 }
  2246.                 f.attr("disabled") && this.disable()
  2247.             },
  2248.             disable: function() {
  2249.                 var a, b = this.element.is("[type='search'], :jqmData(type='search')"),
  2250.                     c = this.element.is("input") && !this.element.is(":jqmData(type='range')"),
  2251.                     d = this.element.attr("disabled", !0) && (c || b);
  2252.                 return a = d ? this.element.parent() : this.element, a.addClass("ui-disabled"), this._setOption("disabled", !0)
  2253.             },
  2254.             enable: function() {
  2255.                 var a, b = this.element.is("[type='search'], :jqmData(type='search')"),
  2256.                     c = this.element.is("input") && !this.element.is(":jqmData(type='range')"),
  2257.                     d = this.element.attr("disabled", !1) && (c || b);
  2258.                 return a = d ? this.element.parent() : this.element, a.removeClass("ui-disabled"), this._setOption("disabled", !1)
  2259.             }
  2260.         }), a.mobile.document.bind("pagecreate create", function(b) {
  2261.             a.mobile.textinput.prototype.enhanceWithin(b.target, !0)
  2262.         })
  2263.     }(a),
  2264.     function(a) {
  2265.         a.mobile.listview.prototype.options.filter = !1, a.mobile.listview.prototype.options.filterPlaceholder = "Filter items...", a.mobile.listview.prototype.options.filterTheme = "c", a.mobile.listview.prototype.options.filterReveal = !1;
  2266.         var b = function(a, b) {
  2267.             return -1 === a.toString().toLowerCase().indexOf(b)
  2268.         };
  2269.         a.mobile.listview.prototype.options.filterCallback = b, a.mobile.document.delegate("ul, ol", "listviewcreate", function() {
  2270.             var c = a(this),
  2271.                 d = c.data("mobile-listview");
  2272.             if (d && d.options.filter) {
  2273.                 d.options.filterReveal && c.children().addClass("ui-screen-hidden");
  2274.                 var e = a("<form>", {
  2275.                         "class": "ui-listview-filter ui-bar-" + d.options.filterTheme,
  2276.                         role: "search"
  2277.                     }).submit(function(a) {
  2278.                         a.preventDefault(), g.blur()
  2279.                     }),
  2280.                     f = function() {
  2281.                         var e, f = a(this),
  2282.                             g = this.value.toLowerCase(),
  2283.                             h = null,
  2284.                             i = c.children(),
  2285.                             j = f.jqmData("lastval") + "",
  2286.                             k = !1,
  2287.                             l = "",
  2288.                             m = d.options.filterCallback !== b;
  2289.                         if (!j || j !== g) {
  2290.                             if (d._trigger("beforefilter", "beforefilter", {
  2291.                                     input: this
  2292.                                 }), f.jqmData("lastval", g), m || g.length < j.length || 0 !== g.indexOf(j) ? h = c.children() : (h = c.children(":not(.ui-screen-hidden)"), !h.length && d.options.filterReveal && (h = c.children(".ui-screen-hidden"))), g) {
  2293.                                 for (var n = h.length - 1; n >= 0; n--) e = a(h[n]), l = e.jqmData("filtertext") || e.text(), e.is("li:jqmData(role=list-divider)") ? (e.toggleClass("ui-filter-hidequeue", !k), k = !1) : d.options.filterCallback(l, g, e) ? e.toggleClass("ui-filter-hidequeue", !0) : k = !0;
  2294.                                 h.filter(":not(.ui-filter-hidequeue)").toggleClass("ui-screen-hidden", !1), h.filter(".ui-filter-hidequeue").toggleClass("ui-screen-hidden", !0).toggleClass("ui-filter-hidequeue", !1)
  2295.                             } else h.toggleClass("ui-screen-hidden", !!d.options.filterReveal);
  2296.                             d._addFirstLastClasses(i, d._getVisibles(i, !1), !1)
  2297.                         }
  2298.                     },
  2299.                     g = a("<input>", {
  2300.                         placeholder: d.options.filterPlaceholder
  2301.                     }).attr("data-" + a.mobile.ns + "type", "search").jqmData("lastval", "").bind("keyup change input", f).appendTo(e).textinput();
  2302.                 d.options.inset && e.addClass("ui-listview-filter-inset"), e.bind("submit", function() {
  2303.                     return !1
  2304.                 }).insertBefore(c)
  2305.             }
  2306.         })
  2307.     }(a),
  2308.     function(a) {
  2309.         a.mobile.listview.prototype.options.autodividers = !1, a.mobile.listview.prototype.options.autodividersSelector = function(b) {
  2310.             var c = a.trim(b.text()) || null;
  2311.             return c ? c = c.slice(0, 1).toUpperCase() : null
  2312.         }, a.mobile.document.delegate("ul,ol", "listviewcreate", function() {
  2313.             var b = a(this),
  2314.                 d = b.data("mobile-listview");
  2315.             if (d && d.options.autodividers) {
  2316.                 var e = function() {
  2317.                         b.find("li:jqmData(role='list-divider')").remove();
  2318.                         for (var e, f, g = b.find("li"), h = null, i = 0; i < g.length; i++) {
  2319.                             if (e = g[i], f = d.options.autodividersSelector(a(e)), f && h !== f) {
  2320.                                 var j = c.createElement("li");
  2321.                                 j.appendChild(c.createTextNode(f)), j.setAttribute("data-" + a.mobile.ns + "role", "list-divider"), e.parentNode.insertBefore(j, e)
  2322.                             }
  2323.                             h = f
  2324.                         }
  2325.                     },
  2326.                     f = function() {
  2327.                         b.unbind("listviewafterrefresh", f), e(), d.refresh(), b.bind("listviewafterrefresh", f)
  2328.                     };
  2329.                 f()
  2330.             }
  2331.         })
  2332.     }(a),
  2333.     function(a) {
  2334.         a(c).bind("pagecreate create", function(b) {
  2335.             a(":jqmData(role='nojs')", b.target).addClass("ui-nojs")
  2336.         })
  2337.     }(a),
  2338.     function(a) {
  2339.         a.mobile.behaviors.formReset = {
  2340.             _handleFormReset: function() {
  2341.                 this._on(this.element.closest("form"), {
  2342.                     reset: function() {
  2343.                         this._delay("_reset")
  2344.                     }
  2345.                 })
  2346.             }
  2347.         }
  2348.     }(a),
  2349.     function(a) {
  2350.         a.widget("mobile.checkboxradio", a.mobile.widget, a.extend({
  2351.             options: {
  2352.                 theme: null,
  2353.                 mini: !1,
  2354.                 initSelector: "input[type='checkbox'],input[type='radio']"
  2355.             },
  2356.             _create: function() {
  2357.                 var b = this,
  2358.                     d = this.element,
  2359.                     e = this.options,
  2360.                     f = function(a, b) {
  2361.                         return a.jqmData(b) || a.closest("form, fieldset").jqmData(b)
  2362.                     },
  2363.                     g = a(d).closest("label"),
  2364.                     h = g.length ? g : a(d).closest("form, fieldset, :jqmData(role='page'), :jqmData(role='dialog')").find("label").filter("[for='" + d[0].id + "']").first(),
  2365.                     i = d[0].type,
  2366.                     j = f(d, "mini") || e.mini,
  2367.                     k = i + "-on",
  2368.                     l = i + "-off",
  2369.                     m = f(d, "iconpos"),
  2370.                     n = "ui-" + k,
  2371.                     o = "ui-" + l;
  2372.                 if ("checkbox" === i || "radio" === i) {
  2373.                     a.extend(this, {
  2374.                         label: h,
  2375.                         inputtype: i,
  2376.                         checkedClass: n,
  2377.                         uncheckedClass: o,
  2378.                         checkedicon: k,
  2379.                         uncheckedicon: l
  2380.                     }), e.theme || (e.theme = a.mobile.getInheritedTheme(this.element, "c")), h.buttonMarkup({
  2381.                         theme: e.theme,
  2382.                         icon: l,
  2383.                         shadow: !1,
  2384.                         mini: j,
  2385.                         iconpos: m
  2386.                     });
  2387.                     var p = c.createElement("div");
  2388.                     p.className = "ui-" + i, d.add(h).wrapAll(p), h.bind({
  2389.                         vmouseover: function(b) {
  2390.                             a(this).parent().is(".ui-disabled") && b.stopPropagation()
  2391.                         },
  2392.                         vclick: function(a) {
  2393.                             return d.is(":disabled") ? (a.preventDefault(), void 0) : (b._cacheVals(), d.prop("checked", "radio" === i && !0 || !d.prop("checked")), d.triggerHandler("click"), b._getInputSet().not(d).prop("checked", !1), b._updateAll(), !1)
  2394.                         }
  2395.                     }), d.bind({
  2396.                         vmousedown: function() {
  2397.                             b._cacheVals()
  2398.                         },
  2399.                         vclick: function() {
  2400.                             var c = a(this);
  2401.                             c.is(":checked") ? (c.prop("checked", !0), b._getInputSet().not(c).prop("checked", !1)) : c.prop("checked", !1), b._updateAll()
  2402.                         },
  2403.                         focus: function() {
  2404.                             h.addClass(a.mobile.focusClass)
  2405.                         },
  2406.                         blur: function() {
  2407.                             h.removeClass(a.mobile.focusClass)
  2408.                         }
  2409.                     }), this._handleFormReset(), this.refresh()
  2410.                 }
  2411.             },
  2412.             _cacheVals: function() {
  2413.                 this._getInputSet().each(function() {
  2414.                     a(this).jqmData("cacheVal", this.checked)
  2415.                 })
  2416.             },
  2417.             _getInputSet: function() {
  2418.                 return "checkbox" === this.inputtype ? this.element : this.element.closest("form, :jqmData(role='page'), :jqmData(role='dialog')").find("input[name='" + this.element[0].name + "'][type='" + this.inputtype + "']")
  2419.             },
  2420.             _updateAll: function() {
  2421.                 var b = this;
  2422.                 this._getInputSet().each(function() {
  2423.                     var c = a(this);
  2424.                     (this.checked || "checkbox" === b.inputtype) && c.trigger("change")
  2425.                 }).checkboxradio("refresh")
  2426.             },
  2427.             _reset: function() {
  2428.                 this.refresh()
  2429.             },
  2430.             refresh: function() {
  2431.                 var b = this.element[0],
  2432.                     c = " " + a.mobile.activeBtnClass,
  2433.                     d = this.checkedClass + (this.element.parents(".ui-controlgroup-horizontal").length ? c : ""),
  2434.                     e = this.label;
  2435.                 b.checked ? e.removeClass(this.uncheckedClass + c).addClass(d).buttonMarkup({
  2436.                     icon: this.checkedicon
  2437.                 }) : e.removeClass(d).addClass(this.uncheckedClass).buttonMarkup({
  2438.                     icon: this.uncheckedicon
  2439.                 }), b.disabled ? this.disable() : this.enable()
  2440.             },
  2441.             disable: function() {
  2442.                 this.element.prop("disabled", !0).parent().addClass("ui-disabled")
  2443.             },
  2444.             enable: function() {
  2445.                 this.element.prop("disabled", !1).parent().removeClass("ui-disabled")
  2446.             }
  2447.         }, a.mobile.behaviors.formReset)), a.mobile.document.bind("pagecreate create", function(b) {
  2448.             a.mobile.checkboxradio.prototype.enhanceWithin(b.target, !0)
  2449.         })
  2450.     }(a),
  2451.     function(a) {
  2452.         a.widget("mobile.button", a.mobile.widget, {
  2453.             options: {
  2454.                 theme: null,
  2455.                 icon: null,
  2456.                 iconpos: null,
  2457.                 corners: !0,
  2458.                 shadow: !0,
  2459.                 iconshadow: !0,
  2460.                 inline: null,
  2461.                 mini: null,
  2462.                 initSelector: "button, [type='button'], [type='submit'], [type='reset']"
  2463.             },
  2464.             _create: function() {
  2465.                 var b, c = this.element,
  2466.                     d = function(a) {
  2467.                         var b, c = {};
  2468.                         for (b in a) null !== a[b] && "initSelector" !== b && (c[b] = a[b]);
  2469.                         return c
  2470.                     }(this.options),
  2471.                     e = "";
  2472.                 return "A" === c[0].tagName ? (c.hasClass("ui-btn") || c.buttonMarkup(), void 0) : (this.options.theme || (this.options.theme = a.mobile.getInheritedTheme(this.element, "c")), ~c[0].className.indexOf("ui-btn-left") && (e = "ui-btn-left"), ~c[0].className.indexOf("ui-btn-right") && (e = "ui-btn-right"), ("submit" === c.attr("type") || "reset" === c.attr("type")) && (e ? e += " ui-submit" : e = "ui-submit"), a("label[for='" + c.attr("id") + "']").addClass("ui-submit"), this.button = a("<div></div>")[c.html() ? "html" : "text"](c.html() || c.val()).insertBefore(c).buttonMarkup(d).addClass(e).append(c.addClass("ui-btn-hidden")), b = this.button, c.bind({
  2473.                     focus: function() {
  2474.                         b.addClass(a.mobile.focusClass)
  2475.                     },
  2476.                     blur: function() {
  2477.                         b.removeClass(a.mobile.focusClass)
  2478.                     }
  2479.                 }), this.refresh(), void 0)
  2480.             },
  2481.             _setOption: function(b, c) {
  2482.                 var d = {};
  2483.                 d[b] = c, "initSelector" !== b && (this.button.buttonMarkup(d), this.element.attr("data-" + (a.mobile.ns || "") + b.replace(/([A-Z])/, "-$1").toLowerCase(), c)), this._super("_setOption", b, c)
  2484.             },
  2485.             enable: function() {
  2486.                 return this.element.attr("disabled", !1), this.button.removeClass("ui-disabled").attr("aria-disabled", !1), this._setOption("disabled", !1)
  2487.             },
  2488.             disable: function() {
  2489.                 return this.element.attr("disabled", !0), this.button.addClass("ui-disabled").attr("aria-disabled", !0), this._setOption("disabled", !0)
  2490.             },
  2491.             refresh: function() {
  2492.                 var b = this.element;
  2493.                 b.prop("disabled") ? this.disable() : this.enable(), a(this.button.data("buttonElements").text)[b.html() ? "html" : "text"](b.html() || b.val())
  2494.             }
  2495.         }), a.mobile.document.bind("pagecreate create", function(b) {
  2496.             a.mobile.button.prototype.enhanceWithin(b.target, !0)
  2497.         })
  2498.     }(a),
  2499.     function(a, d) {
  2500.         a.widget("mobile.slider", a.mobile.widget, a.extend({
  2501.             widgetEventPrefix: "slide",
  2502.             options: {
  2503.                 theme: null,
  2504.                 trackTheme: null,
  2505.                 disabled: !1,
  2506.                 initSelector: "input[type='range'], :jqmData(type='range'), :jqmData(role='slider')",
  2507.                 mini: !1,
  2508.                 highlight: !1
  2509.             },
  2510.             _create: function() {
  2511.                 var e, f, g = this,
  2512.                     h = this.element,
  2513.                     i = a.mobile.getInheritedTheme(h, "c"),
  2514.                     j = this.options.theme || i,
  2515.                     k = this.options.trackTheme || i,
  2516.                     l = h[0].nodeName.toLowerCase(),
  2517.                     m = (this.isToggleSwitch = "select" === l, h.parent().is(":jqmData(role='rangeslider')")),
  2518.                     n = this.isToggleSwitch ? "ui-slider-switch" : "",
  2519.                     o = h.attr("id"),
  2520.                     p = a("[for='" + o + "']"),
  2521.                     q = p.attr("id") || o + "-label",
  2522.                     r = p.attr("id", q),
  2523.                     s = this.isToggleSwitch ? 0 : parseFloat(h.attr("min")),
  2524.                     t = this.isToggleSwitch ? h.find("option").length - 1 : parseFloat(h.attr("max")),
  2525.                     u = b.parseFloat(h.attr("step") || 1),
  2526.                     v = this.options.mini || h.jqmData("mini") ? " ui-mini" : "",
  2527.                     w = c.createElement("a"),
  2528.                     x = a(w),
  2529.                     y = c.createElement("div"),
  2530.                     z = a(y),
  2531.                     A = this.options.highlight && !this.isToggleSwitch ? function() {
  2532.                         var b = c.createElement("div");
  2533.                         return b.className = "ui-slider-bg " + a.mobile.activeBtnClass + " ui-btn-corner-all", a(b).prependTo(z)
  2534.                     }() : !1;
  2535.                 if (w.setAttribute("href", "#"), y.setAttribute("role", "application"), y.className = [this.isToggleSwitch ? "ui-slider " : "ui-slider-track ", n, " ui-btn-down-", k, " ui-btn-corner-all", v].join(""), w.className = "ui-slider-handle", y.appendChild(w), x.buttonMarkup({
  2536.                         corners: !0,
  2537.                         theme: j,
  2538.                         shadow: !0
  2539.                     }).attr({
  2540.                         role: "slider",
  2541.                         "aria-valuemin": s,
  2542.                         "aria-valuemax": t,
  2543.                         "aria-valuenow": this._value(),
  2544.                         "aria-valuetext": this._value(),
  2545.                         title: this._value(),
  2546.                         "aria-labelledby": q
  2547.                     }), a.extend(this, {
  2548.                         slider: z,
  2549.                         handle: x,
  2550.                         type: l,
  2551.                         step: u,
  2552.                         max: t,
  2553.                         min: s,
  2554.                         valuebg: A,
  2555.                         isRangeslider: m,
  2556.                         dragging: !1,
  2557.                         beforeStart: null,
  2558.                         userModified: !1,
  2559.                         mouseMoved: !1
  2560.                     }), this.isToggleSwitch) {
  2561.                     f = c.createElement("div"), f.className = "ui-slider-inneroffset";
  2562.                     for (var B = 0, C = y.childNodes.length; C > B; B++) f.appendChild(y.childNodes[B]);
  2563.                     y.appendChild(f), x.addClass("ui-slider-handle-snapping"), e = h.find("option");
  2564.                     for (var D = 0, E = e.length; E > D; D++) {
  2565.                         var F = D ? "a" : "b",
  2566.                             G = D ? " " + a.mobile.activeBtnClass : " ui-btn-down-" + k,
  2567.                             H = (c.createElement("div"), c.createElement("span"));
  2568.                         H.className = ["ui-slider-label ui-slider-label-", F, G, " ui-btn-corner-all"].join(""), H.setAttribute("role", "img"), H.appendChild(c.createTextNode(e[D].innerHTML)), a(H).prependTo(z)
  2569.                     }
  2570.                     g._labels = a(".ui-slider-label", z)
  2571.                 }
  2572.                 r.addClass("ui-slider"), h.addClass(this.isToggleSwitch ? "ui-slider-switch" : "ui-slider-input"), this._on(h, {
  2573.                     change: "_controlChange",
  2574.                     keyup: "_controlKeyup",
  2575.                     blur: "_controlBlur",
  2576.                     vmouseup: "_controlVMouseUp"
  2577.                 }), z.bind("vmousedown", a.proxy(this._sliderVMouseDown, this)).bind("vclick", !1), this._on(c, {
  2578.                     vmousemove: "_preventDocumentDrag"
  2579.                 }), this._on(z.add(c), {
  2580.                     vmouseup: "_sliderVMouseUp"
  2581.                 }), z.insertAfter(h), this.isToggleSwitch || m || (f = this.options.mini ? "<div class='ui-slider ui-mini'>" : "<div class='ui-slider'>", h.add(z).wrapAll(f)), this.isToggleSwitch && this.handle.bind({
  2582.                     focus: function() {
  2583.                         z.addClass(a.mobile.focusClass)
  2584.                     },
  2585.                     blur: function() {
  2586.                         z.removeClass(a.mobile.focusClass)
  2587.                     }
  2588.                 }), this._on(this.handle, {
  2589.                     vmousedown: "_handleVMouseDown",
  2590.                     keydown: "_handleKeydown",
  2591.                     keyup: "_handleKeyup"
  2592.                 }), this.handle.bind("vclick", !1), this._handleFormReset(), this.refresh(d, d, !0)
  2593.             },
  2594.             _controlChange: function(a) {
  2595.                 return this._trigger("controlchange", a) === !1 ? !1 : (this.mouseMoved || this.refresh(this._value(), !0), void 0)
  2596.             },
  2597.             _controlKeyup: function() {
  2598.                 this.refresh(this._value(), !0, !0)
  2599.             },
  2600.             _controlBlur: function() {
  2601.                 this.refresh(this._value(), !0)
  2602.             },
  2603.             _controlVMouseUp: function() {
  2604.                 this._checkedRefresh()
  2605.             },
  2606.             _handleVMouseDown: function() {
  2607.                 this.handle.focus()
  2608.             },
  2609.             _handleKeydown: function(b) {
  2610.                 var c = this._value();
  2611.                 if (!this.options.disabled) {
  2612.                     switch (b.keyCode) {
  2613.                         case a.mobile.keyCode.HOME:
  2614.                         case a.mobile.keyCode.END:
  2615.                         case a.mobile.keyCode.PAGE_UP:
  2616.                         case a.mobile.keyCode.PAGE_DOWN:
  2617.                         case a.mobile.keyCode.UP:
  2618.                         case a.mobile.keyCode.RIGHT:
  2619.                         case a.mobile.keyCode.DOWN:
  2620.                         case a.mobile.keyCode.LEFT:
  2621.                             b.preventDefault(), this._keySliding || (this._keySliding = !0, this.handle.addClass("ui-state-active"))
  2622.                     }
  2623.                     switch (b.keyCode) {
  2624.                         case a.mobile.keyCode.HOME:
  2625.                             this.refresh(this.min);
  2626.                             break;
  2627.                         case a.mobile.keyCode.END:
  2628.                             this.refresh(this.max);
  2629.                             break;
  2630.                         case a.mobile.keyCode.PAGE_UP:
  2631.                         case a.mobile.keyCode.UP:
  2632.                         case a.mobile.keyCode.RIGHT:
  2633.                             this.refresh(c + this.step);
  2634.                             break;
  2635.                         case a.mobile.keyCode.PAGE_DOWN:
  2636.                         case a.mobile.keyCode.DOWN:
  2637.                         case a.mobile.keyCode.LEFT:
  2638.                             this.refresh(c - this.step)
  2639.                     }
  2640.                 }
  2641.             },
  2642.             _handleKeyup: function() {
  2643.                 this._keySliding && (this._keySliding = !1, this.handle.removeClass("ui-state-active"))
  2644.             },
  2645.             _sliderVMouseDown: function(a) {
  2646.                 return this.options.disabled || 1 !== a.which && 0 !== a.which && a.which !== d ? !1 : this._trigger("beforestart", a) === !1 ? !1 : (this.dragging = !0, this.userModified = !1, this.mouseMoved = !1, this.isToggleSwitch && (this.beforeStart = this.element[0].selectedIndex), this.refresh(a), this._trigger("start"), !1)
  2647.             },
  2648.             _sliderVMouseUp: function() {
  2649.                 return this.dragging ? (this.dragging = !1, this.isToggleSwitch && (this.handle.addClass("ui-slider-handle-snapping"), this.mouseMoved ? this.userModified ? this.refresh(0 === this.beforeStart ? 1 : 0) : this.refresh(this.beforeStart) : this.refresh(0 === this.beforeStart ? 1 : 0)), this.mouseMoved = !1, this._trigger("stop"), !1) : void 0
  2650.             },
  2651.             _preventDocumentDrag: function(a) {
  2652.                 return this._trigger("drag", a) === !1 ? !1 : this.dragging && !this.options.disabled ? (this.mouseMoved = !0, this.isToggleSwitch && this.handle.removeClass("ui-slider-handle-snapping"), this.refresh(a), this.userModified = this.beforeStart !== this.element[0].selectedIndex, !1) : void 0
  2653.             },
  2654.             _checkedRefresh: function() {
  2655.                 this.value !== this._value() && this.refresh(this._value())
  2656.             },
  2657.             _value: function() {
  2658.                 return this.isToggleSwitch ? this.element[0].selectedIndex : parseFloat(this.element.val())
  2659.             },
  2660.             _reset: function() {
  2661.                 this.refresh(d, !1, !0)
  2662.             },
  2663.             refresh: function(b, d, e) {
  2664.                 var f, g, h, i, j = this,
  2665.                     k = a.mobile.getInheritedTheme(this.element, "c"),
  2666.                     l = this.options.theme || k,
  2667.                     m = this.options.trackTheme || k;
  2668.                 j.slider[0].className = [this.isToggleSwitch ? "ui-slider ui-slider-switch" : "ui-slider-track", " ui-btn-down-" + m, " ui-btn-corner-all", this.options.mini ? " ui-mini" : ""].join(""), (this.options.disabled || this.element.attr("disabled")) && this.disable(), this.value = this._value(), this.options.highlight && !this.isToggleSwitch && 0 === this.slider.find(".ui-slider-bg").length && (this.valuebg = function() {
  2669.                     var b = c.createElement("div");
  2670.                     return b.className = "ui-slider-bg " + a.mobile.activeBtnClass + " ui-btn-corner-all", a(b).prependTo(j.slider)
  2671.                 }()), this.handle.buttonMarkup({
  2672.                     corners: !0,
  2673.                     theme: l,
  2674.                     shadow: !0
  2675.                 });
  2676.                 var n, o, p = this.element,
  2677.                     q = !this.isToggleSwitch,
  2678.                     r = q ? [] : p.find("option"),
  2679.                     s = q ? parseFloat(p.attr("min")) : 0,
  2680.                     t = q ? parseFloat(p.attr("max")) : r.length - 1,
  2681.                     u = q && parseFloat(p.attr("step")) > 0 ? parseFloat(p.attr("step")) : 1;
  2682.                 if ("object" == typeof b) {
  2683.                     if (h = b, i = 8, f = this.slider.offset().left, g = this.slider.width(), n = g / ((t - s) / u), !this.dragging || h.pageX < f - i || h.pageX > f + g + i) return;
  2684.                     o = n > 1 ? 100 * ((h.pageX - f) / g) : Math.round(100 * ((h.pageX - f) / g))
  2685.                 } else null == b && (b = q ? parseFloat(p.val() || 0) : p[0].selectedIndex), o = 100 * ((parseFloat(b) - s) / (t - s));
  2686.                 if (!isNaN(o)) {
  2687.                     var v = o / 100 * (t - s) + s,
  2688.                         w = (v - s) % u,
  2689.                         x = v - w;
  2690.                     2 * Math.abs(w) >= u && (x += w > 0 ? u : -u);
  2691.                     var y = 100 / ((t - s) / u);
  2692.                     if (v = parseFloat(x.toFixed(5)), "undefined" == typeof n && (n = g / ((t - s) / u)), n > 1 && q && (o = (v - s) * y * (1 / u)), 0 > o && (o = 0), o > 100 && (o = 100), s > v && (v = s), v > t && (v = t), this.handle.css("left", o + "%"), this.handle[0].setAttribute("aria-valuenow", q ? v : r.eq(v).attr("value")), this.handle[0].setAttribute("aria-valuetext", q ? v : r.eq(v).getEncodedText()), this.handle[0].setAttribute("title", q ? v : r.eq(v).getEncodedText()), this.valuebg && this.valuebg.css("width", o + "%"), this._labels) {
  2693.                         var z = 100 * (this.handle.width() / this.slider.width()),
  2694.                             A = o && z + (100 - z) * o / 100,
  2695.                             B = 100 === o ? 0 : Math.min(z + 100 - A, 100);
  2696.                         this._labels.each(function() {
  2697.                             var b = a(this).is(".ui-slider-label-a");
  2698.                             a(this).width((b ? A : B) + "%")
  2699.                         })
  2700.                     }
  2701.                     if (!e) {
  2702.                         var C = !1;
  2703.                         if (q ? (C = p.val() !== v, p.val(v)) : (C = p[0].selectedIndex !== v, p[0].selectedIndex = v), this._trigger("beforechange", b) === !1) return !1;
  2704.                         !d && C && p.trigger("change")
  2705.                     }
  2706.                 }
  2707.             },
  2708.             enable: function() {
  2709.                 return this.element.attr("disabled", !1), this.slider.removeClass("ui-disabled").attr("aria-disabled", !1), this._setOption("disabled", !1)
  2710.             },
  2711.             disable: function() {
  2712.                 return this.element.attr("disabled", !0), this.slider.addClass("ui-disabled").attr("aria-disabled", !0), this._setOption("disabled", !0)
  2713.             }
  2714.         }, a.mobile.behaviors.formReset)), a.mobile.document.bind("pagecreate create", function(b) {
  2715.             a.mobile.slider.prototype.enhanceWithin(b.target, !0)
  2716.         })
  2717.     }(a),
  2718.     function(a) {
  2719.         a.widget("mobile.rangeslider", a.mobile.widget, {
  2720.             options: {
  2721.                 theme: null,
  2722.                 trackTheme: null,
  2723.                 disabled: !1,
  2724.                 initSelector: ":jqmData(role='rangeslider')",
  2725.                 mini: !1,
  2726.                 highlight: !0
  2727.             },
  2728.             _create: function() {
  2729.                 var b, c = this.element,
  2730.                     d = this.options.mini ? "ui-rangeslider ui-mini" : "ui-rangeslider",
  2731.                     e = c.find("input").first(),
  2732.                     f = c.find("input").last(),
  2733.                     g = c.find("label").first(),
  2734.                     h = a.data(e.get(0), "mobileSlider").slider,
  2735.                     i = a.data(f.get(0), "mobileSlider").slider,
  2736.                     j = a.data(e.get(0), "mobileSlider").handle,
  2737.                     k = a('<div class="ui-rangeslider-sliders" />').appendTo(c);
  2738.                 c.find("label").length > 1 && (b = c.find("label").last().hide()), e.addClass("ui-rangeslider-first"), f.addClass("ui-rangeslider-last"), c.addClass(d), h.appendTo(k), i.appendTo(k), g.prependTo(c), j.prependTo(i), a.extend(this, {
  2739.                     _inputFirst: e,
  2740.                     _inputLast: f,
  2741.                     _sliderFirst: h,
  2742.                     _sliderLast: i,
  2743.                     _targetVal: null,
  2744.                     _sliderTarget: !1,
  2745.                     _sliders: k,
  2746.                     _proxy: !1
  2747.                 }), this.refresh(), this._on(this.element.find("input.ui-slider-input"), {
  2748.                     slidebeforestart: "_slidebeforestart",
  2749.                     slidestop: "_slidestop",
  2750.                     slidedrag: "_slidedrag",
  2751.                     slidebeforechange: "_change",
  2752.                     blur: "_change",
  2753.                     keyup: "_change"
  2754.                 }), this._on({
  2755.                     mousedown: "_change"
  2756.                 }), this._on(this.element.closest("form"), {
  2757.                     reset: "_handleReset"
  2758.                 }), this._on(j, {
  2759.                     vmousedown: "_dragFirstHandle"
  2760.                 })
  2761.             },
  2762.             _handleReset: function() {
  2763.                 var a = this;
  2764.                 setTimeout(function() {
  2765.                     a._updateHighlight()
  2766.                 }, 0)
  2767.             },
  2768.             _dragFirstHandle: function(b) {
  2769.                 return a.data(this._inputFirst.get(0), "mobileSlider").dragging = !0, a.data(this._inputFirst.get(0), "mobileSlider").refresh(b), !1
  2770.             },
  2771.             _slidedrag: function(b) {
  2772.                 var c = a(b.target).is(this._inputFirst),
  2773.                     d = c ? this._inputLast : this._inputFirst;
  2774.                 return this._sliderTarget = !1, "first" === this._proxy && c || "last" === this._proxy && !c ? (a.data(d.get(0), "mobileSlider").dragging = !0, a.data(d.get(0), "mobileSlider").refresh(b), !1) : void 0
  2775.             },
  2776.             _slidestop: function(b) {
  2777.                 var c = a(b.target).is(this._inputFirst);
  2778.                 this._proxy = !1, this.element.find("input").trigger("vmouseup"), this._sliderFirst.css("z-index", c ? 1 : "")
  2779.             },
  2780.             _slidebeforestart: function(b) {
  2781.                 this._sliderTarget = !1, a(b.originalEvent.target).hasClass("ui-slider-track") && (this._sliderTarget = !0, this._targetVal = a(b.target).val())
  2782.             },
  2783.             _setOption: function(a) {
  2784.                 this._superApply(a), this.refresh()
  2785.             },
  2786.             refresh: function() {
  2787.                 var a = this.element,
  2788.                     b = this.options;
  2789.                 a.find("input").slider({
  2790.                     theme: b.theme,
  2791.                     trackTheme: b.trackTheme,
  2792.                     disabled: b.disabled,
  2793.                     mini: b.mini,
  2794.                     highlight: b.highlight
  2795.                 }).slider("refresh"), this._updateHighlight()
  2796.             },
  2797.             _change: function(b) {
  2798.                 if ("keyup" === b.type) return this._updateHighlight(), !1;
  2799.                 var c = this,
  2800.                     d = parseFloat(this._inputFirst.val(), 10),
  2801.                     e = parseFloat(this._inputLast.val(), 10),
  2802.                     f = a(b.target).hasClass("ui-rangeslider-first"),
  2803.                     g = f ? this._inputFirst : this._inputLast,
  2804.                     h = f ? this._inputLast : this._inputFirst;
  2805.                 if (this._inputFirst.val() > this._inputLast.val() && "mousedown" === b.type && !a(b.target).hasClass("ui-slider-handle")) g.blur();
  2806.                 else if ("mousedown" === b.type) return;
  2807.                 return d > e && !this._sliderTarget ? (g.val(f ? e : d).slider("refresh"), this._trigger("normalize")) : d > e && (g.val(this._targetVal).slider("refresh"), setTimeout(function() {
  2808.                     h.val(f ? d : e).slider("refresh"), a.data(h.get(0), "mobileSlider").handle.focus(), c._sliderFirst.css("z-index", f ? "" : 1), c._trigger("normalize")
  2809.                 }, 0), this._proxy = f ? "first" : "last"), d === e ? (a.data(g.get(0), "mobileSlider").handle.css("z-index", 1), a.data(h.get(0), "mobileSlider").handle.css("z-index", 0)) : (a.data(h.get(0), "mobileSlider").handle.css("z-index", ""), a.data(g.get(0), "mobileSlider").handle.css("z-index", "")), this._updateHighlight(), d >= e ? !1 : void 0
  2810.             },
  2811.             _updateHighlight: function() {
  2812.                 var b = parseInt(a.data(this._inputFirst.get(0), "mobileSlider").handle.get(0).style.left, 10),
  2813.                     c = parseInt(a.data(this._inputLast.get(0), "mobileSlider").handle.get(0).style.left, 10),
  2814.                     d = c - b;
  2815.                 this.element.find(".ui-slider-bg").css({
  2816.                     "margin-left": b + "%",
  2817.                     width: d + "%"
  2818.                 })
  2819.             },
  2820.             _destroy: function() {
  2821.                 this.element.removeClass("ui-rangeslider ui-mini").find("label").show(), this._inputFirst.after(this._sliderFirst), this._inputLast.after(this._sliderLast), this._sliders.remove(), this.element.find("input").removeClass("ui-rangeslider-first ui-rangeslider-last").slider("destroy")
  2822.             }
  2823.         }), a.widget("mobile.rangeslider", a.mobile.rangeslider, a.mobile.behaviors.formReset), a(c).bind("pagecreate create", function(b) {
  2824.             a.mobile.rangeslider.prototype.enhanceWithin(b.target, !0)
  2825.         })
  2826.     }(a),
  2827.     function(a) {
  2828.         a.widget("mobile.selectmenu", a.mobile.widget, a.extend({
  2829.             options: {
  2830.                 theme: null,
  2831.                 disabled: !1,
  2832.                 icon: "arrow-d",
  2833.                 iconpos: "right",
  2834.                 inline: !1,
  2835.                 corners: !0,
  2836.                 shadow: !0,
  2837.                 iconshadow: !0,
  2838.                 overlayTheme: "a",
  2839.                 dividerTheme: "b",
  2840.                 hidePlaceholderMenuItems: !0,
  2841.                 closeText: "Close",
  2842.                 nativeMenu: !0,
  2843.                 preventFocusZoom: /iPhone|iPad|iPod/.test(navigator.platform) && navigator.userAgent.indexOf("AppleWebKit") > -1,
  2844.                 initSelector: "select:not( :jqmData(role='slider') )",
  2845.                 mini: !1
  2846.             },
  2847.             _button: function() {
  2848.                 return a("<div/>")
  2849.             },
  2850.             _setDisabled: function(a) {
  2851.                 return this.element.attr("disabled", a), this.button.attr("aria-disabled", a), this._setOption("disabled", a)
  2852.             },
  2853.             _focusButton: function() {
  2854.                 var a = this;
  2855.                 setTimeout(function() {
  2856.                     a.button.focus()
  2857.                 }, 40)
  2858.             },
  2859.             _selectOptions: function() {
  2860.                 return this.select.find("option")
  2861.             },
  2862.             _preExtension: function() {
  2863.                 var b = "";
  2864.                 ~this.element[0].className.indexOf("ui-btn-left") && (b = " ui-btn-left"), ~this.element[0].className.indexOf("ui-btn-right") && (b = " ui-btn-right"), this.select = this.element.removeClass("ui-btn-left ui-btn-right").wrap("<div class='ui-select" + b + "'>"), this.selectID = this.select.attr("id"), this.label = a("label[for='" + this.selectID + "']").addClass("ui-select"), this.isMultiple = this.select[0].multiple, this.options.theme || (this.options.theme = a.mobile.getInheritedTheme(this.select, "c"))
  2865.             },
  2866.             _destroy: function() {
  2867.                 var a = this.element.parents(".ui-select");
  2868.                 a.length > 0 && (a.is(".ui-btn-left, .ui-btn-right") && this.element.addClass(a.is(".ui-btn-left") ? "ui-btn-left" : "ui-btn-right"), this.element.insertAfter(a), a.remove())
  2869.             },
  2870.             _create: function() {
  2871.                 this._preExtension(), this._trigger("beforeCreate"), this.button = this._button();
  2872.                 var c = this,
  2873.                     d = this.options,
  2874.                     e = d.inline || this.select.jqmData("inline"),
  2875.                     f = d.mini || this.select.jqmData("mini"),
  2876.                     g = d.icon ? d.iconpos || this.select.jqmData("iconpos") : !1,
  2877.                     h = (-1 === this.select[0].selectedIndex ? 0 : this.select[0].selectedIndex, this.button.insertBefore(this.select).buttonMarkup({
  2878.                         theme: d.theme,
  2879.                         icon: d.icon,
  2880.                         iconpos: g,
  2881.                         inline: e,
  2882.                         corners: d.corners,
  2883.                         shadow: d.shadow,
  2884.                         iconshadow: d.iconshadow,
  2885.                         mini: f
  2886.                     }));
  2887.                 this.setButtonText(), d.nativeMenu && b.opera && b.opera.version && h.addClass("ui-select-nativeonly"), this.isMultiple && (this.buttonCount = a("<span>").addClass("ui-li-count ui-btn-up-c ui-btn-corner-all").hide().appendTo(h.addClass("ui-li-has-count"))), (d.disabled || this.element.attr("disabled")) && this.disable(), this.select.change(function() {
  2888.                     c.refresh(), d.nativeMenu && this.blur()
  2889.                 }), this._handleFormReset(), this.build()
  2890.             },
  2891.             build: function() {
  2892.                 var b = this;
  2893.                 this.select.appendTo(b.button).bind("vmousedown", function() {
  2894.                     b.button.addClass(a.mobile.activeBtnClass)
  2895.                 }).bind("focus", function() {
  2896.                     b.button.addClass(a.mobile.focusClass)
  2897.                 }).bind("blur", function() {
  2898.                     b.button.removeClass(a.mobile.focusClass)
  2899.                 }).bind("focus vmouseover", function() {
  2900.                     b.button.trigger("vmouseover")
  2901.                 }).bind("vmousemove", function() {
  2902.                     b.button.removeClass(a.mobile.activeBtnClass)
  2903.                 }).bind("change blur vmouseout", function() {
  2904.                     b.button.trigger("vmouseout").removeClass(a.mobile.activeBtnClass)
  2905.                 }).bind("change blur", function() {
  2906.                     b.button.removeClass("ui-btn-down-" + b.options.theme)
  2907.                 }), b.button.bind("vmousedown", function() {
  2908.                     b.options.preventFocusZoom && a.mobile.zoom.disable(!0)
  2909.                 }), b.label.bind("click focus", function() {
  2910.                     b.options.preventFocusZoom && a.mobile.zoom.disable(!0)
  2911.                 }), b.select.bind("focus", function() {
  2912.                     b.options.preventFocusZoom && a.mobile.zoom.disable(!0)
  2913.                 }), b.button.bind("mouseup", function() {
  2914.                     b.options.preventFocusZoom && setTimeout(function() {
  2915.                         a.mobile.zoom.enable(!0)
  2916.                     }, 0)
  2917.                 }), b.select.bind("blur", function() {
  2918.                     b.options.preventFocusZoom && a.mobile.zoom.enable(!0)
  2919.                 })
  2920.             },
  2921.             selected: function() {
  2922.                 return this._selectOptions().filter(":selected")
  2923.             },
  2924.             selectedIndices: function() {
  2925.                 var a = this;
  2926.                 return this.selected().map(function() {
  2927.                     return a._selectOptions().index(this)
  2928.                 }).get()
  2929.             },
  2930.             setButtonText: function() {
  2931.                 var b = this,
  2932.                     d = this.selected(),
  2933.                     e = this.placeholder,
  2934.                     f = a(c.createElement("span"));
  2935.                 this.button.find(".ui-btn-text").html(function() {
  2936.                     return e = d.length ? d.map(function() {
  2937.                         return a(this).text()
  2938.                     }).get().join(", ") : b.placeholder, f.text(e).addClass(b.select.attr("class")).addClass(d.attr("class"))
  2939.                 })
  2940.             },
  2941.             setButtonCount: function() {
  2942.                 var a = this.selected();
  2943.                 this.isMultiple && this.buttonCount[a.length > 1 ? "show" : "hide"]().text(a.length)
  2944.             },
  2945.             _reset: function() {
  2946.                 this.refresh()
  2947.             },
  2948.             refresh: function() {
  2949.                 this.setButtonText(), this.setButtonCount()
  2950.             },
  2951.             open: a.noop,
  2952.             close: a.noop,
  2953.             disable: function() {
  2954.                 this._setDisabled(!0), this.button.addClass("ui-disabled")
  2955.             },
  2956.             enable: function() {
  2957.                 this._setDisabled(!1), this.button.removeClass("ui-disabled")
  2958.             }
  2959.         }, a.mobile.behaviors.formReset)), a.mobile.document.bind("pagecreate create", function(b) {
  2960.             a.mobile.selectmenu.prototype.enhanceWithin(b.target, !0)
  2961.         })
  2962.     }(a),
  2963.     function(a, d) {
  2964.         function e(a, b, c, d) {
  2965.             var e = d;
  2966.             return e = b > a ? c + (a - b) / 2 : Math.min(Math.max(c, d - b / 2), c + a - b)
  2967.         }
  2968.  
  2969.         function f() {
  2970.             var c = a.mobile.window;
  2971.             return {
  2972.                 x: c.scrollLeft(),
  2973.                 y: c.scrollTop(),
  2974.                 cx: b.innerWidth || c.width(),
  2975.                 cy: b.innerHeight || c.height()
  2976.             }
  2977.         }
  2978.         a.widget("mobile.popup", a.mobile.widget, {
  2979.             options: {
  2980.                 theme: null,
  2981.                 overlayTheme: null,
  2982.                 shadow: !0,
  2983.                 corners: !0,
  2984.                 transition: "none",
  2985.                 positionTo: "origin",
  2986.                 tolerance: null,
  2987.                 initSelector: ":jqmData(role='popup')",
  2988.                 closeLinkSelector: "a:jqmData(rel='back')",
  2989.                 closeLinkEvents: "click.popup",
  2990.                 navigateEvents: "navigate.popup",
  2991.                 closeEvents: "navigate.popup pagebeforechange.popup",
  2992.                 dismissible: !0,
  2993.                 history: !a.mobile.browser.oldIE
  2994.             },
  2995.             _eatEventAndClose: function(a) {
  2996.                 return a.preventDefault(), a.stopImmediatePropagation(), this.options.dismissible && this.close(), !1
  2997.             },
  2998.             _resizeScreen: function() {
  2999.                 var a = this._ui.container.outerHeight(!0);
  3000.                 this._ui.screen.removeAttr("style"), a > this._ui.screen.height() && this._ui.screen.height(a)
  3001.             },
  3002.             _handleWindowKeyUp: function(b) {
  3003.                 return this._isOpen && b.keyCode === a.mobile.keyCode.ESCAPE ? this._eatEventAndClose(b) : void 0
  3004.             },
  3005.             _expectResizeEvent: function() {
  3006.                 var b = f();
  3007.                 if (this._resizeData) {
  3008.                     if (b.x === this._resizeData.winCoords.x && b.y === this._resizeData.winCoords.y && b.cx === this._resizeData.winCoords.cx && b.cy === this._resizeData.winCoords.cy) return !1;
  3009.                     clearTimeout(this._resizeData.timeoutId)
  3010.                 }
  3011.                 return this._resizeData = {
  3012.                     timeoutId: setTimeout(a.proxy(this, "_resizeTimeout"), 200),
  3013.                     winCoords: b
  3014.                 }, !0
  3015.             },
  3016.             _resizeTimeout: function() {
  3017.                 this._isOpen ? this._expectResizeEvent() || (this._ui.container.hasClass("ui-popup-hidden") && (this._ui.container.removeClass("ui-popup-hidden"), this.reposition({
  3018.                     positionTo: "window"
  3019.                 }), this._ignoreResizeEvents()), this._resizeScreen(), this._resizeData = null, this._orientationchangeInProgress = !1) : (this._resizeData = null, this._orientationchangeInProgress = !1)
  3020.             },
  3021.             _ignoreResizeEvents: function() {
  3022.                 var a = this;
  3023.                 this._ignoreResizeTo && clearTimeout(this._ignoreResizeTo), this._ignoreResizeTo = setTimeout(function() {
  3024.                     a._ignoreResizeTo = 0
  3025.                 }, 1e3)
  3026.             },
  3027.             _handleWindowResize: function() {
  3028.                 this._isOpen && 0 === this._ignoreResizeTo && (!this._expectResizeEvent() && !this._orientationchangeInProgress || this._ui.container.hasClass("ui-popup-hidden") || this._ui.container.addClass("ui-popup-hidden").removeAttr("style"))
  3029.             },
  3030.             _handleWindowOrientationchange: function() {
  3031.                 !this._orientationchangeInProgress && this._isOpen && 0 === this._ignoreResizeTo && (this._expectResizeEvent(), this._orientationchangeInProgress = !0)
  3032.             },
  3033.             _handleDocumentFocusIn: function(b) {
  3034.                 var d, e = b.target,
  3035.                     f = this._ui;
  3036.                 if (this._isOpen) {
  3037.                     if (e !== f.container[0]) {
  3038.                         if (d = a(b.target), 0 === d.parents().filter(f.container[0]).length) return a(c.activeElement).one("focus", function() {
  3039.                             d.blur()
  3040.                         }), f.focusElement.focus(), b.preventDefault(), b.stopImmediatePropagation(), !1;
  3041.                         f.focusElement[0] === f.container[0] && (f.focusElement = d)
  3042.                     }
  3043.                     this._ignoreResizeEvents()
  3044.                 }
  3045.             },
  3046.             _create: function() {
  3047.                 var b = {
  3048.                         screen: a("<div class='ui-screen-hidden ui-popup-screen'></div>"),
  3049.                         placeholder: a("<div style='display: none;'><!-- placeholder --></div>"),
  3050.                         container: a("<div class='ui-popup-container ui-popup-hidden'></div>")
  3051.                     },
  3052.                     c = this.element.closest(".ui-page"),
  3053.                     d = this.element.attr("id"),
  3054.                     e = this.options;
  3055.                 e.history = e.history && a.mobile.ajaxEnabled && a.mobile.hashListeningEnabled, 0 === c.length && (c = a("body")), e.container = e.container || a.mobile.pageContainer || c, c.append(b.screen), b.container.insertAfter(b.screen), b.placeholder.insertAfter(this.element), d && (b.screen.attr("id", d + "-screen"), b.container.attr("id", d + "-popup"), b.placeholder.html("<!-- placeholder for " + d + " -->")), b.container.append(this.element), b.focusElement = b.container, this.element.addClass("ui-popup"), a.extend(this, {
  3056.                     _scrollTop: 0,
  3057.                     _page: c,
  3058.                     _ui: b,
  3059.                     _fallbackTransition: "",
  3060.                     _currentTransition: !1,
  3061.                     _prereqs: null,
  3062.                     _isOpen: !1,
  3063.                     _tolerance: null,
  3064.                     _resizeData: null,
  3065.                     _ignoreResizeTo: 0,
  3066.                     _orientationchangeInProgress: !1
  3067.                 }), this._applyTheme(this.element, e.theme, "body"), this._applyTheme(this._ui.screen, e.overlayTheme, "overlay"), this._applyTransition(e.transition), this.element.toggleClass("ui-overlay-shadow", e.shadow).toggleClass("ui-corner-all", e.corners), this._setTolerance(e.tolerance), b.screen.bind("vclick", a.proxy(this, "_eatEventAndClose")), this._on(a.mobile.window, {
  3068.                     orientationchange: a.proxy(this, "_handleWindowOrientationchange"),
  3069.                     resize: a.proxy(this, "_handleWindowResize"),
  3070.                     keyup: a.proxy(this, "_handleWindowKeyUp")
  3071.                 }), this._on(a.mobile.document, {
  3072.                     focusin: a.proxy(this, "_handleDocumentFocusIn")
  3073.                 })
  3074.             },
  3075.             _applyTheme: function(a, b, c) {
  3076.                 for (var d, e = (a.attr("class") || "").split(" "), f = null, g = String(b); e.length > 0;) {
  3077.                     if (f = e.pop(), d = new RegExp("^ui-" + c + "-([a-z])$").exec(f), d && d.length > 1) {
  3078.                         f = d[1];
  3079.                         break
  3080.                     }
  3081.                     f = null
  3082.                 }
  3083.                 b !== f && (a.removeClass("ui-" + c + "-" + f), null !== b && "none" !== b && a.addClass("ui-" + c + "-" + g))
  3084.             },
  3085.             _setTheme: function(a) {
  3086.                 this._applyTheme(this.element, a, "body")
  3087.             },
  3088.             _setOverlayTheme: function(a) {
  3089.                 this._applyTheme(this._ui.screen, a, "overlay"), this._isOpen && this._ui.screen.addClass("in")
  3090.             },
  3091.             _setShadow: function(a) {
  3092.                 this.element.toggleClass("ui-overlay-shadow", a)
  3093.             },
  3094.             _setCorners: function(a) {
  3095.                 this.element.toggleClass("ui-corner-all", a)
  3096.             },
  3097.             _applyTransition: function(b) {
  3098.                 this._ui.container.removeClass(this._fallbackTransition), b && "none" !== b && (this._fallbackTransition = a.mobile._maybeDegradeTransition(b), "none" === this._fallbackTransition && (this._fallbackTransition = ""), this._ui.container.addClass(this._fallbackTransition))
  3099.             },
  3100.             _setTransition: function(a) {
  3101.                 this._currentTransition || this._applyTransition(a)
  3102.             },
  3103.             _setTolerance: function(b) {
  3104.                 var c = {
  3105.                     t: 30,
  3106.                     r: 15,
  3107.                     b: 30,
  3108.                     l: 15
  3109.                 };
  3110.                 if (b !== d) {
  3111.                     var e = String(b).split(",");
  3112.                     switch (a.each(e, function(a, b) {
  3113.                         e[a] = parseInt(b, 10)
  3114.                     }), e.length) {
  3115.                         case 1:
  3116.                             isNaN(e[0]) || (c.t = c.r = c.b = c.l = e[0]);
  3117.                             break;
  3118.                         case 2:
  3119.                             isNaN(e[0]) || (c.t = c.b = e[0]), isNaN(e[1]) || (c.l = c.r = e[1]);
  3120.                             break;
  3121.                         case 4:
  3122.                             isNaN(e[0]) || (c.t = e[0]), isNaN(e[1]) || (c.r = e[1]), isNaN(e[2]) || (c.b = e[2]), isNaN(e[3]) || (c.l = e[3])
  3123.                     }
  3124.                 }
  3125.                 this._tolerance = c
  3126.             },
  3127.             _setOption: function(a, b) {
  3128.                 var c = "_set" + a.charAt(0).toUpperCase() + a.slice(1);
  3129.                 this[c] !== d && this[c](b), this._super(a, b)
  3130.             },
  3131.             _placementCoords: function(a) {
  3132.                 var b, d, g = f(),
  3133.                     h = {
  3134.                         x: this._tolerance.l,
  3135.                         y: g.y + this._tolerance.t,
  3136.                         cx: g.cx - this._tolerance.l - this._tolerance.r,
  3137.                         cy: g.cy - this._tolerance.t - this._tolerance.b
  3138.                     };
  3139.                 this._ui.container.css("max-width", h.cx), b = {
  3140.                     cx: this._ui.container.outerWidth(!0),
  3141.                     cy: this._ui.container.outerHeight(!0)
  3142.                 }, d = {
  3143.                     x: e(h.cx, b.cx, h.x, a.x),
  3144.                     y: e(h.cy, b.cy, h.y, a.y)
  3145.                 }, d.y = Math.max(0, d.y);
  3146.                 var i = c.documentElement,
  3147.                     j = c.body,
  3148.                     k = Math.max(i.clientHeight, j.scrollHeight, j.offsetHeight, i.scrollHeight, i.offsetHeight);
  3149.                 return d.y -= Math.min(d.y, Math.max(0, d.y + b.cy - k)), {
  3150.                     left: d.x,
  3151.                     top: d.y
  3152.                 }
  3153.             },
  3154.             _createPrereqs: function(b, c, d) {
  3155.                 var e, f = this;
  3156.                 e = {
  3157.                     screen: a.Deferred(),
  3158.                     container: a.Deferred()
  3159.                 }, e.screen.then(function() {
  3160.                     e === f._prereqs && b()
  3161.                 }), e.container.then(function() {
  3162.                     e === f._prereqs && c()
  3163.                 }), a.when(e.screen, e.container).done(function() {
  3164.                     e === f._prereqs && (f._prereqs = null, d())
  3165.                 }), f._prereqs = e
  3166.             },
  3167.             _animate: function(b) {
  3168.                 return this._ui.screen.removeClass(b.classToRemove).addClass(b.screenClassToAdd), b.prereqs.screen.resolve(), b.transition && "none" !== b.transition && (b.applyTransition && this._applyTransition(b.transition), this._fallbackTransition) ? (this._ui.container.animationComplete(a.proxy(b.prereqs.container, "resolve")).addClass(b.containerClassToAdd).removeClass(b.classToRemove), void 0) : (this._ui.container.removeClass(b.classToRemove), b.prereqs.container.resolve(), void 0)
  3169.             },
  3170.             _desiredCoords: function(b) {
  3171.                 var c, d = null,
  3172.                     e = f(),
  3173.                     g = b.x,
  3174.                     h = b.y,
  3175.                     i = b.positionTo;
  3176.                 if (i && "origin" !== i)
  3177.                     if ("window" === i) g = e.cx / 2 + e.x, h = e.cy / 2 + e.y;
  3178.                     else {
  3179.                         try {
  3180.                             d = a(i)
  3181.                         } catch (j) {
  3182.                             d = null
  3183.                         }
  3184.                         d && (d.filter(":visible"), 0 === d.length && (d = null))
  3185.                     }
  3186.                 return d && (c = d.offset(), g = c.left + d.outerWidth() / 2, h = c.top + d.outerHeight() / 2), ("number" !== a.type(g) || isNaN(g)) && (g = e.cx / 2 + e.x), ("number" !== a.type(h) || isNaN(h)) && (h = e.cy / 2 + e.y), {
  3187.                     x: g,
  3188.                     y: h
  3189.                 }
  3190.             },
  3191.             _reposition: function(a) {
  3192.                 a = {
  3193.                     x: a.x,
  3194.                     y: a.y,
  3195.                     positionTo: a.positionTo
  3196.                 }, this._trigger("beforeposition", d, a), this._ui.container.offset(this._placementCoords(this._desiredCoords(a)))
  3197.             },
  3198.             reposition: function(a) {
  3199.                 this._isOpen && this._reposition(a)
  3200.             },
  3201.             _openPrereqsComplete: function() {
  3202.                 this._ui.container.addClass("ui-popup-active"), this._isOpen = !0, this._resizeScreen(), this._ui.container.attr("tabindex", "0").focus(), this._ignoreResizeEvents(), this._trigger("afteropen")
  3203.             },
  3204.             _open: function(b) {
  3205.                 var c = a.extend({}, this.options, b),
  3206.                     d = function() {
  3207.                         var a = navigator.userAgent,
  3208.                             b = a.match(/AppleWebKit\/([0-9\.]+)/),
  3209.                             c = !!b && b[1],
  3210.                             d = a.match(/Android (\d+(?:\.\d+))/),
  3211.                             e = !!d && d[1],
  3212.                             f = a.indexOf("Chrome") > -1;
  3213.                         return null !== d && "4.0" === e && c && c > 534.13 && !f ? !0 : !1
  3214.                     }();
  3215.                 this._createPrereqs(a.noop, a.noop, a.proxy(this, "_openPrereqsComplete")), this._currentTransition = c.transition, this._applyTransition(c.transition), this.options.theme || this._setTheme(this._page.jqmData("theme") || a.mobile.getInheritedTheme(this._page, "c")), this._ui.screen.removeClass("ui-screen-hidden"), this._ui.container.removeClass("ui-popup-hidden"), this._reposition(c), this.options.overlayTheme && d && this.element.closest(".ui-page").addClass("ui-popup-open"), this._animate({
  3216.                     additionalCondition: !0,
  3217.                     transition: c.transition,
  3218.                     classToRemove: "",
  3219.                     screenClassToAdd: "in",
  3220.                     containerClassToAdd: "in",
  3221.                     applyTransition: !1,
  3222.                     prereqs: this._prereqs
  3223.                 })
  3224.             },
  3225.             _closePrereqScreen: function() {
  3226.                 this._ui.screen.removeClass("out").addClass("ui-screen-hidden")
  3227.             },
  3228.             _closePrereqContainer: function() {
  3229.                 this._ui.container.removeClass("reverse out").addClass("ui-popup-hidden").removeAttr("style")
  3230.             },
  3231.             _closePrereqsDone: function() {
  3232.                 var b = this._ui.container;
  3233.                 b.removeAttr("tabindex"), a.mobile.popup.active = d, a(":focus", b[0]).add(b[0]).blur(), this._trigger("afterclose")
  3234.             },
  3235.             _close: function(b) {
  3236.                 this._ui.container.removeClass("ui-popup-active"), this._page.removeClass("ui-popup-open"), this._isOpen = !1, this._createPrereqs(a.proxy(this, "_closePrereqScreen"), a.proxy(this, "_closePrereqContainer"), a.proxy(this, "_closePrereqsDone")), this._animate({
  3237.                     additionalCondition: this._ui.screen.hasClass("in"),
  3238.                     transition: b ? "none" : this._currentTransition,
  3239.                     classToRemove: "in",
  3240.                     screenClassToAdd: "out",
  3241.                     containerClassToAdd: "reverse out",
  3242.                     applyTransition: !0,
  3243.                     prereqs: this._prereqs
  3244.                 })
  3245.             },
  3246.             _unenhance: function() {
  3247.                 this._setTheme("none"), this.element.detach().insertAfter(this._ui.placeholder).removeClass("ui-popup ui-overlay-shadow ui-corner-all"), this._ui.screen.remove(), this._ui.container.remove(), this._ui.placeholder.remove()
  3248.             },
  3249.             _destroy: function() {
  3250.                 a.mobile.popup.active === this ? (this.element.one("popupafterclose", a.proxy(this, "_unenhance")), this.close()) : this._unenhance()
  3251.             },
  3252.             _closePopup: function(c, d) {
  3253.                 var e, f, g = this.options,
  3254.                     h = !1;
  3255.                 b.scrollTo(0, this._scrollTop), c && "pagebeforechange" === c.type && d && (e = "string" == typeof d.toPage ? d.toPage : d.toPage.jqmData("url"), e = a.mobile.path.parseUrl(e), f = e.pathname + e.search + e.hash, this._myUrl !== a.mobile.path.makeUrlAbsolute(f) ? h = !0 : c.preventDefault()), g.container.unbind(g.closeEvents), this.element.undelegate(g.closeLinkSelector, g.closeLinkEvents), this._close(h)
  3256.             },
  3257.             _bindContainerClose: function() {
  3258.                 this.options.container.one(this.options.closeEvents, a.proxy(this, "_closePopup"))
  3259.             },
  3260.             open: function(c) {
  3261.                 var d, e, f, g, h, i, j = this,
  3262.                     k = this.options;
  3263.                 if (!a.mobile.popup.active) {
  3264.                     if (a.mobile.popup.active = this, this._scrollTop = a.mobile.window.scrollTop(), !k.history) return j._open(c), j._bindContainerClose(), j.element.delegate(k.closeLinkSelector, k.closeLinkEvents, function(a) {
  3265.                         j.close(), a.preventDefault()
  3266.                     }), void 0;
  3267.                     if (i = a.mobile.urlHistory, e = a.mobile.dialogHashKey, f = a.mobile.activePage, g = f.is(".ui-dialog"), this._myUrl = d = i.getActive().url, h = d.indexOf(e) > -1 && !g && i.activeIndex > 0) return j._open(c), j._bindContainerClose(), void 0; - 1 !== d.indexOf(e) || g ? d = a.mobile.path.parseLocation().hash + e : d += d.indexOf("#") > -1 ? e : "#" + e, 0 === i.activeIndex && d === i.initialDst && (d += e), a(b).one("beforenavigate", function(a) {
  3268.                         a.preventDefault(), j._open(c), j._bindContainerClose()
  3269.                     }), this.urlAltered = !0, a.mobile.navigate(d, {
  3270.                         role: "dialog"
  3271.                     })
  3272.                 }
  3273.             },
  3274.             close: function() {
  3275.                 a.mobile.popup.active === this && (this._scrollTop = a.mobile.window.scrollTop(), this.options.history && this.urlAltered ? (a.mobile.back(), this.urlAltered = !1) : this._closePopup())
  3276.             }
  3277.         }), a.mobile.popup.handleLink = function(b) {
  3278.             var c, d = b.closest(":jqmData(role='page')"),
  3279.                 e = 0 === d.length ? a("body") : d,
  3280.                 f = a(a.mobile.path.parseUrl(b.attr("href")).hash, e[0]);
  3281.             f.data("mobile-popup") && (c = b.offset(), f.popup("open", {
  3282.                 x: c.left + b.outerWidth() / 2,
  3283.                 y: c.top + b.outerHeight() / 2,
  3284.                 transition: b.jqmData("transition"),
  3285.                 positionTo: b.jqmData("position-to")
  3286.             })), setTimeout(function() {
  3287.                 var c = b.parent().parent();
  3288.                 c.hasClass("ui-li") && (b = c.parent()), b.removeClass(a.mobile.activeBtnClass)
  3289.             }, 300)
  3290.         }, a.mobile.document.bind("pagebeforechange", function(b, c) {
  3291.             "popup" === c.options.role && (a.mobile.popup.handleLink(c.options.link), b.preventDefault())
  3292.         }), a.mobile.document.bind("pagecreate create", function(b) {
  3293.             a.mobile.popup.prototype.enhanceWithin(b.target, !0)
  3294.         })
  3295.     }(a),
  3296.     function(a, b) {
  3297.         var d = function(d) {
  3298.             var e, f, g, h = (d.select, d._destroy),
  3299.                 i = d.selectID,
  3300.                 j = i ? i : (a.mobile.ns || "") + "uuid-" + d.uuid,
  3301.                 k = j + "-listbox",
  3302.                 l = j + "-dialog",
  3303.                 m = d.label,
  3304.                 n = d.select.closest(".ui-page"),
  3305.                 o = d._selectOptions(),
  3306.                 p = d.isMultiple = d.select[0].multiple,
  3307.                 q = i + "-button",
  3308.                 r = i + "-menu",
  3309.                 s = a("<div data-" + a.mobile.ns + "role='dialog' id='" + l + "' data-" + a.mobile.ns + "theme='" + d.options.theme + "' data-" + a.mobile.ns + "overlay-theme='" + d.options.overlayTheme + "'>" + "<div data-" + a.mobile.ns + "role='header'>" + "<div class='ui-title'>" + m.getEncodedText() + "</div>" + "</div>" + "<div data-" + a.mobile.ns + "role='content'></div>" + "</div>"),
  3310.                 t = a("<div id='" + k + "' class='ui-selectmenu'>").insertAfter(d.select).popup({
  3311.                     theme: d.options.overlayTheme
  3312.                 }),
  3313.                 u = a("<ul>", {
  3314.                     "class": "ui-selectmenu-list",
  3315.                     id: r,
  3316.                     role: "listbox",
  3317.                     "aria-labelledby": q
  3318.                 }).attr("data-" + a.mobile.ns + "theme", d.options.theme).attr("data-" + a.mobile.ns + "divider-theme", d.options.dividerTheme).appendTo(t),
  3319.                 v = a("<div>", {
  3320.                     "class": "ui-header ui-bar-" + d.options.theme
  3321.                 }).prependTo(t),
  3322.                 w = a("<h1>", {
  3323.                     "class": "ui-title"
  3324.                 }).appendTo(v);
  3325.             d.isMultiple && (g = a("<a>", {
  3326.                 text: d.options.closeText,
  3327.                 href: "#",
  3328.                 "class": "ui-btn-left"
  3329.             }).attr("data-" + a.mobile.ns + "iconpos", "notext").attr("data-" + a.mobile.ns + "icon", "delete").appendTo(v).buttonMarkup()), a.extend(d, {
  3330.                 select: d.select,
  3331.                 selectID: i,
  3332.                 buttonId: q,
  3333.                 menuId: r,
  3334.                 popupID: k,
  3335.                 dialogID: l,
  3336.                 thisPage: n,
  3337.                 menuPage: s,
  3338.                 label: m,
  3339.                 selectOptions: o,
  3340.                 isMultiple: p,
  3341.                 theme: d.options.theme,
  3342.                 listbox: t,
  3343.                 list: u,
  3344.                 header: v,
  3345.                 headerTitle: w,
  3346.                 headerClose: g,
  3347.                 menuPageContent: e,
  3348.                 menuPageClose: f,
  3349.                 placeholder: "",
  3350.                 build: function() {
  3351.                     var c = this,
  3352.                         e = function(a) {
  3353.                             return a.replace(/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g, "\\$1")
  3354.                        };
  3355.                    c.refresh(), c._origTabIndex === b && (c._origTabIndex = null === c.select[0].getAttribute("tabindex") ? !1 : c.select.attr("tabindex")), c.select.attr("tabindex", "-1").focus(function() {
  3356.                        a(this).blur(), c.button.focus()
  3357.                    }), c.button.bind("vclick keydown", function(b) {
  3358.                        c.options.disabled || c.isOpen || ("vclick" === b.type || b.keyCode && (b.keyCode === a.mobile.keyCode.ENTER || b.keyCode === a.mobile.keyCode.SPACE)) && (c._decideFormat(), "overlay" === c.menuType ? c.button.attr("href", "#" + e(c.popupID)).attr("data-" + (a.mobile.ns || "") + "rel", "popup") : c.button.attr("href", "#" + e(c.dialogID)).attr("data-" + (a.mobile.ns || "") + "rel", "dialog"), c.isOpen = !0)
  3359.                    }), c.list.attr("role", "listbox").bind("focusin", function(b) {
  3360.                        a(b.target).attr("tabindex", "0").trigger("vmouseover")
  3361.                    }).bind("focusout", function(b) {
  3362.                        a(b.target).attr("tabindex", "-1").trigger("vmouseout")
  3363.                    }).delegate("li:not(.ui-disabled, .ui-li-divider)", "click", function(b) {
  3364.                        var e = c.select[0].selectedIndex,
  3365.                            f = c.list.find("li:not(.ui-li-divider)").index(this),
  3366.                            g = c._selectOptions().eq(f)[0];
  3367.                        g.selected = c.isMultiple ? !g.selected : !0, c.isMultiple && a(this).find(".ui-icon").toggleClass("ui-icon-checkbox-on", g.selected).toggleClass("ui-icon-checkbox-off", !g.selected), (c.isMultiple || e !== f) && c.select.trigger("change"), c.isMultiple ? c.list.find("li:not(.ui-li-divider)").eq(f).addClass("ui-btn-down-" + d.options.theme).find("a").first().focus() : c.close(), b.preventDefault()
  3368.                    }).keydown(function(b) {
  3369.                        var c, e, f = a(b.target),
  3370.                            g = f.closest("li");
  3371.                        switch (b.keyCode) {
  3372.                            case 38:
  3373.                                return c = g.prev().not(".ui-selectmenu-placeholder"), c.is(".ui-li-divider") && (c = c.prev()), c.length && (f.blur().attr("tabindex", "-1"), c.addClass("ui-btn-down-" + d.options.theme).find("a").first().focus()), !1;
  3374.                            case 40:
  3375.                                return e = g.next(), e.is(".ui-li-divider") && (e = e.next()), e.length && (f.blur().attr("tabindex", "-1"), e.addClass("ui-btn-down-" + d.options.theme).find("a").first().focus()), !1;
  3376.                            case 13:
  3377.                            case 32:
  3378.                                return f.trigger("click"), !1
  3379.                        }
  3380.                    }), c.menuPage.bind("pagehide", function() {
  3381.                        a.mobile._bindPageRemove.call(c.thisPage)
  3382.                    }), c.listbox.bind("popupafterclose", function() {
  3383.                        c.close()
  3384.                    }), c.isMultiple && c.headerClose.click(function() {
  3385.                        return "overlay" === c.menuType ? (c.close(), !1) : void 0
  3386.                    }), c.thisPage.addDependents(this.menuPage)
  3387.                },
  3388.                _isRebuildRequired: function() {
  3389.                    var a = this.list.find("li"),
  3390.                        b = this._selectOptions();
  3391.                    return b.text() !== a.text()
  3392.                },
  3393.                selected: function() {
  3394.                    return this._selectOptions().filter(":selected:not( :jqmData(placeholder='true') )")
  3395.                },
  3396.                refresh: function(b) {
  3397.                    var c, d = this;
  3398.                    this.element, this.isMultiple, (b || this._isRebuildRequired()) && d._buildList(), c = this.selectedIndices(), d.setButtonText(), d.setButtonCount(), d.list.find("li:not(.ui-li-divider)").removeClass(a.mobile.activeBtnClass).attr("aria-selected", !1).each(function(b) {
  3399.                        if (a.inArray(b, c) > -1) {
  3400.                            var e = a(this);
  3401.                            e.attr("aria-selected", !0), d.isMultiple ? e.find(".ui-icon").removeClass("ui-icon-checkbox-off").addClass("ui-icon-checkbox-on") : e.is(".ui-selectmenu-placeholder") ? e.next().addClass(a.mobile.activeBtnClass) : e.addClass(a.mobile.activeBtnClass)
  3402.                        }
  3403.                    })
  3404.                },
  3405.                close: function() {
  3406.                    if (!this.options.disabled && this.isOpen) {
  3407.                        var a = this;
  3408.                        "page" === a.menuType ? (a.menuPage.dialog("close"), a.list.appendTo(a.listbox)) : a.listbox.popup("close"), a._focusButton(), a.isOpen = !1
  3409.                    }
  3410.                },
  3411.                open: function() {
  3412.                    this.button.click()
  3413.                },
  3414.                _decideFormat: function() {
  3415.                    function b() {
  3416.                        var b = c.list.find("." + a.mobile.activeBtnClass + " a");
  3417.                        0 === b.length && (b = c.list.find("li.ui-btn:not( :jqmData(placeholder='true') ) a")), b.first().focus().closest("li").addClass("ui-btn-down-" + d.options.theme)
  3418.                    }
  3419.                    var c = this,
  3420.                        e = a.mobile.window,
  3421.                        f = c.list.parent(),
  3422.                        g = f.outerHeight(),
  3423.                        h = (f.outerWidth(), a("." + a.mobile.activePageClass), e.scrollTop()),
  3424.                        i = c.button.offset().top,
  3425.                        j = e.height();
  3426.                    e.width(), g > j - 80 || !a.support.scrollTop ? (c.menuPage.appendTo(a.mobile.pageContainer).page(), c.menuPageContent = s.find(".ui-content"), c.menuPageClose = s.find(".ui-header a"), c.thisPage.unbind("pagehide.remove"), 0 === h && i > j && c.thisPage.one("pagehide", function() {
  3427.                        a(this).jqmData("lastScroll", i)
  3428.                    }), c.menuPage.one("pageshow", function() {
  3429.                        b()
  3430.                    }).one("pagehide", function() {
  3431.                        c.close()
  3432.                    }), c.menuType = "page", c.menuPageContent.append(c.list), c.menuPage.find("div .ui-title").text(c.label.text())) : (c.menuType = "overlay", c.listbox.one("popupafteropen", b))
  3433.                },
  3434.                _buildList: function() {
  3435.                    var b = this,
  3436.                        d = this.options,
  3437.                        e = this.placeholder,
  3438.                        f = !0,
  3439.                        g = b.isMultiple ? "checkbox-off" : "false";
  3440.                    b.list.empty().filter(".ui-listview").listview("destroy");
  3441.                    for (var h, i = b.select.find("option"), j = i.length, k = this.select[0], l = "data-" + a.mobile.ns, m = l + "option-index", n = l + "icon", o = l + "role", p = l + "placeholder", q = c.createDocumentFragment(), r = !1, s = 0; j > s; s++, r = !1) {
  3442.                        var t = i[s],
  3443.                            u = a(t),
  3444.                            v = t.parentNode,
  3445.                            w = u.text(),
  3446.                            x = c.createElement("a"),
  3447.                            y = [];
  3448.                        if (x.setAttribute("href", "#"), x.appendChild(c.createTextNode(w)), v !== k && "optgroup" === v.nodeName.toLowerCase()) {
  3449.                            var z = v.getAttribute("label");
  3450.                            if (z !== h) {
  3451.                                var A = c.createElement("li");
  3452.                                A.setAttribute(o, "list-divider"), A.setAttribute("role", "option"), A.setAttribute("tabindex", "-1"), A.appendChild(c.createTextNode(z)), q.appendChild(A), h = z
  3453.                            }
  3454.                        }!f || t.getAttribute("value") && 0 !== w.length && !u.jqmData("placeholder") || (f = !1, r = !0, null === t.getAttribute(p) && (this._removePlaceholderAttr = !0), t.setAttribute(p, !0), d.hidePlaceholderMenuItems && y.push("ui-selectmenu-placeholder"), e !== w && (e = b.placeholder = w));
  3455.                        var B = c.createElement("li");
  3456.                        t.disabled && (y.push("ui-disabled"), B.setAttribute("aria-disabled", !0)), B.setAttribute(m, s), B.setAttribute(n, g), r && B.setAttribute(p, !0), B.className = y.join(" "), B.setAttribute("role", "option"), x.setAttribute("tabindex", "-1"), B.appendChild(x), q.appendChild(B)
  3457.                    }
  3458.                    b.list[0].appendChild(q), this.isMultiple || e.length ? this.headerTitle.text(this.placeholder) : this.header.hide(), b.list.listview()
  3459.                },
  3460.                _button: function() {
  3461.                    return a("<a>", {
  3462.                        href: "#",
  3463.                        role: "button",
  3464.                        id: this.buttonId,
  3465.                        "aria-haspopup": "true",
  3466.                        "aria-owns": this.menuId
  3467.                    })
  3468.                },
  3469.                _destroy: function() {
  3470.                    this.close(), this._origTabIndex !== b && (this._origTabIndex !== !1 ? this.select.attr("tabindex", this._origTabIndex) : this.select.removeAttr("tabindex")), this._removePlaceholderAttr && this._selectOptions().removeAttr("data-" + a.mobile.ns + "placeholder"), this.listbox.remove(), this.menuPage.remove(), h.apply(this, arguments)
  3471.                }
  3472.            })
  3473.        };
  3474.        a.mobile.document.bind("selectmenubeforecreate", function(b) {
  3475.            var c = a(b.target).data("mobile-selectmenu");
  3476.            c.options.nativeMenu || 0 !== c.element.parents(":jqmData(role='popup')").length || d(c)
  3477.        })
  3478.    }(a),
  3479.    function(a, b) {
  3480.        a.widget("mobile.controlgroup", a.mobile.widget, a.extend({
  3481.            options: {
  3482.                shadow: !1,
  3483.                corners: !0,
  3484.                excludeInvisible: !0,
  3485.                type: "vertical",
  3486.                mini: !1,
  3487.                initSelector: ":jqmData(role='controlgroup')"
  3488.            },
  3489.            _create: function() {
  3490.                var c = this.element,
  3491.                    d = {
  3492.                        inner: a("<div class='ui-controlgroup-controls'></div>"),
  3493.                        legend: a("<div role='heading' class='ui-controlgroup-label'></div>")
  3494.                    },
  3495.                    e = c.children("legend"),
  3496.                    f = this;
  3497.                c.wrapInner(d.inner), e.length && d.legend.append(e).insertBefore(c.children(0)), c.addClass("ui-corner-all ui-controlgroup"), a.extend(this, {
  3498.                    _initialRefresh: !0
  3499.                }), a.each(this.options, function(a, c) {
  3500.                    f.options[a] = b, f._setOption(a, c, !0)
  3501.                })
  3502.            },
  3503.            _init: function() {
  3504.                this.refresh()
  3505.            },
  3506.            _setOption: function(c, d) {
  3507.                var e = "_set" + c.charAt(0).toUpperCase() + c.slice(1);
  3508.                this[e] !== b && this[e](d), this._super(c, d), this.element.attr("data-" + (a.mobile.ns || "") + c.replace(/([A-Z])/, "-$1").toLowerCase(), d)
  3509.            },
  3510.            _setType: function(a) {
  3511.                this.element.removeClass("ui-controlgroup-horizontal ui-controlgroup-vertical").addClass("ui-controlgroup-" + a), this.refresh()
  3512.            },
  3513.            _setCorners: function(a) {
  3514.                this.element.toggleClass("ui-corner-all", a)
  3515.            },
  3516.            _setShadow: function(a) {
  3517.                this.element.toggleClass("ui-shadow", a)
  3518.            },
  3519.            _setMini: function(a) {
  3520.                this.element.toggleClass("ui-mini", a)
  3521.            },
  3522.            container: function() {
  3523.                return this.element.children(".ui-controlgroup-controls")
  3524.            },
  3525.            refresh: function() {
  3526.                var b = this.element.find(".ui-btn").not(".ui-slider-handle"),
  3527.                    c = this._initialRefresh;
  3528.                a.mobile.checkboxradio && this.element.find(":mobile-checkboxradio").checkboxradio("refresh"), this._addFirstLastClasses(b, this.options.excludeInvisible ? this._getVisibles(b, c) : b, c), this._initialRefresh = !1
  3529.            }
  3530.        }, a.mobile.behaviors.addFirstLastClasses)), a(function() {
  3531.            a.mobile.document.bind("pagecreate create", function(b) {
  3532.                a.mobile.controlgroup.prototype.enhanceWithin(b.target, !0)
  3533.            })
  3534.        })
  3535.    }(a),
  3536.    function(a) {
  3537.        a(c).bind("pagecreate create", function(b) {
  3538.            a(b.target).find("a").jqmEnhanceable().filter(":jqmData(rel='popup')[href][href!='']").each(function() {
  3539.                var b = this,
  3540.                    d = a(this).attr("href"),
  3541.                    e = d.substring(1);
  3542.                b.setAttribute("aria-haspopup", !0), b.setAttribute("aria-owns", e), b.setAttribute("aria-expanded", !1), a(c).on("popupafteropen", d, function() {
  3543.                    b.setAttribute("aria-expanded", !0)
  3544.                }).on("popupafterclose", d, function() {
  3545.                    b.setAttribute("aria-expanded", !1)
  3546.                })
  3547.            }).end().not(".ui-btn, .ui-link-inherit, :jqmData(role='none'), :jqmData(role='nojs')").addClass("ui-link")
  3548.        })
  3549.    }(a),
  3550.    function(a, b) {
  3551.        a.widget("mobile.fixedtoolbar", a.mobile.widget, {
  3552.            options: {
  3553.                visibleOnPageShow: !0,
  3554.                disablePageZoom: !0,
  3555.                transition: "slide",
  3556.                fullscreen: !1,
  3557.                tapToggle: !0,
  3558.                tapToggleBlacklist: "a, button, input, select, textarea, .ui-header-fixed, .ui-footer-fixed, .ui-popup, .ui-panel, .ui-panel-dismiss-open",
  3559.                hideDuringFocus: "input, textarea, select",
  3560.                updatePagePadding: !0,
  3561.                trackPersistentToolbars: !0,
  3562.                supportBlacklist: function() {
  3563.                    return !a.support.fixedPosition
  3564.                },
  3565.                initSelector: ":jqmData(position='fixed')"
  3566.            },
  3567.            _create: function() {
  3568.                var b = this,
  3569.                    c = b.options,
  3570.                    d = b.element,
  3571.                    e = d.is(":jqmData(role='header')") ? "header" : "footer",
  3572.                    f = d.closest(".ui-page");
  3573.                return c.supportBlacklist() ? (b.destroy(), void 0) : (d.addClass("ui-" + e + "-fixed"), c.fullscreen ? (d.addClass("ui-" + e + "-fullscreen"), f.addClass("ui-page-" + e + "-fullscreen")) : f.addClass("ui-page-" + e + "-fixed"), a.extend(this, {
  3574.                    _thisPage: null
  3575.                }), b._addTransitionClass(), b._bindPageEvents(), b._bindToggleHandlers(), void 0)
  3576.            },
  3577.            _addTransitionClass: function() {
  3578.                var a = this.options.transition;
  3579.                a && "none" !== a && ("slide" === a && (a = this.element.is(".ui-header") ? "slidedown" : "slideup"), this.element.addClass(a))
  3580.            },
  3581.            _bindPageEvents: function() {
  3582.                this._thisPage = this.element.closest(".ui-page"), this._on(this._thisPage, {
  3583.                    pagebeforeshow: "_handlePageBeforeShow",
  3584.                    webkitAnimationStart: "_handleAnimationStart",
  3585.                    animationstart: "_handleAnimationStart",
  3586.                    updatelayout: "_handleAnimationStart",
  3587.                    pageshow: "_handlePageShow",
  3588.                    pagebeforehide: "_handlePageBeforeHide"
  3589.                })
  3590.            },
  3591.            _handlePageBeforeShow: function() {
  3592.                var b = this.options;
  3593.                b.disablePageZoom && a.mobile.zoom.disable(!0), b.visibleOnPageShow || this.hide(!0)
  3594.            },
  3595.            _handleAnimationStart: function() {
  3596.                this.options.updatePagePadding && this.updatePagePadding(this._thisPage)
  3597.            },
  3598.            _handlePageShow: function() {
  3599.                this.updatePagePadding(this._thisPage), this.options.updatePagePadding && this._on(a.mobile.window, {
  3600.                    throttledresize: "updatePagePadding"
  3601.                })
  3602.            },
  3603.            _handlePageBeforeHide: function(b, c) {
  3604.                var d = this.options;
  3605.                if (d.disablePageZoom && a.mobile.zoom.enable(!0), d.updatePagePadding && this._off(a.mobile.window, "throttledresize"), d.trackPersistentToolbars) {
  3606.                    var e = a(".ui-footer-fixed:jqmData(id)", this._thisPage),
  3607.                        f = a(".ui-header-fixed:jqmData(id)", this._thisPage),
  3608.                        g = e.length && c.nextPage && a(".ui-footer-fixed:jqmData(id='" + e.jqmData("id") + "')", c.nextPage) || a(),
  3609.                        h = f.length && c.nextPage && a(".ui-header-fixed:jqmData(id='" + f.jqmData("id") + "')", c.nextPage) || a();
  3610.                    (g.length || h.length) && (g.add(h).appendTo(a.mobile.pageContainer), c.nextPage.one("pageshow", function() {
  3611.                        h.prependTo(this), g.appendTo(this)
  3612.                    }))
  3613.                }
  3614.            },
  3615.            _visible: !0,
  3616.            updatePagePadding: function(c) {
  3617.                var d = this.element,
  3618.                    e = d.is(".ui-header"),
  3619.                    f = parseFloat(d.css(e ? "top" : "bottom"));
  3620.                this.options.fullscreen || (c = c && c.type === b && c || this._thisPage || d.closest(".ui-page"), a(c).css("padding-" + (e ? "top" : "bottom"), d.outerHeight() + f))
  3621.            },
  3622.            _useTransition: function(b) {
  3623.                var c = a.mobile.window,
  3624.                    d = this.element,
  3625.                    e = c.scrollTop(),
  3626.                    f = d.height(),
  3627.                    g = d.closest(".ui-page").height(),
  3628.                    h = a.mobile.getScreenHeight(),
  3629.                    i = d.is(":jqmData(role='header')") ? "header" : "footer";
  3630.                return !b && (this.options.transition && "none" !== this.options.transition && ("header" === i && !this.options.fullscreen && e > f || "footer" === i && !this.options.fullscreen && g - f > e + h) || this.options.fullscreen)
  3631.            },
  3632.            show: function(a) {
  3633.                var b = "ui-fixed-hidden",
  3634.                    c = this.element;
  3635.                this._useTransition(a) ? c.removeClass("out " + b).addClass("in").animationComplete(function() {
  3636.                    c.removeClass("in")
  3637.                }) : c.removeClass(b), this._visible = !0
  3638.            },
  3639.            hide: function(a) {
  3640.                var b = "ui-fixed-hidden",
  3641.                    c = this.element,
  3642.                    d = "out" + ("slide" === this.options.transition ? " reverse" : "");
  3643.                this._useTransition(a) ? c.addClass(d).removeClass("in").animationComplete(function() {
  3644.                    c.addClass(b).removeClass(d)
  3645.                }) : c.addClass(b).removeClass(d), this._visible = !1
  3646.            },
  3647.            toggle: function() {
  3648.                this[this._visible ? "hide" : "show"]()
  3649.            },
  3650.            _bindToggleHandlers: function() {
  3651.                var b, c, d = this,
  3652.                    e = d.options,
  3653.                    f = d.element,
  3654.                    g = !0;
  3655.                f.closest(".ui-page").bind("vclick", function(b) {
  3656.                    e.tapToggle && !a(b.target).closest(e.tapToggleBlacklist).length && d.toggle()
  3657.                }).bind("focusin focusout", function(f) {
  3658.                    screen.width < 1025 && a(f.target).is(e.hideDuringFocus) && !a(f.target).closest(".ui-header-fixed, .ui-footer-fixed").length && ("focusout" !== f.type || g ? "focusin" === f.type && g && (clearTimeout(b), g = !1, c = setTimeout(function() {
  3659.                        d.hide()
  3660.                    }, 0)) : (g = !0, clearTimeout(c), b = setTimeout(function() {
  3661.                        d.show()
  3662.                    }, 0)))
  3663.                })
  3664.            },
  3665.            _destroy: function() {
  3666.                var a = this.element,
  3667.                    b = a.is(".ui-header");
  3668.                a.closest(".ui-page").css("padding-" + (b ? "top" : "bottom"), ""), a.removeClass("ui-header-fixed ui-footer-fixed ui-header-fullscreen ui-footer-fullscreen in out fade slidedown slideup ui-fixed-hidden"), a.closest(".ui-page").removeClass("ui-page-header-fixed ui-page-footer-fixed ui-page-header-fullscreen ui-page-footer-fullscreen")
  3669.            }
  3670.        }), a.mobile.document.bind("pagecreate create", function(b) {
  3671.            a(b.target).jqmData("fullscreen") && a(a.mobile.fixedtoolbar.prototype.options.initSelector, b.target).not(":jqmData(fullscreen)").jqmData("fullscreen", !0), a.mobile.fixedtoolbar.prototype.enhanceWithin(b.target)
  3672.        })
  3673.    }(a),
  3674.    function(a) {
  3675.        a.widget("mobile.fixedtoolbar", a.mobile.fixedtoolbar, {
  3676.            _create: function() {
  3677.                this._super(), this._workarounds()
  3678.            },
  3679.            _workarounds: function() {
  3680.                var a = navigator.userAgent,
  3681.                    b = navigator.platform,
  3682.                    c = a.match(/AppleWebKit\/([0-9]+)/),
  3683.                    d = !!c && c[1],
  3684.                    e = null,
  3685.                    f = this;
  3686.                if (b.indexOf("iPhone") > -1 || b.indexOf("iPad") > -1 || b.indexOf("iPod") > -1) e = "ios";
  3687.                else {
  3688.                    if (!(a.indexOf("Android") > -1)) return;
  3689.                    e = "android"
  3690.                }
  3691.                if ("ios" === e) f._bindScrollWorkaround();
  3692.                else {
  3693.                    if (!("android" === e && d && 534 > d)) return;
  3694.                    f._bindScrollWorkaround(), f._bindListThumbWorkaround()
  3695.                }
  3696.            },
  3697.            _viewportOffset: function() {
  3698.                var b = this.element,
  3699.                    c = b.is(".ui-header"),
  3700.                    d = Math.abs(b.offset().top - a.mobile.window.scrollTop());
  3701.                return c || (d = Math.round(d - a.mobile.window.height() + b.outerHeight()) - 60), d
  3702.            },
  3703.            _bindScrollWorkaround: function() {
  3704.                var b = this;
  3705.                this._on(a.mobile.window, {
  3706.                    scrollstop: function() {
  3707.                        var a = b._viewportOffset();
  3708.                        a > 2 && b._visible && b._triggerRedraw()
  3709.                    }
  3710.                })
  3711.            },
  3712.            _bindListThumbWorkaround: function() {
  3713.                this.element.closest(".ui-page").addClass("ui-android-2x-fixed")
  3714.            },
  3715.            _triggerRedraw: function() {
  3716.                var b = parseFloat(a(".ui-page-active").css("padding-bottom"));
  3717.                a(".ui-page-active").css("padding-bottom", b + 1 + "px"), setTimeout(function() {
  3718.                    a(".ui-page-active").css("padding-bottom", b + "px")
  3719.                }, 0)
  3720.            },
  3721.            destroy: function() {
  3722.                this._super(), this.element.closest(".ui-page-active").removeClass("ui-android-2x-fix")
  3723.            }
  3724.        })
  3725.    }(a),
  3726.    function(a, d) {
  3727.        a.widget("mobile.panel", a.mobile.widget, {
  3728.            options: {
  3729.                classes: {
  3730.                    panel: "ui-panel",
  3731.                    panelOpen: "ui-panel-open",
  3732.                    panelClosed: "ui-panel-closed",
  3733.                    panelFixed: "ui-panel-fixed",
  3734.                    panelInner: "ui-panel-inner",
  3735.                    modal: "ui-panel-dismiss",
  3736.                    modalOpen: "ui-panel-dismiss-open",
  3737.                    pagePanel: "ui-page-panel",
  3738.                    pagePanelOpen: "ui-page-panel-open",
  3739.                    contentWrap: "ui-panel-content-wrap",
  3740.                    contentWrapOpen: "ui-panel-content-wrap-open",
  3741.                    contentWrapClosed: "ui-panel-content-wrap-closed",
  3742.                    contentFixedToolbar: "ui-panel-content-fixed-toolbar",
  3743.                    contentFixedToolbarOpen: "ui-panel-content-fixed-toolbar-open",
  3744.                    contentFixedToolbarClosed: "ui-panel-content-fixed-toolbar-closed",
  3745.                    animate: "ui-panel-animate"
  3746.                },
  3747.                animate: !0,
  3748.                theme: "c",
  3749.                position: "left",
  3750.                dismissible: !0,
  3751.                display: "reveal",
  3752.                initSelector: ":jqmData(role='panel')",
  3753.                swipeClose: !0,
  3754.                positionFixed: !1
  3755.            },
  3756.            _panelID: null,
  3757.            _closeLink: null,
  3758.            _page: null,
  3759.            _modal: null,
  3760.            _panelInner: null,
  3761.            _wrapper: null,
  3762.            _fixedToolbar: null,
  3763.            _create: function() {
  3764.                var b = this,
  3765.                    c = b.element,
  3766.                    d = c.closest(":jqmData(role='page')"),
  3767.                    e = function() {
  3768.                        var b = a.data(d[0], "mobilePage").options.theme,
  3769.                            c = "ui-body-" + b;
  3770.                        return c
  3771.                    },
  3772.                    f = function() {
  3773.                        var a = c.find("." + b.options.classes.panelInner);
  3774.                        return 0 === a.length && (a = c.children().wrapAll('<div class="' + b.options.classes.panelInner + '" />').parent()), a
  3775.                    },
  3776.                    g = function() {
  3777.                        var c = d.find("." + b.options.classes.contentWrap);
  3778.                        return 0 === c.length && (c = d.children(".ui-header:not(:jqmData(position='fixed')), .ui-content:not(:jqmData(role='popup')), .ui-footer:not(:jqmData(position='fixed'))").wrapAll('<div class="' + b.options.classes.contentWrap + " " + e() + '" />').parent(), a.support.cssTransform3d && b.options.animate && c.addClass(b.options.classes.animate)), c
  3779.                    },
  3780.                    h = function() {
  3781.                        var c = d.find("." + b.options.classes.contentFixedToolbar);
  3782.                        return 0 === c.length && (c = d.find(".ui-header:jqmData(position='fixed'), .ui-footer:jqmData(position='fixed')").addClass(b.options.classes.contentFixedToolbar), a.support.cssTransform3d && b.options.animate && c.addClass(b.options.classes.animate)), c
  3783.                    };
  3784.                a.extend(this, {
  3785.                    _panelID: c.attr("id"),
  3786.                    _closeLink: c.find(":jqmData(rel='close')"),
  3787.                    _page: c.closest(":jqmData(role='page')"),
  3788.                    _pageTheme: e(),
  3789.                    _panelInner: f(),
  3790.                    _wrapper: g(),
  3791.                    _fixedToolbar: h()
  3792.                }), b._addPanelClasses(), b._wrapper.addClass(this.options.classes.contentWrapClosed), b._fixedToolbar.addClass(this.options.classes.contentFixedToolbarClosed), b._page.addClass(b.options.classes.pagePanel), a.support.cssTransform3d && b.options.animate && this.element.addClass(b.options.classes.animate), b._bindUpdateLayout(), b._bindCloseEvents(), b._bindLinkListeners(), b._bindPageEvents(), b.options.dismissible && b._createModal(), b._bindSwipeEvents()
  3793.            },
  3794.            _createModal: function() {
  3795.                var b = this;
  3796.                b._modal = a("<div class='" + b.options.classes.modal + "' data-panelid='" + b._panelID + "'></div>").on("mousedown", function() {
  3797.                    b.close()
  3798.                }).appendTo(this._page)
  3799.            },
  3800.            _getPosDisplayClasses: function(a) {
  3801.                return a + "-position-" + this.options.position + " " + a + "-display-" + this.options.display
  3802.            },
  3803.            _getPanelClasses: function() {
  3804.                var a = this.options.classes.panel + " " + this._getPosDisplayClasses(this.options.classes.panel) + " " + this.options.classes.panelClosed;
  3805.                return this.options.theme && (a += " ui-body-" + this.options.theme), this.options.positionFixed && (a += " " + this.options.classes.panelFixed), a
  3806.            },
  3807.            _addPanelClasses: function() {
  3808.                this.element.addClass(this._getPanelClasses())
  3809.            },
  3810.            _bindCloseEvents: function() {
  3811.                var a = this;
  3812.                a._closeLink.on("click.panel", function(b) {
  3813.                    return b.preventDefault(), a.close(), !1
  3814.                }), a.element.on("click.panel", "a:jqmData(ajax='false')", function() {
  3815.                    a.close()
  3816.                })
  3817.            },
  3818.            _positionPanel: function() {
  3819.                var b = this,
  3820.                    c = b._panelInner.outerHeight(),
  3821.                    d = c > a.mobile.getScreenHeight();
  3822.                d || !b.options.positionFixed ? (d && (b._unfixPanel(), a.mobile.resetActivePageHeight(c)), b._scrollIntoView(c)) : b._fixPanel()
  3823.            },
  3824.            _scrollIntoView: function(c) {
  3825.                c < a(b).scrollTop() && b.scrollTo(0, 0)
  3826.            },
  3827.            _bindFixListener: function() {
  3828.                this._on(a(b), {
  3829.                    throttledresize: "_positionPanel"
  3830.                })
  3831.            },
  3832.            _unbindFixListener: function() {
  3833.                this._off(a(b), "throttledresize")
  3834.            },
  3835.            _unfixPanel: function() {
  3836.                this.options.positionFixed && a.support.fixedPosition && this.element.removeClass(this.options.classes.panelFixed)
  3837.            },
  3838.            _fixPanel: function() {
  3839.                this.options.positionFixed && a.support.fixedPosition && this.element.addClass(this.options.classes.panelFixed)
  3840.            },
  3841.            _bindUpdateLayout: function() {
  3842.                var a = this;
  3843.                a.element.on("updatelayout", function() {
  3844.                    a._open && a._positionPanel()
  3845.                })
  3846.            },
  3847.            _bindLinkListeners: function() {
  3848.                var b = this;
  3849.                b._page.on("click.panel", "a", function(c) {
  3850.                    if (this.href.split("#")[1] === b._panelID && b._panelID !== d) {
  3851.                        c.preventDefault();
  3852.                        var e, f = a(this);
  3853.                        return f.hasClass("ui-link") || (e = f.parent().parent(), e.hasClass("ui-li") && (f = e.parent()), f.addClass(a.mobile.activeBtnClass), b.element.one("panelopen panelclose", function() {
  3854.                            f.removeClass(a.mobile.activeBtnClass)
  3855.                        })), b.toggle(), !1
  3856.                    }
  3857.                })
  3858.            },
  3859.            _bindSwipeEvents: function() {
  3860.                var a = this,
  3861.                    b = a._modal ? a.element.add(a._modal) : a.element;
  3862.                a.options.swipeClose && ("left" === a.options.position ? b.on("swipeleft.panel", function() {
  3863.                    a.close()
  3864.                }) : b.on("swiperight.panel", function() {
  3865.                    a.close()
  3866.                }))
  3867.            },
  3868.            _bindPageEvents: function() {
  3869.                var a = this;
  3870.                a._page.on("panelbeforeopen", function(b) {
  3871.                    a._open && b.target !== a.element[0] && a.close()
  3872.                }).on("pagehide", function() {
  3873.                    a._open && a.close(!0)
  3874.                }).on("keyup.panel", function(b) {
  3875.                    27 === b.keyCode && a._open && a.close()
  3876.                })
  3877.            },
  3878.            _open: !1,
  3879.            _contentWrapOpenClasses: null,
  3880.            _fixedToolbarOpenClasses: null,
  3881.            _modalOpenClasses: null,
  3882.            open: function(b) {
  3883.                if (!this._open) {
  3884.                    var c = this,
  3885.                        d = c.options,
  3886.                        e = function() {
  3887.                            c._page.off("panelclose"), c._page.jqmData("panel", "open"), !b && a.support.cssTransform3d && d.animate ? c.element.add(c._wrapper).on(c._transitionEndEvents, f) : setTimeout(f, 0), c.options.theme && "overlay" !== c.options.display && c._page.removeClass(c._pageTheme).addClass("ui-body-" + c.options.theme), c.element.removeClass(d.classes.panelClosed).addClass(d.classes.panelOpen), c._positionPanel(), c.options.theme && "overlay" !== c.options.display && c._wrapper.css("min-height", c._page.css("min-height")), c._contentWrapOpenClasses = c._getPosDisplayClasses(d.classes.contentWrap), c._wrapper.removeClass(d.classes.contentWrapClosed).addClass(c._contentWrapOpenClasses + " " + d.classes.contentWrapOpen), c._fixedToolbarOpenClasses = c._getPosDisplayClasses(d.classes.contentFixedToolbar), c._fixedToolbar.removeClass(d.classes.contentFixedToolbarClosed).addClass(c._fixedToolbarOpenClasses + " " + d.classes.contentFixedToolbarOpen), c._modalOpenClasses = c._getPosDisplayClasses(d.classes.modal) + " " + d.classes.modalOpen, c._modal && c._modal.addClass(c._modalOpenClasses)
  3888.                        },
  3889.                        f = function() {
  3890.                            c.element.add(c._wrapper).off(c._transitionEndEvents, f), c._page.addClass(d.classes.pagePanelOpen), c._bindFixListener(), c._trigger("open")
  3891.                        };
  3892.                    this.element.closest(".ui-page-active").length < 0 && (b = !0), c._trigger("beforeopen"), "open" === c._page.jqmData("panel") ? c._page.on("panelclose", function() {
  3893.                        e()
  3894.                    }) : e(), c._open = !0
  3895.                }
  3896.            },
  3897.            close: function(b) {
  3898.                if (this._open) {
  3899.                    var c = this.options,
  3900.                        d = this,
  3901.                        e = function() {
  3902.                            !b && a.support.cssTransform3d && c.animate ? d.element.add(d._wrapper).on(d._transitionEndEvents, f) : setTimeout(f, 0), d._page.removeClass(c.classes.pagePanelOpen), d.element.removeClass(c.classes.panelOpen), d._wrapper.removeClass(c.classes.contentWrapOpen), d._fixedToolbar.removeClass(c.classes.contentFixedToolbarOpen), d._modal && d._modal.removeClass(d._modalOpenClasses)
  3903.                        },
  3904.                        f = function() {
  3905.                            d.options.theme && "overlay" !== d.options.display && (d._page.removeClass("ui-body-" + d.options.theme).addClass(d._pageTheme), d._wrapper.css("min-height", "")), d.element.add(d._wrapper).off(d._transitionEndEvents, f), d.element.addClass(c.classes.panelClosed), d._wrapper.removeClass(d._contentWrapOpenClasses).addClass(c.classes.contentWrapClosed), d._fixedToolbar.removeClass(d._fixedToolbarOpenClasses).addClass(c.classes.contentFixedToolbarClosed), d._fixPanel(), d._unbindFixListener(), a.mobile.resetActivePageHeight(), d._page.jqmRemoveData("panel"), d._trigger("close")
  3906.                        };
  3907.                    this.element.closest(".ui-page-active").length < 0 && (b = !0), d._trigger("beforeclose"), e(), d._open = !1
  3908.                }
  3909.            },
  3910.            toggle: function() {
  3911.                this[this._open ? "close" : "open"]()
  3912.            },
  3913.            _transitionEndEvents: "webkitTransitionEnd oTransitionEnd otransitionend transitionend msTransitionEnd",
  3914.            _destroy: function() {
  3915.                var b = this.options.classes,
  3916.                    c = this.options.theme,
  3917.                    d = this.element.siblings("." + b.panel).length;
  3918.                d ? this._open && (this._wrapper.removeClass(b.contentWrapOpen), this._fixedToolbar.removeClass(b.contentFixedToolbarOpen), this._page.jqmRemoveData("panel"), this._page.removeClass(b.pagePanelOpen), c && this._page.removeClass("ui-body-" + c).addClass(this._pageTheme)) : (this._wrapper.children().unwrap(), this._page.find("a").unbind("panelopen panelclose"), this._page.removeClass(b.pagePanel), this._open && (this._page.jqmRemoveData("panel"), this._page.removeClass(b.pagePanelOpen), c && this._page.removeClass("ui-body-" + c).addClass(this._pageTheme), a.mobile.resetActivePageHeight())), this._panelInner.children().unwrap(), this.element.removeClass([this._getPanelClasses(), b.panelAnimate].join(" ")).off("swipeleft.panel swiperight.panel").off("panelbeforeopen").off("panelhide").off("keyup.panel").off("updatelayout"), this._closeLink.off("click.panel"), this._modal && this._modal.remove(), this.element.off(this._transitionEndEvents).removeClass([b.panelUnfixed, b.panelClosed, b.panelOpen].join(" "))
  3919.            }
  3920.        }), a(c).bind("pagecreate create", function(b) {
  3921.            a.mobile.panel.prototype.enhanceWithin(b.target)
  3922.        })
  3923.    }(a),
  3924.    function(a, b) {
  3925.        a.widget("mobile.table", a.mobile.widget, {
  3926.            options: {
  3927.                classes: {
  3928.                    table: "ui-table"
  3929.                },
  3930.                initSelector: ":jqmData(role='table')"
  3931.            },
  3932.            _create: function() {
  3933.                var a = this;
  3934.                a.refresh(!0)
  3935.            },
  3936.            refresh: function(c) {
  3937.                var d = this,
  3938.                    e = this.element.find("thead tr");
  3939.                c && this.element.addClass(this.options.classes.table), d.headers = this.element.find("tr:eq(0)").children(), d.allHeaders = d.headers.add(e.children()), e.each(function() {
  3940.                    var f = 0;
  3941.                    a(this).children().each(function() {
  3942.                        var g = parseInt(a(this).attr("colspan"), 10),
  3943.                            h = ":nth-child(" + (f + 1) + ")";
  3944.                        if (a(this).jqmData("colstart", f + 1), g)
  3945.                            for (var i = 0; g - 1 > i; i++) f++, h += ", :nth-child(" + (f + 1) + ")";
  3946.                        c === b && a(this).jqmData("cells", ""), a(this).jqmData("cells", d.element.find("tr").not(e.eq(0)).not(this).children(h)), f++
  3947.                    })
  3948.                }), c === b && this.element.trigger("refresh")
  3949.            }
  3950.        }), a.mobile.document.bind("pagecreate create", function(b) {
  3951.            a.mobile.table.prototype.enhanceWithin(b.target)
  3952.        })
  3953.    }(a),
  3954.    function(a, b) {
  3955.        a.mobile.table.prototype.options.mode = "columntoggle", a.mobile.table.prototype.options.columnBtnTheme = null, a.mobile.table.prototype.options.columnPopupTheme = null, a.mobile.table.prototype.options.columnBtnText = "Columns...", a.mobile.table.prototype.options.classes = a.extend(a.mobile.table.prototype.options.classes, {
  3956.            popup: "ui-table-columntoggle-popup",
  3957.            columnBtn: "ui-table-columntoggle-btn",
  3958.            priorityPrefix: "ui-table-priority-",
  3959.            columnToggleTable: "ui-table-columntoggle"
  3960.        }), a.mobile.document.delegate(":jqmData(role='table')", "tablecreate refresh", function(c) {
  3961.            var d, e, f, g, h = a(this),
  3962.                i = h.data("mobile-table"),
  3963.                j = c.type,
  3964.                k = i.options,
  3965.                l = a.mobile.ns,
  3966.                m = (h.attr("id") || k.classes.popup) + "-popup";
  3967.            "columntoggle" === k.mode && ("refresh" !== j && (i.element.addClass(k.classes.columnToggleTable), d = a("<a href='#" + m + "' class='" + k.classes.columnBtn + "' data-" + l + "rel='popup' data-" + l + "mini='true'>" + k.columnBtnText + "</a>"), e = a("<div data-" + l + "role='popup' data-" + l + "role='fieldcontain' class='" + k.classes.popup + "' id='" + m + "'></div>"), f = a("<fieldset data-" + l + "role='controlgroup'></fieldset>")), i.headers.not("td").each(function(b) {
  3968.                var c = a(this).jqmData("priority"),
  3969.                    d = a(this).add(a(this).jqmData("cells"));
  3970.                c && (d.addClass(k.classes.priorityPrefix + c), "refresh" !== j ? a("<label><input type='checkbox' checked />" + a(this).text() + "</label>").appendTo(f).children(0).jqmData("cells", d).checkboxradio({
  3971.                    theme: k.columnPopupTheme
  3972.                }) : a("#" + m + " fieldset div:eq(" + b + ")").find("input").jqmData("cells", d))
  3973.            }), "refresh" !== j && f.appendTo(e), g = f === b ? a("#" + m + " fieldset") : f, "refresh" !== j && (g.on("change", "input", function() {
  3974.                this.checked ? a(this).jqmData("cells").removeClass("ui-table-cell-hidden").addClass("ui-table-cell-visible") : a(this).jqmData("cells").removeClass("ui-table-cell-visible").addClass("ui-table-cell-hidden")
  3975.            }), d.insertBefore(h).buttonMarkup({
  3976.                theme: k.columnBtnTheme
  3977.            }), e.insertBefore(h).popup()), i.update = function() {
  3978.                g.find("input").each(function() {
  3979.                    this.checked ? (this.checked = "table-cell" === a(this).jqmData("cells").eq(0).css("display"), "refresh" === j && a(this).jqmData("cells").addClass("ui-table-cell-visible")) : a(this).jqmData("cells").addClass("ui-table-cell-hidden"), a(this).checkboxradio("refresh")
  3980.                })
  3981.            }, a.mobile.window.on("throttledresize", i.update), i.update())
  3982.        })
  3983.    }(a),
  3984.    function(a) {
  3985.        a.mobile.table.prototype.options.mode = "reflow", a.mobile.table.prototype.options.classes = a.extend(a.mobile.table.prototype.options.classes, {
  3986.            reflowTable: "ui-table-reflow",
  3987.            cellLabels: "ui-table-cell-label"
  3988.        }), a.mobile.document.delegate(":jqmData(role='table')", "tablecreate refresh", function(b) {
  3989.            var c = a(this),
  3990.                d = b.type,
  3991.                e = c.data("mobile-table"),
  3992.                f = e.options;
  3993.            if ("reflow" === f.mode) {
  3994.                "refresh" !== d && e.element.addClass(f.classes.reflowTable);
  3995.                var g = a(e.allHeaders.get().reverse());
  3996.                g.each(function() {
  3997.                    var b = a(this).jqmData("cells"),
  3998.                        c = a(this).jqmData("colstart"),
  3999.                        d = b.not(this).filter("thead th").length && " ui-table-cell-label-top",
  4000.                        e = a(this).text();
  4001.                    if ("" !== e)
  4002.                        if (d) {
  4003.                            var g = parseInt(a(this).attr("colspan"), 10),
  4004.                                h = "";
  4005.                            g && (h = "td:nth-child(" + g + "n + " + c + ")"), b.filter(h).prepend("<b class='" + f.classes.cellLabels + d + "'>" + e + "</b>")
  4006.                        } else b.prepend("<b class='" + f.classes.cellLabels + "'>" + e + "</b>")
  4007.                })
  4008.            }
  4009.        })
  4010.    }(a),
  4011.    function(a, b) {
  4012.        function c(a) {
  4013.            e = a.originalEvent, i = e.accelerationIncludingGravity, f = Math.abs(i.x), g = Math.abs(i.y), h = Math.abs(i.z), !b.orientation && (f > 7 || (h > 6 && 8 > g || 8 > h && g > 6) && f > 5) ? j.enabled && j.disable() : j.enabled || j.enable()
  4014.        }
  4015.        a.mobile.iosorientationfixEnabled = !0;
  4016.        var d = navigator.userAgent;
  4017.        if (!(/iPhone|iPad|iPod/.test(navigator.platform) && /OS [1-5]_[0-9_]* like Mac OS X/i.test(d) && d.indexOf("AppleWebKit") > -1)) return a.mobile.iosorientationfixEnabled = !1, void 0;
  4018.        var e, f, g, h, i, j = a.mobile.zoom;
  4019.        a.mobile.document.on("mobileinit", function() {
  4020.            a.mobile.iosorientationfixEnabled && a.mobile.window.bind("orientationchange.iosorientationfix", j.enable).bind("devicemotion.iosorientationfix", c)
  4021.        })
  4022.    }(a, this),
  4023.    function(a, b) {
  4024.        function d() {
  4025.            e.removeClass("ui-mobile-rendering")
  4026.        }
  4027.        var e = a("html"),
  4028.            f = (a("head"), a.mobile.window);
  4029.        a(b.document).trigger("mobileinit"), a.mobile.gradeA() && (a.mobile.ajaxBlacklist && (a.mobile.ajaxEnabled = !1), e.addClass("ui-mobile ui-mobile-rendering"), setTimeout(d, 5e3), a.extend(a.mobile, {
  4030.            initializePage: function() {
  4031.                var b = a.mobile.path,
  4032.                    e = a(":jqmData(role='page'), :jqmData(role='dialog')"),
  4033.                    g = b.stripHash(b.stripQueryParams(b.parseLocation().hash)),
  4034.                    h = c.getElementById(g);
  4035.                e.length || (e = a("body").wrapInner("<div data-" + a.mobile.ns + "role='page'></div>").children(0)), e.each(function() {
  4036.                    var b = a(this);
  4037.                    b.jqmData("url") || b.attr("data-" + a.mobile.ns + "url", b.attr("id") || location.pathname + location.search)
  4038.                }), a.mobile.firstPage = e.first(), a.mobile.pageContainer = a.mobile.firstPage.parent().addClass("ui-mobile-viewport"), a.mobile.navreadyDeferred.resolve(), f.trigger("pagecontainercreate"), a.mobile.showPageLoadingMsg(), d(), a.mobile.hashListeningEnabled && a.mobile.path.isHashValid(location.hash) && (a(h).is(':jqmData(role="page")') || a.mobile.path.isPath(g) || g === a.mobile.dialogHashKey) ? a.event.special.navigate.isPushStateEnabled() ? (a.mobile.navigate.history.stack = [], a.mobile.navigate(a.mobile.path.isPath(location.hash) ? location.hash : location.href)) : f.trigger("hashchange", [!0]) : (a.mobile.path.isHashValid(location.hash) && (a.mobile.urlHistory.initialDst = g.replace("#", "")), a.event.special.navigate.isPushStateEnabled() && a.mobile.navigate.navigator.squash(b.parseLocation().href), a.mobile.changePage(a.mobile.firstPage, {
  4039.                    transition: "none",
  4040.                    reverse: !0,
  4041.                    changeHash: !1,
  4042.                    fromHashChange: !0
  4043.                }))
  4044.            }
  4045.        }), a(function() {
  4046.            b.scrollTo(0, 1), a.mobile.defaultHomeScroll = a.support.scrollTop && 1 !== a.mobile.window.scrollTop() ? 1 : 0, a.mobile.autoInitializePage && a.mobile.initializePage(), f.load(a.mobile.silentScroll), a.support.cssPointerEvents || a.mobile.document.delegate(".ui-disabled", "vclick", function(a) {
  4047.                a.preventDefault(), a.stopImmediatePropagation()
  4048.            })
  4049.        }))
  4050.    }(a, this)
  4051. });
  4052. /*
  4053. //@ sourceMappingURL=jquery.mobile-1.3.2.min.map
  4054. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement