"use strict";

function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
/*! jQuery Mobile 1.4.5 | Git HEADhash: 68e55e7 <> 2014-10-31T17:33:30Z | (c) 2010, 2014 jQuery Foundation, Inc. | jquery.org/license */

!function (a, b, c) {
  "function" == typeof define && define.amd ? define(["jquery"], function (d) {
    return c(d, a, b), d.mobile;
  }) : c(a.jQuery, a, b);
}(void 0, document, function (a, b, c) {
  !function (a) {
    a.mobile = {};
  }(a), function (a, b) {
    function d(b, c) {
      var d,
        f,
        g,
        h = b.nodeName.toLowerCase();
      return "area" === h ? (d = b.parentNode, f = d.name, b.href && f && "map" === d.nodeName.toLowerCase() ? (g = a("img[usemap=#" + f + "]")[0], !!g && e(g)) : !1) : (/input|select|textarea|button|object/.test(h) ? !b.disabled : "a" === h ? b.href || c : c) && e(b);
    }
    function e(b) {
      return a.expr.filters.visible(b) && !a(b).parents().addBack().filter(function () {
        return "hidden" === a.css(this, "visibility");
      }).length;
    }
    var f = 0,
      g = /^ui-id-\d+$/;
    a.ui = a.ui || {}, a.extend(a.ui, {
      version: "c0ab71056b936627e8a7821f03c044aec6280a40",
      keyCode: {
        BACKSPACE: 8,
        COMMA: 188,
        DELETE: 46,
        DOWN: 40,
        END: 35,
        ENTER: 13,
        ESCAPE: 27,
        HOME: 36,
        LEFT: 37,
        PAGE_DOWN: 34,
        PAGE_UP: 33,
        PERIOD: 190,
        RIGHT: 39,
        SPACE: 32,
        TAB: 9,
        UP: 38
      }
    }), a.fn.extend({
      focus: function (b) {
        return function (c, d) {
          return "number" == typeof c ? this.each(function () {
            var b = this;
            setTimeout(function () {
              a(b).focus(), d && d.call(b);
            }, c);
          }) : b.apply(this, arguments);
        };
      }(a.fn.focus),
      scrollParent: function scrollParent() {
        var b;
        return b = a.ui.ie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? this.parents().filter(function () {
          return /(relative|absolute|fixed)/.test(a.css(this, "position")) && /(auto|scroll)/.test(a.css(this, "overflow") + a.css(this, "overflow-y") + a.css(this, "overflow-x"));
        }).eq(0) : this.parents().filter(function () {
          return /(auto|scroll)/.test(a.css(this, "overflow") + a.css(this, "overflow-y") + a.css(this, "overflow-x"));
        }).eq(0), /fixed/.test(this.css("position")) || !b.length ? a(this[0].ownerDocument || c) : b;
      },
      uniqueId: function uniqueId() {
        return this.each(function () {
          this.id || (this.id = "ui-id-" + ++f);
        });
      },
      removeUniqueId: function removeUniqueId() {
        return this.each(function () {
          g.test(this.id) && a(this).removeAttr("id");
        });
      }
    }), a.extend(a.expr[":"], {
      data: a.expr.createPseudo ? a.expr.createPseudo(function (b) {
        return function (c) {
          return !!a.data(c, b);
        };
      }) : function (b, c, d) {
        return !!a.data(b, d[3]);
      },
      focusable: function focusable(b) {
        return d(b, !isNaN(a.attr(b, "tabindex")));
      },
      tabbable: function tabbable(b) {
        var c = a.attr(b, "tabindex"),
          e = isNaN(c);
        return (e || c >= 0) && d(b, !e);
      }
    }), a("<a>").outerWidth(1).jquery || a.each(["Width", "Height"], function (c, d) {
      function e(b, c, d, e) {
        return a.each(f, function () {
          c -= parseFloat(a.css(b, "padding" + this)) || 0, d && (c -= parseFloat(a.css(b, "border" + this + "Width")) || 0), e && (c -= parseFloat(a.css(b, "margin" + this)) || 0);
        }), c;
      }
      var f = "Width" === d ? ["Left", "Right"] : ["Top", "Bottom"],
        g = d.toLowerCase(),
        h = {
          innerWidth: a.fn.innerWidth,
          innerHeight: a.fn.innerHeight,
          outerWidth: a.fn.outerWidth,
          outerHeight: a.fn.outerHeight
        };
      a.fn["inner" + d] = function (c) {
        return c === b ? h["inner" + d].call(this) : this.each(function () {
          a(this).css(g, e(this, c) + "px");
        });
      }, a.fn["outer" + d] = function (b, c) {
        return "number" != typeof b ? h["outer" + d].call(this, b) : this.each(function () {
          a(this).css(g, e(this, b, !0, c) + "px");
        });
      };
    }), a.fn.addBack || (a.fn.addBack = function (a) {
      return this.add(null == a ? this.prevObject : this.prevObject.filter(a));
    }), a("<a>").data("a-b", "a").removeData("a-b").data("a-b") && (a.fn.removeData = function (b) {
      return function (c) {
        return arguments.length ? b.call(this, a.camelCase(c)) : b.call(this);
      };
    }(a.fn.removeData)), a.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()), a.support.selectstart = "onselectstart" in c.createElement("div"), a.fn.extend({
      disableSelection: function disableSelection() {
        return this.bind((a.support.selectstart ? "selectstart" : "mousedown") + ".ui-disableSelection", function (a) {
          a.preventDefault();
        });
      },
      enableSelection: function enableSelection() {
        return this.unbind(".ui-disableSelection");
      },
      zIndex: function zIndex(d) {
        if (d !== b) return this.css("zIndex", d);
        if (this.length) for (var e, f, g = a(this[0]); g.length && g[0] !== c;) {
          if (e = g.css("position"), ("absolute" === e || "relative" === e || "fixed" === e) && (f = parseInt(g.css("zIndex"), 10), !isNaN(f) && 0 !== f)) return f;
          g = g.parent();
        }
        return 0;
      }
    }), a.ui.plugin = {
      add: function add(b, c, d) {
        var e,
          f = a.ui[b].prototype;
        for (e in d) f.plugins[e] = f.plugins[e] || [], f.plugins[e].push([c, d[e]]);
      },
      call: function call(a, b, c, d) {
        var e,
          f = a.plugins[b];
        if (f && (d || a.element[0].parentNode && 11 !== a.element[0].parentNode.nodeType)) for (e = 0; e < f.length; e++) a.options[f[e][0]] && f[e][1].apply(a.element, c);
      }
    };
  }(a), function (a, b) {
    var d = function d(b, c) {
      var d = b.parent(),
        e = [],
        f = function f() {
          var b = a(this),
            c = a.mobile.toolbar && b.data("mobile-toolbar") ? b.toolbar("option") : {
              position: b.attr("data-" + a.mobile.ns + "position"),
              updatePagePadding: b.attr("data-" + a.mobile.ns + "update-page-padding") !== !1
            };
          return !("fixed" === c.position && c.updatePagePadding === !0);
        },
        g = d.children(":jqmData(role='header')").filter(f),
        h = b.children(":jqmData(role='header')"),
        i = d.children(":jqmData(role='footer')").filter(f),
        j = b.children(":jqmData(role='footer')");
      return 0 === h.length && g.length > 0 && (e = e.concat(g.toArray())), 0 === j.length && i.length > 0 && (e = e.concat(i.toArray())), a.each(e, function (b, d) {
        c -= a(d).outerHeight();
      }), Math.max(0, c);
    };
    a.extend(a.mobile, {
      window: a(b),
      document: a(c),
      keyCode: a.ui.keyCode,
      behaviors: {},
      silentScroll: function silentScroll(c) {
        "number" !== a.type(c) && (c = a.mobile.defaultHomeScroll), a.event.special.scrollstart.enabled = !1, setTimeout(function () {
          b.scrollTo(0, c), a.mobile.document.trigger("silentscroll", {
            x: 0,
            y: c
          });
        }, 20), setTimeout(function () {
          a.event.special.scrollstart.enabled = !0;
        }, 150);
      },
      getClosestBaseUrl: function getClosestBaseUrl(b) {
        var c = a(b).closest(".ui-page").jqmData("url"),
          d = a.mobile.path.documentBase.hrefNoHash;
        return a.mobile.dynamicBaseEnabled && c && a.mobile.path.isPath(c) || (c = d), a.mobile.path.makeUrlAbsolute(c, d);
      },
      removeActiveLinkClass: function removeActiveLinkClass(b) {
        !a.mobile.activeClickedLink || a.mobile.activeClickedLink.closest("." + a.mobile.activePageClass).length && !b || a.mobile.activeClickedLink.removeClass(a.mobile.activeBtnClass), a.mobile.activeClickedLink = null;
      },
      getInheritedTheme: function getInheritedTheme(a, b) {
        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;
        return f || b || "a";
      },
      enhanceable: function enhanceable(a) {
        return this.haveParents(a, "enhance");
      },
      hijackable: function hijackable(a) {
        return this.haveParents(a, "ajax");
      },
      haveParents: function haveParents(b, c) {
        if (!a.mobile.ignoreContentEnabled) return b;
        var d,
          e,
          f,
          g,
          h,
          i = b.length,
          j = a();
        for (g = 0; i > g; g++) {
          for (e = b.eq(g), f = !1, d = b[g]; d;) {
            if (h = d.getAttribute ? d.getAttribute("data-" + a.mobile.ns + c) : "", "false" === h) {
              f = !0;
              break;
            }
            d = d.parentNode;
          }
          f || (j = j.add(e));
        }
        return j;
      },
      getScreenHeight: function getScreenHeight() {
        return b.innerHeight || a.mobile.window.height();
      },
      resetActivePageHeight: function resetActivePageHeight(b) {
        var c = a("." + a.mobile.activePageClass),
          e = c.height(),
          f = c.outerHeight(!0);
        b = d(c, "number" == typeof b ? b : a.mobile.getScreenHeight()), c.css("min-height", ""), c.height() < b && c.css("min-height", b - (f - e));
      },
      loading: function loading() {
        var b = this.loading._widget || a(a.mobile.loader.prototype.defaultHtml).loader(),
          c = b.loader.apply(b, arguments);
        return this.loading._widget = b, c;
      }
    }), a.addDependents = function (b, c) {
      var d = a(b),
        e = d.jqmData("dependents") || a();
      d.jqmData("dependents", a(e).add(c));
    }, a.fn.extend({
      removeWithDependents: function removeWithDependents() {
        a.removeWithDependents(this);
      },
      enhanceWithin: function enhanceWithin() {
        var b,
          c = {},
          d = a.mobile.page.prototype.keepNativeSelector(),
          e = this;
        a.mobile.nojs && a.mobile.nojs(this), a.mobile.links && a.mobile.links(this), a.mobile.degradeInputsWithin && a.mobile.degradeInputsWithin(this), a.fn.buttonMarkup && this.find(a.fn.buttonMarkup.initSelector).not(d).jqmEnhanceable().buttonMarkup(), a.fn.fieldcontain && this.find(":jqmData(role='fieldcontain')").not(d).jqmEnhanceable().fieldcontain(), a.each(a.mobile.widgets, function (b, f) {
          if (f.initSelector) {
            var g = a.mobile.enhanceable(e.find(f.initSelector));
            g.length > 0 && (g = g.not(d)), g.length > 0 && (c[f.prototype.widgetName] = g);
          }
        });
        for (b in c) c[b][b]();
        return this;
      },
      addDependents: function addDependents(b) {
        a.addDependents(this, b);
      },
      getEncodedText: function getEncodedText() {
        return a("<a>").text(this.text()).html();
      },
      jqmEnhanceable: function jqmEnhanceable() {
        return a.mobile.enhanceable(this);
      },
      jqmHijackable: function jqmHijackable() {
        return a.mobile.hijackable(this);
      }
    }), a.removeWithDependents = function (b) {
      var c = a(b);
      (c.jqmData("dependents") || a()).remove(), c.remove();
    }, a.addDependents = function (b, c) {
      var d = a(b),
        e = d.jqmData("dependents") || a();
      d.jqmData("dependents", a(e).add(c));
    }, a.find.matches = function (b, c) {
      return a.find(b, null, null, c);
    }, a.find.matchesSelector = function (b, c) {
      return a.find(c, null, null, [b]).length > 0;
    };
  }(a, this), function (a) {
    a.extend(a.mobile, {
      version: "1.4.5",
      subPageUrlKey: "ui-page",
      hideUrlBar: !0,
      keepNative: ":jqmData(role='none'), :jqmData(role='nojs')",
      activePageClass: "ui-page-active",
      activeBtnClass: "ui-btn-active",
      focusClass: "ui-focus",
      ajaxEnabled: !0,
      hashListeningEnabled: !0,
      linkBindingEnabled: !0,
      defaultPageTransition: "fade",
      maxTransitionWidth: !1,
      minScrollBack: 0,
      defaultDialogTransition: "pop",
      pageLoadErrorMessage: "Error Loading Page",
      pageLoadErrorMessageTheme: "a",
      phonegapNavigationEnabled: !1,
      autoInitializePage: !0,
      pushStateEnabled: !0,
      ignoreContentEnabled: !1,
      buttonMarkup: {
        hoverDelay: 200
      },
      dynamicBaseEnabled: !0,
      pageContainer: a(),
      allowCrossDomainPages: !1,
      dialogHashKey: "&ui-state=dialog"
    });
  }(a, this), function (a, b) {
    var c = 0,
      d = Array.prototype.slice,
      e = a.cleanData;
    a.cleanData = function (b) {
      for (var c, d = 0; null != (c = b[d]); d++) try {
        a(c).triggerHandler("remove");
      } catch (f) {}
      e(b);
    }, a.widget = function (b, c, d) {
      var e,
        f,
        g,
        h,
        i = {},
        j = b.split(".")[0];
      return b = b.split(".")[1], e = j + "-" + b, d || (d = c, c = a.Widget), a.expr[":"][e.toLowerCase()] = function (b) {
        return !!a.data(b, e);
      }, a[j] = a[j] || {}, f = a[j][b], g = a[j][b] = function (a, b) {
        return this._createWidget ? void (arguments.length && this._createWidget(a, b)) : new g(a, b);
      }, a.extend(g, f, {
        version: d.version,
        _proto: a.extend({}, d),
        _childConstructors: []
      }), h = new c(), h.options = a.widget.extend({}, h.options), a.each(d, function (b, d) {
        return a.isFunction(d) ? void (i[b] = function () {
          var a = function a() {
              return c.prototype[b].apply(this, arguments);
            },
            e = function e(a) {
              return c.prototype[b].apply(this, a);
            };
          return function () {
            var b,
              c = this._super,
              f = this._superApply;
            return this._super = a, this._superApply = e, b = d.apply(this, arguments), this._super = c, this._superApply = f, b;
          };
        }()) : void (i[b] = d);
      }), g.prototype = a.widget.extend(h, {
        widgetEventPrefix: f ? h.widgetEventPrefix || b : b
      }, i, {
        constructor: g,
        namespace: j,
        widgetName: b,
        widgetFullName: e
      }), f ? (a.each(f._childConstructors, function (b, c) {
        var d = c.prototype;
        a.widget(d.namespace + "." + d.widgetName, g, c._proto);
      }), delete f._childConstructors) : c._childConstructors.push(g), a.widget.bridge(b, g), g;
    }, a.widget.extend = function (c) {
      for (var e, f, g = d.call(arguments, 1), h = 0, i = g.length; i > h; h++) 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);
      return c;
    }, a.widget.bridge = function (c, e) {
      var f = e.prototype.widgetFullName || c;
      a.fn[c] = function (g) {
        var h = "string" == typeof g,
          i = d.call(arguments, 1),
          j = this;
        return g = !h && i.length ? a.widget.extend.apply(null, [g].concat(i)) : g, this.each(h ? function () {
          var d,
            e = a.data(this, f);
          return "instance" === g ? (j = e, !1) : 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 + "'");
        } : function () {
          var b = a.data(this, f);
          b ? b.option(g || {})._init() : a.data(this, f, new e(g, this));
        }), j;
      };
    }, a.Widget = function () {}, a.Widget._childConstructors = [], a.Widget.prototype = {
      widgetName: "widget",
      widgetEventPrefix: "",
      defaultElement: "<div>",
      options: {
        disabled: !1,
        create: null
      },
      _createWidget: function _createWidget(b, d) {
        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, {
          remove: function remove(a) {
            a.target === d && this.destroy();
          }
        }), 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();
      },
      _getCreateOptions: a.noop,
      _getCreateEventData: a.noop,
      _create: a.noop,
      _init: a.noop,
      destroy: function destroy() {
        this._destroy(), this.element.unbind(this.eventNamespace).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");
      },
      _destroy: a.noop,
      widget: function widget() {
        return this.element;
      },
      option: function option(c, d) {
        var e,
          f,
          g,
          h = c;
        if (0 === arguments.length) return a.widget.extend({}, this.options);
        if ("string" == typeof c) if (h = {}, e = c.split("."), c = e.shift(), e.length) {
          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]];
          if (c = e.pop(), d === b) return f[c] === b ? null : f[c];
          f[c] = d;
        } else {
          if (d === b) return this.options[c] === b ? null : this.options[c];
          h[c] = d;
        }
        return this._setOptions(h), this;
      },
      _setOptions: function _setOptions(a) {
        var b;
        for (b in a) this._setOption(b, a[b]);
        return this;
      },
      _setOption: function _setOption(a, b) {
        return this.options[a] = b, "disabled" === a && (this.widget().toggleClass(this.widgetFullName + "-disabled", !!b), this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus")), this;
      },
      enable: function enable() {
        return this._setOptions({
          disabled: !1
        });
      },
      disable: function disable() {
        return this._setOptions({
          disabled: !0
        });
      },
      _on: function _on(b, c, d) {
        var e,
          f = this;
        "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) {
          function h() {
            return b || f.options.disabled !== !0 && !a(this).hasClass("ui-state-disabled") ? ("string" == typeof g ? f[g] : g).apply(f, arguments) : void 0;
          }
          "string" != typeof g && (h.guid = g.guid = g.guid || h.guid || a.guid++);
          var i = d.match(/^(\w+)\s*(.*)$/),
            j = i[1] + f.eventNamespace,
            k = i[2];
          k ? e.delegate(k, j, h) : c.bind(j, h);
        });
      },
      _off: function _off(a, b) {
        b = (b || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, a.unbind(b).undelegate(b);
      },
      _delay: function _delay(a, b) {
        function c() {
          return ("string" == typeof a ? d[a] : a).apply(d, arguments);
        }
        var d = this;
        return setTimeout(c, b || 0);
      },
      _hoverable: function _hoverable(b) {
        this.hoverable = this.hoverable.add(b), this._on(b, {
          mouseenter: function mouseenter(b) {
            a(b.currentTarget).addClass("ui-state-hover");
          },
          mouseleave: function mouseleave(b) {
            a(b.currentTarget).removeClass("ui-state-hover");
          }
        });
      },
      _focusable: function _focusable(b) {
        this.focusable = this.focusable.add(b), this._on(b, {
          focusin: function focusin(b) {
            a(b.currentTarget).addClass("ui-state-focus");
          },
          focusout: function focusout(b) {
            a(b.currentTarget).removeClass("ui-state-focus");
          }
        });
      },
      _trigger: function _trigger(b, c, d) {
        var e,
          f,
          g = this.options[b];
        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) for (e in f) e in c || (c[e] = f[e]);
        return this.element.trigger(c, d), !(a.isFunction(g) && g.apply(this.element[0], [c].concat(d)) === !1 || c.isDefaultPrevented());
      }
    }, a.each({
      show: "fadeIn",
      hide: "fadeOut"
    }, function (b, c) {
      a.Widget.prototype["_" + b] = function (d, e, f) {
        "string" == typeof e && (e = {
          effect: e
        });
        var g,
          h = e ? e === !0 || "number" == typeof e ? c : e.effect || c : b;
        e = e || {}, "number" == typeof e && (e = {
          duration: e
        }), 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) {
          a(this)[b](), f && f.call(d[0]), c();
        });
      };
    });
  }(a), function (a, b, c) {
    var d = {},
      e = a.find,
      f = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,
      g = /:jqmData\(([^)]*)\)/g;
    a.extend(a.mobile, {
      ns: "",
      getAttribute: function getAttribute(b, c) {
        var d;
        b = b.jquery ? b[0] : b, b && b.getAttribute && (d = b.getAttribute("data-" + a.mobile.ns + c));
        try {
          d = "true" === d ? !0 : "false" === d ? !1 : "null" === d ? null : +d + "" === d ? +d : f.test(d) ? JSON.parse(d) : d;
        } catch (e) {}
        return d;
      },
      nsNormalizeDict: d,
      nsNormalize: function nsNormalize(b) {
        return d[b] || (d[b] = a.camelCase(a.mobile.ns + b));
      },
      closestPageData: function closestPageData(a) {
        return a.closest(":jqmData(role='page'), :jqmData(role='dialog')").data("mobile-page");
      }
    }), a.fn.jqmData = function (b, d) {
      var e;
      return "undefined" != typeof b && (b && (b = a.mobile.nsNormalize(b)), e = arguments.length < 2 || d === c ? this.data(b) : this.data(b, d)), e;
    }, a.jqmData = function (b, c, d) {
      var e;
      return "undefined" != typeof c && (e = a.data(b, c ? a.mobile.nsNormalize(c) : c, d)), e;
    }, a.fn.jqmRemoveData = function (b) {
      return this.removeData(a.mobile.nsNormalize(b));
    }, a.jqmRemoveData = function (b, c) {
      return a.removeData(b, a.mobile.nsNormalize(c));
    }, a.find = function (b, c, d, f) {
      return b.indexOf(":jqmData") > -1 && (b = b.replace(g, "[data-" + (a.mobile.ns || "") + "$1]")), e.call(this, b, c, d, f);
    }, a.extend(a.find, e);
  }(a, this), function (a) {
    var b = /[A-Z]/g,
      c = function c(a) {
        return "-" + a.toLowerCase();
      };
    a.extend(a.Widget.prototype, {
      _getCreateOptions: function _getCreateOptions() {
        var d,
          e,
          f = this.element[0],
          g = {};
        if (!a.mobile.getAttribute(f, "defaults")) for (d in this.options) e = a.mobile.getAttribute(f, d.replace(b, c)), null != e && (g[d] = e);
        return g;
      }
    }), a.mobile.widget = a.Widget;
  }(a), function (a) {
    var b = "ui-loader",
      c = a("html");
    a.widget("mobile.loader", {
      options: {
        theme: "a",
        textVisible: !1,
        html: "",
        text: ""
      },
      defaultHtml: "<div class='" + b + "'><span class='ui-icon-loading'></span><h1></h1></div>",
      fakeFixLoader: function fakeFixLoader() {
        var b = a("." + a.mobile.activeBtnClass).first();
        this.element.css({
          top: a.support.scrollTop && this.window.scrollTop() + this.window.height() / 2 || b.length && b.offset().top || 100
        });
      },
      checkLoaderPosition: function checkLoaderPosition() {
        var b = this.element.offset(),
          c = this.window.scrollTop(),
          d = a.mobile.getScreenHeight();
        (b.top < c || b.top - c > d) && (this.element.addClass("ui-loader-fakefix"), this.fakeFixLoader(), this.window.unbind("scroll", this.checkLoaderPosition).bind("scroll", a.proxy(this.fakeFixLoader, this)));
      },
      resetHtml: function resetHtml() {
        this.element.html(a(this.defaultHtml).html());
      },
      show: function show(d, e, f) {
        var g, h, i;
        this.resetHtml(), "object" === a.type(d) ? (i = a.extend({}, this.options, d), d = i.theme) : (i = this.options, d = d || i.theme), h = e || (i.text === !1 ? "" : i.text), c.addClass("ui-loading"), g = i.textVisible, this.element.attr("class", b + " ui-corner-all ui-body-" + d + " ui-loader-" + (g || e || d.text ? "verbose" : "default") + (i.textonly || f ? " ui-loader-textonly" : "")), i.html ? this.element.html(i.html) : this.element.find("h1").text(h), this.element.appendTo(a(a.mobile.pagecontainer ? ":mobile-pagecontainer" : "body")), this.checkLoaderPosition(), this.window.bind("scroll", a.proxy(this.checkLoaderPosition, this));
      },
      hide: function hide() {
        c.removeClass("ui-loading"), this.options.text && this.element.removeClass("ui-loader-fakefix"), this.window.unbind("scroll", this.fakeFixLoader), this.window.unbind("scroll", this.checkLoaderPosition);
      }
    });
  }(a, this), function (a, b, d) {
    "$:nomunge";

    function e(a) {
      return a = a || location.href, "#" + a.replace(/^[^#]*#?(.*)$/, "$1");
    }
    var f,
      g = "hashchange",
      h = c,
      i = a.event.special,
      j = h.documentMode,
      k = "on" + g in b && (j === d || j > 7);
    a.fn[g] = function (a) {
      return a ? this.bind(g, a) : this.trigger(g);
    }, a.fn[g].delay = 50, i[g] = a.extend(i[g], {
      setup: function setup() {
        return k ? !1 : void a(f.start);
      },
      teardown: function teardown() {
        return k ? !1 : void a(f.stop);
      }
    }), f = function () {
      function c() {
        var d = e(),
          h = n(j);
        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);
      }
      var f,
        i = {},
        j = e(),
        l = function l(a) {
          return a;
        },
        m = l,
        n = l;
      return i.start = function () {
        f || c();
      }, i.stop = function () {
        f && clearTimeout(f), f = d;
      }, b.attachEvent && !b.addEventListener && !k && function () {
        var b, d;
        i.start = function () {
          b || (d = a.fn[g].src, d = d && d + e(), b = a('<iframe tabindex="-1" title="empty"/>').hide().one("load", function () {
            d || m(e()), c();
          }).attr("src", d || "javascript:0").insertAfter("body")[0].contentWindow, h.onpropertychange = function () {
            try {
              "title" === event.propertyName && (b.document.title = h.title);
            } catch (a) {}
          });
        }, i.stop = l, n = function n() {
          return e(b.location.href);
        }, m = function m(c, d) {
          var e = b.document,
            f = a.fn[g].domain;
          c !== d && (e.title = h.title, e.open(), f && e.write('<script>document.domain="' + f + '"</script>'), e.close(), b.location.hash = c);
        };
      }(), i;
    }();
  }(a, this), function (a) {
    b.matchMedia = b.matchMedia || function (a) {
      var b,
        c = a.documentElement,
        d = c.firstElementChild || c.firstChild,
        e = a.createElement("body"),
        f = a.createElement("div");
      return f.id = "mq-test-1", f.style.cssText = "position:absolute;top:-100em", e.style.background = "none", e.appendChild(f), function (a) {
        return f.innerHTML = '&shy;<style media="' + a + '"> #mq-test-1 { width: 42px; }</style>', c.insertBefore(e, d), b = 42 === f.offsetWidth, c.removeChild(e), {
          matches: b,
          media: a
        };
      };
    }(c), a.mobile.media = function (a) {
      return b.matchMedia(a).matches;
    };
  }(a), function (a) {
    var b = {
      touch: "ontouchend" in c
    };
    a.mobile.support = a.mobile.support || {}, a.extend(a.support, b), a.extend(a.mobile.support, b);
  }(a), function (a) {
    a.extend(a.support, {
      orientation: "orientation" in b && "onorientationchange" in b
    });
  }(a), function (a, d) {
    function e(a) {
      var b,
        c = a.charAt(0).toUpperCase() + a.substr(1),
        e = (a + " " + o.join(c + " ") + c).split(" ");
      for (b in e) if (n[e[b]] !== d) return !0;
    }
    function f() {
      var c = b,
        d = !(!c.document.createElementNS || !c.document.createElementNS("http://www.w3.org/2000/svg", "svg").createSVGRect || c.opera && -1 === navigator.userAgent.indexOf("Chrome")),
        e = function e(b) {
          b && d || a("html").addClass("ui-nosvg");
        },
        f = new c.Image();
      f.onerror = function () {
        e(!1);
      }, f.onload = function () {
        e(1 === f.width && 1 === f.height);
      }, f.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
    }
    function g() {
      var e,
        f,
        g,
        h = "transform-3d",
        i = a.mobile.media("(-" + o.join("-" + h + "),(-") + "-" + h + "),(" + h + ")");
      if (i) return !!i;
      e = c.createElement("div"), f = {
        MozTransform: "-moz-transform",
        transform: "transform"
      }, m.append(e);
      for (g in f) e.style[g] !== d && (e.style[g] = "translate3d( 100px, 1px, 1px )", i = b.getComputedStyle(e).getPropertyValue(f[g]));
      return !!i && "none" !== i;
    }
    function h() {
      var b,
        c,
        d = location.protocol + "//" + location.host + location.pathname + "ui-dir/",
        e = a("head base"),
        f = null,
        g = "";
      return e.length ? g = e.attr("href") : e = f = a("<base>", {
        href: d
      }).appendTo("head"), b = a("<a href='testurl' />").prependTo(m), c = b[0].href, e[0].href = g || location.pathname, f && f.remove(), 0 === c.indexOf(d);
    }
    function i() {
      var a,
        d = c.createElement("x"),
        e = c.documentElement,
        f = b.getComputedStyle;
      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;
    }
    function j() {
      var a = c.createElement("div");
      return "undefined" != typeof a.getBoundingClientRect;
    }
    function k() {
      var a = b,
        c = navigator.userAgent,
        d = navigator.platform,
        e = c.match(/AppleWebKit\/([0-9]+)/),
        f = !!e && e[1],
        g = c.match(/Fennec\/([0-9]+)/),
        h = !!g && g[1],
        i = c.match(/Opera Mobi\/([0-9]+)/),
        j = !!i && i[1];
      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;
    }
    var l,
      m = a("<body>").prependTo("html"),
      n = m[0].style,
      o = ["Webkit", "Moz", "O"],
      p = ("palmGetResource" in b),
      q = b.operamini && "[object OperaMini]" === {}.toString.call(b.operamini),
      r = b.blackberry && !e("-webkit-transform");
    a.extend(a.mobile, {
      browser: {}
    }), a.mobile.browser.oldIE = function () {
      var a = 3,
        b = c.createElement("div"),
        d = b.all || [];
      do b.innerHTML = "<!--[if gt IE " + ++a + "]><br><![endif]-->"; while (d[0]);
      return a > 4 ? a : !a;
    }(), a.extend(a.support, {
      pushState: "pushState" in history && "replaceState" in history && !(b.navigator.userAgent.indexOf("Firefox") >= 0 && b.top !== b) && -1 === b.navigator.userAgent.search(/CriOS/),
      mediaquery: a.mobile.media("only all"),
      cssPseudoElement: !!e("content"),
      touchOverflow: !!e("overflowScrolling"),
      cssTransform3d: g(),
      boxShadow: !!e("boxShadow") && !r,
      fixedPosition: k(),
      scrollTop: ("pageXOffset" in b || "scrollTop" in c.documentElement || "scrollTop" in m[0]) && !p && !q,
      dynamicBaseTag: h(),
      cssPointerEvents: i(),
      boundingRect: j(),
      inlineSVG: f
    }), m.remove(), l = function () {
      var a = b.navigator.userAgent;
      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]/);
    }(), a.mobile.gradeA = function () {
      return (a.support.mediaquery && a.support.cssPseudoElement || a.mobile.browser.oldIE && a.mobile.browser.oldIE >= 8) && (a.support.boundingRect || null !== a.fn.jquery.match(/1\.[0-7+]\.[0-9+]?/));
    }, a.mobile.ajaxBlacklist = b.blackberry && !b.WebKitPoint || q || l, l && a(function () {
      a("head link[rel='stylesheet']").attr("rel", "alternate stylesheet").attr("rel", "stylesheet");
    }), a.support.boxShadow || a("html").addClass("ui-noboxshadow");
  }(a), function (a, b) {
    var c,
      d = a.mobile.window,
      e = function e() {};
    a.event.special.beforenavigate = {
      setup: function setup() {
        d.on("navigate", e);
      },
      teardown: function teardown() {
        d.off("navigate", e);
      }
    }, a.event.special.navigate = c = {
      bound: !1,
      pushStateEnabled: !0,
      originalEventName: b,
      isPushStateEnabled: function isPushStateEnabled() {
        return a.support.pushState && a.mobile.pushStateEnabled === !0 && this.isHashChangeEnabled();
      },
      isHashChangeEnabled: function isHashChangeEnabled() {
        return a.mobile.hashListeningEnabled === !0;
      },
      popstate: function popstate(b) {
        var c = new a.Event("navigate"),
          e = new a.Event("beforenavigate"),
          f = b.originalEvent.state || {};
        e.originalEvent = b, d.trigger(e), e.isDefaultPrevented() || (b.historyState && a.extend(f, b.historyState), c.originalEvent = b, setTimeout(function () {
          d.trigger(c, {
            state: f
          });
        }, 0));
      },
      hashchange: function hashchange(b) {
        var c = new a.Event("navigate"),
          e = new a.Event("beforenavigate");
        e.originalEvent = b, d.trigger(e), e.isDefaultPrevented() || (c.originalEvent = b, d.trigger(c, {
          state: b.hashchangeState || {}
        }));
      },
      setup: function setup() {
        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)));
      }
    };
  }(a), function (a, c) {
    var d,
      e,
      f = "&ui-state=dialog";
    a.mobile.path = d = {
      uiStateKey: "&ui-state",
      urlParseRE: /^\s*(((([^:\/#\?]+:)?(?:(\/\/)((?:(([^:@\/#\?]+)(?:\:([^:@\/#\?]+))?)@)?(([^:\/#\?\]\[]+|\[[^\/\]@#?]+\])(?:\:([0-9]+))?))?)?)?((\/?(?:[^\/\?#]+\/+)*)([^\?#]*)))?(\?[^#]+)?)(#.*)?/,
      getLocation: function getLocation(a) {
        var b = this.parseUrl(a || location.href),
          c = a ? b : location,
          d = b.hash;
        return d = "#" === d ? "" : d, c.protocol + b.doubleSlash + c.host + ("" !== c.protocol && "/" !== c.pathname.substring(0, 1) ? "/" : "") + c.pathname + c.search + d;
      },
      getDocumentUrl: function getDocumentUrl(b) {
        return b ? a.extend({}, d.documentUrl) : d.documentUrl.href;
      },
      parseLocation: function parseLocation() {
        return this.parseUrl(this.getLocation());
      },
      parseUrl: function parseUrl(b) {
        if ("object" === a.type(b)) return b;
        var c = d.urlParseRE.exec(b || "") || [];
        return {
          href: c[0] || "",
          hrefNoHash: c[1] || "",
          hrefNoSearch: c[2] || "",
          domain: c[3] || "",
          protocol: c[4] || "",
          doubleSlash: c[5] || "",
          authority: c[6] || "",
          username: c[8] || "",
          password: c[9] || "",
          host: c[10] || "",
          hostname: c[11] || "",
          port: c[12] || "",
          pathname: c[13] || "",
          directory: c[14] || "",
          filename: c[15] || "",
          search: c[16] || "",
          hash: c[17] || ""
        };
      },
      makePathAbsolute: function makePathAbsolute(a, b) {
        var c, d, e, f;
        if (a && "/" === a.charAt(0)) return a;
        for (a = a || "", b = b ? b.replace(/^\/|(\/[^\/]*|[^\/]+)$/g, "") : "", c = b ? b.split("/") : [], d = a.split("/"), e = 0; e < d.length; e++) switch (f = d[e]) {
          case ".":
            break;
          case "..":
            c.length && c.pop();
            break;
          default:
            c.push(f);
        }
        return "/" + c.join("/");
      },
      isSameDomain: function isSameDomain(a, b) {
        return d.parseUrl(a).domain.toLowerCase() === d.parseUrl(b).domain.toLowerCase();
      },
      isRelativeUrl: function isRelativeUrl(a) {
        return "" === d.parseUrl(a).protocol;
      },
      isAbsoluteUrl: function isAbsoluteUrl(a) {
        return "" !== d.parseUrl(a).protocol;
      },
      makeUrlAbsolute: function makeUrlAbsolute(a, b) {
        if (!d.isRelativeUrl(a)) return a;
        b === c && (b = this.documentBase);
        var e = d.parseUrl(a),
          f = d.parseUrl(b),
          g = e.protocol || f.protocol,
          h = e.protocol ? e.doubleSlash : e.doubleSlash || f.doubleSlash,
          i = e.authority || f.authority,
          j = "" !== e.pathname,
          k = d.makePathAbsolute(e.pathname || f.filename, f.pathname),
          l = e.search || !j && f.search || "",
          m = e.hash;
        return g + h + i + k + l + m;
      },
      addSearchParams: function addSearchParams(b, c) {
        var e = d.parseUrl(b),
          f = "object" == _typeof(c) ? a.param(c) : c,
          g = e.search || "?";
        return e.hrefNoSearch + g + ("?" !== g.charAt(g.length - 1) ? "&" : "") + f + (e.hash || "");
      },
      convertUrlToDataUrl: function convertUrlToDataUrl(a) {
        var c = a,
          e = d.parseUrl(a);
        return d.isEmbeddedPage(e) ? c = e.hash.split(f)[0].replace(/^#/, "").replace(/\?.*$/, "") : d.isSameDomain(e, this.documentBase) && (c = e.hrefNoHash.replace(this.documentBase.domain, "").split(f)[0]), b.decodeURIComponent(c);
      },
      get: function get(a) {
        return a === c && (a = d.parseLocation().hash), d.stripHash(a).replace(/[^\/]*\.[^\/*]+$/, "");
      },
      set: function set(a) {
        location.hash = a;
      },
      isPath: function isPath(a) {
        return /\//.test(a);
      },
      clean: function clean(a) {
        return a.replace(this.documentBase.domain, "");
      },
      stripHash: function stripHash(a) {
        return a.replace(/^#/, "");
      },
      stripQueryParams: function stripQueryParams(a) {
        return a.replace(/\?.*$/, "");
      },
      cleanHash: function cleanHash(a) {
        return d.stripHash(a.replace(/\?.*$/, "").replace(f, ""));
      },
      isHashValid: function isHashValid(a) {
        return /^#[^#]+$/.test(a);
      },
      isExternal: function isExternal(a) {
        var b = d.parseUrl(a);
        return !(!b.protocol || b.domain.toLowerCase() === this.documentUrl.domain.toLowerCase());
      },
      hasProtocol: function hasProtocol(a) {
        return /^(:?\w+:)/.test(a);
      },
      isEmbeddedPage: function isEmbeddedPage(a) {
        var b = d.parseUrl(a);
        return "" !== b.protocol ? !this.isPath(b.hash) && b.hash && (b.hrefNoHash === this.documentUrl.hrefNoHash || this.documentBaseDiffers && b.hrefNoHash === this.documentBase.hrefNoHash) : /^#/.test(b.href);
      },
      squash: function squash(a, b) {
        var c,
          e,
          f,
          g,
          h,
          i = this.isPath(a),
          j = this.parseUrl(a),
          k = j.hash,
          l = "";
        return b || (i ? b = d.getLocation() : (h = d.getDocumentUrl(!0), b = d.isPath(h.hash) ? d.squash(h.href) : h.href)), e = i ? d.stripHash(a) : a, e = d.isPath(j.hash) ? d.stripHash(j.hash) : e, g = e.indexOf(this.uiStateKey), g > -1 && (l = e.slice(g), e = e.slice(0, g)), c = d.makeUrlAbsolute(e, b), f = this.parseUrl(c).search, i ? ((d.isPath(k) || 0 === k.replace("#", "").indexOf(this.uiStateKey)) && (k = ""), l && -1 === k.indexOf(this.uiStateKey) && (k += l), -1 === k.indexOf("#") && "" !== k && (k = "#" + k), c = d.parseUrl(c), c = c.protocol + c.doubleSlash + c.host + c.pathname + f + k) : c += c.indexOf("#") > -1 ? l : "#" + l, c;
      },
      isPreservableHash: function isPreservableHash(a) {
        return 0 === a.replace("#", "").indexOf(this.uiStateKey);
      },
      hashToSelector: function hashToSelector(a) {
        var b = "#" === a.substring(0, 1);
        return b && (a = a.substring(1)), (b ? "#" : "") + a.replace(/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g, "\\$1");
      },
      getFilePath: function getFilePath(a) {
        return a && a.split(f)[0];
      },
      isFirstPageUrl: function isFirstPageUrl(b) {
        var e = d.parseUrl(d.makeUrlAbsolute(b, this.documentBase)),
          f = e.hrefNoHash === this.documentUrl.hrefNoHash || this.documentBaseDiffers && e.hrefNoHash === this.documentBase.hrefNoHash,
          g = a.mobile.firstPage,
          h = g && g[0] ? g[0].id : c;
        return f && (!e.hash || "#" === e.hash || h && e.hash.replace(/^#/, "") === h);
      },
      isPermittedCrossDomainRequest: function isPermittedCrossDomainRequest(b, c) {
        return a.mobile.allowCrossDomainPages && ("file:" === b.protocol || "content:" === b.protocol) && -1 !== c.search(/^https?:/);
      }
    }, 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.getDocumentBase = function (b) {
      return b ? a.extend({}, d.documentBase) : d.documentBase.href;
    }, a.extend(a.mobile, {
      getDocumentUrl: d.getDocumentUrl,
      getDocumentBase: d.getDocumentBase
    });
  }(a), function (a, b) {
    a.mobile.History = function (a, b) {
      this.stack = a || [], this.activeIndex = b || 0;
    }, a.extend(a.mobile.History.prototype, {
      getActive: function getActive() {
        return this.stack[this.activeIndex];
      },
      getLast: function getLast() {
        return this.stack[this.previousIndex];
      },
      getNext: function getNext() {
        return this.stack[this.activeIndex + 1];
      },
      getPrev: function getPrev() {
        return this.stack[this.activeIndex - 1];
      },
      add: function add(a, b) {
        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;
      },
      clearForward: function clearForward() {
        this.stack = this.stack.slice(0, this.activeIndex + 1);
      },
      find: function find(a, b, c) {
        b = b || this.stack;
        var d,
          e,
          f,
          g = b.length;
        for (e = 0; g > e; e++) if (d = b[e], (decodeURIComponent(a) === decodeURIComponent(d.url) || decodeURIComponent(a) === decodeURIComponent(d.hash)) && (f = e, c)) return f;
        return f;
      },
      closest: function closest(a) {
        var c,
          d = this.activeIndex;
        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;
      },
      direct: function direct(c) {
        var d = this.closest(c.url),
          e = this.activeIndex;
        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());
      }
    });
  }(a), function (a) {
    var d = a.mobile.path,
      e = location.href;
    a.mobile.Navigator = function (b) {
      this.history = b, this.ignoreInitialHashChange = !0, a.mobile.window.bind({
        "popstate.history": a.proxy(this.popstate, this),
        "hashchange.history": a.proxy(this.hashchange, this)
      });
    }, a.extend(a.mobile.Navigator.prototype, {
      squash: function squash(e, f) {
        var g,
          h,
          i = d.isPath(e) ? d.stripHash(e) : e;
        return h = d.squash(e), g = a.extend({
          hash: i,
          url: h
        }, f), b.history.replaceState(g, g.title || c.title, h), g;
      },
      hash: function hash(a, b) {
        var c, e, f, g;
        return c = d.parseUrl(a), e = d.parseLocation(), e.pathname + e.search === c.pathname + c.search ? f = c.hash ? c.hash : c.pathname + c.search : d.isPath(a) ? (g = d.parseUrl(b), f = g.pathname + g.search + (d.isPreservableHash(g.hash) ? g.hash.replace("#", "") : "")) : f = a, f;
      },
      go: function go(e, f, g) {
        var h,
          i,
          j,
          k,
          l = a.event.special.navigate.isPushStateEnabled();
        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({
          url: i,
          hash: j,
          title: c.title
        }, f), l && (k = new a.Event("popstate"), k.originalEvent = {
          type: "popstate",
          state: null
        }, this.squash(e, h), g || (this.ignorePopState = !0, a.mobile.window.trigger(k))), this.history.add(h.url, h);
      },
      popstate: function popstate(b) {
        var c, f;
        if (a.event.special.navigate.isPushStateEnabled()) return this.preventHashAssignPopState ? (this.preventHashAssignPopState = !1, void b.stopImmediatePropagation()) : this.ignorePopState ? void (this.ignorePopState = !1) : !b.originalEvent.state && 1 === this.history.stack.length && this.ignoreInitialHashChange && (this.ignoreInitialHashChange = !1, location.href === e) ? void b.preventDefault() : (c = d.parseLocation().hash, !b.originalEvent.state && c ? (f = this.squash(c), this.history.add(f.url, f), void (b.historyState = f)) : void this.history.direct({
          url: (b.originalEvent.state || {}).url || c,
          present: function present(c, d) {
            b.historyState = a.extend({}, c), b.historyState.direction = d;
          }
        }));
      },
      hashchange: function hashchange(b) {
        var e, f;
        if (a.event.special.navigate.isHashChangeEnabled() && !a.event.special.navigate.isPushStateEnabled()) {
          if (this.preventNextHashChange) return this.preventNextHashChange = !1, void b.stopImmediatePropagation();
          e = this.history, f = d.parseLocation().hash, this.history.direct({
            url: f,
            present: function present(c, d) {
              b.hashchangeState = a.extend({}, c), b.hashchangeState.direction = d;
            },
            missing: function missing() {
              e.add(f, {
                hash: f,
                title: c.title
              });
            }
          });
        }
      }
    });
  }(a), function (a) {
    a.mobile.navigate = function (b, c, d) {
      a.mobile.navigate.navigator.go(b, c, d);
    }, a.mobile.navigate.history = new a.mobile.History(), a.mobile.navigate.navigator = new a.mobile.Navigator(a.mobile.navigate.history);
    var b = a.mobile.path.parseLocation();
    a.mobile.navigate.history.add(b.href, {
      hash: b.hash
    });
  }(a), function (a, b) {
    var d = {
        animation: {},
        transition: {}
      },
      e = c.createElement("a"),
      f = ["", "webkit-", "moz-", "o-"];
    a.each(["animation", "transition"], function (c, g) {
      var h = 0 === c ? g + "-name" : g;
      a.each(f, function (c, f) {
        return e.style[a.camelCase(f + h)] !== b ? (d[g].prefix = f, !1) : void 0;
      }), d[g].duration = a.camelCase(d[g].prefix + g + "-duration"), d[g].event = a.camelCase(d[g].prefix + g + "-end"), "" === d[g].prefix && (d[g].event = d[g].event.toLowerCase());
    }), a.support.cssTransitions = d.transition.prefix !== b, a.support.cssAnimations = d.animation.prefix !== b, a(e).remove(), a.fn.animationComplete = function (e, f, g) {
      var h,
        i,
        j = this,
        k = function k() {
          clearTimeout(h), e.apply(this, arguments);
        },
        l = f && "animation" !== f ? "transition" : "animation";
      return a.support.cssTransitions && "transition" === l || a.support.cssAnimations && "animation" === l ? (g === b && (a(this).context !== c && (i = 3e3 * parseFloat(a(this).css(d[l].duration))), (0 === i || i === b || isNaN(i)) && (i = a.fn.animationComplete.defaultDuration)), h = setTimeout(function () {
        a(j).off(d[l].event, k), e.apply(j);
      }, i), a(this).one(d[l].event, k)) : (setTimeout(a.proxy(e, this), 0), a(this));
    }, a.fn.animationComplete.defaultDuration = 1e3;
  }(a), function (a, b, c, d) {
    function e(a) {
      for (; a && "undefined" != typeof a.originalEvent;) a = a.originalEvent;
      return a;
    }
    function f(b, c) {
      var f,
        g,
        h,
        i,
        j,
        k,
        l,
        m,
        n,
        o = b.type;
      if (b = a.Event(b), b.type = c, f = b.originalEvent, g = a.event.props, o.search(/^(mouse|click)/) > -1 && (g = E), f) for (l = g.length, i; l;) i = g[--l], b[i] = f[i];
      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)) for (m = 0, n = C.length; n > m; m++) i = C[m], b[i] = k[i];
      return b;
    }
    function g(b) {
      for (var c, d, e = {}; b;) {
        c = a.data(b, z);
        for (d in c) c[d] && (e[d] = e.hasVirtualBinding = !0);
        b = b.parentNode;
      }
      return e;
    }
    function h(b, c) {
      for (var d; b;) {
        if (d = a.data(b, z), d && (!c || d[c])) return b;
        b = b.parentNode;
      }
      return null;
    }
    function i() {
      M = !1;
    }
    function j() {
      M = !0;
    }
    function k() {
      Q = 0, K.length = 0, L = !1, j();
    }
    function l() {
      i();
    }
    function m() {
      n(), G = setTimeout(function () {
        G = 0, k();
      }, a.vmouse.resetTimerDuration);
    }
    function n() {
      G && (clearTimeout(G), G = 0);
    }
    function o(b, c, d) {
      var e;
      return (d && d[b] || !d && h(c.target, b)) && (e = f(c, b), a(c.target).trigger(e)), e;
    }
    function p(b) {
      var c,
        d = a.data(b.target, A);
      L || Q && Q === d || (c = o("v" + b.type, b), c && (c.isDefaultPrevented() && b.preventDefault(), c.isPropagationStopped() && b.stopPropagation(), c.isImmediatePropagationStopped() && b.stopImmediatePropagation()));
    }
    function q(b) {
      var c,
        d,
        f,
        h = e(b).touches;
      h && 1 === h.length && (c = b.target, d = g(c), d.hasVirtualBinding && (Q = P++, a.data(c, A, Q), n(), l(), J = !1, f = e(b).touches[0], H = f.pageX, I = f.pageY, o("vmouseover", b, d), o("vmousedown", b, d)));
    }
    function r(a) {
      M || (J || o("vmousecancel", a, g(a.target)), J = !0, m());
    }
    function s(b) {
      if (!M) {
        var c = e(b).touches[0],
          d = J,
          f = a.vmouse.moveDistanceThreshold,
          h = g(b.target);
        J = J || Math.abs(c.pageX - H) > f || Math.abs(c.pageY - I) > f, J && !d && o("vmousecancel", b, h), o("vmousemove", b, h), m();
      }
    }
    function t(a) {
      if (!M) {
        j();
        var b,
          c,
          d = g(a.target);
        o("vmouseup", a, d), J || (b = o("vclick", a, d), b && b.isDefaultPrevented() && (c = e(a).changedTouches[0], K.push({
          touchID: Q,
          x: c.clientX,
          y: c.clientY
        }), L = !0)), o("vmouseout", a, d), J = !1, m();
      }
    }
    function u(b) {
      var c,
        d = a.data(b, z);
      if (d) for (c in d) if (d[c]) return !0;
      return !1;
    }
    function v() {}
    function w(b) {
      var c = b.substr(1);
      return {
        setup: function setup() {
          u(this) || a.data(this, z, {});
          var d = a.data(this, z);
          d[b] = !0, F[b] = (F[b] || 0) + 1, 1 === F[b] && O.bind(c, p), a(this).bind(c, v), N && (F.touchstart = (F.touchstart || 0) + 1, 1 === F.touchstart && O.bind("touchstart", q).bind("touchend", t).bind("touchmove", s).bind("scroll", r));
        },
        teardown: function teardown() {
          --F[b], F[b] || O.unbind(c, p), N && (--F.touchstart, F.touchstart || O.unbind("touchstart", q).unbind("touchmove", s).unbind("touchend", t).unbind("scroll", r));
          var d = a(this),
            e = a.data(this, z);
          e && (e[b] = !1), d.unbind(c, v), u(this) || d.removeData(z);
        }
      };
    }
    var x,
      y,
      z = "virtualMouseBindings",
      A = "virtualTouchID",
      B = "vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel".split(" "),
      C = "clientX clientY pageX pageY screenX screenY".split(" "),
      D = a.event.mouseHooks ? a.event.mouseHooks.props : [],
      E = a.event.props.concat(D),
      F = {},
      G = 0,
      H = 0,
      I = 0,
      J = !1,
      K = [],
      L = !1,
      M = !1,
      N = ("addEventListener" in c),
      O = a(c),
      P = 1,
      Q = 0;
    for (a.vmouse = {
      moveDistanceThreshold: 10,
      clickDistanceThreshold: 10,
      resetTimerDuration: 1500
    }, y = 0; y < B.length; y++) a.event.special[B[y]] = w(B[y]);
    N && c.addEventListener("click", function (b) {
      var c,
        d,
        e,
        f,
        g,
        h,
        i = K.length,
        j = b.target;
      if (i) for (c = b.clientX, d = b.clientY, x = a.vmouse.clickDistanceThreshold, e = j; e;) {
        for (f = 0; i > f; f++) if (g = K[f], h = 0, e === j && Math.abs(g.x - c) < x && Math.abs(g.y - d) < x || a.data(e, A) === g.touchID) return b.preventDefault(), void b.stopPropagation();
        e = e.parentNode;
      }
    }, !0);
  }(a, b, c), function (a, b, d) {
    function e(b, c, e, f) {
      var g = e.type;
      e.type = c, f ? a.event.trigger(e, d, b) : a.event.dispatch.call(b, e), e.type = g;
    }
    var f = a(c),
      g = a.mobile.support.touch,
      h = "touchmove scroll",
      i = g ? "touchstart" : "mousedown",
      j = g ? "touchend" : "mouseup",
      k = g ? "touchmove" : "mousemove";
    a.each("touchstart touchmove touchend tap taphold swipe swipeleft swiperight scrollstart scrollstop".split(" "), function (b, c) {
      a.fn[c] = function (a) {
        return a ? this.bind(c, a) : this.trigger(c);
      }, a.attrFn && (a.attrFn[c] = !0);
    }), a.event.special.scrollstart = {
      enabled: !0,
      setup: function setup() {
        function b(a, b) {
          c = b, e(f, c ? "scrollstart" : "scrollstop", a);
        }
        var c,
          d,
          f = this,
          g = a(f);
        g.bind(h, function (e) {
          a.event.special.scrollstart.enabled && (c || b(e, !0), clearTimeout(d), d = setTimeout(function () {
            b(e, !1);
          }, 50));
        });
      },
      teardown: function teardown() {
        a(this).unbind(h);
      }
    }, a.event.special.tap = {
      tapholdThreshold: 750,
      emitTapOnTaphold: !0,
      setup: function setup() {
        var b = this,
          c = a(b),
          d = !1;
        c.bind("vmousedown", function (g) {
          function h() {
            clearTimeout(k);
          }
          function i() {
            h(), c.unbind("vclick", j).unbind("vmouseup", h), f.unbind("vmousecancel", i);
          }
          function j(a) {
            i(), d || l !== a.target ? d && a.preventDefault() : e(b, "tap", a);
          }
          if (d = !1, g.which && 1 !== g.which) return !1;
          var k,
            l = g.target;
          c.bind("vmouseup", h).bind("vclick", j), f.bind("vmousecancel", i), k = setTimeout(function () {
            a.event.special.tap.emitTapOnTaphold || (d = !0), e(b, "taphold", a.Event("taphold", {
              target: l
            }));
          }, a.event.special.tap.tapholdThreshold);
        });
      },
      teardown: function teardown() {
        a(this).unbind("vmousedown").unbind("vclick").unbind("vmouseup"), f.unbind("vmousecancel");
      }
    }, a.event.special.swipe = {
      scrollSupressionThreshold: 30,
      durationThreshold: 1e3,
      horizontalDistanceThreshold: 30,
      verticalDistanceThreshold: 30,
      getLocation: function getLocation(a) {
        var c = b.pageXOffset,
          d = b.pageYOffset,
          e = a.clientX,
          f = a.clientY;
        return 0 === a.pageY && Math.floor(f) > Math.floor(a.pageY) || 0 === a.pageX && Math.floor(e) > Math.floor(a.pageX) ? (e -= c, f -= d) : (f < a.pageY - d || e < a.pageX - c) && (e = a.pageX - c, f = a.pageY - d), {
          x: e,
          y: f
        };
      },
      start: function start(b) {
        var c = b.originalEvent.touches ? b.originalEvent.touches[0] : b,
          d = a.event.special.swipe.getLocation(c);
        return {
          time: new Date().getTime(),
          coords: [d.x, d.y],
          origin: a(b.target)
        };
      },
      stop: function stop(b) {
        var c = b.originalEvent.touches ? b.originalEvent.touches[0] : b,
          d = a.event.special.swipe.getLocation(c);
        return {
          time: new Date().getTime(),
          coords: [d.x, d.y]
        };
      },
      handleSwipe: function handleSwipe(b, c, d, f) {
        if (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) {
          var g = b.coords[0] > c.coords[0] ? "swipeleft" : "swiperight";
          return e(d, "swipe", a.Event("swipe", {
            target: f,
            swipestart: b,
            swipestop: c
          }), !0), e(d, g, a.Event(g, {
            target: f,
            swipestart: b,
            swipestop: c
          }), !0), !0;
        }
        return !1;
      },
      eventInProgress: !1,
      setup: function setup() {
        var b,
          c = this,
          d = a(c),
          e = {};
        b = a.data(this, "mobile-events"), b || (b = {
          length: 0
        }, a.data(this, "mobile-events", b)), b.length++, b.swipe = e, e.start = function (b) {
          if (!a.event.special.swipe.eventInProgress) {
            a.event.special.swipe.eventInProgress = !0;
            var d,
              g = a.event.special.swipe.start(b),
              h = b.target,
              i = !1;
            e.move = function (b) {
              g && !b.isDefaultPrevented() && (d = a.event.special.swipe.stop(b), i || (i = a.event.special.swipe.handleSwipe(g, d, c, h), i && (a.event.special.swipe.eventInProgress = !1)), Math.abs(g.coords[0] - d.coords[0]) > a.event.special.swipe.scrollSupressionThreshold && b.preventDefault());
            }, e.stop = function () {
              i = !0, a.event.special.swipe.eventInProgress = !1, f.off(k, e.move), e.move = null;
            }, f.on(k, e.move).one(j, e.stop);
          }
        }, d.on(i, e.start);
      },
      teardown: function teardown() {
        var b, c;
        b = a.data(this, "mobile-events"), b && (c = b.swipe, delete b.swipe, b.length--, 0 === b.length && a.removeData(this, "mobile-events")), c && (c.start && a(this).off(i, c.start), c.move && f.off(k, c.move), c.stop && f.off(j, c.stop));
      }
    }, a.each({
      scrollstop: "scrollstart",
      taphold: "tap",
      swipeleft: "swipe.left",
      swiperight: "swipe.right"
    }, function (b, c) {
      a.event.special[b] = {
        setup: function setup() {
          a(this).bind(c, a.noop);
        },
        teardown: function teardown() {
          a(this).unbind(c);
        }
      };
    });
  }(a, this), function (a) {
    a.event.special.throttledresize = {
      setup: function setup() {
        a(this).bind("resize", f);
      },
      teardown: function teardown() {
        a(this).unbind("resize", f);
      }
    };
    var b,
      c,
      d,
      e = 250,
      f = function f() {
        c = new Date().getTime(), d = c - g, d >= e ? (g = c, a(this).trigger("throttledresize")) : (b && clearTimeout(b), b = setTimeout(f, e - d));
      },
      g = 0;
  }(a), function (a, b) {
    function d() {
      var a = e();
      a !== f && (f = a, l.trigger(m));
    }
    var e,
      f,
      g,
      h,
      i,
      j,
      k,
      l = a(b),
      m = "orientationchange",
      n = {
        0: !0,
        180: !0
      };
    a.support.orientation && (i = b.innerWidth || l.width(), j = b.innerHeight || l.height(), k = 50, g = i > j && i - j > k, h = n[b.orientation], (g && h || !g && !h) && (n = {
      "-90": !0,
      90: !0
    })), a.event.special.orientationchange = a.extend({}, a.event.special.orientationchange, {
      setup: function setup() {
        return a.support.orientation && !a.event.special.orientationchange.disabled ? !1 : (f = e(), void l.bind("throttledresize", d));
      },
      teardown: function teardown() {
        return a.support.orientation && !a.event.special.orientationchange.disabled ? !1 : void l.unbind("throttledresize", d);
      },
      add: function add(a) {
        var b = a.handler;
        a.handler = function (a) {
          return a.orientation = e(), b.apply(this, arguments);
        };
      }
    }), a.event.special.orientationchange.orientation = e = function e() {
      var d = !0,
        e = c.documentElement;
      return d = a.support.orientation ? n[b.orientation] : e && e.clientWidth / e.clientHeight < 1.1, d ? "portrait" : "landscape";
    }, a.fn[m] = function (a) {
      return a ? this.bind(m, a) : this.trigger(m);
    }, a.attrFn && (a.attrFn[m] = !0);
  }(a, this), function (a) {
    var b = a("head").children("base"),
      c = {
        element: b.length ? b : a("<base>", {
          href: a.mobile.path.documentBase.hrefNoHash
        }).prependTo(a("head")),
        linkSelector: "[src], link[href], a[rel='external'], :jqmData(ajax='false'), a[target]",
        set: function set(b) {
          a.mobile.dynamicBaseEnabled && a.support.dynamicBaseTag && c.element.attr("href", a.mobile.path.makeUrlAbsolute(b, a.mobile.path.documentBase));
        },
        rewrite: function rewrite(b, d) {
          var e = a.mobile.path.get(b);
          d.find(c.linkSelector).each(function (b, c) {
            var d = a(c).is("[href]") ? "href" : a(c).is("[src]") ? "src" : "action",
              f = a.mobile.path.parseLocation(),
              g = a(c).attr(d);
            g = g.replace(f.protocol + f.doubleSlash + f.host + f.pathname, ""), /^(\w+:|#|\/)/.test(g) || a(c).attr(d, e + g);
          });
        },
        reset: function reset() {
          c.element.attr("href", a.mobile.path.documentBase.hrefNoSearch);
        }
      };
    a.mobile.base = c;
  }(a), function (a, b) {
    a.mobile.widgets = {};
    var c = a.widget,
      d = a.mobile.keepNative;
    a.widget = function (c) {
      return function () {
        var d = c.apply(this, arguments),
          e = d.prototype.widgetName;
        return d.initSelector = d.prototype.initSelector !== b ? d.prototype.initSelector : ":jqmData(role='" + e + "')", a.mobile.widgets[e] = d, d;
      };
    }(a.widget), a.extend(a.widget, c), a.mobile.document.on("create", function (b) {
      a(b.target).enhanceWithin();
    }), a.widget("mobile.page", {
      options: {
        theme: "a",
        domCache: !1,
        keepNativeDefault: a.mobile.keepNative,
        contentTheme: null,
        enhanced: !1
      },
      _createWidget: function _createWidget() {
        a.Widget.prototype._createWidget.apply(this, arguments), this._trigger("init");
      },
      _create: function _create() {
        return this._trigger("beforecreate") === !1 ? !1 : (this.options.enhanced || this._enhance(), this._on(this.element, {
          pagebeforehide: "removeContainerBackground",
          pagebeforeshow: "_handlePageBeforeShow"
        }), this.element.enhanceWithin(), void ("dialog" === a.mobile.getAttribute(this.element[0], "role") && a.mobile.dialog && this.element.dialog()));
      },
      _enhance: function _enhance() {
        var c = "data-" + a.mobile.ns,
          d = this;
        this.options.role && this.element.attr("data-" + a.mobile.ns + "role", this.options.role), this.element.attr("tabindex", "0").addClass("ui-page ui-page-theme-" + this.options.theme), this.element.find("[" + c + "role='content']").each(function () {
          var e = a(this),
            f = this.getAttribute(c + "theme") || b;
          d.options.contentTheme = f || d.options.contentTheme || d.options.dialog && d.options.theme || "dialog" === d.element.jqmData("role") && d.options.theme, e.addClass("ui-content"), d.options.contentTheme && e.addClass("ui-body-" + d.options.contentTheme), e.attr("role", "main").addClass("ui-content");
        });
      },
      bindRemove: function bindRemove(b) {
        var c = this.element;
        !c.data("mobile-page").options.domCache && c.is(":jqmData(external-page='true')") && c.bind("pagehide.remove", b || function (b, c) {
          if (!c.samePage) {
            var d = a(this),
              e = new a.Event("pageremove");
            d.trigger(e), e.isDefaultPrevented() || d.removeWithDependents();
          }
        });
      },
      _setOptions: function _setOptions(c) {
        c.theme !== b && this.element.removeClass("ui-page-theme-" + this.options.theme).addClass("ui-page-theme-" + c.theme), c.contentTheme !== b && this.element.find("[data-" + a.mobile.ns + "='content']").removeClass("ui-body-" + this.options.contentTheme).addClass("ui-body-" + c.contentTheme);
      },
      _handlePageBeforeShow: function _handlePageBeforeShow() {
        this.setContainerBackground();
      },
      removeContainerBackground: function removeContainerBackground() {
        this.element.closest(":mobile-pagecontainer").pagecontainer({
          theme: "none"
        });
      },
      setContainerBackground: function setContainerBackground(a) {
        this.element.parent().pagecontainer({
          theme: a || this.options.theme
        });
      },
      keepNativeSelector: function keepNativeSelector() {
        var b = this.options,
          c = a.trim(b.keepNative || ""),
          e = a.trim(a.mobile.keepNative),
          f = a.trim(b.keepNativeDefault),
          g = d === e ? "" : e,
          h = "" === g ? f : "";
        return (c ? [c] : []).concat(g ? [g] : []).concat(h ? [h] : []).join(", ");
      }
    });
  }(a), function (a, d) {
    a.widget("mobile.pagecontainer", {
      options: {
        theme: "a"
      },
      initSelector: !1,
      _create: function _create() {
        this._trigger("beforecreate"), this.setLastScrollEnabled = !0, this._on(this.window, {
          navigate: "_disableRecordScroll",
          scrollstop: "_delayedRecordScroll"
        }), this._on(this.window, {
          navigate: "_filterNavigateEvents"
        }), this._on({
          pagechange: "_afterContentChange"
        }), this.window.one("navigate", a.proxy(function () {
          this.setLastScrollEnabled = !0;
        }, this));
      },
      _setOptions: function _setOptions(a) {
        a.theme !== d && "none" !== a.theme ? this.element.removeClass("ui-overlay-" + this.options.theme).addClass("ui-overlay-" + a.theme) : a.theme !== d && this.element.removeClass("ui-overlay-" + this.options.theme), this._super(a);
      },
      _disableRecordScroll: function _disableRecordScroll() {
        this.setLastScrollEnabled = !1;
      },
      _enableRecordScroll: function _enableRecordScroll() {
        this.setLastScrollEnabled = !0;
      },
      _afterContentChange: function _afterContentChange() {
        this.setLastScrollEnabled = !0, this._off(this.window, "scrollstop"), this._on(this.window, {
          scrollstop: "_delayedRecordScroll"
        });
      },
      _recordScroll: function _recordScroll() {
        if (this.setLastScrollEnabled) {
          var a,
            b,
            c,
            d = this._getActiveHistory();
          d && (a = this._getScroll(), b = this._getMinScroll(), c = this._getDefaultScroll(), d.lastScroll = b > a ? c : a);
        }
      },
      _delayedRecordScroll: function _delayedRecordScroll() {
        setTimeout(a.proxy(this, "_recordScroll"), 100);
      },
      _getScroll: function _getScroll() {
        return this.window.scrollTop();
      },
      _getMinScroll: function _getMinScroll() {
        return a.mobile.minScrollBack;
      },
      _getDefaultScroll: function _getDefaultScroll() {
        return a.mobile.defaultHomeScroll;
      },
      _filterNavigateEvents: function _filterNavigateEvents(b, c) {
        var d;
        b.originalEvent && b.originalEvent.isDefaultPrevented() || (d = b.originalEvent.type.indexOf("hashchange") > -1 ? c.state.hash : c.state.url, d || (d = this._getHash()), d && "#" !== d && 0 !== d.indexOf("#" + a.mobile.path.uiStateKey) || (d = location.href), this._handleNavigate(d, c.state));
      },
      _getHash: function _getHash() {
        return a.mobile.path.parseLocation().hash;
      },
      getActivePage: function getActivePage() {
        return this.activePage;
      },
      _getInitialContent: function _getInitialContent() {
        return a.mobile.firstPage;
      },
      _getHistory: function _getHistory() {
        return a.mobile.navigate.history;
      },
      _getActiveHistory: function _getActiveHistory() {
        return this._getHistory().getActive();
      },
      _getDocumentBase: function _getDocumentBase() {
        return a.mobile.path.documentBase;
      },
      back: function back() {
        this.go(-1);
      },
      forward: function forward() {
        this.go(1);
      },
      go: function go(c) {
        if (a.mobile.hashListeningEnabled) b.history.go(c);else {
          var d = a.mobile.navigate.history.activeIndex,
            e = d + parseInt(c, 10),
            f = a.mobile.navigate.history.stack[e].url,
            g = c >= 1 ? "forward" : "back";
          a.mobile.navigate.history.activeIndex = e, a.mobile.navigate.history.previousIndex = d, this.change(f, {
            direction: g,
            changeHash: !1,
            fromHashChange: !0
          });
        }
      },
      _handleDestination: function _handleDestination(b) {
        var c;
        return "string" === a.type(b) && (b = a.mobile.path.stripHash(b)), b && (c = this._getHistory(), b = a.mobile.path.isPath(b) ? b : a.mobile.path.makeUrlAbsolute("#" + b, this._getDocumentBase())), b || this._getInitialContent();
      },
      _transitionFromHistory: function _transitionFromHistory(a, b) {
        var c = this._getHistory(),
          d = "back" === a ? c.getLast() : c.getActive();
        return d && d.transition || b;
      },
      _handleDialog: function _handleDialog(b, c) {
        var d,
          e,
          f = this.getActivePage();
        return f && !f.data("mobile-dialog") ? ("back" === c.direction ? this.back() : this.forward(), !1) : (d = c.pageUrl, e = this._getActiveHistory(), a.extend(b, {
          role: e.role,
          transition: this._transitionFromHistory(c.direction, b.transition),
          reverse: "back" === c.direction
        }), d);
      },
      _handleNavigate: function _handleNavigate(b, c) {
        var d = a.mobile.path.stripHash(b),
          e = this._getHistory(),
          f = 0 === e.stack.length ? "none" : this._transitionFromHistory(c.direction),
          g = {
            changeHash: !1,
            fromHashChange: !0,
            reverse: "back" === c.direction
          };
        a.extend(g, c, {
          transition: f
        }), e.activeIndex > 0 && d.indexOf(a.mobile.dialogHashKey) > -1 && (d = this._handleDialog(g, c), d === !1) || this._changeContent(this._handleDestination(d), g);
      },
      _changeContent: function _changeContent(b, c) {
        a.mobile.changePage(b, c);
      },
      _getBase: function _getBase() {
        return a.mobile.base;
      },
      _getNs: function _getNs() {
        return a.mobile.ns;
      },
      _enhance: function _enhance(a, b) {
        return a.page({
          role: b
        });
      },
      _include: function _include(a, b) {
        a.appendTo(this.element), this._enhance(a, b.role), a.page("bindRemove");
      },
      _find: function _find(b) {
        var c,
          d = this._createFileUrl(b),
          e = this._createDataUrl(b),
          f = this._getInitialContent();
        return c = this.element.children("[data-" + this._getNs() + "url='" + a.mobile.path.hashToSelector(e) + "']"), 0 === c.length && e && !a.mobile.path.isPath(e) && (c = this.element.children(a.mobile.path.hashToSelector("#" + e)).attr("data-" + this._getNs() + "url", e).jqmData("url", e)), 0 === c.length && a.mobile.path.isFirstPageUrl(d) && f && f.parent().length && (c = a(f)), c;
      },
      _getLoader: function _getLoader() {
        return a.mobile.loading();
      },
      _showLoading: function _showLoading(b, c, d, e) {
        this._loadMsg || (this._loadMsg = setTimeout(a.proxy(function () {
          this._getLoader().loader("show", c, d, e), this._loadMsg = 0;
        }, this), b));
      },
      _hideLoading: function _hideLoading() {
        clearTimeout(this._loadMsg), this._loadMsg = 0, this._getLoader().loader("hide");
      },
      _showError: function _showError() {
        this._hideLoading(), this._showLoading(0, a.mobile.pageLoadErrorMessageTheme, a.mobile.pageLoadErrorMessage, !0), setTimeout(a.proxy(this, "_hideLoading"), 1500);
      },
      _parse: function _parse(b, c) {
        var d,
          e = a("<div></div>");
        return e.get(0).innerHTML = b, d = e.find(":jqmData(role='page'), :jqmData(role='dialog')").first(), d.length || (d = a("<div data-" + this._getNs() + "role='page'>" + (b.split(/<\/?body[^>]*>/gim)[1] || "") + "</div>")), d.attr("data-" + this._getNs() + "url", this._createDataUrl(c)).attr("data-" + this._getNs() + "external-page", !0), d;
      },
      _setLoadedTitle: function _setLoadedTitle(b, c) {
        var d = c.match(/<title[^>]*>([^<]*)/) && RegExp.$1;
        d && !b.jqmData("title") && (d = a("<div>" + d + "</div>").text(), b.jqmData("title", d));
      },
      _isRewritableBaseTag: function _isRewritableBaseTag() {
        return a.mobile.dynamicBaseEnabled && !a.support.dynamicBaseTag;
      },
      _createDataUrl: function _createDataUrl(b) {
        return a.mobile.path.convertUrlToDataUrl(b);
      },
      _createFileUrl: function _createFileUrl(b) {
        return a.mobile.path.getFilePath(b);
      },
      _triggerWithDeprecated: function _triggerWithDeprecated(b, c, d) {
        var e = a.Event("page" + b),
          f = a.Event(this.widgetName + b);
        return (d || this.element).trigger(e, c), this._trigger(b, f, c), {
          deprecatedEvent: e,
          event: f
        };
      },
      _loadSuccess: function _loadSuccess(b, c, e, f) {
        var g = this._createFileUrl(b);
        return a.proxy(function (h, i, j) {
          var k,
            l = new RegExp("(<[^>]+\\bdata-" + this._getNs() + "role=[\"']?page[\"']?[^>]*>)"),
            m = new RegExp("\\bdata-" + this._getNs() + "url=[\"']?([^\"'>]*)[\"']?");
          l.test(h) && RegExp.$1 && m.test(RegExp.$1) && RegExp.$1 && (g = a.mobile.path.getFilePath(a("<div>" + RegExp.$1 + "</div>").text()), g = this.window[0].encodeURIComponent(g)), e.prefetch === d && this._getBase().set(g), k = this._parse(h, g), this._setLoadedTitle(k, h), c.xhr = j, c.textStatus = i, c.page = k, c.content = k, c.toPage = k, this._triggerWithDeprecated("load", c).event.isDefaultPrevented() || (this._isRewritableBaseTag() && k && this._getBase().rewrite(g, k), this._include(k, e), e.showLoadMsg && this._hideLoading(), f.resolve(b, e, k));
        }, this);
      },
      _loadDefaults: {
        type: "get",
        data: d,
        reloadPage: !1,
        reload: !1,
        role: d,
        showLoadMsg: !1,
        loadMsgDelay: 50
      },
      load: function load(b, c) {
        var e,
          f,
          g,
          h,
          i = c && c.deferred || a.Deferred(),
          j = c && c.reload === d && c.reloadPage !== d ? {
            reload: c.reloadPage
          } : {},
          k = a.extend({}, this._loadDefaults, c, j),
          l = null,
          m = a.mobile.path.makeUrlAbsolute(b, this._findBaseWithDefault());
        return k.data && "get" === k.type && (m = a.mobile.path.addSearchParams(m, k.data), k.data = d), k.data && "post" === k.type && (k.reload = !0), e = this._createFileUrl(m), f = this._createDataUrl(m), l = this._find(m), 0 === l.length && a.mobile.path.isEmbeddedPage(e) && !a.mobile.path.isFirstPageUrl(e) ? (i.reject(m, k), i.promise()) : (this._getBase().reset(), l.length && !k.reload ? (this._enhance(l, k.role), i.resolve(m, k, l), k.prefetch || this._getBase().set(b), i.promise()) : (h = {
          url: b,
          absUrl: m,
          toPage: b,
          prevPage: c ? c.fromPage : d,
          dataUrl: f,
          deferred: i,
          options: k
        }, g = this._triggerWithDeprecated("beforeload", h), g.deprecatedEvent.isDefaultPrevented() || g.event.isDefaultPrevented() ? i.promise() : (k.showLoadMsg && this._showLoading(k.loadMsgDelay), k.prefetch === d && this._getBase().reset(), a.mobile.allowCrossDomainPages || a.mobile.path.isSameDomain(a.mobile.path.documentUrl, m) ? (a.ajax({
          url: e,
          type: k.type,
          data: k.data,
          contentType: k.contentType,
          dataType: "html",
          success: this._loadSuccess(m, h, k, i),
          error: this._loadError(m, h, k, i)
        }), i.promise()) : (i.reject(m, k), i.promise()))));
      },
      _loadError: function _loadError(b, c, d, e) {
        return a.proxy(function (f, g, h) {
          this._getBase().set(a.mobile.path.get()), c.xhr = f, c.textStatus = g, c.errorThrown = h;
          var i = this._triggerWithDeprecated("loadfailed", c);
          i.deprecatedEvent.isDefaultPrevented() || i.event.isDefaultPrevented() || (d.showLoadMsg && this._showError(), e.reject(b, d));
        }, this);
      },
      _getTransitionHandler: function _getTransitionHandler(b) {
        return b = a.mobile._maybeDegradeTransition(b), a.mobile.transitionHandlers[b] || a.mobile.defaultTransitionHandler;
      },
      _triggerCssTransitionEvents: function _triggerCssTransitionEvents(b, c, d) {
        var e = !1;
        d = d || "", c && (b[0] === c[0] && (e = !0), this._triggerWithDeprecated(d + "hide", {
          nextPage: b,
          toPage: b,
          prevPage: c,
          samePage: e
        }, c)), this._triggerWithDeprecated(d + "show", {
          prevPage: c || a(""),
          toPage: b
        }, b);
      },
      _cssTransition: function _cssTransition(b, c, d) {
        var e,
          f,
          g = d.transition,
          h = d.reverse,
          i = d.deferred;
        this._triggerCssTransitionEvents(b, c, "before"), this._hideLoading(), e = this._getTransitionHandler(g), f = new e(g, h, b, c).transition(), f.done(a.proxy(function () {
          this._triggerCssTransitionEvents(b, c);
        }, this)), f.done(function () {
          i.resolve.apply(i, arguments);
        });
      },
      _releaseTransitionLock: function _releaseTransitionLock() {
        f = !1, e.length > 0 && a.mobile.changePage.apply(null, e.pop());
      },
      _removeActiveLinkClass: function _removeActiveLinkClass(b) {
        a.mobile.removeActiveLinkClass(b);
      },
      _loadUrl: function _loadUrl(b, c, d) {
        d.target = b, d.deferred = a.Deferred(), this.load(b, d), d.deferred.done(a.proxy(function (a, b, d) {
          f = !1, b.absUrl = c.absUrl, this.transition(d, c, b);
        }, this)), d.deferred.fail(a.proxy(function () {
          this._removeActiveLinkClass(!0), this._releaseTransitionLock(), this._triggerWithDeprecated("changefailed", c);
        }, this));
      },
      _triggerPageBeforeChange: function _triggerPageBeforeChange(b, c, d) {
        var e;
        return c.prevPage = this.activePage, a.extend(c, {
          toPage: b,
          options: d
        }), c.absUrl = "string" === a.type(b) ? a.mobile.path.makeUrlAbsolute(b, this._findBaseWithDefault()) : d.absUrl, e = this._triggerWithDeprecated("beforechange", c), e.event.isDefaultPrevented() || e.deprecatedEvent.isDefaultPrevented() ? !1 : !0;
      },
      change: function change(b, c) {
        if (f) return void e.unshift(arguments);
        var d = a.extend({}, a.mobile.changePage.defaults, c),
          g = {};
        d.fromPage = d.fromPage || this.activePage, this._triggerPageBeforeChange(b, g, d) && (b = g.toPage, "string" === a.type(b) ? (f = !0, this._loadUrl(b, g, d)) : this.transition(b, g, d));
      },
      transition: function transition(b, g, h) {
        var i, j, k, l, m, n, o, p, q, r, s, t, u, v;
        if (f) return void e.unshift([b, h]);
        if (this._triggerPageBeforeChange(b, g, h) && (g.prevPage = h.fromPage, v = this._triggerWithDeprecated("beforetransition", g), !v.deprecatedEvent.isDefaultPrevented() && !v.event.isDefaultPrevented())) {
          if (f = !0, b[0] !== a.mobile.firstPage[0] || h.dataUrl || (h.dataUrl = a.mobile.path.documentUrl.hrefNoHash), i = h.fromPage, j = h.dataUrl && a.mobile.path.convertUrlToDataUrl(h.dataUrl) || b.jqmData("url"), k = j, l = a.mobile.path.getFilePath(j), m = a.mobile.navigate.history.getActive(), n = 0 === a.mobile.navigate.history.activeIndex, o = 0, p = c.title, q = ("dialog" === h.role || "dialog" === b.jqmData("role")) && b.jqmData("dialog") !== !0, i && i[0] === b[0] && !h.allowSamePageTransition) return f = !1, this._triggerWithDeprecated("transition", g), this._triggerWithDeprecated("change", g), void (h.fromHashChange && a.mobile.navigate.history.direct({
            url: j
          }));
          b.page({
            role: h.role
          }), h.fromHashChange && (o = "back" === h.direction ? -1 : 1);
          try {
            c.activeElement && "body" !== c.activeElement.nodeName.toLowerCase() ? a(c.activeElement).blur() : a("input:focus, textarea:focus, select:focus").blur();
          } catch (w) {}
          r = !1, q && m && (m.url && m.url.indexOf(a.mobile.dialogHashKey) > -1 && this.activePage && !this.activePage.hasClass("ui-dialog") && a.mobile.navigate.history.activeIndex > 0 && (h.changeHash = !1, r = !0), j = m.url || "", j += !r && j.indexOf("#") > -1 ? a.mobile.dialogHashKey : "#" + a.mobile.dialogHashKey), s = m ? b.jqmData("title") || b.children(":jqmData(role='header')").find(".ui-title").text() : p, s && p === c.title && (p = s), b.jqmData("title") || b.jqmData("title", p), h.transition = h.transition || (o && !n ? m.transition : d) || (q ? a.mobile.defaultDialogTransition : a.mobile.defaultPageTransition), !o && r && (a.mobile.navigate.history.getActive().pageUrl = k), j && !h.fromHashChange && (!a.mobile.path.isPath(j) && j.indexOf("#") < 0 && (j = "#" + j), t = {
            transition: h.transition,
            title: p,
            pageUrl: k,
            role: h.role
          }, h.changeHash !== !1 && a.mobile.hashListeningEnabled ? a.mobile.navigate(this.window[0].encodeURI(j), t, !0) : b[0] !== a.mobile.firstPage[0] && a.mobile.navigate.history.add(j, t)), c.title = p, a.mobile.activePage = b, this.activePage = b, h.reverse = h.reverse || 0 > o, u = a.Deferred(), this._cssTransition(b, i, {
            transition: h.transition,
            reverse: h.reverse,
            deferred: u
          }), u.done(a.proxy(function (c, d, e, f, i) {
            a.mobile.removeActiveLinkClass(), h.duplicateCachedPage && h.duplicateCachedPage.remove(), i || a.mobile.focusPage(b), this._releaseTransitionLock(), this._triggerWithDeprecated("transition", g), this._triggerWithDeprecated("change", g);
          }, this));
        }
      },
      _findBaseWithDefault: function _findBaseWithDefault() {
        var b = this.activePage && a.mobile.getClosestBaseUrl(this.activePage);
        return b || a.mobile.path.documentBase.hrefNoHash;
      }
    }), a.mobile.navreadyDeferred = a.Deferred();
    var e = [],
      f = !1;
  }(a), function (a, d) {
    function e(a) {
      for (; a && ("string" != typeof a.nodeName || "a" !== a.nodeName.toLowerCase());) a = a.parentNode;
      return a;
    }
    var f = a.Deferred(),
      g = a.Deferred(),
      h = function h() {
        g.resolve(), g = null;
      },
      i = a.mobile.path.documentUrl,
      j = null;
    a.mobile.loadPage = function (b, c) {
      var d;
      return c = c || {}, d = c.pageContainer || a.mobile.pageContainer, c.deferred = a.Deferred(), d.pagecontainer("load", b, c), c.deferred.promise();
    }, a.mobile.back = function () {
      var c = b.navigator;
      this.phonegapNavigationEnabled && c && c.app && c.app.backHistory ? c.app.backHistory() : a.mobile.pageContainer.pagecontainer("back");
    }, a.mobile.focusPage = function (a) {
      var b = a.find("[autofocus]"),
        c = a.find(".ui-title:eq(0)");
      return b.length ? void b.focus() : void (c.length ? c.focus() : a.focus());
    }, a.mobile._maybeDegradeTransition = a.mobile._maybeDegradeTransition || function (a) {
      return a;
    }, a.mobile.changePage = function (b, c) {
      a.mobile.pageContainer.pagecontainer("change", b, c);
    }, a.mobile.changePage.defaults = {
      transition: d,
      reverse: !1,
      changeHash: !0,
      fromHashChange: !1,
      role: d,
      duplicateCachedPage: d,
      pageContainer: d,
      showLoadMsg: !0,
      dataUrl: d,
      fromPage: d,
      allowSamePageTransition: !1
    }, a.mobile._registerInternalEvents = function () {
      var c = function c(b, _c) {
        var d,
          e,
          f,
          g,
          h = !0;
        return !a.mobile.ajaxEnabled || b.is(":jqmData(ajax='false')") || !b.jqmHijackable().length || b.attr("target") ? !1 : (d = j && j.attr("formaction") || b.attr("action"), g = (b.attr("method") || "get").toLowerCase(), d || (d = a.mobile.getClosestBaseUrl(b), "get" === g && (d = a.mobile.path.parseUrl(d).hrefNoSearch), d === a.mobile.path.documentBase.hrefNoHash && (d = i.hrefNoSearch)), d = a.mobile.path.makeUrlAbsolute(d, a.mobile.getClosestBaseUrl(b)), a.mobile.path.isExternal(d) && !a.mobile.path.isPermittedCrossDomainRequest(i, d) ? !1 : (_c || (e = b.serializeArray(), j && j[0].form === b[0] && (f = j.attr("name"), f && (a.each(e, function (a, b) {
          return b.name === f ? (f = "", !1) : void 0;
        }), f && e.push({
          name: f,
          value: j.attr("value")
        }))), h = {
          url: d,
          options: {
            type: g,
            data: a.param(e),
            transition: b.jqmData("transition"),
            reverse: "reverse" === b.jqmData("direction"),
            reloadPage: !0
          }
        }), h));
      };
      a.mobile.document.delegate("form", "submit", function (b) {
        var d;
        b.isDefaultPrevented() || (d = c(a(this)), d && (a.mobile.changePage(d.url, d.options), b.preventDefault()));
      }), a.mobile.document.bind("vclick", function (b) {
        var d,
          f,
          g = b.target,
          h = !1;
        if (!(b.which > 1) && a.mobile.linkBindingEnabled) {
          if (j = a(g), a.data(g, "mobile-button")) {
            if (!c(a(g).closest("form"), !0)) return;
            g.parentNode && (g = g.parentNode);
          } else {
            if (g = e(g), !g || "#" === a.mobile.path.parseUrl(g.getAttribute("href") || "#").hash) return;
            if (!a(g).jqmHijackable().length) return;
          }
          ~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-state-disabled") && (a.mobile.removeActiveLinkClass(!0), a.mobile.activeClickedLink = d, a.mobile.activeClickedLink.addClass(a.mobile.activeBtnClass));
        }
      }), a.mobile.document.bind("click", function (c) {
        if (a.mobile.linkBindingEnabled && !c.isDefaultPrevented()) {
          var f,
            g,
            h,
            j,
            k,
            l,
            m,
            n = e(c.target),
            o = a(n),
            p = function p() {
              b.setTimeout(function () {
                a.mobile.removeActiveLinkClass(!0);
              }, 200);
            };
          if (a.mobile.activeClickedLink && a.mobile.activeClickedLink[0] === c.target.parentNode && p(), n && !(c.which > 1) && o.jqmHijackable().length) {
            if (o.is(":jqmData(rel='back')")) return a.mobile.back(), !1;
            if (f = a.mobile.getClosestBaseUrl(o), g = a.mobile.path.makeUrlAbsolute(o.attr("href") || "#", f), !a.mobile.ajaxEnabled && !a.mobile.path.isEmbeddedPage(g)) return void p();
            if (!(-1 === g.search("#") || a.mobile.path.isExternal(g) && a.mobile.path.isAbsoluteUrl(g))) {
              if (g = g.replace(/[^#]*#/, ""), !g) return void c.preventDefault();
              g = a.mobile.path.isPath(g) ? a.mobile.path.makeUrlAbsolute(g, f) : a.mobile.path.makeUrlAbsolute("#" + g, i.hrefNoHash);
            }
            if (h = o.is("[rel='external']") || o.is(":jqmData(ajax='false')") || o.is("[target]"), j = h || a.mobile.path.isExternal(g) && !a.mobile.path.isPermittedCrossDomainRequest(i, g)) return void p();
            k = o.jqmData("transition"), l = "reverse" === o.jqmData("direction") || o.jqmData("back"), m = o.attr("data-" + a.mobile.ns + "rel") || d, a.mobile.changePage(g, {
              transition: k,
              reverse: l,
              role: m,
              link: o
            }), c.preventDefault();
          }
        }
      }), a.mobile.document.delegate(".ui-page", "pageshow.prefetch", function () {
        var b = [];
        a(this).find("a:jqmData(prefetch)").each(function () {
          var c = a(this),
            d = c.attr("href");
          d && -1 === a.inArray(d, b) && (b.push(d), a.mobile.loadPage(d, {
            role: c.attr("data-" + a.mobile.ns + "rel"),
            prefetch: !0
          }));
        });
      }), a.mobile.pageContainer.pagecontainer(), a.mobile.document.bind("pageshow", function () {
        g ? g.done(a.mobile.resetActivePageHeight) : a.mobile.resetActivePageHeight();
      }), a.mobile.window.bind("throttledresize", a.mobile.resetActivePageHeight);
    }, a(function () {
      f.resolve();
    }), "complete" === c.readyState ? h() : a.mobile.window.load(h), a.when(f, a.mobile.navreadyDeferred).done(function () {
      a.mobile._registerInternalEvents();
    });
  }(a), function (a, b) {
    a.mobile.Transition = function () {
      this.init.apply(this, arguments);
    }, a.extend(a.mobile.Transition.prototype, {
      toPreClass: " ui-page-pre-in",
      init: function init(b, c, d, e) {
        a.extend(this, {
          name: b,
          reverse: c,
          $to: d,
          $from: e,
          deferred: new a.Deferred()
        });
      },
      cleanFrom: function cleanFrom() {
        this.$from.removeClass(a.mobile.activePageClass + " out in reverse " + this.name).height("");
      },
      beforeDoneIn: function beforeDoneIn() {},
      beforeDoneOut: function beforeDoneOut() {},
      beforeStartOut: function beforeStartOut() {},
      doneIn: function doneIn() {
        this.beforeDoneIn(), this.$to.removeClass("out in reverse " + this.name).height(""), this.toggleViewportClass(), a.mobile.window.scrollTop() !== this.toScroll && this.scrollPage(), this.sequential || this.$to.addClass(a.mobile.activePageClass), this.deferred.resolve(this.name, this.reverse, this.$to, this.$from, !0);
      },
      doneOut: function doneOut(a, b, c, d) {
        this.beforeDoneOut(), this.startIn(a, b, c, d);
      },
      hideIn: function hideIn(a) {
        this.$to.css("z-index", -10), a.call(this), this.$to.css("z-index", "");
      },
      scrollPage: function scrollPage() {
        a.event.special.scrollstart.enabled = !1, (a.mobile.hideUrlBar || this.toScroll !== a.mobile.defaultHomeScroll) && b.scrollTo(0, this.toScroll), setTimeout(function () {
          a.event.special.scrollstart.enabled = !0;
        }, 150);
      },
      startIn: function startIn(b, c, d, e) {
        this.hideIn(function () {
          this.$to.addClass(a.mobile.activePageClass + this.toPreClass), e || a.mobile.focusPage(this.$to), this.$to.height(b + this.toScroll), d || this.scrollPage();
        }), this.$to.removeClass(this.toPreClass).addClass(this.name + " in " + c), d ? this.doneIn() : this.$to.animationComplete(a.proxy(function () {
          this.doneIn();
        }, this));
      },
      startOut: function startOut(b, c, d) {
        this.beforeStartOut(b, c, d), this.$from.height(b + a.mobile.window.scrollTop()).addClass(this.name + " out" + c);
      },
      toggleViewportClass: function toggleViewportClass() {
        a.mobile.pageContainer.toggleClass("ui-mobile-viewport-transitioning viewport-" + this.name);
      },
      transition: function transition() {
        var b,
          c = this.reverse ? " reverse" : "",
          d = a.mobile.getScreenHeight(),
          e = a.mobile.maxTransitionWidth !== !1 && a.mobile.window.width() > a.mobile.maxTransitionWidth;
        return this.toScroll = a.mobile.navigate.history.getActive().lastScroll || a.mobile.defaultHomeScroll, b = !a.support.cssTransitions || !a.support.cssAnimations || e || !this.name || "none" === this.name || Math.max(a.mobile.window.scrollTop(), this.toScroll) > a.mobile.getMaxScrollForTransition(), this.toggleViewportClass(), this.$from && !b ? this.startOut(d, c, b) : this.doneOut(d, c, b, !0), this.deferred.promise();
      }
    });
  }(a, this), function (a) {
    a.mobile.SerialTransition = function () {
      this.init.apply(this, arguments);
    }, a.extend(a.mobile.SerialTransition.prototype, a.mobile.Transition.prototype, {
      sequential: !0,
      beforeDoneOut: function beforeDoneOut() {
        this.$from && this.cleanFrom();
      },
      beforeStartOut: function beforeStartOut(b, c, d) {
        this.$from.animationComplete(a.proxy(function () {
          this.doneOut(b, c, d);
        }, this));
      }
    });
  }(a), function (a) {
    a.mobile.ConcurrentTransition = function () {
      this.init.apply(this, arguments);
    }, a.extend(a.mobile.ConcurrentTransition.prototype, a.mobile.Transition.prototype, {
      sequential: !1,
      beforeDoneIn: function beforeDoneIn() {
        this.$from && this.cleanFrom();
      },
      beforeStartOut: function beforeStartOut(a, b, c) {
        this.doneOut(a, b, c);
      }
    });
  }(a), function (a) {
    var b = function b() {
      return 3 * a.mobile.getScreenHeight();
    };
    a.mobile.transitionHandlers = {
      sequential: a.mobile.SerialTransition,
      simultaneous: a.mobile.ConcurrentTransition
    }, a.mobile.defaultTransitionHandler = a.mobile.transitionHandlers.sequential, a.mobile.transitionFallbacks = {}, a.mobile._maybeDegradeTransition = function (b) {
      return b && !a.support.cssTransform3d && a.mobile.transitionFallbacks[b] && (b = a.mobile.transitionFallbacks[b]), b;
    }, a.mobile.getMaxScrollForTransition = a.mobile.getMaxScrollForTransition || b;
  }(a), function (a) {
    a.mobile.transitionFallbacks.flip = "fade";
  }(a, this), function (a) {
    a.mobile.transitionFallbacks.flow = "fade";
  }(a, this), function (a) {
    a.mobile.transitionFallbacks.pop = "fade";
  }(a, this), function (a) {
    a.mobile.transitionHandlers.slide = a.mobile.transitionHandlers.simultaneous, a.mobile.transitionFallbacks.slide = "fade";
  }(a, this), function (a) {
    a.mobile.transitionFallbacks.slidedown = "fade";
  }(a, this), function (a) {
    a.mobile.transitionFallbacks.slidefade = "fade";
  }(a, this), function (a) {
    a.mobile.transitionFallbacks.slideup = "fade";
  }(a, this), function (a) {
    a.mobile.transitionFallbacks.turn = "fade";
  }(a, this), function (a) {
    a.mobile.degradeInputs = {
      color: !1,
      date: !1,
      datetime: !1,
      "datetime-local": !1,
      email: !1,
      month: !1,
      number: !1,
      range: "number",
      search: "text",
      tel: !1,
      time: !1,
      url: !1,
      week: !1
    }, a.mobile.page.prototype.options.degradeInputs = a.mobile.degradeInputs, a.mobile.degradeInputsWithin = function (b) {
      b = a(b), b.find("input").not(a.mobile.page.prototype.keepNativeSelector()).each(function () {
        var b,
          c,
          d,
          e,
          f = a(this),
          g = this.getAttribute("type"),
          h = a.mobile.degradeInputs[g] || "text";
        a.mobile.degradeInputs[g] && (b = a("<div>").html(f.clone()).html(), c = b.indexOf(" type=") > -1, d = c ? /\s+type=["']?\w+['"]?/ : /\/?>/, e = ' type="' + h + '" data-' + a.mobile.ns + 'type="' + g + '"' + (c ? "" : ">"), f.replaceWith(b.replace(d, e)));
      });
    };
  }(a), function (a, b, c) {
    a.widget("mobile.page", a.mobile.page, {
      options: {
        closeBtn: "left",
        closeBtnText: "Close",
        overlayTheme: "a",
        corners: !0,
        dialog: !1
      },
      _create: function _create() {
        this._super(), this.options.dialog && (a.extend(this, {
          _inner: this.element.children(),
          _headerCloseButton: null
        }), this.options.enhanced || this._setCloseBtn(this.options.closeBtn));
      },
      _enhance: function _enhance() {
        this._super(), this.options.dialog && this.element.addClass("ui-dialog").wrapInner(a("<div/>", {
          role: "dialog",
          "class": "ui-dialog-contain ui-overlay-shadow" + (this.options.corners ? " ui-corner-all" : "")
        }));
      },
      _setOptions: function _setOptions(b) {
        var d,
          e,
          f = this.options;
        b.corners !== c && this._inner.toggleClass("ui-corner-all", !!b.corners), b.overlayTheme !== c && a.mobile.activePage[0] === this.element[0] && (f.overlayTheme = b.overlayTheme, this._handlePageBeforeShow()), b.closeBtnText !== c && (d = f.closeBtn, e = b.closeBtnText), b.closeBtn !== c && (d = b.closeBtn), d && this._setCloseBtn(d, e), this._super(b);
      },
      _handlePageBeforeShow: function _handlePageBeforeShow() {
        this.options.overlayTheme && this.options.dialog ? (this.removeContainerBackground(), this.setContainerBackground(this.options.overlayTheme)) : this._super();
      },
      _setCloseBtn: function _setCloseBtn(b, c) {
        var d,
          e = this._headerCloseButton;
        b = "left" === b ? "left" : "right" === b ? "right" : "none", "none" === b ? e && (e.remove(), e = null) : e ? (e.removeClass("ui-btn-left ui-btn-right").addClass("ui-btn-" + b), c && e.text(c)) : (d = this._inner.find(":jqmData(role='header')").first(), e = a("<a></a>", {
          href: "#",
          "class": "ui-btn ui-corner-all ui-icon-delete ui-btn-icon-notext ui-btn-" + b
        }).attr("data-" + a.mobile.ns + "rel", "back").text(c || this.options.closeBtnText || "").prependTo(d)), this._headerCloseButton = e;
      }
    });
  }(a, this), function (a, b, c) {
    a.widget("mobile.dialog", {
      options: {
        closeBtn: "left",
        closeBtnText: "Close",
        overlayTheme: "a",
        corners: !0
      },
      _handlePageBeforeShow: function _handlePageBeforeShow() {
        this._isCloseable = !0, this.options.overlayTheme && this.element.page("removeContainerBackground").page("setContainerBackground", this.options.overlayTheme);
      },
      _handlePageBeforeHide: function _handlePageBeforeHide() {
        this._isCloseable = !1;
      },
      _handleVClickSubmit: function _handleVClickSubmit(b) {
        var c,
          d = a(b.target).closest("vclick" === b.type ? "a" : "form");
        d.length && !d.jqmData("transition") && (c = {}, c["data-" + a.mobile.ns + "transition"] = (a.mobile.navigate.history.getActive() || {}).transition || a.mobile.defaultDialogTransition, c["data-" + a.mobile.ns + "direction"] = "reverse", d.attr(c));
      },
      _create: function _create() {
        var b = this.element,
          c = this.options;
        b.addClass("ui-dialog").wrapInner(a("<div/>", {
          role: "dialog",
          "class": "ui-dialog-contain ui-overlay-shadow" + (c.corners ? " ui-corner-all" : "")
        })), a.extend(this, {
          _isCloseable: !1,
          _inner: b.children(),
          _headerCloseButton: null
        }), this._on(b, {
          vclick: "_handleVClickSubmit",
          submit: "_handleVClickSubmit",
          pagebeforeshow: "_handlePageBeforeShow",
          pagebeforehide: "_handlePageBeforeHide"
        }), this._setCloseBtn(c.closeBtn);
      },
      _setOptions: function _setOptions(b) {
        var d,
          e,
          f = this.options;
        b.corners !== c && this._inner.toggleClass("ui-corner-all", !!b.corners), b.overlayTheme !== c && a.mobile.activePage[0] === this.element[0] && (f.overlayTheme = b.overlayTheme, this._handlePageBeforeShow()), b.closeBtnText !== c && (d = f.closeBtn, e = b.closeBtnText), b.closeBtn !== c && (d = b.closeBtn), d && this._setCloseBtn(d, e), this._super(b);
      },
      _setCloseBtn: function _setCloseBtn(b, c) {
        var d,
          e = this._headerCloseButton;
        b = "left" === b ? "left" : "right" === b ? "right" : "none", "none" === b ? e && (e.remove(), e = null) : e ? (e.removeClass("ui-btn-left ui-btn-right").addClass("ui-btn-" + b), c && e.text(c)) : (d = this._inner.find(":jqmData(role='header')").first(), e = a("<a></a>", {
          role: "button",
          href: "#",
          "class": "ui-btn ui-corner-all ui-icon-delete ui-btn-icon-notext ui-btn-" + b
        }).text(c || this.options.closeBtnText || "").prependTo(d), this._on(e, {
          click: "close"
        })), this._headerCloseButton = e;
      },
      close: function close() {
        var b = a.mobile.navigate.history;
        this._isCloseable && (this._isCloseable = !1, a.mobile.hashListeningEnabled && b.activeIndex > 0 ? a.mobile.back() : a.mobile.pageContainer.pagecontainer("back"));
      }
    });
  }(a, this), function (a, b) {
    var c = /([A-Z])/g,
      d = function d(a) {
        return "ui-btn-icon-" + (null === a ? "left" : a);
      };
    a.widget("mobile.collapsible", {
      options: {
        enhanced: !1,
        expandCueText: null,
        collapseCueText: null,
        collapsed: !0,
        heading: "h1,h2,h3,h4,h5,h6,legend",
        collapsedIcon: null,
        expandedIcon: null,
        iconpos: null,
        theme: null,
        contentTheme: null,
        inset: null,
        corners: null,
        mini: null
      },
      _create: function _create() {
        var b = this.element,
          c = {
            accordion: b.closest(":jqmData(role='collapsible-set'),:jqmData(role='collapsibleset')" + (a.mobile.collapsibleset ? ", :mobile-collapsibleset" : "")).addClass("ui-collapsible-set")
          };
        this._ui = c, this._renderedOptions = this._getOptions(this.options), this.options.enhanced ? (c.heading = this.element.children(".ui-collapsible-heading"), c.content = c.heading.next(), c.anchor = c.heading.children(), c.status = c.anchor.children(".ui-collapsible-heading-status")) : this._enhance(b, c), this._on(c.heading, {
          tap: function tap() {
            c.heading.find("a").first().addClass(a.mobile.activeBtnClass);
          },
          click: function click(a) {
            this._handleExpandCollapse(!c.heading.hasClass("ui-collapsible-heading-collapsed")), a.preventDefault(), a.stopPropagation();
          }
        });
      },
      _getOptions: function _getOptions(b) {
        var d,
          e = this._ui.accordion,
          f = this._ui.accordionWidget;
        b = a.extend({}, b), e.length && !f && (this._ui.accordionWidget = f = e.data("mobile-collapsibleset"));
        for (d in b) b[d] = null != b[d] ? b[d] : f ? f.options[d] : e.length ? a.mobile.getAttribute(e[0], d.replace(c, "-$1").toLowerCase()) : null, null == b[d] && (b[d] = a.mobile.collapsible.defaults[d]);
        return b;
      },
      _themeClassFromOption: function _themeClassFromOption(a, b) {
        return b ? "none" === b ? "" : a + b : "";
      },
      _enhance: function _enhance(b, c) {
        var e,
          f = this._renderedOptions,
          g = this._themeClassFromOption("ui-body-", f.contentTheme);
        return b.addClass("ui-collapsible " + (f.inset ? "ui-collapsible-inset " : "") + (f.inset && f.corners ? "ui-corner-all " : "") + (g ? "ui-collapsible-themed-content " : "")), c.originalHeading = b.children(this.options.heading).first(), c.content = b.wrapInner("<div class='ui-collapsible-content " + g + "'></div>").children(".ui-collapsible-content"), c.heading = c.originalHeading, c.heading.is("legend") && (c.heading = a("<div role='heading'>" + c.heading.html() + "</div>"), c.placeholder = a("<div><!-- placeholder for legend --></div>").insertBefore(c.originalHeading), c.originalHeading.remove()), e = f.collapsed ? f.collapsedIcon ? "ui-icon-" + f.collapsedIcon : "" : f.expandedIcon ? "ui-icon-" + f.expandedIcon : "", c.status = a("<span class='ui-collapsible-heading-status'></span>"), c.anchor = c.heading.detach().addClass("ui-collapsible-heading").append(c.status).wrapInner("<a href='#' class='ui-collapsible-heading-toggle'></a>").find("a").first().addClass("ui-btn " + (e ? e + " " : "") + (e ? d(f.iconpos) + " " : "") + this._themeClassFromOption("ui-btn-", f.theme) + " " + (f.mini ? "ui-mini " : "")), c.heading.insertBefore(c.content), this._handleExpandCollapse(this.options.collapsed), c;
      },
      refresh: function refresh() {
        this._applyOptions(this.options), this._renderedOptions = this._getOptions(this.options);
      },
      _applyOptions: function _applyOptions(a) {
        var c,
          e,
          f,
          g,
          h,
          i = this.element,
          j = this._renderedOptions,
          k = this._ui,
          l = k.anchor,
          m = k.status,
          n = this._getOptions(a);
        a.collapsed !== b && this._handleExpandCollapse(a.collapsed), c = i.hasClass("ui-collapsible-collapsed"), c ? n.expandCueText !== b && m.text(n.expandCueText) : n.collapseCueText !== b && m.text(n.collapseCueText), h = n.collapsedIcon !== b ? n.collapsedIcon !== !1 : j.collapsedIcon !== !1, (n.iconpos !== b || n.collapsedIcon !== b || n.expandedIcon !== b) && (l.removeClass([d(j.iconpos)].concat(j.expandedIcon ? ["ui-icon-" + j.expandedIcon] : []).concat(j.collapsedIcon ? ["ui-icon-" + j.collapsedIcon] : []).join(" ")), h && l.addClass([d(n.iconpos !== b ? n.iconpos : j.iconpos)].concat(c ? ["ui-icon-" + (n.collapsedIcon !== b ? n.collapsedIcon : j.collapsedIcon)] : ["ui-icon-" + (n.expandedIcon !== b ? n.expandedIcon : j.expandedIcon)]).join(" "))), n.theme !== b && (f = this._themeClassFromOption("ui-btn-", j.theme), e = this._themeClassFromOption("ui-btn-", n.theme), l.removeClass(f).addClass(e)), n.contentTheme !== b && (f = this._themeClassFromOption("ui-body-", j.contentTheme), e = this._themeClassFromOption("ui-body-", n.contentTheme), k.content.removeClass(f).addClass(e)), n.inset !== b && (i.toggleClass("ui-collapsible-inset", n.inset), g = !(!n.inset || !n.corners && !j.corners)), n.corners !== b && (g = !(!n.corners || !n.inset && !j.inset)), g !== b && i.toggleClass("ui-corner-all", g), n.mini !== b && l.toggleClass("ui-mini", n.mini);
      },
      _setOptions: function _setOptions(a) {
        this._applyOptions(a), this._super(a), this._renderedOptions = this._getOptions(this.options);
      },
      _handleExpandCollapse: function _handleExpandCollapse(b) {
        var c = this._renderedOptions,
          d = this._ui;
        d.status.text(b ? c.expandCueText : c.collapseCueText), d.heading.toggleClass("ui-collapsible-heading-collapsed", b).find("a").first().toggleClass("ui-icon-" + c.expandedIcon, !b).toggleClass("ui-icon-" + c.collapsedIcon, b || c.expandedIcon === c.collapsedIcon).removeClass(a.mobile.activeBtnClass), this.element.toggleClass("ui-collapsible-collapsed", b), d.content.toggleClass("ui-collapsible-content-collapsed", b).attr("aria-hidden", b).trigger("updatelayout"), this.options.collapsed = b, this._trigger(b ? "collapse" : "expand");
      },
      expand: function expand() {
        this._handleExpandCollapse(!1);
      },
      collapse: function collapse() {
        this._handleExpandCollapse(!0);
      },
      _destroy: function _destroy() {
        var a = this._ui,
          b = this.options;
        b.enhanced || (a.placeholder ? (a.originalHeading.insertBefore(a.placeholder), a.placeholder.remove(), a.heading.remove()) : (a.status.remove(), a.heading.removeClass("ui-collapsible-heading ui-collapsible-heading-collapsed").children().contents().unwrap()), a.anchor.contents().unwrap(), a.content.contents().unwrap(), this.element.removeClass("ui-collapsible ui-collapsible-collapsed ui-collapsible-themed-content ui-collapsible-inset ui-corner-all"));
      }
    }), a.mobile.collapsible.defaults = {
      expandCueText: " click to expand contents",
      collapseCueText: " click to collapse contents",
      collapsedIcon: "plus",
      contentTheme: "inherit",
      expandedIcon: "minus",
      iconpos: "left",
      inset: !0,
      corners: !0,
      theme: "inherit",
      mini: !1
    };
  }(a), function (a) {
    function b(b) {
      var d,
        e = b.length,
        f = [];
      for (d = 0; e > d; d++) b[d].className.match(c) || f.push(b[d]);
      return a(f);
    }
    var c = /\bui-screen-hidden\b/;
    a.mobile.behaviors.addFirstLastClasses = {
      _getVisibles: function _getVisibles(a, c) {
        var d;
        return c ? d = b(a) : (d = a.filter(":visible"), 0 === d.length && (d = b(a))), d;
      },
      _addFirstLastClasses: function _addFirstLastClasses(a, b, c) {
        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");
      },
      _removeFirstLastClasses: function _removeFirstLastClasses(a) {
        a.removeClass("ui-first-child ui-last-child");
      }
    };
  }(a), function (a, b) {
    var c = ":mobile-collapsible, " + a.mobile.collapsible.initSelector;
    a.widget("mobile.collapsibleset", a.extend({
      initSelector: ":jqmData(role='collapsible-set'),:jqmData(role='collapsibleset')",
      options: a.extend({
        enhanced: !1
      }, a.mobile.collapsible.defaults),
      _handleCollapsibleExpand: function _handleCollapsibleExpand(b) {
        var c = a(b.target).closest(".ui-collapsible");
        c.parent().is(":mobile-collapsibleset, :jqmData(role='collapsible-set')") && c.siblings(".ui-collapsible:not(.ui-collapsible-collapsed)").collapsible("collapse");
      },
      _create: function _create() {
        var b = this.element,
          c = this.options;
        a.extend(this, {
          _classes: ""
        }), c.enhanced || (b.addClass("ui-collapsible-set " + this._themeClassFromOption("ui-group-theme-", c.theme) + " " + (c.corners && c.inset ? "ui-corner-all " : "")), this.element.find(a.mobile.collapsible.initSelector).collapsible()), this._on(b, {
          collapsibleexpand: "_handleCollapsibleExpand"
        });
      },
      _themeClassFromOption: function _themeClassFromOption(a, b) {
        return b ? "none" === b ? "" : a + b : "";
      },
      _init: function _init() {
        this._refresh(!0), this.element.children(c).filter(":jqmData(collapsed='false')").collapsible("expand");
      },
      _setOptions: function _setOptions(a) {
        var c,
          d,
          e = this.element,
          f = this._themeClassFromOption("ui-group-theme-", a.theme);
        return f && e.removeClass(this._themeClassFromOption("ui-group-theme-", this.options.theme)).addClass(f), a.inset !== b && (d = !(!a.inset || !a.corners && !this.options.corners)), a.corners !== b && (d = !(!a.corners || !a.inset && !this.options.inset)), d !== b && e.toggleClass("ui-corner-all", d), c = this._super(a), this.element.children(":mobile-collapsible").collapsible("refresh"), c;
      },
      _destroy: function _destroy() {
        var a = this.element;
        this._removeFirstLastClasses(a.children(c)), a.removeClass("ui-collapsible-set ui-corner-all " + this._themeClassFromOption("ui-group-theme-", this.options.theme)).children(":mobile-collapsible").collapsible("destroy");
      },
      _refresh: function _refresh(b) {
        var d = this.element.children(c);
        this.element.find(a.mobile.collapsible.initSelector).not(".ui-collapsible").collapsible(), this._addFirstLastClasses(d, this._getVisibles(d, b), b);
      },
      refresh: function refresh() {
        this._refresh(!1);
      }
    }, a.mobile.behaviors.addFirstLastClasses));
  }(a), function (a) {
    a.fn.fieldcontain = function () {
      return this.addClass("ui-field-contain");
    };
  }(a), function (a) {
    a.fn.grid = function (b) {
      return this.each(function () {
        var c,
          d,
          e = a(this),
          f = a.extend({
            grid: null
          }, b),
          g = e.children(),
          h = {
            solo: 1,
            a: 2,
            b: 3,
            c: 4,
            d: 5
          },
          i = f.grid;
        if (!i) if (g.length <= 5) for (d in h) h[d] === g.length && (i = d);else i = "a", e.addClass("ui-grid-duo");
        c = h[i], e.addClass("ui-grid-" + i), g.filter(":nth-child(" + c + "n+1)").addClass("ui-block-a"), c > 1 && g.filter(":nth-child(" + c + "n+2)").addClass("ui-block-b"), c > 2 && g.filter(":nth-child(" + c + "n+3)").addClass("ui-block-c"), c > 3 && g.filter(":nth-child(" + c + "n+4)").addClass("ui-block-d"), c > 4 && g.filter(":nth-child(" + c + "n+5)").addClass("ui-block-e");
      });
    };
  }(a), function (a, b) {
    a.widget("mobile.navbar", {
      options: {
        iconpos: "top",
        grid: null
      },
      _create: function _create() {
        var d = this.element,
          e = d.find("a, button"),
          f = e.filter(":jqmData(icon)").length ? this.options.iconpos : b;
        d.addClass("ui-navbar").attr("role", "navigation").find("ul").jqmEnhanceable().grid({
          grid: this.options.grid
        }), e.each(function () {
          var b = a.mobile.getAttribute(this, "icon"),
            c = a.mobile.getAttribute(this, "theme"),
            d = "ui-btn";
          c && (d += " ui-btn-" + c), b && (d += " ui-icon-" + b + " ui-btn-icon-" + f), a(this).addClass(d);
        }), d.delegate("a", "vclick", function () {
          var b = a(this);
          b.hasClass("ui-state-disabled") || b.hasClass("ui-disabled") || b.hasClass(a.mobile.activeBtnClass) || (e.removeClass(a.mobile.activeBtnClass), b.addClass(a.mobile.activeBtnClass), a(c).one("pagehide", function () {
            b.removeClass(a.mobile.activeBtnClass);
          }));
        }), d.closest(".ui-page").bind("pagebeforeshow", function () {
          e.filter(".ui-state-persist").addClass(a.mobile.activeBtnClass);
        });
      }
    });
  }(a), function (a) {
    var b = a.mobile.getAttribute;
    a.widget("mobile.listview", a.extend({
      options: {
        theme: null,
        countTheme: null,
        dividerTheme: null,
        icon: "carat-r",
        splitIcon: "carat-r",
        splitTheme: null,
        corners: !0,
        shadow: !0,
        inset: !1
      },
      _create: function _create() {
        var a = this,
          b = "";
        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(" ui-listview" + b), a.refresh(!0);
      },
      _findFirstElementByTagName: function _findFirstElementByTagName(a, b, c, d) {
        var e = {};
        for (e[c] = e[d] = !0; a;) {
          if (e[a.nodeName]) return a;
          a = a[b];
        }
        return null;
      },
      _addThumbClasses: function _addThumbClasses(b) {
        var c,
          d,
          e = b.length;
        for (c = 0; e > c; c++) d = a(this._findFirstElementByTagName(b[c].firstChild, "nextSibling", "img", "IMG")), d.length && a(this._findFirstElementByTagName(d[0].parentNode, "parentNode", "li", "LI")).addClass(d.hasClass("ui-li-icon") ? "ui-li-has-icon" : "ui-li-has-thumb");
      },
      _getChildrenByTagName: function _getChildrenByTagName(b, c, d) {
        var e = [],
          f = {};
        for (f[c] = f[d] = !0, b = b.firstChild; b;) f[b.nodeName] && e.push(b), b = b.nextSibling;
        return a(e);
      },
      _beforeListviewRefresh: a.noop,
      _afterListviewRefresh: a.noop,
      refresh: function refresh(c) {
        var d,
          e,
          f,
          g,
          h,
          i,
          j,
          k,
          l,
          m,
          n,
          o,
          p,
          q,
          r,
          s,
          t,
          u,
          v,
          w,
          x = this.options,
          y = this.element,
          z = !!a.nodeName(y[0], "ol"),
          A = y.attr("start"),
          B = {},
          C = y.find(".ui-li-count"),
          D = b(y[0], "counttheme") || this.options.countTheme,
          E = D ? "ui-body-" + D : "ui-body-inherit";
        for (x.theme && y.addClass("ui-group-theme-" + x.theme), z && (A || 0 === A) && (n = parseInt(A, 10) - 1, y.css("counter-reset", "listnumbering " + n)), this._beforeListviewRefresh(), w = this._getChildrenByTagName(y[0], "li", "LI"), e = 0, f = w.length; f > e; e++) g = w.eq(e), h = "", (c || g[0].className.search(/\bui-li-static\b|\bui-li-divider\b/) < 0) && (l = this._getChildrenByTagName(g[0], "a", "A"), m = "list-divider" === b(g[0], "role"), p = g.attr("value"), i = b(g[0], "theme"), l.length && l[0].className.search(/\bui-btn\b/) < 0 && !m ? (j = b(g[0], "icon"), k = j === !1 ? !1 : j || x.icon, l.removeClass("ui-link"), d = "ui-btn", i && (d += " ui-btn-" + i), l.length > 1 ? (h = "ui-li-has-alt", q = l.last(), r = b(q[0], "theme") || x.splitTheme || b(g[0], "theme", !0), s = r ? " ui-btn-" + r : "", t = b(q[0], "icon") || b(g[0], "icon") || x.splitIcon, u = "ui-btn ui-btn-icon-notext ui-icon-" + t + s, q.attr("title", a.trim(q.getEncodedText())).addClass(u).empty(), l = l.first()) : k && (d += " ui-btn-icon-right ui-icon-" + k), l.addClass(d)) : m ? (v = b(g[0], "theme") || x.dividerTheme || x.theme, h = "ui-li-divider ui-bar-" + (v ? v : "inherit"), g.attr("role", "heading")) : l.length <= 0 && (h = "ui-li-static ui-body-" + (i ? i : "inherit")), z && p && (o = parseInt(p, 10) - 1, g.css("counter-reset", "listnumbering " + o))), B[h] || (B[h] = []), B[h].push(g[0]);
        for (h in B) a(B[h]).addClass(h);
        C.each(function () {
          a(this).closest("li").addClass("ui-li-has-count");
        }), E && C.not("[class*='ui-body-']").addClass(E), this._addThumbClasses(w), this._addThumbClasses(w.find(".ui-btn")), this._afterListviewRefresh(), this._addFirstLastClasses(w, this._getVisibles(w, c), c);
      }
    }, a.mobile.behaviors.addFirstLastClasses));
  }(a), function (a) {
    function b(b) {
      var c = a.trim(b.text()) || null;
      return c ? c = c.slice(0, 1).toUpperCase() : null;
    }
    a.widget("mobile.listview", a.mobile.listview, {
      options: {
        autodividers: !1,
        autodividersSelector: b
      },
      _beforeListviewRefresh: function _beforeListviewRefresh() {
        this.options.autodividers && (this._replaceDividers(), this._superApply(arguments));
      },
      _replaceDividers: function _replaceDividers() {
        var b,
          d,
          e,
          f,
          g,
          h = null,
          i = this.element;
        for (i.children("li:jqmData(role='list-divider')").remove(), d = i.children("li"), b = 0; b < d.length; b++) e = d[b], f = this.options.autodividersSelector(a(e)), f && h !== f && (g = c.createElement("li"), g.appendChild(c.createTextNode(f)), g.setAttribute("data-" + a.mobile.ns + "role", "list-divider"), e.parentNode.insertBefore(g, e)), h = f;
      }
    });
  }(a), function (a) {
    var b = /(^|\s)ui-li-divider($|\s)/,
      c = /(^|\s)ui-screen-hidden($|\s)/;
    a.widget("mobile.listview", a.mobile.listview, {
      options: {
        hideDividers: !1
      },
      _afterListviewRefresh: function _afterListviewRefresh() {
        var a,
          d,
          e,
          f = !0;
        if (this._superApply(arguments), this.options.hideDividers) for (a = this._getChildrenByTagName(this.element[0], "li", "LI"), d = a.length - 1; d > -1; d--) e = a[d], e.className.match(b) ? (f && (e.className = e.className + " ui-screen-hidden"), f = !0) : e.className.match(c) || (f = !1);
      }
    });
  }(a), function (a) {
    a.mobile.nojs = function (b) {
      a(":jqmData(role='nojs')", b).addClass("ui-nojs");
    };
  }(a), function (a) {
    a.mobile.behaviors.formReset = {
      _handleFormReset: function _handleFormReset() {
        this._on(this.element.closest("form"), {
          reset: function reset() {
            this._delay("_reset");
          }
        });
      }
    };
  }(a), function (a, b) {
    var c = a.mobile.path.hashToSelector;
    a.widget("mobile.checkboxradio", a.extend({
      initSelector: "input:not( :jqmData(role='flipswitch' ) )[type='checkbox'],input[type='radio']:not( :jqmData(role='flipswitch' ))",
      options: {
        theme: "inherit",
        mini: !1,
        wrapperClass: null,
        enhanced: !1,
        iconpos: "left"
      },
      _create: function _create() {
        var b = this.element,
          c = this.options,
          d = function d(a, b) {
            return a.jqmData(b) || a.closest("form, fieldset").jqmData(b);
          },
          e = this.options.enhanced ? {
            element: this.element.siblings("label"),
            isParent: !1
          } : this._findLabel(),
          f = b[0].type,
          g = "ui-" + f + "-on",
          h = "ui-" + f + "-off";
        ("checkbox" === f || "radio" === f) && (this.element[0].disabled && (this.options.disabled = !0), c.iconpos = d(b, "iconpos") || e.element.attr("data-" + a.mobile.ns + "iconpos") || c.iconpos, c.mini = d(b, "mini") || c.mini, a.extend(this, {
          input: b,
          label: e.element,
          labelIsParent: e.isParent,
          inputtype: f,
          checkedClass: g,
          uncheckedClass: h
        }), this.options.enhanced || this._enhance(), this._on(e.element, {
          vmouseover: "_handleLabelVMouseOver",
          vclick: "_handleLabelVClick"
        }), this._on(b, {
          vmousedown: "_cacheVals",
          vclick: "_handleInputVClick",
          focus: "_handleInputFocus",
          blur: "_handleInputBlur"
        }), this._handleFormReset(), this.refresh());
      },
      _findLabel: function _findLabel() {
        var b,
          d,
          e,
          f = this.element,
          g = f[0].labels;
        return g && g.length > 0 ? (d = a(g[0]), e = a.contains(d[0], f[0])) : (b = f.closest("label"), e = b.length > 0, d = e ? b : a(this.document[0].getElementsByTagName("label")).filter("[for='" + c(f[0].id) + "']").first()), {
          element: d,
          isParent: e
        };
      },
      _enhance: function _enhance() {
        this.label.addClass("ui-btn ui-corner-all"), this.labelIsParent ? this.input.add(this.label).wrapAll(this._wrapper()) : (this.element.wrap(this._wrapper()), this.element.parent().prepend(this.label)), this._setOptions({
          theme: this.options.theme,
          iconpos: this.options.iconpos,
          mini: this.options.mini
        });
      },
      _wrapper: function _wrapper() {
        return a("<div class='" + (this.options.wrapperClass ? this.options.wrapperClass : "") + " ui-" + this.inputtype + (this.options.disabled ? " ui-state-disabled" : "") + "' ></div>");
      },
      _handleInputFocus: function _handleInputFocus() {
        this.label.addClass(a.mobile.focusClass);
      },
      _handleInputBlur: function _handleInputBlur() {
        this.label.removeClass(a.mobile.focusClass);
      },
      _handleInputVClick: function _handleInputVClick() {
        this.element.prop("checked", this.element.is(":checked")), this._getInputSet().not(this.element).prop("checked", !1), this._updateAll(!0);
      },
      _handleLabelVMouseOver: function _handleLabelVMouseOver(a) {
        this.label.parent().hasClass("ui-state-disabled") && a.stopPropagation();
      },
      _handleLabelVClick: function _handleLabelVClick(a) {
        var b = this.element;
        return b.is(":disabled") ? void a.preventDefault() : (this._cacheVals(), b.prop("checked", "radio" === this.inputtype && !0 || !b.prop("checked")), b.triggerHandler("click"), this._getInputSet().not(b).prop("checked", !1), this._updateAll(), !1);
      },
      _cacheVals: function _cacheVals() {
        this._getInputSet().each(function () {
          a(this).attr("data-" + a.mobile.ns + "cacheVal", this.checked);
        });
      },
      _getInputSet: function _getInputSet() {
        var b,
          d,
          e = this.element[0],
          f = e.name,
          g = e.form,
          h = this.element.parents().last().get(0),
          i = this.element;
        return f && "radio" === this.inputtype && h && (b = "input[type='radio'][name='" + c(f) + "']", g ? (d = g.getAttribute("id"), d && (i = a(b + "[form='" + c(d) + "']", h)), i = a(g).find(b).filter(function () {
          return this.form === g;
        }).add(i)) : i = a(b, h).filter(function () {
          return !this.form;
        })), i;
      },
      _updateAll: function _updateAll(b) {
        var c = this;
        this._getInputSet().each(function () {
          var d = a(this);
          !this.checked && "checkbox" !== c.inputtype || b || d.trigger("change");
        }).checkboxradio("refresh");
      },
      _reset: function _reset() {
        this.refresh();
      },
      _hasIcon: function _hasIcon() {
        var b,
          c,
          d = a.mobile.controlgroup;
        return d && (b = this.element.closest(":mobile-controlgroup," + d.prototype.initSelector), b.length > 0) ? (c = a.data(b[0], "mobile-controlgroup"), "horizontal" !== (c ? c.options.type : b.attr("data-" + a.mobile.ns + "type"))) : !0;
      },
      refresh: function refresh() {
        var b = this.element[0].checked,
          c = a.mobile.activeBtnClass,
          d = "ui-btn-icon-" + this.options.iconpos,
          e = [],
          f = [];
        this._hasIcon() ? (f.push(c), e.push(d)) : (f.push(d), (b ? e : f).push(c)), b ? (e.push(this.checkedClass), f.push(this.uncheckedClass)) : (e.push(this.uncheckedClass), f.push(this.checkedClass)), this.widget().toggleClass("ui-state-disabled", this.element.prop("disabled")), this.label.addClass(e.join(" ")).removeClass(f.join(" "));
      },
      widget: function widget() {
        return this.label.parent();
      },
      _setOptions: function _setOptions(a) {
        var c = this.label,
          d = this.options,
          e = this.widget(),
          f = this._hasIcon();
        a.disabled !== b && (this.input.prop("disabled", !!a.disabled), e.toggleClass("ui-state-disabled", !!a.disabled)), a.mini !== b && e.toggleClass("ui-mini", !!a.mini), a.theme !== b && c.removeClass("ui-btn-" + d.theme).addClass("ui-btn-" + a.theme), a.wrapperClass !== b && e.removeClass(d.wrapperClass).addClass(a.wrapperClass), a.iconpos !== b && f ? c.removeClass("ui-btn-icon-" + d.iconpos).addClass("ui-btn-icon-" + a.iconpos) : f || c.removeClass("ui-btn-icon-" + d.iconpos), this._super(a);
      }
    }, a.mobile.behaviors.formReset));
  }(a), function (a, b) {
    a.widget("mobile.button", {
      initSelector: "input[type='button'], input[type='submit'], input[type='reset']",
      options: {
        theme: null,
        icon: null,
        iconpos: "left",
        iconshadow: !1,
        corners: !0,
        shadow: !0,
        inline: null,
        mini: null,
        wrapperClass: null,
        enhanced: !1
      },
      _create: function _create() {
        this.element.is(":disabled") && (this.options.disabled = !0), this.options.enhanced || this._enhance(), a.extend(this, {
          wrapper: this.element.parent()
        }), this._on({
          focus: function focus() {
            this.widget().addClass(a.mobile.focusClass);
          },
          blur: function blur() {
            this.widget().removeClass(a.mobile.focusClass);
          }
        }), this.refresh(!0);
      },
      _enhance: function _enhance() {
        this.element.wrap(this._button());
      },
      _button: function _button() {
        var b = this.options,
          c = this._getIconClasses(this.options);
        return a("<div class='ui-btn ui-input-btn" + (b.wrapperClass ? " " + b.wrapperClass : "") + (b.theme ? " ui-btn-" + b.theme : "") + (b.corners ? " ui-corner-all" : "") + (b.shadow ? " ui-shadow" : "") + (b.inline ? " ui-btn-inline" : "") + (b.mini ? " ui-mini" : "") + (b.disabled ? " ui-state-disabled" : "") + (c ? " " + c : "") + "' >" + this.element.val() + "</div>");
      },
      widget: function widget() {
        return this.wrapper;
      },
      _destroy: function _destroy() {
        this.element.insertBefore(this.wrapper), this.wrapper.remove();
      },
      _getIconClasses: function _getIconClasses(a) {
        return a.icon ? "ui-icon-" + a.icon + (a.iconshadow ? " ui-shadow-icon" : "") + " ui-btn-icon-" + a.iconpos : "";
      },
      _setOptions: function _setOptions(c) {
        var d = this.widget();
        c.theme !== b && d.removeClass(this.options.theme).addClass("ui-btn-" + c.theme), c.corners !== b && d.toggleClass("ui-corner-all", c.corners), c.shadow !== b && d.toggleClass("ui-shadow", c.shadow), c.inline !== b && d.toggleClass("ui-btn-inline", c.inline), c.mini !== b && d.toggleClass("ui-mini", c.mini), c.disabled !== b && (this.element.prop("disabled", c.disabled), d.toggleClass("ui-state-disabled", c.disabled)), (c.icon !== b || c.iconshadow !== b || c.iconpos !== b) && d.removeClass(this._getIconClasses(this.options)).addClass(this._getIconClasses(a.extend({}, this.options, c))), this._super(c);
      },
      refresh: function refresh(b) {
        var c,
          d = this.element.prop("disabled");
        this.options.icon && "notext" === this.options.iconpos && this.element.attr("title") && this.element.attr("title", this.element.val()), b || (c = this.element.detach(), a(this.wrapper).text(this.element.val()).append(c)), this.options.disabled !== d && this._setOptions({
          disabled: d
        });
      }
    });
  }(a), function (a) {
    var b = a("meta[name=viewport]"),
      c = b.attr("content"),
      d = c + ",maximum-scale=1, user-scalable=no",
      e = c + ",maximum-scale=10, user-scalable=yes",
      f = /(user-scalable[\s]*=[\s]*no)|(maximum-scale[\s]*=[\s]*1)[$,\s]/.test(c);
    a.mobile.zoom = a.extend({}, {
      enabled: !f,
      locked: !1,
      disable: function disable(c) {
        f || a.mobile.zoom.locked || (b.attr("content", d), a.mobile.zoom.enabled = !1, a.mobile.zoom.locked = c || !1);
      },
      enable: function enable(c) {
        f || a.mobile.zoom.locked && c !== !0 || (b.attr("content", e), a.mobile.zoom.enabled = !0, a.mobile.zoom.locked = !1);
      },
      restore: function restore() {
        f || (b.attr("content", c), a.mobile.zoom.enabled = !0);
      }
    });
  }(a), function (a, b) {
    a.widget("mobile.textinput", {
      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']",
      options: {
        theme: null,
        corners: !0,
        mini: !1,
        preventFocusZoom: /iPhone|iPad|iPod/.test(navigator.platform) && navigator.userAgent.indexOf("AppleWebKit") > -1,
        wrapperClass: "",
        enhanced: !1
      },
      _create: function _create() {
        var b = this.options,
          c = this.element.is("[type='search'], :jqmData(type='search')"),
          d = "TEXTAREA" === this.element[0].tagName,
          e = this.element.is("[data-" + (a.mobile.ns || "") + "type='range']"),
          f = (this.element.is("input") || this.element.is("[data-" + (a.mobile.ns || "") + "type='search']")) && !e;
        this.element.prop("disabled") && (b.disabled = !0), a.extend(this, {
          classes: this._classesFromOptions(),
          isSearch: c,
          isTextarea: d,
          isRange: e,
          inputNeedsWrap: f
        }), this._autoCorrect(), b.enhanced || this._enhance(), this._on({
          focus: "_handleFocus",
          blur: "_handleBlur"
        });
      },
      refresh: function refresh() {
        this.setOptions({
          disabled: this.element.is(":disabled")
        });
      },
      _enhance: function _enhance() {
        var a = [];
        this.isTextarea && a.push("ui-input-text"), (this.isTextarea || this.isRange) && a.push("ui-shadow-inset"), this.inputNeedsWrap ? this.element.wrap(this._wrap()) : a = a.concat(this.classes), this.element.addClass(a.join(" "));
      },
      widget: function widget() {
        return this.inputNeedsWrap ? this.element.parent() : this.element;
      },
      _classesFromOptions: function _classesFromOptions() {
        var a = this.options,
          b = [];
        return b.push("ui-body-" + (null === a.theme ? "inherit" : a.theme)), a.corners && b.push("ui-corner-all"), a.mini && b.push("ui-mini"), a.disabled && b.push("ui-state-disabled"), a.wrapperClass && b.push(a.wrapperClass), b;
      },
      _wrap: function _wrap() {
        return a("<div class='" + (this.isSearch ? "ui-input-search " : "ui-input-text ") + this.classes.join(" ") + " ui-shadow-inset'></div>");
      },
      _autoCorrect: function _autoCorrect() {
        "undefined" == typeof this.element[0].autocorrect || a.support.touchOverflow || (this.element[0].setAttribute("autocorrect", "off"), this.element[0].setAttribute("autocomplete", "off"));
      },
      _handleBlur: function _handleBlur() {
        this.widget().removeClass(a.mobile.focusClass), this.options.preventFocusZoom && a.mobile.zoom.enable(!0);
      },
      _handleFocus: function _handleFocus() {
        this.options.preventFocusZoom && a.mobile.zoom.disable(!0), this.widget().addClass(a.mobile.focusClass);
      },
      _setOptions: function _setOptions(a) {
        var c = this.widget();
        this._super(a), (a.disabled !== b || a.mini !== b || a.corners !== b || a.theme !== b || a.wrapperClass !== b) && (c.removeClass(this.classes.join(" ")), this.classes = this._classesFromOptions(), c.addClass(this.classes.join(" "))), a.disabled !== b && this.element.prop("disabled", !!a.disabled);
      },
      _destroy: function _destroy() {
        this.options.enhanced || (this.inputNeedsWrap && this.element.unwrap(), this.element.removeClass("ui-input-text " + this.classes.join(" ")));
      }
    });
  }(a), function (a, d) {
    a.widget("mobile.slider", a.extend({
      initSelector: "input[type='range'], :jqmData(type='range'), :jqmData(role='slider')",
      widgetEventPrefix: "slide",
      options: {
        theme: null,
        trackTheme: null,
        corners: !0,
        mini: !1,
        highlight: !1
      },
      _create: function _create() {
        var e,
          f,
          g,
          h,
          i,
          j,
          k,
          l,
          m,
          n,
          o = this,
          p = this.element,
          q = this.options.trackTheme || a.mobile.getAttribute(p[0], "theme"),
          r = q ? " ui-bar-" + q : " ui-bar-inherit",
          s = this.options.corners || p.jqmData("corners") ? " ui-corner-all" : "",
          t = this.options.mini || p.jqmData("mini") ? " ui-mini" : "",
          u = p[0].nodeName.toLowerCase(),
          v = "select" === u,
          w = p.parent().is(":jqmData(role='rangeslider')"),
          x = v ? "ui-slider-switch" : "",
          y = p.attr("id"),
          z = a("[for='" + y + "']"),
          A = z.attr("id") || y + "-label",
          B = v ? 0 : parseFloat(p.attr("min")),
          C = v ? p.find("option").length - 1 : parseFloat(p.attr("max")),
          D = b.parseFloat(p.attr("step") || 1),
          E = c.createElement("a"),
          F = a(E),
          G = c.createElement("div"),
          H = a(G),
          I = this.options.highlight && !v ? function () {
            var b = c.createElement("div");
            return b.className = "ui-slider-bg " + a.mobile.activeBtnClass, a(b).prependTo(H);
          }() : !1;
        if (z.attr("id", A), this.isToggleSwitch = v, E.setAttribute("href", "#"), G.setAttribute("role", "application"), G.className = [this.isToggleSwitch ? "ui-slider ui-slider-track ui-shadow-inset " : "ui-slider-track ui-shadow-inset ", x, r, s, t].join(""), E.className = "ui-slider-handle", G.appendChild(E), F.attr({
          role: "slider",
          "aria-valuemin": B,
          "aria-valuemax": C,
          "aria-valuenow": this._value(),
          "aria-valuetext": this._value(),
          title: this._value(),
          "aria-labelledby": A
        }), a.extend(this, {
          slider: H,
          handle: F,
          control: p,
          type: u,
          step: D,
          max: C,
          min: B,
          valuebg: I,
          isRangeslider: w,
          dragging: !1,
          beforeStart: null,
          userModified: !1,
          mouseMoved: !1
        }), v) {
          for (k = p.attr("tabindex"), k && F.attr("tabindex", k), p.attr("tabindex", "-1").focus(function () {
            a(this).blur(), F.focus();
          }), f = c.createElement("div"), f.className = "ui-slider-inneroffset", g = 0, h = G.childNodes.length; h > g; g++) f.appendChild(G.childNodes[g]);
          for (G.appendChild(f), F.addClass("ui-slider-handle-snapping"), e = p.find("option"), i = 0, j = e.length; j > i; i++) l = i ? "a" : "b", m = i ? " " + a.mobile.activeBtnClass : "", n = c.createElement("span"), n.className = ["ui-slider-label ui-slider-label-", l, m].join(""), n.setAttribute("role", "img"), n.appendChild(c.createTextNode(e[i].innerHTML)), a(n).prependTo(H);
          o._labels = a(".ui-slider-label", H);
        }
        p.addClass(v ? "ui-slider-switch" : "ui-slider-input"), this._on(p, {
          change: "_controlChange",
          keyup: "_controlKeyup",
          blur: "_controlBlur",
          vmouseup: "_controlVMouseUp"
        }), H.bind("vmousedown", a.proxy(this._sliderVMouseDown, this)).bind("vclick", !1), this._on(c, {
          vmousemove: "_preventDocumentDrag"
        }), this._on(H.add(c), {
          vmouseup: "_sliderVMouseUp"
        }), H.insertAfter(p), v || w || (f = this.options.mini ? "<div class='ui-slider ui-mini'>" : "<div class='ui-slider'>", p.add(H).wrapAll(f)), this._on(this.handle, {
          vmousedown: "_handleVMouseDown",
          keydown: "_handleKeydown",
          keyup: "_handleKeyup"
        }), this.handle.bind("vclick", !1), this._handleFormReset(), this.refresh(d, d, !0);
      },
      _setOptions: function _setOptions(a) {
        a.theme !== d && this._setTheme(a.theme), a.trackTheme !== d && this._setTrackTheme(a.trackTheme), a.corners !== d && this._setCorners(a.corners), a.mini !== d && this._setMini(a.mini), a.highlight !== d && this._setHighlight(a.highlight), a.disabled !== d && this._setDisabled(a.disabled), this._super(a);
      },
      _controlChange: function _controlChange(a) {
        return this._trigger("controlchange", a) === !1 ? !1 : void (this.mouseMoved || this.refresh(this._value(), !0));
      },
      _controlKeyup: function _controlKeyup() {
        this.refresh(this._value(), !0, !0);
      },
      _controlBlur: function _controlBlur() {
        this.refresh(this._value(), !0);
      },
      _controlVMouseUp: function _controlVMouseUp() {
        this._checkedRefresh();
      },
      _handleVMouseDown: function _handleVMouseDown() {
        this.handle.focus();
      },
      _handleKeydown: function _handleKeydown(b) {
        var c = this._value();
        if (!this.options.disabled) {
          switch (b.keyCode) {
            case a.mobile.keyCode.HOME:
            case a.mobile.keyCode.END:
            case a.mobile.keyCode.PAGE_UP:
            case a.mobile.keyCode.PAGE_DOWN:
            case a.mobile.keyCode.UP:
            case a.mobile.keyCode.RIGHT:
            case a.mobile.keyCode.DOWN:
            case a.mobile.keyCode.LEFT:
              b.preventDefault(), this._keySliding || (this._keySliding = !0, this.handle.addClass("ui-state-active"));
          }
          switch (b.keyCode) {
            case a.mobile.keyCode.HOME:
              this.refresh(this.min);
              break;
            case a.mobile.keyCode.END:
              this.refresh(this.max);
              break;
            case a.mobile.keyCode.PAGE_UP:
            case a.mobile.keyCode.UP:
            case a.mobile.keyCode.RIGHT:
              this.refresh(c + this.step);
              break;
            case a.mobile.keyCode.PAGE_DOWN:
            case a.mobile.keyCode.DOWN:
            case a.mobile.keyCode.LEFT:
              this.refresh(c - this.step);
          }
        }
      },
      _handleKeyup: function _handleKeyup() {
        this._keySliding && (this._keySliding = !1, this.handle.removeClass("ui-state-active"));
      },
      _sliderVMouseDown: function _sliderVMouseDown(a) {
        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);
      },
      _sliderVMouseUp: function _sliderVMouseUp() {
        return this.dragging ? (this.dragging = !1, this.isToggleSwitch && (this.handle.addClass("ui-slider-handle-snapping"), this.refresh(this.mouseMoved ? this.userModified ? 0 === this.beforeStart ? 1 : 0 : this.beforeStart : 0 === this.beforeStart ? 1 : 0)), this.mouseMoved = !1, this._trigger("stop"), !1) : void 0;
      },
      _preventDocumentDrag: function _preventDocumentDrag(a) {
        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;
      },
      _checkedRefresh: function _checkedRefresh() {
        this.value !== this._value() && this.refresh(this._value());
      },
      _value: function _value() {
        return this.isToggleSwitch ? this.element[0].selectedIndex : parseFloat(this.element.val());
      },
      _reset: function _reset() {
        this.refresh(d, !1, !0);
      },
      refresh: function refresh(b, d, e) {
        var f,
          g,
          h,
          i,
          j,
          k,
          l,
          m,
          n,
          o,
          p,
          q,
          r,
          s,
          t,
          u,
          v,
          w,
          x,
          y,
          z = this,
          A = a.mobile.getAttribute(this.element[0], "theme"),
          B = this.options.theme || A,
          C = B ? " ui-btn-" + B : "",
          D = this.options.trackTheme || A,
          E = D ? " ui-bar-" + D : " ui-bar-inherit",
          F = this.options.corners ? " ui-corner-all" : "",
          G = this.options.mini ? " ui-mini" : "";
        if (z.slider[0].className = [this.isToggleSwitch ? "ui-slider ui-slider-switch ui-slider-track ui-shadow-inset" : "ui-slider-track ui-shadow-inset", E, F, G].join(""), (this.options.disabled || this.element.prop("disabled")) && this.disable(), this.value = this._value(), this.options.highlight && !this.isToggleSwitch && 0 === this.slider.find(".ui-slider-bg").length && (this.valuebg = function () {
          var b = c.createElement("div");
          return b.className = "ui-slider-bg " + a.mobile.activeBtnClass, a(b).prependTo(z.slider);
        }()), this.handle.addClass("ui-btn" + C + " ui-shadow"), l = this.element, m = !this.isToggleSwitch, n = m ? [] : l.find("option"), o = m ? parseFloat(l.attr("min")) : 0, p = m ? parseFloat(l.attr("max")) : n.length - 1, q = m && parseFloat(l.attr("step")) > 0 ? parseFloat(l.attr("step")) : 1, "object" == _typeof(b)) {
          if (h = b, i = 8, f = this.slider.offset().left, g = this.slider.width(), j = g / ((p - o) / q), !this.dragging || h.pageX < f - i || h.pageX > f + g + i) return;
          k = j > 1 ? (h.pageX - f) / g * 100 : Math.round((h.pageX - f) / g * 100);
        } else null == b && (b = m ? parseFloat(l.val() || 0) : l[0].selectedIndex), k = (parseFloat(b) - o) / (p - o) * 100;
        if (!isNaN(k) && (r = k / 100 * (p - o) + o, s = (r - o) % q, t = r - s, 2 * Math.abs(s) >= q && (t += s > 0 ? q : -q), u = 100 / ((p - o) / q), r = parseFloat(t.toFixed(5)), "undefined" == typeof j && (j = g / ((p - o) / q)), j > 1 && m && (k = (r - o) * u * (1 / q)), 0 > k && (k = 0), k > 100 && (k = 100), o > r && (r = o), r > p && (r = p), this.handle.css("left", k + "%"), this.handle[0].setAttribute("aria-valuenow", m ? r : n.eq(r).attr("value")), this.handle[0].setAttribute("aria-valuetext", m ? r : n.eq(r).getEncodedText()), this.handle[0].setAttribute("title", m ? r : n.eq(r).getEncodedText()), this.valuebg && this.valuebg.css("width", k + "%"), this._labels && (v = this.handle.width() / this.slider.width() * 100, w = k && v + (100 - v) * k / 100, x = 100 === k ? 0 : Math.min(v + 100 - w, 100), this._labels.each(function () {
          var b = a(this).hasClass("ui-slider-label-a");
          a(this).width((b ? w : x) + "%");
        })), !e)) {
          if (y = !1, m ? (y = parseFloat(l.val()) !== r, l.val(r)) : (y = l[0].selectedIndex !== r, l[0].selectedIndex = r), this._trigger("beforechange", b) === !1) return !1;
          !d && y && l.trigger("change");
        }
      },
      _setHighlight: function _setHighlight(a) {
        a = !!a, a ? (this.options.highlight = !!a, this.refresh()) : this.valuebg && (this.valuebg.remove(), this.valuebg = !1);
      },
      _setTheme: function _setTheme(a) {
        this.handle.removeClass("ui-btn-" + this.options.theme).addClass("ui-btn-" + a);
        var b = this.options.theme ? this.options.theme : "inherit",
          c = a ? a : "inherit";
        this.control.removeClass("ui-body-" + b).addClass("ui-body-" + c);
      },
      _setTrackTheme: function _setTrackTheme(a) {
        var b = this.options.trackTheme ? this.options.trackTheme : "inherit",
          c = a ? a : "inherit";
        this.slider.removeClass("ui-body-" + b).addClass("ui-body-" + c);
      },
      _setMini: function _setMini(a) {
        a = !!a, this.isToggleSwitch || this.isRangeslider || (this.slider.parent().toggleClass("ui-mini", a), this.element.toggleClass("ui-mini", a)), this.slider.toggleClass("ui-mini", a);
      },
      _setCorners: function _setCorners(a) {
        this.slider.toggleClass("ui-corner-all", a), this.isToggleSwitch || this.control.toggleClass("ui-corner-all", a);
      },
      _setDisabled: function _setDisabled(a) {
        a = !!a, this.element.prop("disabled", a), this.slider.toggleClass("ui-state-disabled", a).attr("aria-disabled", a), this.element.toggleClass("ui-state-disabled", a);
      }
    }, a.mobile.behaviors.formReset));
  }(a), function (a) {
    function b() {
      return c || (c = a("<div></div>", {
        "class": "ui-slider-popup ui-shadow ui-corner-all"
      })), c.clone();
    }
    var c;
    a.widget("mobile.slider", a.mobile.slider, {
      options: {
        popupEnabled: !1,
        showValue: !1
      },
      _create: function _create() {
        this._super(), a.extend(this, {
          _currentValue: null,
          _popup: null,
          _popupVisible: !1
        }), this._setOption("popupEnabled", this.options.popupEnabled), this._on(this.handle, {
          vmousedown: "_showPopup"
        }), this._on(this.slider.add(this.document), {
          vmouseup: "_hidePopup"
        }), this._refresh();
      },
      _positionPopup: function _positionPopup() {
        var a = this.handle.offset();
        this._popup.offset({
          left: a.left + (this.handle.width() - this._popup.width()) / 2,
          top: a.top - this._popup.outerHeight() - 5
        });
      },
      _setOption: function _setOption(a, c) {
        this._super(a, c), "showValue" === a ? this.handle.html(c && !this.options.mini ? this._value() : "") : "popupEnabled" === a && c && !this._popup && (this._popup = b().addClass("ui-body-" + (this.options.theme || "a")).hide().insertBefore(this.element));
      },
      refresh: function refresh() {
        this._super.apply(this, arguments), this._refresh();
      },
      _refresh: function _refresh() {
        var a,
          b = this.options;
        b.popupEnabled && this.handle.removeAttr("title"), a = this._value(), a !== this._currentValue && (this._currentValue = a, b.popupEnabled && this._popup && (this._positionPopup(), this._popup.html(a)), b.showValue && !this.options.mini && this.handle.html(a));
      },
      _showPopup: function _showPopup() {
        this.options.popupEnabled && !this._popupVisible && (this.handle.html(""), this._popup.show(), this._positionPopup(), this._popupVisible = !0);
      },
      _hidePopup: function _hidePopup() {
        var a = this.options;
        a.popupEnabled && this._popupVisible && (a.showValue && !a.mini && this.handle.html(this._value()), this._popup.hide(), this._popupVisible = !1);
      }
    });
  }(a), function (a, b) {
    a.widget("mobile.flipswitch", a.extend({
      options: {
        onText: "On",
        offText: "Off",
        theme: null,
        enhanced: !1,
        wrapperClass: null,
        corners: !0,
        mini: !1
      },
      _create: function _create() {
        this.options.enhanced ? a.extend(this, {
          flipswitch: this.element.parent(),
          on: this.element.find(".ui-flipswitch-on").eq(0),
          off: this.element.find(".ui-flipswitch-off").eq(0),
          type: this.element.get(0).tagName
        }) : this._enhance(), this._handleFormReset(), this._originalTabIndex = this.element.attr("tabindex"), null != this._originalTabIndex && this.on.attr("tabindex", this._originalTabIndex), this.element.attr("tabindex", "-1"), this._on({
          focus: "_handleInputFocus"
        }), this.element.is(":disabled") && this._setOptions({
          disabled: !0
        }), this._on(this.flipswitch, {
          click: "_toggle",
          swipeleft: "_left",
          swiperight: "_right"
        }), this._on(this.on, {
          keydown: "_keydown"
        }), this._on({
          change: "refresh"
        });
      },
      _handleInputFocus: function _handleInputFocus() {
        this.on.focus();
      },
      widget: function widget() {
        return this.flipswitch;
      },
      _left: function _left() {
        this.flipswitch.removeClass("ui-flipswitch-active"), "SELECT" === this.type ? this.element.get(0).selectedIndex = 0 : this.element.prop("checked", !1), this.element.trigger("change");
      },
      _right: function _right() {
        this.flipswitch.addClass("ui-flipswitch-active"), "SELECT" === this.type ? this.element.get(0).selectedIndex = 1 : this.element.prop("checked", !0), this.element.trigger("change");
      },
      _enhance: function _enhance() {
        var b = a("<div>"),
          c = this.options,
          d = this.element,
          e = c.theme ? c.theme : "inherit",
          f = a("<a></a>", {
            href: "#"
          }),
          g = a("<span></span>"),
          h = d.get(0).tagName,
          i = "INPUT" === h ? c.onText : d.find("option").eq(1).text(),
          j = "INPUT" === h ? c.offText : d.find("option").eq(0).text();
        f.addClass("ui-flipswitch-on ui-btn ui-shadow ui-btn-inherit").text(i), g.addClass("ui-flipswitch-off").text(j), b.addClass("ui-flipswitch ui-shadow-inset ui-bar-" + e + " " + (c.wrapperClass ? c.wrapperClass : "") + " " + (d.is(":checked") || d.find("option").eq(1).is(":selected") ? "ui-flipswitch-active" : "") + (d.is(":disabled") ? " ui-state-disabled" : "") + (c.corners ? " ui-corner-all" : "") + (c.mini ? " ui-mini" : "")).append(f, g), d.addClass("ui-flipswitch-input").after(b).appendTo(b), a.extend(this, {
          flipswitch: b,
          on: f,
          off: g,
          type: h
        });
      },
      _reset: function _reset() {
        this.refresh();
      },
      refresh: function refresh() {
        var a,
          b = this.flipswitch.hasClass("ui-flipswitch-active") ? "_right" : "_left";
        a = "SELECT" === this.type ? this.element.get(0).selectedIndex > 0 ? "_right" : "_left" : this.element.prop("checked") ? "_right" : "_left", a !== b && this[a]();
      },
      _toggle: function _toggle() {
        var a = this.flipswitch.hasClass("ui-flipswitch-active") ? "_left" : "_right";
        this[a]();
      },
      _keydown: function _keydown(b) {
        b.which === a.mobile.keyCode.LEFT ? this._left() : b.which === a.mobile.keyCode.RIGHT ? this._right() : b.which === a.mobile.keyCode.SPACE && (this._toggle(), b.preventDefault());
      },
      _setOptions: function _setOptions(a) {
        if (a.theme !== b) {
          var c = a.theme ? a.theme : "inherit",
            d = a.theme ? a.theme : "inherit";
          this.widget().removeClass("ui-bar-" + c).addClass("ui-bar-" + d);
        }
        a.onText !== b && this.on.text(a.onText), a.offText !== b && this.off.text(a.offText), a.disabled !== b && this.widget().toggleClass("ui-state-disabled", a.disabled), a.mini !== b && this.widget().toggleClass("ui-mini", a.mini), a.corners !== b && this.widget().toggleClass("ui-corner-all", a.corners), this._super(a);
      },
      _destroy: function _destroy() {
        this.options.enhanced || (null != this._originalTabIndex ? this.element.attr("tabindex", this._originalTabIndex) : this.element.removeAttr("tabindex"), this.on.remove(), this.off.remove(), this.element.unwrap(), this.flipswitch.remove(), this.removeClass("ui-flipswitch-input"));
      }
    }, a.mobile.behaviors.formReset));
  }(a), function (a, b) {
    a.widget("mobile.rangeslider", a.extend({
      options: {
        theme: null,
        trackTheme: null,
        corners: !0,
        mini: !1,
        highlight: !0
      },
      _create: function _create() {
        var b = this.element,
          c = this.options.mini ? "ui-rangeslider ui-mini" : "ui-rangeslider",
          d = b.find("input").first(),
          e = b.find("input").last(),
          f = b.find("label").first(),
          g = a.data(d.get(0), "mobile-slider") || a.data(d.slider().get(0), "mobile-slider"),
          h = a.data(e.get(0), "mobile-slider") || a.data(e.slider().get(0), "mobile-slider"),
          i = g.slider,
          j = h.slider,
          k = g.handle,
          l = a("<div class='ui-rangeslider-sliders' />").appendTo(b);
        d.addClass("ui-rangeslider-first"), e.addClass("ui-rangeslider-last"), b.addClass(c), i.appendTo(l), j.appendTo(l), f.insertBefore(b), k.prependTo(j), a.extend(this, {
          _inputFirst: d,
          _inputLast: e,
          _sliderFirst: i,
          _sliderLast: j,
          _label: f,
          _targetVal: null,
          _sliderTarget: !1,
          _sliders: l,
          _proxy: !1
        }), this.refresh(), this._on(this.element.find("input.ui-slider-input"), {
          slidebeforestart: "_slidebeforestart",
          slidestop: "_slidestop",
          slidedrag: "_slidedrag",
          slidebeforechange: "_change",
          blur: "_change",
          keyup: "_change"
        }), this._on({
          mousedown: "_change"
        }), this._on(this.element.closest("form"), {
          reset: "_handleReset"
        }), this._on(k, {
          vmousedown: "_dragFirstHandle"
        });
      },
      _handleReset: function _handleReset() {
        var a = this;
        setTimeout(function () {
          a._updateHighlight();
        }, 0);
      },
      _dragFirstHandle: function _dragFirstHandle(b) {
        return a.data(this._inputFirst.get(0), "mobile-slider").dragging = !0, a.data(this._inputFirst.get(0), "mobile-slider").refresh(b), a.data(this._inputFirst.get(0), "mobile-slider")._trigger("start"), !1;
      },
      _slidedrag: function _slidedrag(b) {
        var c = a(b.target).is(this._inputFirst),
          d = c ? this._inputLast : this._inputFirst;
        return this._sliderTarget = !1, "first" === this._proxy && c || "last" === this._proxy && !c ? (a.data(d.get(0), "mobile-slider").dragging = !0, a.data(d.get(0), "mobile-slider").refresh(b), !1) : void 0;
      },
      _slidestop: function _slidestop(b) {
        var c = a(b.target).is(this._inputFirst);
        this._proxy = !1, this.element.find("input").trigger("vmouseup"), this._sliderFirst.css("z-index", c ? 1 : "");
      },
      _slidebeforestart: function _slidebeforestart(b) {
        this._sliderTarget = !1, a(b.originalEvent.target).hasClass("ui-slider-track") && (this._sliderTarget = !0, this._targetVal = a(b.target).val());
      },
      _setOptions: function _setOptions(a) {
        a.theme !== b && this._setTheme(a.theme), a.trackTheme !== b && this._setTrackTheme(a.trackTheme), a.mini !== b && this._setMini(a.mini), a.highlight !== b && this._setHighlight(a.highlight), a.disabled !== b && this._setDisabled(a.disabled), this._super(a), this.refresh();
      },
      refresh: function refresh() {
        var a = this.element,
          b = this.options;
        (this._inputFirst.is(":disabled") || this._inputLast.is(":disabled")) && (this.options.disabled = !0), a.find("input").slider({
          theme: b.theme,
          trackTheme: b.trackTheme,
          disabled: b.disabled,
          corners: b.corners,
          mini: b.mini,
          highlight: b.highlight
        }).slider("refresh"), this._updateHighlight();
      },
      _change: function _change(b) {
        if ("keyup" === b.type) return this._updateHighlight(), !1;
        var c = this,
          d = parseFloat(this._inputFirst.val(), 10),
          e = parseFloat(this._inputLast.val(), 10),
          f = a(b.target).hasClass("ui-rangeslider-first"),
          g = f ? this._inputFirst : this._inputLast,
          h = f ? this._inputLast : this._inputFirst;
        if (this._inputFirst.val() > this._inputLast.val() && "mousedown" === b.type && !a(b.target).hasClass("ui-slider-handle")) g.blur();else if ("mousedown" === b.type) return;
        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 () {
          h.val(f ? d : e).slider("refresh"), a.data(h.get(0), "mobile-slider").handle.focus(), c._sliderFirst.css("z-index", f ? "" : 1), c._trigger("normalize");
        }, 0), this._proxy = f ? "first" : "last"), d === e ? (a.data(g.get(0), "mobile-slider").handle.css("z-index", 1), a.data(h.get(0), "mobile-slider").handle.css("z-index", 0)) : (a.data(h.get(0), "mobile-slider").handle.css("z-index", ""), a.data(g.get(0), "mobile-slider").handle.css("z-index", "")), this._updateHighlight(), d >= e ? !1 : void 0;
      },
      _updateHighlight: function _updateHighlight() {
        var b = parseInt(a.data(this._inputFirst.get(0), "mobile-slider").handle.get(0).style.left, 10),
          c = parseInt(a.data(this._inputLast.get(0), "mobile-slider").handle.get(0).style.left, 10),
          d = c - b;
        this.element.find(".ui-slider-bg").css({
          "margin-left": b + "%",
          width: d + "%"
        });
      },
      _setTheme: function _setTheme(a) {
        this._inputFirst.slider("option", "theme", a), this._inputLast.slider("option", "theme", a);
      },
      _setTrackTheme: function _setTrackTheme(a) {
        this._inputFirst.slider("option", "trackTheme", a), this._inputLast.slider("option", "trackTheme", a);
      },
      _setMini: function _setMini(a) {
        this._inputFirst.slider("option", "mini", a), this._inputLast.slider("option", "mini", a), this.element.toggleClass("ui-mini", !!a);
      },
      _setHighlight: function _setHighlight(a) {
        this._inputFirst.slider("option", "highlight", a), this._inputLast.slider("option", "highlight", a);
      },
      _setDisabled: function _setDisabled(a) {
        this._inputFirst.prop("disabled", a), this._inputLast.prop("disabled", a);
      },
      _destroy: function _destroy() {
        this._label.prependTo(this.element), this.element.removeClass("ui-rangeslider ui-mini"), 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");
      }
    }, a.mobile.behaviors.formReset));
  }(a), function (a, b) {
    a.widget("mobile.textinput", a.mobile.textinput, {
      options: {
        clearBtn: !1,
        clearBtnText: "Clear text"
      },
      _create: function _create() {
        this._super(), this.isSearch && (this.options.clearBtn = !0), this.options.clearBtn && this.inputNeedsWrap && this._addClearBtn();
      },
      clearButton: function clearButton() {
        return a("<a href='#' tabindex='-1' aria-hidden='true' class='ui-input-clear ui-btn ui-icon-delete ui-btn-icon-notext ui-corner-all'></a>").attr("title", this.options.clearBtnText).text(this.options.clearBtnText);
      },
      _clearBtnClick: function _clearBtnClick(a) {
        this.element.val("").focus().trigger("change"), this._clearBtn.addClass("ui-input-clear-hidden"), a.preventDefault();
      },
      _addClearBtn: function _addClearBtn() {
        this.options.enhanced || this._enhanceClear(), a.extend(this, {
          _clearBtn: this.widget().find("a.ui-input-clear")
        }), this._bindClearEvents(), this._toggleClear();
      },
      _enhanceClear: function _enhanceClear() {
        this.clearButton().appendTo(this.widget()), this.widget().addClass("ui-input-has-clear");
      },
      _bindClearEvents: function _bindClearEvents() {
        this._on(this._clearBtn, {
          click: "_clearBtnClick"
        }), this._on({
          keyup: "_toggleClear",
          change: "_toggleClear",
          input: "_toggleClear",
          focus: "_toggleClear",
          blur: "_toggleClear",
          cut: "_toggleClear",
          paste: "_toggleClear"
        });
      },
      _unbindClear: function _unbindClear() {
        this._off(this._clearBtn, "click"), this._off(this.element, "keyup change input focus blur cut paste");
      },
      _setOptions: function _setOptions(a) {
        this._super(a), a.clearBtn === b || this.element.is("textarea, :jqmData(type='range')") || (a.clearBtn ? this._addClearBtn() : this._destroyClear()), a.clearBtnText !== b && this._clearBtn !== b && this._clearBtn.text(a.clearBtnText).attr("title", a.clearBtnText);
      },
      _toggleClear: function _toggleClear() {
        this._delay("_toggleClearClass", 0);
      },
      _toggleClearClass: function _toggleClearClass() {
        this._clearBtn.toggleClass("ui-input-clear-hidden", !this.element.val());
      },
      _destroyClear: function _destroyClear() {
        this.widget().removeClass("ui-input-has-clear"), this._unbindClear(), this._clearBtn.remove();
      },
      _destroy: function _destroy() {
        this._super(), this.options.clearBtn && this._destroyClear();
      }
    });
  }(a), function (a, b) {
    a.widget("mobile.textinput", a.mobile.textinput, {
      options: {
        autogrow: !0,
        keyupTimeoutBuffer: 100
      },
      _create: function _create() {
        this._super(), this.options.autogrow && this.isTextarea && this._autogrow();
      },
      _autogrow: function _autogrow() {
        this.element.addClass("ui-textinput-autogrow"), this._on({
          keyup: "_timeout",
          change: "_timeout",
          input: "_timeout",
          paste: "_timeout"
        }), this._on(!0, this.document, {
          pageshow: "_handleShow",
          popupbeforeposition: "_handleShow",
          updatelayout: "_handleShow",
          panelopen: "_handleShow"
        });
      },
      _handleShow: function _handleShow(b) {
        a.contains(b.target, this.element[0]) && this.element.is(":visible") && ("popupbeforeposition" !== b.type && this.element.addClass("ui-textinput-autogrow-resize").animationComplete(a.proxy(function () {
          this.element.removeClass("ui-textinput-autogrow-resize");
        }, this), "transition"), this._prepareHeightUpdate());
      },
      _unbindAutogrow: function _unbindAutogrow() {
        this.element.removeClass("ui-textinput-autogrow"), this._off(this.element, "keyup change input paste"), this._off(this.document, "pageshow popupbeforeposition updatelayout panelopen");
      },
      keyupTimeout: null,
      _prepareHeightUpdate: function _prepareHeightUpdate(a) {
        this.keyupTimeout && clearTimeout(this.keyupTimeout), a === b ? this._updateHeight() : this.keyupTimeout = this._delay("_updateHeight", a);
      },
      _timeout: function _timeout() {
        this._prepareHeightUpdate(this.options.keyupTimeoutBuffer);
      },
      _updateHeight: function _updateHeight() {
        var a,
          b,
          c,
          d,
          e,
          f,
          g,
          h,
          i,
          j = this.window.scrollTop();
        this.keyupTimeout = 0, "onpage" in this.element[0] || this.element.css({
          height: 0,
          "min-height": 0,
          "max-height": 0
        }), d = this.element[0].scrollHeight, e = this.element[0].clientHeight, f = parseFloat(this.element.css("border-top-width")), g = parseFloat(this.element.css("border-bottom-width")), h = f + g, i = d + h + 15, 0 === e && (a = parseFloat(this.element.css("padding-top")), b = parseFloat(this.element.css("padding-bottom")), c = a + b, i += c), this.element.css({
          height: i,
          "min-height": "",
          "max-height": ""
        }), this.window.scrollTop(j);
      },
      refresh: function refresh() {
        this.options.autogrow && this.isTextarea && this._updateHeight();
      },
      _setOptions: function _setOptions(a) {
        this._super(a), a.autogrow !== b && this.isTextarea && (a.autogrow ? this._autogrow() : this._unbindAutogrow());
      }
    });
  }(a), function (a) {
    a.widget("mobile.selectmenu", a.extend({
      initSelector: "select:not( :jqmData(role='slider')):not( :jqmData(role='flipswitch') )",
      options: {
        theme: null,
        icon: "carat-d",
        iconpos: "right",
        inline: !1,
        corners: !0,
        shadow: !0,
        iconshadow: !1,
        overlayTheme: null,
        dividerTheme: null,
        hidePlaceholderMenuItems: !0,
        closeText: "Close",
        nativeMenu: !0,
        preventFocusZoom: /iPhone|iPad|iPod/.test(navigator.platform) && navigator.userAgent.indexOf("AppleWebKit") > -1,
        mini: !1
      },
      _button: function _button() {
        return a("<div/>");
      },
      _setDisabled: function _setDisabled(a) {
        return this.element.attr("disabled", a), this.button.attr("aria-disabled", a), this._setOption("disabled", a);
      },
      _focusButton: function _focusButton() {
        var a = this;
        setTimeout(function () {
          a.button.focus();
        }, 40);
      },
      _selectOptions: function _selectOptions() {
        return this.select.find("option");
      },
      _preExtension: function _preExtension() {
        var b = this.options.inline || this.element.jqmData("inline"),
          c = this.options.mini || this.element.jqmData("mini"),
          d = "";
        ~this.element[0].className.indexOf("ui-btn-left") && (d = " ui-btn-left"), ~this.element[0].className.indexOf("ui-btn-right") && (d = " ui-btn-right"), b && (d += " ui-btn-inline"), c && (d += " ui-mini"), this.select = this.element.removeClass("ui-btn-left ui-btn-right").wrap("<div class='ui-select" + d + "'>"), this.selectId = this.select.attr("id") || "select-" + this.uuid, this.buttonId = this.selectId + "-button", this.label = a("label[for='" + this.selectId + "']"), this.isMultiple = this.select[0].multiple;
      },
      _destroy: function _destroy() {
        var a = this.element.parents(".ui-select");
        a.length > 0 && (a.is(".ui-btn-left, .ui-btn-right") && this.element.addClass(a.hasClass("ui-btn-left") ? "ui-btn-left" : "ui-btn-right"), this.element.insertAfter(a), a.remove());
      },
      _create: function _create() {
        this._preExtension(), this.button = this._button();
        var c = this,
          d = this.options,
          e = d.icon ? d.iconpos || this.select.jqmData("iconpos") : !1,
          f = this.button.insertBefore(this.select).attr("id", this.buttonId).addClass("ui-btn" + (d.icon ? " ui-icon-" + d.icon + " ui-btn-icon-" + e + (d.iconshadow ? " ui-shadow-icon" : "") : "") + (d.theme ? " ui-btn-" + d.theme : "") + (d.corners ? " ui-corner-all" : "") + (d.shadow ? " ui-shadow" : ""));
        this.setButtonText(), d.nativeMenu && b.opera && b.opera.version && f.addClass("ui-select-nativeonly"), this.isMultiple && (this.buttonCount = a("<span>").addClass("ui-li-count ui-body-inherit").hide().appendTo(f.addClass("ui-li-has-count"))), (d.disabled || this.element.attr("disabled")) && this.disable(), this.select.change(function () {
          c.refresh(), d.nativeMenu && c._delay(function () {
            c.select.blur();
          });
        }), this._handleFormReset(), this._on(this.button, {
          keydown: "_handleKeydown"
        }), this.build();
      },
      build: function build() {
        var b = this;
        this.select.appendTo(b.button).bind("vmousedown", function () {
          b.button.addClass(a.mobile.activeBtnClass);
        }).bind("focus", function () {
          b.button.addClass(a.mobile.focusClass);
        }).bind("blur", function () {
          b.button.removeClass(a.mobile.focusClass);
        }).bind("focus vmouseover", function () {
          b.button.trigger("vmouseover");
        }).bind("vmousemove", function () {
          b.button.removeClass(a.mobile.activeBtnClass);
        }).bind("change blur vmouseout", function () {
          b.button.trigger("vmouseout").removeClass(a.mobile.activeBtnClass);
        }), b.button.bind("vmousedown", function () {
          b.options.preventFocusZoom && a.mobile.zoom.disable(!0);
        }), b.label.bind("click focus", function () {
          b.options.preventFocusZoom && a.mobile.zoom.disable(!0);
        }), b.select.bind("focus", function () {
          b.options.preventFocusZoom && a.mobile.zoom.disable(!0);
        }), b.button.bind("mouseup", function () {
          b.options.preventFocusZoom && setTimeout(function () {
            a.mobile.zoom.enable(!0);
          }, 0);
        }), b.select.bind("blur", function () {
          b.options.preventFocusZoom && a.mobile.zoom.enable(!0);
        });
      },
      selected: function selected() {
        return this._selectOptions().filter(":selected");
      },
      selectedIndices: function selectedIndices() {
        var a = this;
        return this.selected().map(function () {
          return a._selectOptions().index(this);
        }).get();
      },
      setButtonText: function setButtonText() {
        var b = this,
          d = this.selected(),
          e = this.placeholder,
          f = a(c.createElement("span"));
        this.button.children("span").not(".ui-li-count").remove().end().end().prepend(function () {
          return e = d.length ? d.map(function () {
            return a(this).text();
          }).get().join(", ") : b.placeholder, e ? f.text(e) : f.html("&#160;"), f.addClass(b.select.attr("class")).addClass(d.attr("class")).removeClass("ui-screen-hidden");
        }());
      },
      setButtonCount: function setButtonCount() {
        var a = this.selected();
        this.isMultiple && this.buttonCount[a.length > 1 ? "show" : "hide"]().text(a.length);
      },
      _handleKeydown: function _handleKeydown() {
        this._delay("_refreshButton");
      },
      _reset: function _reset() {
        this.refresh();
      },
      _refreshButton: function _refreshButton() {
        this.setButtonText(), this.setButtonCount();
      },
      refresh: function refresh() {
        this._refreshButton();
      },
      open: a.noop,
      close: a.noop,
      disable: function disable() {
        this._setDisabled(!0), this.button.addClass("ui-state-disabled");
      },
      enable: function enable() {
        this._setDisabled(!1), this.button.removeClass("ui-state-disabled");
      }
    }, a.mobile.behaviors.formReset));
  }(a), function (a) {
    a.mobile.links = function (b) {
      a(b).find("a").jqmEnhanceable().filter(":jqmData(rel='popup')[href][href!='']").each(function () {
        var a = this,
          b = a.getAttribute("href").substring(1);
        b && (a.setAttribute("aria-haspopup", !0), a.setAttribute("aria-owns", b), a.setAttribute("aria-expanded", !1));
      }).end().not(".ui-btn, :jqmData(role='none'), :jqmData(role='nojs')").addClass("ui-link");
    };
  }(a), function (a, c) {
    function d(a, b, c, d) {
      var e = d;
      return e = b > a ? c + (a - b) / 2 : Math.min(Math.max(c, d - b / 2), c + a - b);
    }
    function e(a) {
      return {
        x: a.scrollLeft(),
        y: a.scrollTop(),
        cx: a[0].innerWidth || a.width(),
        cy: a[0].innerHeight || a.height()
      };
    }
    a.widget("mobile.popup", {
      options: {
        wrapperClass: null,
        theme: null,
        overlayTheme: null,
        shadow: !0,
        corners: !0,
        transition: "none",
        positionTo: "origin",
        tolerance: null,
        closeLinkSelector: "a:jqmData(rel='back')",
        closeLinkEvents: "click.popup",
        navigateEvents: "navigate.popup",
        closeEvents: "navigate.popup pagebeforechange.popup",
        dismissible: !0,
        enhanced: !1,
        history: !a.mobile.browser.oldIE
      },
      _handleDocumentVmousedown: function _handleDocumentVmousedown(b) {
        this._isOpen && a.contains(this._ui.container[0], b.target) && this._ignoreResizeEvents();
      },
      _create: function _create() {
        var b = this.element,
          c = b.attr("id"),
          d = this.options;
        d.history = d.history && a.mobile.ajaxEnabled && a.mobile.hashListeningEnabled, this._on(this.document, {
          vmousedown: "_handleDocumentVmousedown"
        }), a.extend(this, {
          _scrollTop: 0,
          _page: b.closest(".ui-page"),
          _ui: null,
          _fallbackTransition: "",
          _currentTransition: !1,
          _prerequisites: null,
          _isOpen: !1,
          _tolerance: null,
          _resizeData: null,
          _ignoreResizeTo: 0,
          _orientationchangeInProgress: !1
        }), 0 === this._page.length && (this._page = a("body")), d.enhanced ? this._ui = {
          container: b.parent(),
          screen: b.parent().prev(),
          placeholder: a(this.document[0].getElementById(c + "-placeholder"))
        } : (this._ui = this._enhance(b, c), this._applyTransition(d.transition)), this._setTolerance(d.tolerance)._ui.focusElement = this._ui.container, this._on(this._ui.screen, {
          vclick: "_eatEventAndClose"
        }), this._on(this.window, {
          orientationchange: a.proxy(this, "_handleWindowOrientationchange"),
          resize: a.proxy(this, "_handleWindowResize"),
          keyup: a.proxy(this, "_handleWindowKeyUp")
        }), this._on(this.document, {
          focusin: "_handleDocumentFocusIn"
        });
      },
      _enhance: function _enhance(b, c) {
        var d = this.options,
          e = d.wrapperClass,
          f = {
            screen: a("<div class='ui-screen-hidden ui-popup-screen " + this._themeClassFromOption("ui-overlay-", d.overlayTheme) + "'></div>"),
            placeholder: a("<div style='display: none;'><!-- placeholder --></div>"),
            container: a("<div class='ui-popup-container ui-popup-hidden ui-popup-truncate" + (e ? " " + e : "") + "'></div>")
          },
          g = this.document[0].createDocumentFragment();
        return g.appendChild(f.screen[0]), g.appendChild(f.container[0]), c && (f.screen.attr("id", c + "-screen"), f.container.attr("id", c + "-popup"), f.placeholder.attr("id", c + "-placeholder").html("<!-- placeholder for " + c + " -->")), this._page[0].appendChild(g), f.placeholder.insertAfter(b), b.detach().addClass("ui-popup " + this._themeClassFromOption("ui-body-", d.theme) + " " + (d.shadow ? "ui-overlay-shadow " : "") + (d.corners ? "ui-corner-all " : "")).appendTo(f.container), f;
      },
      _eatEventAndClose: function _eatEventAndClose(a) {
        return a.preventDefault(), a.stopImmediatePropagation(), this.options.dismissible && this.close(), !1;
      },
      _resizeScreen: function _resizeScreen() {
        var a = this._ui.screen,
          b = this._ui.container.outerHeight(!0),
          c = a.removeAttr("style").height(),
          d = this.document.height() - 1;
        d > c ? a.height(d) : b > c && a.height(b);
      },
      _handleWindowKeyUp: function _handleWindowKeyUp(b) {
        return this._isOpen && b.keyCode === a.mobile.keyCode.ESCAPE ? this._eatEventAndClose(b) : void 0;
      },
      _expectResizeEvent: function _expectResizeEvent() {
        var a = e(this.window);
        if (this._resizeData) {
          if (a.x === this._resizeData.windowCoordinates.x && a.y === this._resizeData.windowCoordinates.y && a.cx === this._resizeData.windowCoordinates.cx && a.cy === this._resizeData.windowCoordinates.cy) return !1;
          clearTimeout(this._resizeData.timeoutId);
        }
        return this._resizeData = {
          timeoutId: this._delay("_resizeTimeout", 200),
          windowCoordinates: a
        }, !0;
      },
      _resizeTimeout: function _resizeTimeout() {
        this._isOpen ? this._expectResizeEvent() || (this._ui.container.hasClass("ui-popup-hidden") && (this._ui.container.removeClass("ui-popup-hidden ui-popup-truncate"), this.reposition({
          positionTo: "window"
        }), this._ignoreResizeEvents()), this._resizeScreen(), this._resizeData = null, this._orientationchangeInProgress = !1) : (this._resizeData = null, this._orientationchangeInProgress = !1);
      },
      _stopIgnoringResizeEvents: function _stopIgnoringResizeEvents() {
        this._ignoreResizeTo = 0;
      },
      _ignoreResizeEvents: function _ignoreResizeEvents() {
        this._ignoreResizeTo && clearTimeout(this._ignoreResizeTo), this._ignoreResizeTo = this._delay("_stopIgnoringResizeEvents", 1e3);
      },
      _handleWindowResize: function _handleWindowResize() {
        this._isOpen && 0 === this._ignoreResizeTo && (!this._expectResizeEvent() && !this._orientationchangeInProgress || this._ui.container.hasClass("ui-popup-hidden") || this._ui.container.addClass("ui-popup-hidden ui-popup-truncate").removeAttr("style"));
      },
      _handleWindowOrientationchange: function _handleWindowOrientationchange() {
        !this._orientationchangeInProgress && this._isOpen && 0 === this._ignoreResizeTo && (this._expectResizeEvent(), this._orientationchangeInProgress = !0);
      },
      _handleDocumentFocusIn: function _handleDocumentFocusIn(b) {
        var c,
          d = b.target,
          e = this._ui;
        if (this._isOpen) {
          if (d !== e.container[0]) {
            if (c = a(d), !a.contains(e.container[0], d)) return a(this.document[0].activeElement).one("focus", a.proxy(function () {
              this._safelyBlur(d);
            }, this)), e.focusElement.focus(), b.preventDefault(), b.stopImmediatePropagation(), !1;
            e.focusElement[0] === e.container[0] && (e.focusElement = c);
          }
          this._ignoreResizeEvents();
        }
      },
      _themeClassFromOption: function _themeClassFromOption(a, b) {
        return b ? "none" === b ? "" : a + b : a + "inherit";
      },
      _applyTransition: function _applyTransition(b) {
        return b && (this._ui.container.removeClass(this._fallbackTransition), "none" !== b && (this._fallbackTransition = a.mobile._maybeDegradeTransition(b), "none" === this._fallbackTransition && (this._fallbackTransition = ""), this._ui.container.addClass(this._fallbackTransition))), this;
      },
      _setOptions: function _setOptions(a) {
        var b = this.options,
          d = this.element,
          e = this._ui.screen;
        return a.wrapperClass !== c && this._ui.container.removeClass(b.wrapperClass).addClass(a.wrapperClass), a.theme !== c && d.removeClass(this._themeClassFromOption("ui-body-", b.theme)).addClass(this._themeClassFromOption("ui-body-", a.theme)), a.overlayTheme !== c && (e.removeClass(this._themeClassFromOption("ui-overlay-", b.overlayTheme)).addClass(this._themeClassFromOption("ui-overlay-", a.overlayTheme)), this._isOpen && e.addClass("in")), a.shadow !== c && d.toggleClass("ui-overlay-shadow", a.shadow), a.corners !== c && d.toggleClass("ui-corner-all", a.corners), a.transition !== c && (this._currentTransition || this._applyTransition(a.transition)), a.tolerance !== c && this._setTolerance(a.tolerance), a.disabled !== c && a.disabled && this.close(), this._super(a);
      },
      _setTolerance: function _setTolerance(b) {
        var d,
          e = {
            t: 30,
            r: 15,
            b: 30,
            l: 15
          };
        if (b !== c) switch (d = String(b).split(","), a.each(d, function (a, b) {
          d[a] = parseInt(b, 10);
        }), d.length) {
          case 1:
            isNaN(d[0]) || (e.t = e.r = e.b = e.l = d[0]);
            break;
          case 2:
            isNaN(d[0]) || (e.t = e.b = d[0]), isNaN(d[1]) || (e.l = e.r = d[1]);
            break;
          case 4:
            isNaN(d[0]) || (e.t = d[0]), isNaN(d[1]) || (e.r = d[1]), isNaN(d[2]) || (e.b = d[2]), isNaN(d[3]) || (e.l = d[3]);
        }
        return this._tolerance = e, this;
      },
      _clampPopupWidth: function _clampPopupWidth(a) {
        var b,
          c = e(this.window),
          d = {
            x: this._tolerance.l,
            y: c.y + this._tolerance.t,
            cx: c.cx - this._tolerance.l - this._tolerance.r,
            cy: c.cy - this._tolerance.t - this._tolerance.b
          };
        return a || this._ui.container.css("max-width", d.cx), b = {
          cx: this._ui.container.outerWidth(!0),
          cy: this._ui.container.outerHeight(!0)
        }, {
          rc: d,
          menuSize: b
        };
      },
      _calculateFinalLocation: function _calculateFinalLocation(a, b) {
        var c,
          e = b.rc,
          f = b.menuSize;
        return c = {
          left: d(e.cx, f.cx, e.x, a.x),
          top: d(e.cy, f.cy, e.y, a.y)
        }, c.top = Math.max(0, c.top), c.top -= Math.min(c.top, Math.max(0, c.top + f.cy - this.document.height())), c;
      },
      _placementCoords: function _placementCoords(a) {
        return this._calculateFinalLocation(a, this._clampPopupWidth());
      },
      _createPrerequisites: function _createPrerequisites(b, c, d) {
        var e,
          f = this;
        e = {
          screen: a.Deferred(),
          container: a.Deferred()
        }, e.screen.then(function () {
          e === f._prerequisites && b();
        }), e.container.then(function () {
          e === f._prerequisites && c();
        }), a.when(e.screen, e.container).done(function () {
          e === f._prerequisites && (f._prerequisites = null, d());
        }), f._prerequisites = e;
      },
      _animate: function _animate(b) {
        return this._ui.screen.removeClass(b.classToRemove).addClass(b.screenClassToAdd), b.prerequisites.screen.resolve(), b.transition && "none" !== b.transition && (b.applyTransition && this._applyTransition(b.transition), this._fallbackTransition) ? void this._ui.container.addClass(b.containerClassToAdd).removeClass(b.classToRemove).animationComplete(a.proxy(b.prerequisites.container, "resolve")) : (this._ui.container.removeClass(b.classToRemove), void b.prerequisites.container.resolve());
      },
      _desiredCoords: function _desiredCoords(b) {
        var c,
          d = null,
          f = e(this.window),
          g = b.x,
          h = b.y,
          i = b.positionTo;
        if (i && "origin" !== i) if ("window" === i) g = f.cx / 2 + f.x, h = f.cy / 2 + f.y;else {
          try {
            d = a(i);
          } catch (j) {
            d = null;
          }
          d && (d.filter(":visible"), 0 === d.length && (d = null));
        }
        return d && (c = d.offset(), g = c.left + d.outerWidth() / 2, h = c.top + d.outerHeight() / 2), ("number" !== a.type(g) || isNaN(g)) && (g = f.cx / 2 + f.x), ("number" !== a.type(h) || isNaN(h)) && (h = f.cy / 2 + f.y), {
          x: g,
          y: h
        };
      },
      _reposition: function _reposition(a) {
        a = {
          x: a.x,
          y: a.y,
          positionTo: a.positionTo
        }, this._trigger("beforeposition", c, a), this._ui.container.offset(this._placementCoords(this._desiredCoords(a)));
      },
      reposition: function reposition(a) {
        this._isOpen && this._reposition(a);
      },
      _safelyBlur: function _safelyBlur(b) {
        b !== this.window[0] && "body" !== b.nodeName.toLowerCase() && a(b).blur();
      },
      _openPrerequisitesComplete: function _openPrerequisitesComplete() {
        var b = this.element.attr("id"),
          c = this._ui.container.find(":focusable").first();
        this._ui.container.addClass("ui-popup-active"), this._isOpen = !0, this._resizeScreen(), a.contains(this._ui.container[0], this.document[0].activeElement) || this._safelyBlur(this.document[0].activeElement), c.length > 0 && (this._ui.focusElement = c), this._ignoreResizeEvents(), b && this.document.find("[aria-haspopup='true'][aria-owns='" + b + "']").attr("aria-expanded", !0), this._trigger("afteropen");
      },
      _open: function _open(b) {
        var c = a.extend({}, this.options, b),
          d = function () {
            var a = navigator.userAgent,
              b = a.match(/AppleWebKit\/([0-9\.]+)/),
              c = !!b && b[1],
              d = a.match(/Android (\d+(?:\.\d+))/),
              e = !!d && d[1],
              f = a.indexOf("Chrome") > -1;
            return null !== d && "4.0" === e && c && c > 534.13 && !f ? !0 : !1;
          }();
        this._createPrerequisites(a.noop, a.noop, a.proxy(this, "_openPrerequisitesComplete")), this._currentTransition = c.transition, this._applyTransition(c.transition), this._ui.screen.removeClass("ui-screen-hidden"), this._ui.container.removeClass("ui-popup-truncate"), this._reposition(c), this._ui.container.removeClass("ui-popup-hidden"), this.options.overlayTheme && d && this.element.closest(".ui-page").addClass("ui-popup-open"), this._animate({
          additionalCondition: !0,
          transition: c.transition,
          classToRemove: "",
          screenClassToAdd: "in",
          containerClassToAdd: "in",
          applyTransition: !1,
          prerequisites: this._prerequisites
        });
      },
      _closePrerequisiteScreen: function _closePrerequisiteScreen() {
        this._ui.screen.removeClass("out").addClass("ui-screen-hidden");
      },
      _closePrerequisiteContainer: function _closePrerequisiteContainer() {
        this._ui.container.removeClass("reverse out").addClass("ui-popup-hidden ui-popup-truncate").removeAttr("style");
      },
      _closePrerequisitesDone: function _closePrerequisitesDone() {
        var b = this._ui.container,
          d = this.element.attr("id");
        a.mobile.popup.active = c, a(":focus", b[0]).add(b[0]).blur(), d && this.document.find("[aria-haspopup='true'][aria-owns='" + d + "']").attr("aria-expanded", !1), this._trigger("afterclose");
      },
      _close: function _close(b) {
        this._ui.container.removeClass("ui-popup-active"), this._page.removeClass("ui-popup-open"), this._isOpen = !1, this._createPrerequisites(a.proxy(this, "_closePrerequisiteScreen"), a.proxy(this, "_closePrerequisiteContainer"), a.proxy(this, "_closePrerequisitesDone")), this._animate({
          additionalCondition: this._ui.screen.hasClass("in"),
          transition: b ? "none" : this._currentTransition,
          classToRemove: "in",
          screenClassToAdd: "out",
          containerClassToAdd: "reverse out",
          applyTransition: !0,
          prerequisites: this._prerequisites
        });
      },
      _unenhance: function _unenhance() {
        this.options.enhanced || (this._setOptions({
          theme: a.mobile.popup.prototype.options.theme
        }), this.element.detach().insertAfter(this._ui.placeholder).removeClass("ui-popup ui-overlay-shadow ui-corner-all ui-body-inherit"), this._ui.screen.remove(), this._ui.container.remove(), this._ui.placeholder.remove());
      },
      _destroy: function _destroy() {
        return a.mobile.popup.active === this ? (this.element.one("popupafterclose", a.proxy(this, "_unenhance")), this.close()) : this._unenhance(), this;
      },
      _closePopup: function _closePopup(c, d) {
        var e,
          f,
          g = this.options,
          h = !1;
        c && c.isDefaultPrevented() || a.mobile.popup.active !== this || (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()), this.window.off(g.closeEvents), this.element.undelegate(g.closeLinkSelector, g.closeLinkEvents), this._close(h));
      },
      _bindContainerClose: function _bindContainerClose() {
        this.window.on(this.options.closeEvents, a.proxy(this, "_closePopup"));
      },
      widget: function widget() {
        return this._ui.container;
      },
      open: function open(b) {
        var c,
          d,
          e,
          f,
          g,
          h,
          i = this,
          j = this.options;
        return a.mobile.popup.active || j.disabled ? this : (a.mobile.popup.active = this, this._scrollTop = this.window.scrollTop(), j.history ? (h = a.mobile.navigate.history, d = a.mobile.dialogHashKey, e = a.mobile.activePage, f = e ? e.hasClass("ui-dialog") : !1, this._myUrl = c = h.getActive().url, (g = c.indexOf(d) > -1 && !f && h.activeIndex > 0) ? (i._open(b), i._bindContainerClose(), this) : (-1 !== c.indexOf(d) || f ? c = a.mobile.path.parseLocation().hash + d : c += c.indexOf("#") > -1 ? d : "#" + d, this.window.one("beforenavigate", function (a) {
          a.preventDefault(), i._open(b), i._bindContainerClose();
        }), this.urlAltered = !0, a.mobile.navigate(c, {
          role: "dialog"
        }), this)) : (i._open(b), i._bindContainerClose(), i.element.delegate(j.closeLinkSelector, j.closeLinkEvents, function (a) {
          i.close(), a.preventDefault();
        }), this));
      },
      close: function close() {
        return a.mobile.popup.active !== this ? this : (this._scrollTop = this.window.scrollTop(), this.options.history && this.urlAltered ? (a.mobile.back(), this.urlAltered = !1) : this._closePopup(), this);
      }
    }), a.mobile.popup.handleLink = function (b) {
      var c,
        d = a.mobile.path,
        e = a(d.hashToSelector(d.parseUrl(b.attr("href")).hash)).first();
      e.length > 0 && e.data("mobile-popup") && (c = b.offset(), e.popup("open", {
        x: c.left + b.outerWidth() / 2,
        y: c.top + b.outerHeight() / 2,
        transition: b.jqmData("transition"),
        positionTo: b.jqmData("position-to")
      })), setTimeout(function () {
        b.removeClass(a.mobile.activeBtnClass);
      }, 300);
    }, a.mobile.document.on("pagebeforechange", function (b, c) {
      "popup" === c.options.role && (a.mobile.popup.handleLink(c.options.link), b.preventDefault());
    });
  }(a), function (a, b) {
    var d = ".ui-disabled,.ui-state-disabled,.ui-li-divider,.ui-screen-hidden,:jqmData(role='placeholder')",
      e = function e(a, b, c) {
        var e = a[c + "All"]().not(d).first();
        e.length && (b.blur().attr("tabindex", "-1"), e.find("a").first().focus());
      };
    a.widget("mobile.selectmenu", a.mobile.selectmenu, {
      _create: function _create() {
        var a = this.options;
        return a.nativeMenu = a.nativeMenu || this.element.parents(":jqmData(role='popup'),:mobile-popup").length > 0, this._super();
      },
      _handleSelectFocus: function _handleSelectFocus() {
        this.element.blur(), this.button.focus();
      },
      _handleKeydown: function _handleKeydown(a) {
        this._super(a), this._handleButtonVclickKeydown(a);
      },
      _handleButtonVclickKeydown: function _handleButtonVclickKeydown(b) {
        this.options.disabled || this.isOpen || this.options.nativeMenu || ("vclick" === b.type || b.keyCode && (b.keyCode === a.mobile.keyCode.ENTER || b.keyCode === a.mobile.keyCode.SPACE)) && (this._decideFormat(), "overlay" === this.menuType ? this.button.attr("href", "#" + this.popupId).attr("data-" + (a.mobile.ns || "") + "rel", "popup") : this.button.attr("href", "#" + this.dialogId).attr("data-" + (a.mobile.ns || "") + "rel", "dialog"), this.isOpen = !0);
      },
      _handleListFocus: function _handleListFocus(b) {
        var c = "focusin" === b.type ? {
          tabindex: "0",
          event: "vmouseover"
        } : {
          tabindex: "-1",
          event: "vmouseout"
        };
        a(b.target).attr("tabindex", c.tabindex).trigger(c.event);
      },
      _handleListKeydown: function _handleListKeydown(b) {
        var c = a(b.target),
          d = c.closest("li");
        switch (b.keyCode) {
          case 38:
            return e(d, c, "prev"), !1;
          case 40:
            return e(d, c, "next"), !1;
          case 13:
          case 32:
            return c.trigger("click"), !1;
        }
      },
      _handleMenuPageHide: function _handleMenuPageHide() {
        this._delayedTrigger(), this.thisPage.page("bindRemove");
      },
      _handleHeaderCloseClick: function _handleHeaderCloseClick() {
        return "overlay" === this.menuType ? (this.close(), !1) : void 0;
      },
      _handleListItemClick: function _handleListItemClick(b) {
        var c = a(b.target).closest("li"),
          d = this.select[0].selectedIndex,
          e = a.mobile.getAttribute(c, "option-index"),
          f = this._selectOptions().eq(e)[0];
        f.selected = this.isMultiple ? !f.selected : !0, this.isMultiple && c.find("a").toggleClass("ui-checkbox-on", f.selected).toggleClass("ui-checkbox-off", !f.selected), this.isMultiple || d === e || (this._triggerChange = !0), this.isMultiple ? (this.select.trigger("change"), this.list.find("li:not(.ui-li-divider)").eq(e).find("a").first().focus()) : this.close(), b.preventDefault();
      },
      build: function build() {
        var c,
          d,
          e,
          f,
          g,
          h,
          i,
          j,
          k,
          l,
          m,
          n,
          o,
          p,
          q,
          r,
          s,
          t,
          u,
          v = this.options;
        return v.nativeMenu ? this._super() : (c = this.selectId, d = c + "-listbox", e = c + "-dialog", f = this.label, g = this.element.closest(".ui-page"), h = this.element[0].multiple, i = c + "-menu", j = v.theme ? " data-" + a.mobile.ns + "theme='" + v.theme + "'" : "", k = v.overlayTheme || v.theme || null, l = k ? " data-" + a.mobile.ns + "overlay-theme='" + k + "'" : "", m = v.dividerTheme && h ? " data-" + a.mobile.ns + "divider-theme='" + v.dividerTheme + "'" : "", n = a("<div data-" + a.mobile.ns + "role='dialog' class='ui-selectmenu' id='" + e + "'" + j + l + "><div data-" + a.mobile.ns + "role='header'><div class='ui-title'></div></div><div data-" + a.mobile.ns + "role='content'></div></div>"), o = a("<div" + j + l + " id='" + d + "' class='ui-selectmenu'></div>").insertAfter(this.select).popup(), p = a("<ul class='ui-selectmenu-list' id='" + i + "' role='listbox' aria-labelledby='" + this.buttonId + "'" + j + m + "></ul>").appendTo(o), q = a("<div class='ui-header ui-bar-" + (v.theme ? v.theme : "inherit") + "'></div>").prependTo(o), r = a("<h1 class='ui-title'></h1>").appendTo(q), this.isMultiple && (u = a("<a>", {
          role: "button",
          text: v.closeText,
          href: "#",
          "class": "ui-btn ui-corner-all ui-btn-left ui-btn-icon-notext ui-icon-delete"
        }).appendTo(q)), a.extend(this, {
          selectId: c,
          menuId: i,
          popupId: d,
          dialogId: e,
          thisPage: g,
          menuPage: n,
          label: f,
          isMultiple: h,
          theme: v.theme,
          listbox: o,
          list: p,
          header: q,
          headerTitle: r,
          headerClose: u,
          menuPageContent: s,
          menuPageClose: t,
          placeholder: ""
        }), this.refresh(), this._origTabIndex === b && (this._origTabIndex = null === this.select[0].getAttribute("tabindex") ? !1 : this.select.attr("tabindex")), this.select.attr("tabindex", "-1"), this._on(this.select, {
          focus: "_handleSelectFocus"
        }), this._on(this.button, {
          vclick: "_handleButtonVclickKeydown"
        }), this.list.attr("role", "listbox"), this._on(this.list, {
          focusin: "_handleListFocus",
          focusout: "_handleListFocus",
          keydown: "_handleListKeydown",
          "click li:not(.ui-disabled,.ui-state-disabled,.ui-li-divider)": "_handleListItemClick"
        }), this._on(this.menuPage, {
          pagehide: "_handleMenuPageHide"
        }), this._on(this.listbox, {
          popupafterclose: "_popupClosed"
        }), this.isMultiple && this._on(this.headerClose, {
          click: "_handleHeaderCloseClick"
        }), this);
      },
      _popupClosed: function _popupClosed() {
        this.close(), this._delayedTrigger();
      },
      _delayedTrigger: function _delayedTrigger() {
        this._triggerChange && this.element.trigger("change"), this._triggerChange = !1;
      },
      _isRebuildRequired: function _isRebuildRequired() {
        var a = this.list.find("li"),
          b = this._selectOptions().not(".ui-screen-hidden");
        return b.text() !== a.text();
      },
      selected: function selected() {
        return this._selectOptions().filter(":selected:not( :jqmData(placeholder='true') )");
      },
      refresh: function refresh(b) {
        var c, d;
        return this.options.nativeMenu ? this._super(b) : (c = this, (b || this._isRebuildRequired()) && c._buildList(), d = this.selectedIndices(), c.setButtonText(), c.setButtonCount(), void c.list.find("li:not(.ui-li-divider)").find("a").removeClass(a.mobile.activeBtnClass).end().attr("aria-selected", !1).each(function (b) {
          var e = a(this);
          a.inArray(b, d) > -1 ? (e.attr("aria-selected", !0), c.isMultiple ? e.find("a").removeClass("ui-checkbox-off").addClass("ui-checkbox-on") : e.hasClass("ui-screen-hidden") ? e.next().find("a").addClass(a.mobile.activeBtnClass) : e.find("a").addClass(a.mobile.activeBtnClass)) : c.isMultiple && e.find("a").removeClass("ui-checkbox-on").addClass("ui-checkbox-off");
        }));
      },
      close: function close() {
        if (!this.options.disabled && this.isOpen) {
          var a = this;
          "page" === a.menuType ? (a.menuPage.dialog("close"), a.list.appendTo(a.listbox)) : a.listbox.popup("close"), a._focusButton(), a.isOpen = !1;
        }
      },
      open: function open() {
        this.button.click();
      },
      _focusMenuItem: function _focusMenuItem() {
        var b = this.list.find("a." + a.mobile.activeBtnClass);
        0 === b.length && (b = this.list.find("li:not(" + d + ") a.ui-btn")), b.first().focus();
      },
      _decideFormat: function _decideFormat() {
        var b = this,
          c = this.window,
          d = b.list.parent(),
          e = d.outerHeight(),
          f = c.scrollTop(),
          g = b.button.offset().top,
          h = c.height();
        e > h - 80 || !a.support.scrollTop ? (b.menuPage.appendTo(a.mobile.pageContainer).page(), b.menuPageContent = b.menuPage.find(".ui-content"), b.menuPageClose = b.menuPage.find(".ui-header a"), b.thisPage.unbind("pagehide.remove"), 0 === f && g > h && b.thisPage.one("pagehide", function () {
          a(this).jqmData("lastScroll", g);
        }), b.menuPage.one({
          pageshow: a.proxy(this, "_focusMenuItem"),
          pagehide: a.proxy(this, "close")
        }), b.menuType = "page", b.menuPageContent.append(b.list), b.menuPage.find("div .ui-title").text(b.label.getEncodedText() || b.placeholder)) : (b.menuType = "overlay", b.listbox.one({
          popupafteropen: a.proxy(this, "_focusMenuItem")
        }));
      },
      _buildList: function _buildList() {
        var b,
          d,
          e,
          f,
          g,
          h,
          i,
          j,
          k,
          l,
          m,
          n,
          o,
          p,
          q = this,
          r = this.options,
          s = this.placeholder,
          t = !0,
          u = "false",
          v = "data-" + a.mobile.ns,
          w = v + "option-index",
          x = v + "icon",
          y = v + "role",
          z = v + "placeholder",
          A = c.createDocumentFragment(),
          B = !1;
        for (q.list.empty().filter(".ui-listview").listview("destroy"), b = this._selectOptions(), d = b.length, e = this.select[0], g = 0; d > g; g++, B = !1) h = b[g], i = a(h), i.hasClass("ui-screen-hidden") || (j = h.parentNode, m = [], k = i.text(), l = c.createElement("a"), l.setAttribute("href", "#"), l.appendChild(c.createTextNode(k)), j !== e && "optgroup" === j.nodeName.toLowerCase() && (n = j.getAttribute("label"), n !== f && (o = c.createElement("li"), o.setAttribute(y, "list-divider"), o.setAttribute("role", "option"), o.setAttribute("tabindex", "-1"), o.appendChild(c.createTextNode(n)), A.appendChild(o), f = n)), !t || h.getAttribute("value") && 0 !== k.length && !i.jqmData("placeholder") || (t = !1, B = !0, null === h.getAttribute(z) && (this._removePlaceholderAttr = !0), h.setAttribute(z, !0), r.hidePlaceholderMenuItems && m.push("ui-screen-hidden"), s !== k && (s = q.placeholder = k)), p = c.createElement("li"), h.disabled && (m.push("ui-state-disabled"), p.setAttribute("aria-disabled", !0)), p.setAttribute(w, g), p.setAttribute(x, u), B && p.setAttribute(z, !0), p.className = m.join(" "), p.setAttribute("role", "option"), l.setAttribute("tabindex", "-1"), this.isMultiple && a(l).addClass("ui-btn ui-checkbox-off ui-btn-icon-right"), p.appendChild(l), A.appendChild(p));
        q.list[0].appendChild(A), this.isMultiple || s.length ? this.headerTitle.text(this.placeholder) : this.header.addClass("ui-screen-hidden"), q.list.listview();
      },
      _button: function _button() {
        return this.options.nativeMenu ? this._super() : a("<a>", {
          href: "#",
          role: "button",
          id: this.buttonId,
          "aria-haspopup": "true",
          "aria-owns": this.menuId
        });
      },
      _destroy: function _destroy() {
        this.options.nativeMenu || (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()), this._super();
      }
    });
  }(a), function (a, b) {
    function c(a, b) {
      var c = b ? b : [];
      return c.push("ui-btn"), a.theme && c.push("ui-btn-" + a.theme), a.icon && (c = c.concat(["ui-icon-" + a.icon, "ui-btn-icon-" + a.iconpos]), a.iconshadow && c.push("ui-shadow-icon")), a.inline && c.push("ui-btn-inline"), a.shadow && c.push("ui-shadow"), a.corners && c.push("ui-corner-all"), a.mini && c.push("ui-mini"), c;
    }
    function d(a) {
      var c,
        d,
        e,
        g = !1,
        h = !0,
        i = {
          icon: "",
          inline: !1,
          shadow: !1,
          corners: !1,
          iconshadow: !1,
          mini: !1
        },
        j = [];
      for (a = a.split(" "), c = 0; c < a.length; c++) e = !0, d = f[a[c]], d !== b ? (e = !1, i[d] = !0) : 0 === a[c].indexOf("ui-btn-icon-") ? (e = !1, h = !1, i.iconpos = a[c].substring(12)) : 0 === a[c].indexOf("ui-icon-") ? (e = !1, i.icon = a[c].substring(8)) : 0 === a[c].indexOf("ui-btn-") && 8 === a[c].length ? (e = !1, i.theme = a[c].substring(7)) : "ui-btn" === a[c] && (e = !1, g = !0), e && j.push(a[c]);
      return h && (i.icon = ""), {
        options: i,
        unknownClasses: j,
        alreadyEnhanced: g
      };
    }
    function e(a) {
      return "-" + a.toLowerCase();
    }
    var f = {
        "ui-shadow": "shadow",
        "ui-corner-all": "corners",
        "ui-btn-inline": "inline",
        "ui-shadow-icon": "iconshadow",
        "ui-mini": "mini"
      },
      g = function g() {
        var c = a.mobile.getAttribute.apply(this, arguments);
        return null == c ? b : c;
      },
      h = /[A-Z]/g;
    a.fn.buttonMarkup = function (f, i) {
      var j,
        k,
        l,
        m,
        n,
        o = a.fn.buttonMarkup.defaults;
      for (j = 0; j < this.length; j++) {
        if (l = this[j], k = i ? {
          alreadyEnhanced: !1,
          unknownClasses: []
        } : d(l.className), m = a.extend({}, k.alreadyEnhanced ? k.options : {}, f), !k.alreadyEnhanced) for (n in o) m[n] === b && (m[n] = g(l, n.replace(h, e)));
        l.className = c(a.extend({}, o, m), k.unknownClasses).join(" "), "button" !== l.tagName.toLowerCase() && l.setAttribute("role", "button");
      }
      return this;
    }, a.fn.buttonMarkup.defaults = {
      icon: "",
      iconpos: "left",
      theme: null,
      inline: !1,
      shadow: !0,
      corners: !0,
      iconshadow: !1,
      mini: !1
    }, a.extend(a.fn.buttonMarkup, {
      initSelector: "a:jqmData(role='button'), .ui-bar > a, .ui-bar > :jqmData(role='controlgroup') > a, button:not(:jqmData(role='navbar') button)"
    });
  }(a), function (a, b) {
    a.widget("mobile.controlgroup", a.extend({
      options: {
        enhanced: !1,
        theme: null,
        shadow: !1,
        corners: !0,
        excludeInvisible: !0,
        type: "vertical",
        mini: !1
      },
      _create: function _create() {
        var b = this.element,
          c = this.options,
          d = a.mobile.page.prototype.keepNativeSelector();
        a.fn.buttonMarkup && this.element.find(a.fn.buttonMarkup.initSelector).not(d).buttonMarkup(), a.each(this._childWidgets, a.proxy(function (b, c) {
          a.mobile[c] && this.element.find(a.mobile[c].initSelector).not(d)[c]();
        }, this)), a.extend(this, {
          _ui: null,
          _initialRefresh: !0
        }), this._ui = c.enhanced ? {
          groupLegend: b.children(".ui-controlgroup-label").children(),
          childWrapper: b.children(".ui-controlgroup-controls")
        } : this._enhance();
      },
      _childWidgets: ["checkboxradio", "selectmenu", "button"],
      _themeClassFromOption: function _themeClassFromOption(a) {
        return a ? "none" === a ? "" : "ui-group-theme-" + a : "";
      },
      _enhance: function _enhance() {
        var b = this.element,
          c = this.options,
          d = {
            groupLegend: b.children("legend"),
            childWrapper: b.addClass("ui-controlgroup ui-controlgroup-" + ("horizontal" === c.type ? "horizontal" : "vertical") + " " + this._themeClassFromOption(c.theme) + " " + (c.corners ? "ui-corner-all " : "") + (c.mini ? "ui-mini " : "")).wrapInner("<div class='ui-controlgroup-controls " + (c.shadow === !0 ? "ui-shadow" : "") + "'></div>").children()
          };
        return d.groupLegend.length > 0 && a("<div role='heading' class='ui-controlgroup-label'></div>").append(d.groupLegend).prependTo(b), d;
      },
      _init: function _init() {
        this.refresh();
      },
      _setOptions: function _setOptions(a) {
        var c,
          d,
          e = this.element;
        return a.type !== b && (e.removeClass("ui-controlgroup-horizontal ui-controlgroup-vertical").addClass("ui-controlgroup-" + ("horizontal" === a.type ? "horizontal" : "vertical")), c = !0), a.theme !== b && e.removeClass(this._themeClassFromOption(this.options.theme)).addClass(this._themeClassFromOption(a.theme)), a.corners !== b && e.toggleClass("ui-corner-all", a.corners), a.mini !== b && e.toggleClass("ui-mini", a.mini), a.shadow !== b && this._ui.childWrapper.toggleClass("ui-shadow", a.shadow), a.excludeInvisible !== b && (this.options.excludeInvisible = a.excludeInvisible, c = !0), d = this._super(a), c && this.refresh(), d;
      },
      container: function container() {
        return this._ui.childWrapper;
      },
      refresh: function refresh() {
        var b = this.container(),
          c = b.find(".ui-btn").not(".ui-slider-handle"),
          d = this._initialRefresh;
        a.mobile.checkboxradio && b.find(":mobile-checkboxradio").checkboxradio("refresh"), this._addFirstLastClasses(c, this.options.excludeInvisible ? this._getVisibles(c, d) : c, d), this._initialRefresh = !1;
      },
      _destroy: function _destroy() {
        var a,
          b,
          c = this.options;
        return c.enhanced ? this : (a = this._ui, b = this.element.removeClass("ui-controlgroup ui-controlgroup-horizontal ui-controlgroup-vertical ui-corner-all ui-mini " + this._themeClassFromOption(c.theme)).find(".ui-btn").not(".ui-slider-handle"), this._removeFirstLastClasses(b), a.groupLegend.unwrap(), void a.childWrapper.children().unwrap());
      }
    }, a.mobile.behaviors.addFirstLastClasses));
  }(a), function (a, b) {
    a.widget("mobile.toolbar", {
      initSelector: ":jqmData(role='footer'), :jqmData(role='header')",
      options: {
        theme: null,
        addBackBtn: !1,
        backBtnTheme: null,
        backBtnText: "Back"
      },
      _create: function _create() {
        var b,
          c,
          d = this.element.is(":jqmData(role='header')") ? "header" : "footer",
          e = this.element.closest(".ui-page");
        0 === e.length && (e = !1, this._on(this.document, {
          pageshow: "refresh"
        })), a.extend(this, {
          role: d,
          page: e,
          leftbtn: b,
          rightbtn: c
        }), this.element.attr("role", "header" === d ? "banner" : "contentinfo").addClass("ui-" + d), this.refresh(), this._setOptions(this.options);
      },
      _setOptions: function _setOptions(a) {
        if (a.addBackBtn !== b && this._updateBackButton(), null != a.backBtnTheme && this.element.find(".ui-toolbar-back-btn").addClass("ui-btn ui-btn-" + a.backBtnTheme), a.backBtnText !== b && this.element.find(".ui-toolbar-back-btn .ui-btn-text").text(a.backBtnText), a.theme !== b) {
          var c = this.options.theme ? this.options.theme : "inherit",
            d = a.theme ? a.theme : "inherit";
          this.element.removeClass("ui-bar-" + c).addClass("ui-bar-" + d);
        }
        this._super(a);
      },
      refresh: function refresh() {
        "header" === this.role && this._addHeaderButtonClasses(), this.page || (this._setRelative(), "footer" === this.role ? this.element.appendTo("body") : "header" === this.role && this._updateBackButton()), this._addHeadingClasses(), this._btnMarkup();
      },
      _setRelative: function _setRelative() {
        a("[data-" + a.mobile.ns + "role='page']").css({
          position: "relative"
        });
      },
      _btnMarkup: function _btnMarkup() {
        this.element.children("a").filter(":not([data-" + a.mobile.ns + "role='none'])").attr("data-" + a.mobile.ns + "role", "button"), this.element.trigger("create");
      },
      _addHeaderButtonClasses: function _addHeaderButtonClasses() {
        var a = this.element.children("a, button");
        this.leftbtn = a.hasClass("ui-btn-left") && !a.hasClass("ui-toolbar-back-btn"), this.rightbtn = a.hasClass("ui-btn-right"), this.leftbtn = this.leftbtn || a.eq(0).not(".ui-btn-right,.ui-toolbar-back-btn").addClass("ui-btn-left").length, this.rightbtn = this.rightbtn || a.eq(1).addClass("ui-btn-right").length;
      },
      _updateBackButton: function _updateBackButton() {
        var b,
          c = this.options,
          d = c.backBtnTheme || c.theme;
        b = this._backButton = this._backButton || {}, this.options.addBackBtn && "header" === this.role && a(".ui-page").length > 1 && (this.page ? this.page[0].getAttribute("data-" + a.mobile.ns + "url") !== a.mobile.path.stripHash(location.hash) : a.mobile.navigate && a.mobile.navigate.history && a.mobile.navigate.history.activeIndex > 0) && !this.leftbtn ? b.attached || (this.backButton = b.element = (b.element || a("<a role='button' href='javascript:void(0);' class='ui-btn ui-corner-all ui-shadow ui-btn-left " + (d ? "ui-btn-" + d + " " : "") + "ui-toolbar-back-btn ui-icon-carat-l ui-btn-icon-left' data-" + a.mobile.ns + "rel='back'>" + c.backBtnText + "</a>")).prependTo(this.element), b.attached = !0) : b.element && (b.element.detach(), b.attached = !1);
      },
      _addHeadingClasses: function _addHeadingClasses() {
        this.element.children("h1, h2, h3, h4, h5, h6").addClass("ui-title").attr({
          role: "heading",
          "aria-level": "1"
        });
      },
      _destroy: function _destroy() {
        var a;
        this.element.children("h1, h2, h3, h4, h5, h6").removeClass("ui-title").removeAttr("role").removeAttr("aria-level"), "header" === this.role && (this.element.children("a, button").removeClass("ui-btn-left ui-btn-right ui-btn ui-shadow ui-corner-all"), this.backButton && this.backButton.remove()), a = this.options.theme ? this.options.theme : "inherit", this.element.removeClass("ui-bar-" + a), this.element.removeClass("ui-" + this.role).removeAttr("role");
      }
    });
  }(a), function (a, b) {
    a.widget("mobile.toolbar", a.mobile.toolbar, {
      options: {
        position: null,
        visibleOnPageShow: !0,
        disablePageZoom: !0,
        transition: "slide",
        fullscreen: !1,
        tapToggle: !0,
        tapToggleBlacklist: "a, button, input, select, textarea, .ui-header-fixed, .ui-footer-fixed, .ui-flipswitch, .ui-popup, .ui-panel, .ui-panel-dismiss-open",
        hideDuringFocus: "input, textarea, select",
        updatePagePadding: !0,
        trackPersistentToolbars: !0,
        supportBlacklist: function supportBlacklist() {
          return !a.support.fixedPosition;
        }
      },
      _create: function _create() {
        this._super(), this.pagecontainer = a(":mobile-pagecontainer"), "fixed" !== this.options.position || this.options.supportBlacklist() || this._makeFixed();
      },
      _makeFixed: function _makeFixed() {
        this.element.addClass("ui-" + this.role + "-fixed"), this.updatePagePadding(), this._addTransitionClass(), this._bindPageEvents(), this._bindToggleHandlers();
      },
      _setOptions: function _setOptions(c) {
        if ("fixed" === c.position && "fixed" !== this.options.position && this._makeFixed(), "fixed" === this.options.position && !this.options.supportBlacklist()) {
          var d = this.page ? this.page : a(".ui-page-active").length > 0 ? a(".ui-page-active") : a(".ui-page").eq(0);
          c.fullscreen !== b && (c.fullscreen ? (this.element.addClass("ui-" + this.role + "-fullscreen"), d.addClass("ui-page-" + this.role + "-fullscreen")) : (this.element.removeClass("ui-" + this.role + "-fullscreen"), d.removeClass("ui-page-" + this.role + "-fullscreen").addClass("ui-page-" + this.role + "-fixed")));
        }
        this._super(c);
      },
      _addTransitionClass: function _addTransitionClass() {
        var a = this.options.transition;
        a && "none" !== a && ("slide" === a && (a = this.element.hasClass("ui-header") ? "slidedown" : "slideup"), this.element.addClass(a));
      },
      _bindPageEvents: function _bindPageEvents() {
        var a = this.page ? this.element.closest(".ui-page") : this.document;
        this._on(a, {
          pagebeforeshow: "_handlePageBeforeShow",
          webkitAnimationStart: "_handleAnimationStart",
          animationstart: "_handleAnimationStart",
          updatelayout: "_handleAnimationStart",
          pageshow: "_handlePageShow",
          pagebeforehide: "_handlePageBeforeHide"
        });
      },
      _handlePageBeforeShow: function _handlePageBeforeShow() {
        var b = this.options;
        b.disablePageZoom && a.mobile.zoom.disable(!0), b.visibleOnPageShow || this.hide(!0);
      },
      _handleAnimationStart: function _handleAnimationStart() {
        this.options.updatePagePadding && this.updatePagePadding(this.page ? this.page : ".ui-page-active");
      },
      _handlePageShow: function _handlePageShow() {
        this.updatePagePadding(this.page ? this.page : ".ui-page-active"), this.options.updatePagePadding && this._on(this.window, {
          throttledresize: "updatePagePadding"
        });
      },
      _handlePageBeforeHide: function _handlePageBeforeHide(b, c) {
        var d,
          e,
          f,
          g,
          h = this.options;
        h.disablePageZoom && a.mobile.zoom.enable(!0), h.updatePagePadding && this._off(this.window, "throttledresize"), h.trackPersistentToolbars && (d = a(".ui-footer-fixed:jqmData(id)", this.page), e = a(".ui-header-fixed:jqmData(id)", this.page), f = d.length && c.nextPage && a(".ui-footer-fixed:jqmData(id='" + d.jqmData("id") + "')", c.nextPage) || a(), g = e.length && c.nextPage && a(".ui-header-fixed:jqmData(id='" + e.jqmData("id") + "')", c.nextPage) || a(), (f.length || g.length) && (f.add(g).appendTo(a.mobile.pageContainer), c.nextPage.one("pageshow", function () {
          g.prependTo(this), f.appendTo(this);
        })));
      },
      _visible: !0,
      updatePagePadding: function updatePagePadding(c) {
        var d = this.element,
          e = "header" === this.role,
          f = parseFloat(d.css(e ? "top" : "bottom"));
        this.options.fullscreen || (c = c && c.type === b && c || this.page || d.closest(".ui-page"), c = this.page ? this.page : ".ui-page-active", a(c).css("padding-" + (e ? "top" : "bottom"), d.outerHeight() + f));
      },
      _useTransition: function _useTransition(b) {
        var c = this.window,
          d = this.element,
          e = c.scrollTop(),
          f = d.height(),
          g = this.page ? d.closest(".ui-page").height() : a(".ui-page-active").height(),
          h = a.mobile.getScreenHeight();
        return !b && (this.options.transition && "none" !== this.options.transition && ("header" === this.role && !this.options.fullscreen && e > f || "footer" === this.role && !this.options.fullscreen && g - f > e + h) || this.options.fullscreen);
      },
      show: function show(a) {
        var b = "ui-fixed-hidden",
          c = this.element;
        this._useTransition(a) ? c.removeClass("out " + b).addClass("in").animationComplete(function () {
          c.removeClass("in");
        }) : c.removeClass(b), this._visible = !0;
      },
      hide: function hide(a) {
        var b = "ui-fixed-hidden",
          c = this.element,
          d = "out" + ("slide" === this.options.transition ? " reverse" : "");
        this._useTransition(a) ? c.addClass(d).removeClass("in").animationComplete(function () {
          c.addClass(b).removeClass(d);
        }) : c.addClass(b).removeClass(d), this._visible = !1;
      },
      toggle: function toggle() {
        this[this._visible ? "hide" : "show"]();
      },
      _bindToggleHandlers: function _bindToggleHandlers() {
        var b,
          c,
          d = this,
          e = d.options,
          f = !0,
          g = this.page ? this.page : a(".ui-page");
        g.bind("vclick", function (b) {
          e.tapToggle && !a(b.target).closest(e.tapToggleBlacklist).length && d.toggle();
        }).bind("focusin focusout", function (g) {
          screen.width < 1025 && a(g.target).is(e.hideDuringFocus) && !a(g.target).closest(".ui-header-fixed, .ui-footer-fixed").length && ("focusout" !== g.type || f ? "focusin" === g.type && f && (clearTimeout(b), f = !1, c = setTimeout(function () {
            d.hide();
          }, 0)) : (f = !0, clearTimeout(c), b = setTimeout(function () {
            d.show();
          }, 0)));
        });
      },
      _setRelative: function _setRelative() {
        "fixed" !== this.options.position && a("[data-" + a.mobile.ns + "role='page']").css({
          position: "relative"
        });
      },
      _destroy: function _destroy() {
        var b,
          c,
          d,
          e,
          f,
          g = this.pagecontainer.pagecontainer("getActivePage");
        this._super(), "fixed" === this.options.position && (d = a("body>.ui-" + this.role + "-fixed").add(g.find(".ui-" + this.options.role + "-fixed")).not(this.element).length > 0, f = a("body>.ui-" + this.role + "-fixed").add(g.find(".ui-" + this.options.role + "-fullscreen")).not(this.element).length > 0, c = "ui-header-fixed ui-footer-fixed ui-header-fullscreen in out ui-footer-fullscreen fade slidedown slideup ui-fixed-hidden", this.element.removeClass(c), f || (b = "ui-page-" + this.role + "-fullscreen"), d || (e = "header" === this.role, b += " ui-page-" + this.role + "-fixed", g.css("padding-" + (e ? "top" : "bottom"), "")), g.removeClass(b));
      }
    });
  }(a), function (a) {
    a.widget("mobile.toolbar", a.mobile.toolbar, {
      _makeFixed: function _makeFixed() {
        this._super(), this._workarounds();
      },
      _workarounds: function _workarounds() {
        var a = navigator.userAgent,
          b = navigator.platform,
          c = a.match(/AppleWebKit\/([0-9]+)/),
          d = !!c && c[1],
          e = null,
          f = this;
        if (b.indexOf("iPhone") > -1 || b.indexOf("iPad") > -1 || b.indexOf("iPod") > -1) e = "ios";else {
          if (!(a.indexOf("Android") > -1)) return;
          e = "android";
        }
        if ("ios" === e) f._bindScrollWorkaround();else {
          if (!("android" === e && d && 534 > d)) return;
          f._bindScrollWorkaround(), f._bindListThumbWorkaround();
        }
      },
      _viewportOffset: function _viewportOffset() {
        var a = this.element,
          b = a.hasClass("ui-header"),
          c = Math.abs(a.offset().top - this.window.scrollTop());
        return b || (c = Math.round(c - this.window.height() + a.outerHeight()) - 60), c;
      },
      _bindScrollWorkaround: function _bindScrollWorkaround() {
        var a = this;
        this._on(this.window, {
          scrollstop: function scrollstop() {
            var b = a._viewportOffset();
            b > 2 && a._visible && a._triggerRedraw();
          }
        });
      },
      _bindListThumbWorkaround: function _bindListThumbWorkaround() {
        this.element.closest(".ui-page").addClass("ui-android-2x-fixed");
      },
      _triggerRedraw: function _triggerRedraw() {
        var b = parseFloat(a(".ui-page-active").css("padding-bottom"));
        a(".ui-page-active").css("padding-bottom", b + 1 + "px"), setTimeout(function () {
          a(".ui-page-active").css("padding-bottom", b + "px");
        }, 0);
      },
      destroy: function destroy() {
        this._super(), this.element.closest(".ui-page-active").removeClass("ui-android-2x-fix");
      }
    });
  }(a), function (a, b) {
    function c() {
      var a = e.clone(),
        b = a.eq(0),
        c = a.eq(1),
        d = c.children();
      return {
        arEls: c.add(b),
        gd: b,
        ct: c,
        ar: d
      };
    }
    var d = a.mobile.browser.oldIE && a.mobile.browser.oldIE <= 8,
      e = a("<div class='ui-popup-arrow-guide'></div><div class='ui-popup-arrow-container" + (d ? " ie" : "") + "'><div class='ui-popup-arrow'></div></div>");
    a.widget("mobile.popup", a.mobile.popup, {
      options: {
        arrow: ""
      },
      _create: function _create() {
        var a,
          b = this._super();
        return this.options.arrow && (this._ui.arrow = a = this._addArrow()), b;
      },
      _addArrow: function _addArrow() {
        var a,
          b = this.options,
          d = c();
        return a = this._themeClassFromOption("ui-body-", b.theme), d.ar.addClass(a + (b.shadow ? " ui-overlay-shadow" : "")), d.arEls.hide().appendTo(this.element), d;
      },
      _unenhance: function _unenhance() {
        var a = this._ui.arrow;
        return a && a.arEls.remove(), this._super();
      },
      _tryAnArrow: function _tryAnArrow(a, b, c, d, e) {
        var f,
          g,
          h,
          i = {},
          j = {};
        return d.arFull[a.dimKey] > d.guideDims[a.dimKey] ? e : (i[a.fst] = c[a.fst] + (d.arHalf[a.oDimKey] + d.menuHalf[a.oDimKey]) * a.offsetFactor - d.contentBox[a.fst] + (d.clampInfo.menuSize[a.oDimKey] - d.contentBox[a.oDimKey]) * a.arrowOffsetFactor, i[a.snd] = c[a.snd], f = d.result || this._calculateFinalLocation(i, d.clampInfo), g = {
          x: f.left,
          y: f.top
        }, j[a.fst] = g[a.fst] + d.contentBox[a.fst] + a.tipOffset, j[a.snd] = Math.max(f[a.prop] + d.guideOffset[a.prop] + d.arHalf[a.dimKey], Math.min(f[a.prop] + d.guideOffset[a.prop] + d.guideDims[a.dimKey] - d.arHalf[a.dimKey], c[a.snd])), h = Math.abs(c.x - j.x) + Math.abs(c.y - j.y), (!e || h < e.diff) && (j[a.snd] -= d.arHalf[a.dimKey] + f[a.prop] + d.contentBox[a.snd], e = {
          dir: b,
          diff: h,
          result: f,
          posProp: a.prop,
          posVal: j[a.snd]
        }), e);
      },
      _getPlacementState: function _getPlacementState(a) {
        var b,
          c,
          d = this._ui.arrow,
          e = {
            clampInfo: this._clampPopupWidth(!a),
            arFull: {
              cx: d.ct.width(),
              cy: d.ct.height()
            },
            guideDims: {
              cx: d.gd.width(),
              cy: d.gd.height()
            },
            guideOffset: d.gd.offset()
          };
        return b = this.element.offset(), d.gd.css({
          left: 0,
          top: 0,
          right: 0,
          bottom: 0
        }), c = d.gd.offset(), e.contentBox = {
          x: c.left - b.left,
          y: c.top - b.top,
          cx: d.gd.width(),
          cy: d.gd.height()
        }, d.gd.removeAttr("style"), e.guideOffset = {
          left: e.guideOffset.left - b.left,
          top: e.guideOffset.top - b.top
        }, e.arHalf = {
          cx: e.arFull.cx / 2,
          cy: e.arFull.cy / 2
        }, e.menuHalf = {
          cx: e.clampInfo.menuSize.cx / 2,
          cy: e.clampInfo.menuSize.cy / 2
        }, e;
      },
      _placementCoords: function _placementCoords(b) {
        var c,
          e,
          f,
          g,
          h,
          i = this.options.arrow,
          j = this._ui.arrow;
        return j ? (j.arEls.show(), h = {}, c = this._getPlacementState(!0), f = {
          l: {
            fst: "x",
            snd: "y",
            prop: "top",
            dimKey: "cy",
            oDimKey: "cx",
            offsetFactor: 1,
            tipOffset: -c.arHalf.cx,
            arrowOffsetFactor: 0
          },
          r: {
            fst: "x",
            snd: "y",
            prop: "top",
            dimKey: "cy",
            oDimKey: "cx",
            offsetFactor: -1,
            tipOffset: c.arHalf.cx + c.contentBox.cx,
            arrowOffsetFactor: 1
          },
          b: {
            fst: "y",
            snd: "x",
            prop: "left",
            dimKey: "cx",
            oDimKey: "cy",
            offsetFactor: -1,
            tipOffset: c.arHalf.cy + c.contentBox.cy,
            arrowOffsetFactor: 1
          },
          t: {
            fst: "y",
            snd: "x",
            prop: "left",
            dimKey: "cx",
            oDimKey: "cy",
            offsetFactor: 1,
            tipOffset: -c.arHalf.cy,
            arrowOffsetFactor: 0
          }
        }, a.each((i === !0 ? "l,t,r,b" : i).split(","), a.proxy(function (a, d) {
          e = this._tryAnArrow(f[d], d, b, c, e);
        }, this)), e ? (j.ct.removeClass("ui-popup-arrow-l ui-popup-arrow-t ui-popup-arrow-r ui-popup-arrow-b").addClass("ui-popup-arrow-" + e.dir).removeAttr("style").css(e.posProp, e.posVal).show(), d || (g = this.element.offset(), h[f[e.dir].fst] = j.ct.offset(), h[f[e.dir].snd] = {
          left: g.left + c.contentBox.x,
          top: g.top + c.contentBox.y
        }), e.result) : (j.arEls.hide(), this._super(b))) : this._super(b);
      },
      _setOptions: function _setOptions(a) {
        var c,
          d = this.options.theme,
          e = this._ui.arrow,
          f = this._super(a);
        if (a.arrow !== b) {
          if (!e && a.arrow) return void (this._ui.arrow = this._addArrow());
          e && !a.arrow && (e.arEls.remove(), this._ui.arrow = null);
        }
        return e = this._ui.arrow, e && (a.theme !== b && (d = this._themeClassFromOption("ui-body-", d), c = this._themeClassFromOption("ui-body-", a.theme), e.ar.removeClass(d).addClass(c)), a.shadow !== b && e.ar.toggleClass("ui-overlay-shadow", a.shadow)), f;
      },
      _destroy: function _destroy() {
        var a = this._ui.arrow;
        return a && a.arEls.remove(), this._super();
      }
    });
  }(a), function (a, c) {
    a.widget("mobile.panel", {
      options: {
        classes: {
          panel: "ui-panel",
          panelOpen: "ui-panel-open",
          panelClosed: "ui-panel-closed",
          panelFixed: "ui-panel-fixed",
          panelInner: "ui-panel-inner",
          modal: "ui-panel-dismiss",
          modalOpen: "ui-panel-dismiss-open",
          pageContainer: "ui-panel-page-container",
          pageWrapper: "ui-panel-wrapper",
          pageFixedToolbar: "ui-panel-fixed-toolbar",
          pageContentPrefix: "ui-panel-page-content",
          animate: "ui-panel-animate"
        },
        animate: !0,
        theme: null,
        position: "left",
        dismissible: !0,
        display: "reveal",
        swipeClose: !0,
        positionFixed: !1
      },
      _closeLink: null,
      _parentPage: null,
      _page: null,
      _modal: null,
      _panelInner: null,
      _wrapper: null,
      _fixedToolbars: null,
      _create: function _create() {
        var b = this.element,
          c = b.closest(".ui-page, :jqmData(role='page')");
        a.extend(this, {
          _closeLink: b.find(":jqmData(rel='close')"),
          _parentPage: c.length > 0 ? c : !1,
          _openedPage: null,
          _page: this._getPage,
          _panelInner: this._getPanelInner(),
          _fixedToolbars: this._getFixedToolbars
        }), "overlay" !== this.options.display && this._getWrapper(), this._addPanelClasses(), a.support.cssTransform3d && this.options.animate && this.element.addClass(this.options.classes.animate), this._bindUpdateLayout(), this._bindCloseEvents(), this._bindLinkListeners(), this._bindPageEvents(), this.options.dismissible && this._createModal(), this._bindSwipeEvents();
      },
      _getPanelInner: function _getPanelInner() {
        var a = this.element.find("." + this.options.classes.panelInner);
        return 0 === a.length && (a = this.element.children().wrapAll("<div class='" + this.options.classes.panelInner + "' />").parent()), a;
      },
      _createModal: function _createModal() {
        var b = this,
          c = b._parentPage ? b._parentPage.parent() : b.element.parent();
        b._modal = a("<div class='" + b.options.classes.modal + "'></div>").on("mousedown", function () {
          b.close();
        }).appendTo(c);
      },
      _getPage: function _getPage() {
        var b = this._openedPage || this._parentPage || a("." + a.mobile.activePageClass);
        return b;
      },
      _getWrapper: function _getWrapper() {
        var a = this._page().find("." + this.options.classes.pageWrapper);
        0 === a.length && (a = this._page().children(".ui-header:not(.ui-header-fixed), .ui-content:not(.ui-popup), .ui-footer:not(.ui-footer-fixed)").wrapAll("<div class='" + this.options.classes.pageWrapper + "'></div>").parent()), this._wrapper = a;
      },
      _getFixedToolbars: function _getFixedToolbars() {
        var b = a("body").children(".ui-header-fixed, .ui-footer-fixed"),
          c = this._page().find(".ui-header-fixed, .ui-footer-fixed"),
          d = b.add(c).addClass(this.options.classes.pageFixedToolbar);
        return d;
      },
      _getPosDisplayClasses: function _getPosDisplayClasses(a) {
        return a + "-position-" + this.options.position + " " + a + "-display-" + this.options.display;
      },
      _getPanelClasses: function _getPanelClasses() {
        var a = this.options.classes.panel + " " + this._getPosDisplayClasses(this.options.classes.panel) + " " + this.options.classes.panelClosed + " ui-body-" + (this.options.theme ? this.options.theme : "inherit");
        return this.options.positionFixed && (a += " " + this.options.classes.panelFixed), a;
      },
      _addPanelClasses: function _addPanelClasses() {
        this.element.addClass(this._getPanelClasses());
      },
      _handleCloseClick: function _handleCloseClick(a) {
        a.isDefaultPrevented() || this.close();
      },
      _bindCloseEvents: function _bindCloseEvents() {
        this._on(this._closeLink, {
          click: "_handleCloseClick"
        }), this._on({
          "click a:jqmData(ajax='false')": "_handleCloseClick"
        });
      },
      _positionPanel: function _positionPanel(b) {
        var c = this,
          d = c._panelInner.outerHeight(),
          e = d > a.mobile.getScreenHeight();
        e || !c.options.positionFixed ? (e && (c._unfixPanel(), a.mobile.resetActivePageHeight(d)), b && this.window[0].scrollTo(0, a.mobile.defaultHomeScroll)) : c._fixPanel();
      },
      _bindFixListener: function _bindFixListener() {
        this._on(a(b), {
          throttledresize: "_positionPanel"
        });
      },
      _unbindFixListener: function _unbindFixListener() {
        this._off(a(b), "throttledresize");
      },
      _unfixPanel: function _unfixPanel() {
        this.options.positionFixed && a.support.fixedPosition && this.element.removeClass(this.options.classes.panelFixed);
      },
      _fixPanel: function _fixPanel() {
        this.options.positionFixed && a.support.fixedPosition && this.element.addClass(this.options.classes.panelFixed);
      },
      _bindUpdateLayout: function _bindUpdateLayout() {
        var a = this;
        a.element.on("updatelayout", function () {
          a._open && a._positionPanel();
        });
      },
      _bindLinkListeners: function _bindLinkListeners() {
        this._on("body", {
          "click a": "_handleClick"
        });
      },
      _handleClick: function _handleClick(b) {
        var d,
          e = this.element.attr("id");
        b.currentTarget.href.split("#")[1] === e && e !== c && (b.preventDefault(), d = a(b.target), d.hasClass("ui-btn") && (d.addClass(a.mobile.activeBtnClass), this.element.one("panelopen panelclose", function () {
          d.removeClass(a.mobile.activeBtnClass);
        })), this.toggle());
      },
      _bindSwipeEvents: function _bindSwipeEvents() {
        var a = this,
          b = a._modal ? a.element.add(a._modal) : a.element;
        a.options.swipeClose && ("left" === a.options.position ? b.on("swipeleft.panel", function () {
          a.close();
        }) : b.on("swiperight.panel", function () {
          a.close();
        }));
      },
      _bindPageEvents: function _bindPageEvents() {
        var a = this;
        this.document.on("panelbeforeopen", function (b) {
          a._open && b.target !== a.element[0] && a.close();
        }).on("keyup.panel", function (b) {
          27 === b.keyCode && a._open && a.close();
        }), this._parentPage || "overlay" === this.options.display || this._on(this.document, {
          pageshow: function pageshow() {
            this._openedPage = null, this._getWrapper();
          }
        }), a._parentPage ? this.document.on("pagehide", ":jqmData(role='page')", function () {
          a._open && a.close(!0);
        }) : this.document.on("pagebeforehide", function () {
          a._open && a.close(!0);
        });
      },
      _open: !1,
      _pageContentOpenClasses: null,
      _modalOpenClasses: null,
      open: function open(b) {
        if (!this._open) {
          var c = this,
            d = c.options,
            e = function e() {
              c._off(c.document, "panelclose"), c._page().jqmData("panel", "open"), a.support.cssTransform3d && d.animate && "overlay" !== d.display && (c._wrapper.addClass(d.classes.animate), c._fixedToolbars().addClass(d.classes.animate)), !b && a.support.cssTransform3d && d.animate ? (c._wrapper || c.element).animationComplete(f, "transition") : setTimeout(f, 0), d.theme && "overlay" !== d.display && c._page().parent().addClass(d.classes.pageContainer + "-themed " + d.classes.pageContainer + "-" + d.theme), c.element.removeClass(d.classes.panelClosed).addClass(d.classes.panelOpen), c._positionPanel(!0), c._pageContentOpenClasses = c._getPosDisplayClasses(d.classes.pageContentPrefix), "overlay" !== d.display && (c._page().parent().addClass(d.classes.pageContainer), c._wrapper.addClass(c._pageContentOpenClasses), c._fixedToolbars().addClass(c._pageContentOpenClasses)), c._modalOpenClasses = c._getPosDisplayClasses(d.classes.modal) + " " + d.classes.modalOpen, c._modal && c._modal.addClass(c._modalOpenClasses).height(Math.max(c._modal.height(), c.document.height()));
            },
            f = function f() {
              c._open && ("overlay" !== d.display && (c._wrapper.addClass(d.classes.pageContentPrefix + "-open"), c._fixedToolbars().addClass(d.classes.pageContentPrefix + "-open")), c._bindFixListener(), c._trigger("open"), c._openedPage = c._page());
            };
          c._trigger("beforeopen"), "open" === c._page().jqmData("panel") ? c._on(c.document, {
            panelclose: e
          }) : e(), c._open = !0;
        }
      },
      close: function close(b) {
        if (this._open) {
          var c = this,
            d = this.options,
            e = function e() {
              c.element.removeClass(d.classes.panelOpen), "overlay" !== d.display && (c._wrapper.removeClass(c._pageContentOpenClasses), c._fixedToolbars().removeClass(c._pageContentOpenClasses)), !b && a.support.cssTransform3d && d.animate ? (c._wrapper || c.element).animationComplete(f, "transition") : setTimeout(f, 0), c._modal && c._modal.removeClass(c._modalOpenClasses).height("");
            },
            f = function f() {
              d.theme && "overlay" !== d.display && c._page().parent().removeClass(d.classes.pageContainer + "-themed " + d.classes.pageContainer + "-" + d.theme), c.element.addClass(d.classes.panelClosed), "overlay" !== d.display && (c._page().parent().removeClass(d.classes.pageContainer), c._wrapper.removeClass(d.classes.pageContentPrefix + "-open"), c._fixedToolbars().removeClass(d.classes.pageContentPrefix + "-open")), a.support.cssTransform3d && d.animate && "overlay" !== d.display && (c._wrapper.removeClass(d.classes.animate), c._fixedToolbars().removeClass(d.classes.animate)), c._fixPanel(), c._unbindFixListener(), a.mobile.resetActivePageHeight(), c._page().jqmRemoveData("panel"), c._trigger("close"), c._openedPage = null;
            };
          c._trigger("beforeclose"), e(), c._open = !1;
        }
      },
      toggle: function toggle() {
        this[this._open ? "close" : "open"]();
      },
      _destroy: function _destroy() {
        var b,
          c = this.options,
          d = a("body > :mobile-panel").length + a.mobile.activePage.find(":mobile-panel").length > 1;
        "overlay" !== c.display && (b = a("body > :mobile-panel").add(a.mobile.activePage.find(":mobile-panel")), 0 === b.not(".ui-panel-display-overlay").not(this.element).length && this._wrapper.children().unwrap(), this._open && (this._fixedToolbars().removeClass(c.classes.pageContentPrefix + "-open"), a.support.cssTransform3d && c.animate && this._fixedToolbars().removeClass(c.classes.animate), this._page().parent().removeClass(c.classes.pageContainer), c.theme && this._page().parent().removeClass(c.classes.pageContainer + "-themed " + c.classes.pageContainer + "-" + c.theme))), d || this.document.off("panelopen panelclose"), this._open && this._page().jqmRemoveData("panel"), this._panelInner.children().unwrap(), this.element.removeClass([this._getPanelClasses(), c.classes.panelOpen, c.classes.animate].join(" ")).off("swipeleft.panel swiperight.panel").off("panelbeforeopen").off("panelhide").off("keyup.panel").off("updatelayout"), this._modal && this._modal.remove();
      }
    });
  }(a), function (a, b) {
    a.widget("mobile.table", {
      options: {
        classes: {
          table: "ui-table"
        },
        enhanced: !1
      },
      _create: function _create() {
        this.options.enhanced || this.element.addClass(this.options.classes.table), a.extend(this, {
          headers: b,
          allHeaders: b
        }), this._refresh(!0);
      },
      _setHeaders: function _setHeaders() {
        var a = this.element.find("thead tr");
        this.headers = this.element.find("tr:eq(0)").children(), this.allHeaders = this.headers.add(a.children());
      },
      refresh: function refresh() {
        this._refresh();
      },
      rebuild: a.noop,
      _refresh: function _refresh() {
        var b = this.element,
          c = b.find("thead tr");
        this._setHeaders(), c.each(function () {
          var d = 0;
          a(this).children().each(function () {
            var e,
              f = parseInt(this.getAttribute("colspan"), 10),
              g = ":nth-child(" + (d + 1) + ")";
            if (this.setAttribute("data-" + a.mobile.ns + "colstart", d + 1), f) for (e = 0; f - 1 > e; e++) d++, g += ", :nth-child(" + (d + 1) + ")";
            a(this).jqmData("cells", b.find("tr").not(c.eq(0)).not(this).children(g)), d++;
          });
        });
      }
    });
  }(a), function (a) {
    a.widget("mobile.table", a.mobile.table, {
      options: {
        mode: "columntoggle",
        columnBtnTheme: null,
        columnPopupTheme: null,
        columnBtnText: "Columns...",
        classes: a.extend(a.mobile.table.prototype.options.classes, {
          popup: "ui-table-columntoggle-popup",
          columnBtn: "ui-table-columntoggle-btn",
          priorityPrefix: "ui-table-priority-",
          columnToggleTable: "ui-table-columntoggle"
        })
      },
      _create: function _create() {
        this._super(), "columntoggle" === this.options.mode && (a.extend(this, {
          _menu: null
        }), this.options.enhanced ? (this._menu = a(this.document[0].getElementById(this._id() + "-popup")).children().first(), this._addToggles(this._menu, !0)) : (this._menu = this._enhanceColToggle(), this.element.addClass(this.options.classes.columnToggleTable)), this._setupEvents(), this._setToggleState());
      },
      _id: function _id() {
        return this.element.attr("id") || this.widgetName + this.uuid;
      },
      _setupEvents: function _setupEvents() {
        this._on(this.window, {
          throttledresize: "_setToggleState"
        }), this._on(this._menu, {
          "change input": "_menuInputChange"
        });
      },
      _addToggles: function _addToggles(b, c) {
        var d,
          e = 0,
          f = this.options,
          g = b.controlgroup("container");
        c ? d = b.find("input") : g.empty(), this.headers.not("td").each(function () {
          var b,
            h,
            i = a(this),
            j = a.mobile.getAttribute(this, "priority");
          j && (h = i.add(i.jqmData("cells")), h.addClass(f.classes.priorityPrefix + j), b = (c ? d.eq(e++) : a("<label><input type='checkbox' checked />" + (i.children("abbr").first().attr("title") || i.text()) + "</label>").appendTo(g).children(0).checkboxradio({
            theme: f.columnPopupTheme
          })).jqmData("header", i).jqmData("cells", h), i.jqmData("input", b));
        }), c || b.controlgroup("refresh");
      },
      _menuInputChange: function _menuInputChange(b) {
        var c = a(b.target),
          d = c[0].checked;
        c.jqmData("cells").toggleClass("ui-table-cell-hidden", !d).toggleClass("ui-table-cell-visible", d);
      },
      _unlockCells: function _unlockCells(a) {
        a.removeClass("ui-table-cell-hidden ui-table-cell-visible");
      },
      _enhanceColToggle: function _enhanceColToggle() {
        var b,
          c,
          d,
          e,
          f = this.element,
          g = this.options,
          h = a.mobile.ns,
          i = this.document[0].createDocumentFragment();
        return b = this._id() + "-popup", c = a("<a href='#" + b + "' class='" + g.classes.columnBtn + " ui-btn ui-btn-" + (g.columnBtnTheme || "a") + " ui-corner-all ui-shadow ui-mini' data-" + h + "rel='popup'>" + g.columnBtnText + "</a>"), d = a("<div class='" + g.classes.popup + "' id='" + b + "'></div>"), e = a("<fieldset></fieldset>").controlgroup(), this._addToggles(e, !1), e.appendTo(d), i.appendChild(d[0]), i.appendChild(c[0]), f.before(i), d.popup(), e;
      },
      rebuild: function rebuild() {
        this._super(), "columntoggle" === this.options.mode && this._refresh(!1);
      },
      _refresh: function _refresh(b) {
        var c, d, e;
        if (this._super(b), !b && "columntoggle" === this.options.mode) for (c = this.headers, d = [], this._menu.find("input").each(function () {
          var b = a(this),
            e = b.jqmData("header"),
            f = c.index(e[0]);
          f > -1 && !b.prop("checked") && d.push(f);
        }), this._unlockCells(this.element.find(".ui-table-cell-hidden, .ui-table-cell-visible")), this._addToggles(this._menu, b), e = d.length - 1; e > -1; e--) c.eq(d[e]).jqmData("input").prop("checked", !1).checkboxradio("refresh").trigger("change");
      },
      _setToggleState: function _setToggleState() {
        this._menu.find("input").each(function () {
          var b = a(this);
          this.checked = "table-cell" === b.jqmData("cells").eq(0).css("display"), b.checkboxradio("refresh");
        });
      },
      _destroy: function _destroy() {
        this._super();
      }
    });
  }(a), function (a) {
    a.widget("mobile.table", a.mobile.table, {
      options: {
        mode: "reflow",
        classes: a.extend(a.mobile.table.prototype.options.classes, {
          reflowTable: "ui-table-reflow",
          cellLabels: "ui-table-cell-label"
        })
      },
      _create: function _create() {
        this._super(), "reflow" === this.options.mode && (this.options.enhanced || (this.element.addClass(this.options.classes.reflowTable), this._updateReflow()));
      },
      rebuild: function rebuild() {
        this._super(), "reflow" === this.options.mode && this._refresh(!1);
      },
      _refresh: function _refresh(a) {
        this._super(a), a || "reflow" !== this.options.mode || this._updateReflow();
      },
      _updateReflow: function _updateReflow() {
        var b = this,
          c = this.options;
        a(b.allHeaders.get().reverse()).each(function () {
          var d,
            e,
            f = a(this).jqmData("cells"),
            g = a.mobile.getAttribute(this, "colstart"),
            h = f.not(this).filter("thead th").length && " ui-table-cell-label-top",
            i = a(this).clone().contents();
          i.length > 0 && (h ? (d = parseInt(this.getAttribute("colspan"), 10), e = "", d && (e = "td:nth-child(" + d + "n + " + g + ")"), b._addLabels(f.filter(e), c.classes.cellLabels + h, i)) : b._addLabels(f, c.classes.cellLabels, i));
        });
      },
      _addLabels: function _addLabels(b, c, d) {
        1 === d.length && "abbr" === d[0].nodeName.toLowerCase() && (d = d.eq(0).attr("title")), b.not(":has(b." + c + ")").prepend(a("<b class='" + c + "'></b>").append(d));
      }
    });
  }(a), function (a, c) {
    var d = function d(b, c) {
      return -1 === ("" + (a.mobile.getAttribute(this, "filtertext") || a(this).text())).toLowerCase().indexOf(c);
    };
    a.widget("mobile.filterable", {
      initSelector: ":jqmData(filter='true')",
      options: {
        filterReveal: !1,
        filterCallback: d,
        enhanced: !1,
        input: null,
        children: "> li, > option, > optgroup option, > tbody tr, > .ui-controlgroup-controls > .ui-btn, > .ui-controlgroup-controls > .ui-checkbox, > .ui-controlgroup-controls > .ui-radio"
      },
      _create: function _create() {
        var b = this.options;
        a.extend(this, {
          _search: null,
          _timer: 0
        }), this._setInput(b.input), b.enhanced || this._filterItems((this._search && this._search.val() || "").toLowerCase());
      },
      _onKeyUp: function _onKeyUp() {
        var c,
          d,
          e = this._search;
        if (e) {
          if (c = e.val().toLowerCase(), d = a.mobile.getAttribute(e[0], "lastval") + "", d && d === c) return;
          this._timer && (b.clearTimeout(this._timer), this._timer = 0), this._timer = this._delay(function () {
            return this._trigger("beforefilter", null, {
              input: e
            }) === !1 ? !1 : (e[0].setAttribute("data-" + a.mobile.ns + "lastval", c), this._filterItems(c), void (this._timer = 0));
          }, 250);
        }
      },
      _getFilterableItems: function _getFilterableItems() {
        var b = this.element,
          c = this.options.children,
          d = c ? a.isFunction(c) ? c() : c.nodeName ? a(c) : c.jquery ? c : this.element.find(c) : {
            length: 0
          };
        return 0 === d.length && (d = b.children()), d;
      },
      _filterItems: function _filterItems(b) {
        var c,
          e,
          f,
          g,
          h = [],
          i = [],
          j = this.options,
          k = this._getFilterableItems();
        if (null != b) for (e = j.filterCallback || d, f = k.length, c = 0; f > c; c++) g = e.call(k[c], c, b) ? i : h, g.push(k[c]);
        0 === i.length ? k[j.filterReveal && 0 === b.length ? "addClass" : "removeClass"]("ui-screen-hidden") : (a(i).addClass("ui-screen-hidden"), a(h).removeClass("ui-screen-hidden")), this._refreshChildWidget(), this._trigger("filter", null, {
          items: k
        });
      },
      _refreshChildWidget: function _refreshChildWidget() {
        var b,
          c,
          d = ["collapsibleset", "selectmenu", "controlgroup", "listview"];
        for (c = d.length - 1; c > -1; c--) b = d[c], a.mobile[b] && (b = this.element.data("mobile-" + b), b && a.isFunction(b.refresh) && b.refresh());
      },
      _setInput: function _setInput(c) {
        var d = this._search;
        this._timer && (b.clearTimeout(this._timer), this._timer = 0), d && (this._off(d, "keyup change input"), d = null), c && (d = c.jquery ? c : c.nodeName ? a(c) : this.document.find(c), this._on(d, {
          keydown: "_onKeyDown",
          keypress: "_onKeyPress",
          keyup: "_onKeyUp",
          change: "_onKeyUp",
          input: "_onKeyUp"
        })), this._search = d;
      },
      _onKeyDown: function _onKeyDown(b) {
        b.keyCode === a.ui.keyCode.ENTER && (b.preventDefault(), this._preventKeyPress = !0);
      },
      _onKeyPress: function _onKeyPress(a) {
        this._preventKeyPress && (a.preventDefault(), this._preventKeyPress = !1);
      },
      _setOptions: function _setOptions(a) {
        var b = !(a.filterReveal === c && a.filterCallback === c && a.children === c);
        this._super(a), a.input !== c && (this._setInput(a.input), b = !0), b && this.refresh();
      },
      _destroy: function _destroy() {
        var a = this.options,
          b = this._getFilterableItems();
        a.enhanced ? b.toggleClass("ui-screen-hidden", a.filterReveal) : b.removeClass("ui-screen-hidden");
      },
      refresh: function refresh() {
        this._timer && (b.clearTimeout(this._timer), this._timer = 0), this._filterItems((this._search && this._search.val() || "").toLowerCase());
      }
    });
  }(a), function (a, b) {
    var c = function c(a, b) {
        return function (c) {
          b.call(this, c), a._syncTextInputOptions(c);
        };
      },
      d = /(^|\s)ui-li-divider(\s|$)/,
      e = a.mobile.filterable.prototype.options.filterCallback;
    a.mobile.filterable.prototype.options.filterCallback = function (a, b) {
      return !this.className.match(d) && e.call(this, a, b);
    }, a.widget("mobile.filterable", a.mobile.filterable, {
      options: {
        filterPlaceholder: "Filter items...",
        filterTheme: null
      },
      _create: function _create() {
        var b,
          c,
          d = this.element,
          e = ["collapsibleset", "selectmenu", "controlgroup", "listview"],
          f = {};
        for (this._super(), a.extend(this, {
          _widget: null
        }), b = e.length - 1; b > -1; b--) if (c = e[b], a.mobile[c]) {
          if (this._setWidget(d.data("mobile-" + c))) break;
          f[c + "create"] = "_handleCreate";
        }
        this._widget || this._on(d, f);
      },
      _handleCreate: function _handleCreate(a) {
        this._setWidget(this.element.data("mobile-" + a.type.substring(0, a.type.length - 6)));
      },
      _trigger: function _trigger(a, b, c) {
        return this._widget && "mobile-listview" === this._widget.widgetFullName && "beforefilter" === a && this._widget._trigger("beforefilter", b, c), this._super(a, b, c);
      },
      _setWidget: function _setWidget(a) {
        return !this._widget && a && (this._widget = a, this._widget._setOptions = c(this, this._widget._setOptions)), this._widget && (this._syncTextInputOptions(this._widget.options), "listview" === this._widget.widgetName && (this._widget.options.hideDividers = !0, this._widget.element.listview("refresh"))), !!this._widget;
      },
      _isSearchInternal: function _isSearchInternal() {
        return this._search && this._search.jqmData("ui-filterable-" + this.uuid + "-internal");
      },
      _setInput: function _setInput(b) {
        var c = this.options,
          d = !0,
          e = {};
        if (!b) {
          if (this._isSearchInternal()) return;
          d = !1, b = a("<input data-" + a.mobile.ns + "type='search' placeholder='" + c.filterPlaceholder + "'></input>").jqmData("ui-filterable-" + this.uuid + "-internal", !0), a("<form class='ui-filterable'></form>").append(b).submit(function (a) {
            a.preventDefault(), b.blur();
          }).insertBefore(this.element), a.mobile.textinput && (null != this.options.filterTheme && (e.theme = c.filterTheme), b.textinput(e));
        }
        this._super(b), this._isSearchInternal() && d && this._search.attr("placeholder", this.options.filterPlaceholder);
      },
      _setOptions: function _setOptions(c) {
        var d = this._super(c);
        return c.filterPlaceholder !== b && this._isSearchInternal() && this._search.attr("placeholder", c.filterPlaceholder), c.filterTheme !== b && this._search && a.mobile.textinput && this._search.textinput("option", "theme", c.filterTheme), d;
      },
      _refreshChildWidget: function _refreshChildWidget() {
        this._refreshingChildWidget = !0, this._superApply(arguments), this._refreshingChildWidget = !1;
      },
      refresh: function refresh() {
        this._refreshingChildWidget || this._superApply(arguments);
      },
      _destroy: function _destroy() {
        this._isSearchInternal() && this._search.remove(), this._super();
      },
      _syncTextInputOptions: function _syncTextInputOptions(c) {
        var d,
          e = {};
        if (this._isSearchInternal() && a.mobile.textinput) {
          for (d in a.mobile.textinput.prototype.options) c[d] !== b && (e[d] = "theme" === d && null != this.options.filterTheme ? this.options.filterTheme : c[d]);
          this._search.textinput("option", e);
        }
      }
    }), a.widget("mobile.listview", a.mobile.listview, {
      options: {
        filter: !1
      },
      _create: function _create() {
        return this.options.filter !== !0 || this.element.data("mobile-filterable") || this.element.filterable(), this._super();
      },
      refresh: function refresh() {
        var a;
        this._superApply(arguments), this.options.filter === !0 && (a = this.element.data("mobile-filterable"), a && a.refresh());
      }
    });
  }(a), function (a, b) {
    function c() {
      return ++e;
    }
    function d(a) {
      return a.hash.length > 1 && decodeURIComponent(a.href.replace(f, "")) === decodeURIComponent(location.href.replace(f, ""));
    }
    var e = 0,
      f = /#.*$/;
    a.widget("ui.tabs", {
      version: "fadf2b312a05040436451c64bbfaf4814bc62c56",
      delay: 300,
      options: {
        active: null,
        collapsible: !1,
        event: "click",
        heightStyle: "content",
        hide: null,
        show: null,
        activate: null,
        beforeActivate: null,
        beforeLoad: null,
        load: null
      },
      _create: function _create() {
        var b = this,
          c = this.options;
        this.running = !1, this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible", c.collapsible).delegate(".ui-tabs-nav > li", "mousedown" + this.eventNamespace, function (b) {
          a(this).is(".ui-state-disabled") && b.preventDefault();
        }).delegate(".ui-tabs-anchor", "focus" + this.eventNamespace, function () {
          a(this).closest("li").is(".ui-state-disabled") && this.blur();
        }), this._processTabs(), c.active = this._initialActive(), a.isArray(c.disabled) && (c.disabled = a.unique(c.disabled.concat(a.map(this.tabs.filter(".ui-state-disabled"), function (a) {
          return b.tabs.index(a);
        }))).sort()), this.active = this.options.active !== !1 && this.anchors.length ? this._findActive(c.active) : a(), this._refresh(), this.active.length && this.load(c.active);
      },
      _initialActive: function _initialActive() {
        var b = this.options.active,
          c = this.options.collapsible,
          d = location.hash.substring(1);
        return null === b && (d && this.tabs.each(function (c, e) {
          return a(e).attr("aria-controls") === d ? (b = c, !1) : void 0;
        }), null === b && (b = this.tabs.index(this.tabs.filter(".ui-tabs-active"))), (null === b || -1 === b) && (b = this.tabs.length ? 0 : !1)), b !== !1 && (b = this.tabs.index(this.tabs.eq(b)), -1 === b && (b = c ? !1 : 0)), !c && b === !1 && this.anchors.length && (b = 0), b;
      },
      _getCreateEventData: function _getCreateEventData() {
        return {
          tab: this.active,
          panel: this.active.length ? this._getPanelForTab(this.active) : a()
        };
      },
      _tabKeydown: function _tabKeydown(b) {
        var c = a(this.document[0].activeElement).closest("li"),
          d = this.tabs.index(c),
          e = !0;
        if (!this._handlePageNav(b)) {
          switch (b.keyCode) {
            case a.ui.keyCode.RIGHT:
            case a.ui.keyCode.DOWN:
              d++;
              break;
            case a.ui.keyCode.UP:
            case a.ui.keyCode.LEFT:
              e = !1, d--;
              break;
            case a.ui.keyCode.END:
              d = this.anchors.length - 1;
              break;
            case a.ui.keyCode.HOME:
              d = 0;
              break;
            case a.ui.keyCode.SPACE:
              return b.preventDefault(), clearTimeout(this.activating), void this._activate(d);
            case a.ui.keyCode.ENTER:
              return b.preventDefault(), clearTimeout(this.activating), void this._activate(d === this.options.active ? !1 : d);
            default:
              return;
          }
          b.preventDefault(), clearTimeout(this.activating), d = this._focusNextTab(d, e), b.ctrlKey || (c.attr("aria-selected", "false"), this.tabs.eq(d).attr("aria-selected", "true"), this.activating = this._delay(function () {
            this.option("active", d);
          }, this.delay));
        }
      },
      _panelKeydown: function _panelKeydown(b) {
        this._handlePageNav(b) || b.ctrlKey && b.keyCode === a.ui.keyCode.UP && (b.preventDefault(), this.active.focus());
      },
      _handlePageNav: function _handlePageNav(b) {
        return b.altKey && b.keyCode === a.ui.keyCode.PAGE_UP ? (this._activate(this._focusNextTab(this.options.active - 1, !1)), !0) : b.altKey && b.keyCode === a.ui.keyCode.PAGE_DOWN ? (this._activate(this._focusNextTab(this.options.active + 1, !0)), !0) : void 0;
      },
      _findNextTab: function _findNextTab(b, c) {
        function d() {
          return b > e && (b = 0), 0 > b && (b = e), b;
        }
        for (var e = this.tabs.length - 1; -1 !== a.inArray(d(), this.options.disabled);) b = c ? b + 1 : b - 1;
        return b;
      },
      _focusNextTab: function _focusNextTab(a, b) {
        return a = this._findNextTab(a, b), this.tabs.eq(a).focus(), a;
      },
      _setOption: function _setOption(a, b) {
        return "active" === a ? void this._activate(b) : "disabled" === a ? void this._setupDisabled(b) : (this._super(a, b), "collapsible" === a && (this.element.toggleClass("ui-tabs-collapsible", b), b || this.options.active !== !1 || this._activate(0)), "event" === a && this._setupEvents(b), void ("heightStyle" === a && this._setupHeightStyle(b)));
      },
      _tabId: function _tabId(a) {
        return a.attr("aria-controls") || "ui-tabs-" + c();
      },
      _sanitizeSelector: function _sanitizeSelector(a) {
        return a ? a.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&") : "";
      },
      refresh: function refresh() {
        var b = this.options,
          c = this.tablist.children(":has(a[href])");
        b.disabled = a.map(c.filter(".ui-state-disabled"), function (a) {
          return c.index(a);
        }), this._processTabs(), b.active !== !1 && this.anchors.length ? this.active.length && !a.contains(this.tablist[0], this.active[0]) ? this.tabs.length === b.disabled.length ? (b.active = !1, this.active = a()) : this._activate(this._findNextTab(Math.max(0, b.active - 1), !1)) : b.active = this.tabs.index(this.active) : (b.active = !1, this.active = a()), this._refresh();
      },
      _refresh: function _refresh() {
        this._setupDisabled(this.options.disabled), this._setupEvents(this.options.event), this._setupHeightStyle(this.options.heightStyle), this.tabs.not(this.active).attr({
          "aria-selected": "false",
          tabIndex: -1
        }), this.panels.not(this._getPanelForTab(this.active)).hide().attr({
          "aria-expanded": "false",
          "aria-hidden": "true"
        }), this.active.length ? (this.active.addClass("ui-tabs-active ui-state-active").attr({
          "aria-selected": "true",
          tabIndex: 0
        }), this._getPanelForTab(this.active).show().attr({
          "aria-expanded": "true",
          "aria-hidden": "false"
        })) : this.tabs.eq(0).attr("tabIndex", 0);
      },
      _processTabs: function _processTabs() {
        var b = this;
        this.tablist = this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role", "tablist"), this.tabs = this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({
          role: "tab",
          tabIndex: -1
        }), this.anchors = this.tabs.map(function () {
          return a("a", this)[0];
        }).addClass("ui-tabs-anchor").attr({
          role: "presentation",
          tabIndex: -1
        }), this.panels = a(), this.anchors.each(function (c, e) {
          var f,
            g,
            h,
            i = a(e).uniqueId().attr("id"),
            j = a(e).closest("li"),
            k = j.attr("aria-controls");
          d(e) ? (f = e.hash, g = b.element.find(b._sanitizeSelector(f))) : (h = b._tabId(j), f = "#" + h, g = b.element.find(f), g.length || (g = b._createPanel(h), g.insertAfter(b.panels[c - 1] || b.tablist)), g.attr("aria-live", "polite")), g.length && (b.panels = b.panels.add(g)), k && j.data("ui-tabs-aria-controls", k), j.attr({
            "aria-controls": f.substring(1),
            "aria-labelledby": i
          }), g.attr("aria-labelledby", i);
        }), this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role", "tabpanel");
      },
      _getList: function _getList() {
        return this.element.find("ol,ul").eq(0);
      },
      _createPanel: function _createPanel(b) {
        return a("<div>").attr("id", b).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy", !0);
      },
      _setupDisabled: function _setupDisabled(b) {
        a.isArray(b) && (b.length ? b.length === this.anchors.length && (b = !0) : b = !1);
        for (var c, d = 0; c = this.tabs[d]; d++) b === !0 || -1 !== a.inArray(d, b) ? a(c).addClass("ui-state-disabled").attr("aria-disabled", "true") : a(c).removeClass("ui-state-disabled").removeAttr("aria-disabled");
        this.options.disabled = b;
      },
      _setupEvents: function _setupEvents(b) {
        var c = {
          click: function click(a) {
            a.preventDefault();
          }
        };
        b && a.each(b.split(" "), function (a, b) {
          c[b] = "_eventHandler";
        }), this._off(this.anchors.add(this.tabs).add(this.panels)), this._on(this.anchors, c), this._on(this.tabs, {
          keydown: "_tabKeydown"
        }), this._on(this.panels, {
          keydown: "_panelKeydown"
        }), this._focusable(this.tabs), this._hoverable(this.tabs);
      },
      _setupHeightStyle: function _setupHeightStyle(b) {
        var c,
          d = this.element.parent();
        "fill" === b ? (c = d.height(), c -= this.element.outerHeight() - this.element.height(), this.element.siblings(":visible").each(function () {
          var b = a(this),
            d = b.css("position");
          "absolute" !== d && "fixed" !== d && (c -= b.outerHeight(!0));
        }), this.element.children().not(this.panels).each(function () {
          c -= a(this).outerHeight(!0);
        }), this.panels.each(function () {
          a(this).height(Math.max(0, c - a(this).innerHeight() + a(this).height()));
        }).css("overflow", "auto")) : "auto" === b && (c = 0, this.panels.each(function () {
          c = Math.max(c, a(this).height("").height());
        }).height(c));
      },
      _eventHandler: function _eventHandler(b) {
        var c = this.options,
          d = this.active,
          e = a(b.currentTarget),
          f = e.closest("li"),
          g = f[0] === d[0],
          h = g && c.collapsible,
          i = h ? a() : this._getPanelForTab(f),
          j = d.length ? this._getPanelForTab(d) : a(),
          k = {
            oldTab: d,
            oldPanel: j,
            newTab: h ? a() : f,
            newPanel: i
          };
        b.preventDefault(), f.hasClass("ui-state-disabled") || f.hasClass("ui-tabs-loading") || this.running || g && !c.collapsible || this._trigger("beforeActivate", b, k) === !1 || (c.active = h ? !1 : this.tabs.index(f), this.active = g ? a() : f, this.xhr && this.xhr.abort(), j.length || i.length || a.error("jQuery UI Tabs: Mismatching fragment identifier."), i.length && this.load(this.tabs.index(f), b), this._toggle(b, k));
      },
      _toggle: function _toggle(b, c) {
        function d() {
          f.running = !1, f._trigger("activate", b, c);
        }
        function e() {
          c.newTab.closest("li").addClass("ui-tabs-active ui-state-active"), g.length && f.options.show ? f._show(g, f.options.show, d) : (g.show(), d());
        }
        var f = this,
          g = c.newPanel,
          h = c.oldPanel;
        this.running = !0, h.length && this.options.hide ? this._hide(h, this.options.hide, function () {
          c.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"), e();
        }) : (c.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"), h.hide(), e()), h.attr({
          "aria-expanded": "false",
          "aria-hidden": "true"
        }), c.oldTab.attr("aria-selected", "false"), g.length && h.length ? c.oldTab.attr("tabIndex", -1) : g.length && this.tabs.filter(function () {
          return 0 === a(this).attr("tabIndex");
        }).attr("tabIndex", -1), g.attr({
          "aria-expanded": "true",
          "aria-hidden": "false"
        }), c.newTab.attr({
          "aria-selected": "true",
          tabIndex: 0
        });
      },
      _activate: function _activate(b) {
        var c,
          d = this._findActive(b);
        d[0] !== this.active[0] && (d.length || (d = this.active), c = d.find(".ui-tabs-anchor")[0], this._eventHandler({
          target: c,
          currentTarget: c,
          preventDefault: a.noop
        }));
      },
      _findActive: function _findActive(b) {
        return b === !1 ? a() : this.tabs.eq(b);
      },
      _getIndex: function _getIndex(a) {
        return "string" == typeof a && (a = this.anchors.index(this.anchors.filter("[href$='" + a + "']"))), a;
      },
      _destroy: function _destroy() {
        this.xhr && this.xhr.abort(), this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"), this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"), this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(), this.tabs.add(this.panels).each(function () {
          a.data(this, "ui-tabs-destroy") ? a(this).remove() : a(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role");
        }), this.tabs.each(function () {
          var b = a(this),
            c = b.data("ui-tabs-aria-controls");
          c ? b.attr("aria-controls", c).removeData("ui-tabs-aria-controls") : b.removeAttr("aria-controls");
        }), this.panels.show(), "content" !== this.options.heightStyle && this.panels.css("height", "");
      },
      enable: function enable(c) {
        var d = this.options.disabled;
        d !== !1 && (c === b ? d = !1 : (c = this._getIndex(c), d = a.isArray(d) ? a.map(d, function (a) {
          return a !== c ? a : null;
        }) : a.map(this.tabs, function (a, b) {
          return b !== c ? b : null;
        })), this._setupDisabled(d));
      },
      disable: function disable(c) {
        var d = this.options.disabled;
        if (d !== !0) {
          if (c === b) d = !0;else {
            if (c = this._getIndex(c), -1 !== a.inArray(c, d)) return;
            d = a.isArray(d) ? a.merge([c], d).sort() : [c];
          }
          this._setupDisabled(d);
        }
      },
      load: function load(b, c) {
        b = this._getIndex(b);
        var e = this,
          f = this.tabs.eq(b),
          g = f.find(".ui-tabs-anchor"),
          h = this._getPanelForTab(f),
          i = {
            tab: f,
            panel: h
          };
        d(g[0]) || (this.xhr = a.ajax(this._ajaxSettings(g, c, i)), this.xhr && "canceled" !== this.xhr.statusText && (f.addClass("ui-tabs-loading"), h.attr("aria-busy", "true"), this.xhr.success(function (a) {
          setTimeout(function () {
            h.html(a), e._trigger("load", c, i);
          }, 1);
        }).complete(function (a, b) {
          setTimeout(function () {
            "abort" === b && e.panels.stop(!1, !0), f.removeClass("ui-tabs-loading"), h.removeAttr("aria-busy"), a === e.xhr && delete e.xhr;
          }, 1);
        })));
      },
      _ajaxSettings: function _ajaxSettings(b, c, d) {
        var e = this;
        return {
          url: b.attr("href"),
          beforeSend: function beforeSend(b, f) {
            return e._trigger("beforeLoad", c, a.extend({
              jqXHR: b,
              ajaxSettings: f
            }, d));
          }
        };
      },
      _getPanelForTab: function _getPanelForTab(b) {
        var c = a(b).attr("aria-controls");
        return this.element.find(this._sanitizeSelector("#" + c));
      }
    });
  }(a), function () {}(a), function (a, b) {
    function c(a) {
      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) ? d.enabled && d.disable() : d.enabled || d.enable();
    }
    a.mobile.iosorientationfixEnabled = !0;
    var d,
      e,
      f,
      g,
      h,
      i,
      j = navigator.userAgent;
    return /iPhone|iPad|iPod/.test(navigator.platform) && /OS [1-5]_[0-9_]* like Mac OS X/i.test(j) && j.indexOf("AppleWebKit") > -1 ? (d = a.mobile.zoom, void a.mobile.document.on("mobileinit", function () {
      a.mobile.iosorientationfixEnabled && a.mobile.window.bind("orientationchange.iosorientationfix", d.enable).bind("devicemotion.iosorientationfix", c);
    })) : void (a.mobile.iosorientationfixEnabled = !1);
  }(a, this), function (a, b, d) {
    function e() {
      f.removeClass("ui-mobile-rendering");
    }
    var f = a("html"),
      g = a.mobile.window;
    a(b.document).trigger("mobileinit"), a.mobile.gradeA() && (a.mobile.ajaxBlacklist && (a.mobile.ajaxEnabled = !1), f.addClass("ui-mobile ui-mobile-rendering"), setTimeout(e, 5e3), a.extend(a.mobile, {
      initializePage: function initializePage() {
        var b = a.mobile.path,
          f = a(":jqmData(role='page'), :jqmData(role='dialog')"),
          h = b.stripHash(b.stripQueryParams(b.parseLocation().hash)),
          i = a.mobile.path.parseLocation(),
          j = h ? c.getElementById(h) : d;
        f.length || (f = a("body").wrapInner("<div data-" + a.mobile.ns + "role='page'></div>").children(0)), f.each(function () {
          var c = a(this);
          c[0].getAttribute("data-" + a.mobile.ns + "url") || c.attr("data-" + a.mobile.ns + "url", c.attr("id") || b.convertUrlToDataUrl(i.pathname + i.search));
        }), a.mobile.firstPage = f.first(), a.mobile.pageContainer = a.mobile.firstPage.parent().addClass("ui-mobile-viewport").pagecontainer(), a.mobile.navreadyDeferred.resolve(), g.trigger("pagecontainercreate"), a.mobile.loading("show"), e(), a.mobile.hashListeningEnabled && a.mobile.path.isHashValid(location.hash) && (a(j).is(":jqmData(role='page')") || a.mobile.path.isPath(h) || h === 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)) : g.trigger("hashchange", [!0]) : (a.event.special.navigate.isPushStateEnabled() && a.mobile.navigate.navigator.squash(b.parseLocation().href), a.mobile.changePage(a.mobile.firstPage, {
          transition: "none",
          reverse: !0,
          changeHash: !1,
          fromHashChange: !0
        }));
      }
    }), a(function () {
      a.support.inlineSVG(), a.mobile.hideUrlBar && b.scrollTo(0, 1), a.mobile.defaultHomeScroll = a.support.scrollTop && 1 !== a.mobile.window.scrollTop() ? 1 : 0, a.mobile.autoInitializePage && a.mobile.initializePage(), a.mobile.hideUrlBar && g.load(a.mobile.silentScroll), a.support.cssPointerEvents || a.mobile.document.delegate(".ui-state-disabled,.ui-disabled", "vclick", function (a) {
        a.preventDefault(), a.stopImmediatePropagation();
      });
    }));
  }(a, this);
});