jellyfin-web/dashboard-ui/thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.min.js
2015-07-12 01:38:44 -04:00

3 lines
167 KiB
JavaScript

/*! jQuery Mobile v1.4.5 | Copyright 2010, 2014 jQuery Foundation, Inc. | jquery.org/license */
(function (e, t, n) { n(e.jQuery, e, t) })(this, document, function (e, t, n, r) { (function (e, t, r) { "$:nomunge"; function l(e) { return e = e || location.href, "#" + e.replace(/^[^#]*#?(.*)$/, "$1") } var i = "hashchange", s = n, o, u = e.event.special, a = s.documentMode, f = "on" + i in t && (a === r || a > 7); e.fn[i] = function (e) { return e ? this.bind(i, e) : this.trigger(i) }, e.fn[i].delay = 50, u[i] = e.extend(u[i], { setup: function () { if (f) return !1; e(o.start) }, teardown: function () { if (f) return !1; e(o.stop) } }), o = function () { function p() { var n = l(), r = h(u); n !== u ? (c(u = n, r), e(t).trigger(i)) : r !== u && (location.href = location.href.replace(/#.*/, "") + r), o = setTimeout(p, e.fn[i].delay) } var n = {}, o, u = l(), a = function (e) { return e }, c = a, h = a; return n.start = function () { o || p() }, n.stop = function () { o && clearTimeout(o), o = r }, t.attachEvent && !t.addEventListener && !f && function () { var t, r; n.start = function () { t || (r = e.fn[i].src, r = r && r + l(), t = e('<iframe tabindex="-1" title="empty"/>').hide().one("load", function () { r || c(l()), p() }).attr("src", r || "javascript:0").insertAfter("body")[0].contentWindow, s.onpropertychange = function () { try { event.propertyName === "title" && (t.document.title = s.title) } catch (e) { } }) }, n.stop = a, h = function () { return l(t.location.href) }, c = function (n, r) { var o = t.document, u = e.fn[i].domain; n !== r && (o.title = s.title, o.open(), u && o.write('<script>document.domain="' + u + '"</script>'), o.close(), t.location.hash = n) } }(), n }() })(e, this), function (e) { e.mobile = {} }(e), function (e, t, n) { e.extend(e.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: e(), allowCrossDomainPages: !1, dialogHashKey: "&ui-state=dialog" }) }(e, this), function (e, t, n) { var r = {}, i = e.find, s = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, o = /:jqmData\(([^)]*)\)/g; e.extend(e.mobile, { ns: "", getAttribute: function (t, n) { var r; t = t.jquery ? t[0] : t, t && t.getAttribute && (r = t.getAttribute("data-" + e.mobile.ns + n)); try { r = r === "true" ? !0 : r === "false" ? !1 : r === "null" ? null : +r + "" === r ? +r : s.test(r) ? JSON.parse(r) : r } catch (i) { } return r }, nsNormalizeDict: r, nsNormalize: function (t) { return r[t] || (r[t] = e.camelCase(e.mobile.ns + t)) }, closestPageData: function (e) { return e.closest(":jqmData(role='page'), :jqmData(role='dialog')").data("mobile-page") } }), e.fn.jqmData = function (t, r) { var i; return typeof t != "undefined" && (t && (t = e.mobile.nsNormalize(t)), arguments.length < 2 || r === n ? i = this.data(t) : i = this.data(t, r)), i }, e.jqmData = function (t, n, r) { var i; return typeof n != "undefined" && (i = e.data(t, n ? e.mobile.nsNormalize(n) : n, r)), i }, e.fn.jqmRemoveData = function (t) { return this.removeData(e.mobile.nsNormalize(t)) }, e.jqmRemoveData = function (t, n) { return e.removeData(t, e.mobile.nsNormalize(n)) }, e.find = function (t, n, r, s) { return t.indexOf(":jqmData") > -1 && (t = t.replace(o, "[data-" + (e.mobile.ns || "") + "$1]")), i.call(this, t, n, r, s) }, e.extend(e.find, i) }(e, this), function (e, t) { function s(t, n) { var r, i, s, u = t.nodeName.toLowerCase(); return "area" === u ? (r = t.parentNode, i = r.name, !t.href || !i || r.nodeName.toLowerCase() !== "map" ? !1 : (s = e("img[usemap=#" + i + "]")[0], !!s && o(s))) : (/input|select|textarea|button|object/.test(u) ? !t.disabled : "a" === u ? t.href || n : n) && o(t) } function o(t) { return e.expr.filters.visible(t) && !e(t).parents().addBack().filter(function () { return e.css(this, "visibility") === "hidden" }).length } var r = 0, i = /^ui-id-\d+$/; e.ui = e.ui || {}, e.extend(e.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 } }), e.fn.extend({ focus: function (t) { return function (n, r) { return typeof n == "number" ? this.each(function () { var t = this; setTimeout(function () { e(t).focus(), r && r.call(t) }, n) }) : t.apply(this, arguments) } }(e.fn.focus), scrollParent: function () { var t; return e.ui.ie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? t = this.parents().filter(function () { return /(relative|absolute|fixed)/.test(e.css(this, "position")) && /(auto|scroll)/.test(e.css(this, "overflow") + e.css(this, "overflow-y") + e.css(this, "overflow-x")) }).eq(0) : t = this.parents().filter(function () { return /(auto|scroll)/.test(e.css(this, "overflow") + e.css(this, "overflow-y") + e.css(this, "overflow-x")) }).eq(0), /fixed/.test(this.css("position")) || !t.length ? e(this[0].ownerDocument || n) : t }, uniqueId: function () { return this.each(function () { this.id || (this.id = "ui-id-" + ++r) }) }, removeUniqueId: function () { return this.each(function () { i.test(this.id) && e(this).removeAttr("id") }) } }), e.extend(e.expr[":"], { data: e.expr.createPseudo ? e.expr.createPseudo(function (t) { return function (n) { return !!e.data(n, t) } }) : function (t, n, r) { return !!e.data(t, r[3]) }, focusable: function (t) { return s(t, !isNaN(e.attr(t, "tabindex"))) }, tabbable: function (t) { var n = e.attr(t, "tabindex"), r = isNaN(n); return (r || n >= 0) && s(t, !r) } }), e("<a>").outerWidth(1).jquery || e.each(["Width", "Height"], function (n, r) { function u(t, n, r, s) { return e.each(i, function () { n -= parseFloat(e.css(t, "padding" + this)) || 0, r && (n -= parseFloat(e.css(t, "border" + this + "Width")) || 0), s && (n -= parseFloat(e.css(t, "margin" + this)) || 0) }), n } var i = r === "Width" ? ["Left", "Right"] : ["Top", "Bottom"], s = r.toLowerCase(), o = { innerWidth: e.fn.innerWidth, innerHeight: e.fn.innerHeight, outerWidth: e.fn.outerWidth, outerHeight: e.fn.outerHeight }; e.fn["inner" + r] = function (n) { return n === t ? o["inner" + r].call(this) : this.each(function () { e(this).css(s, u(this, n) + "px") }) }, e.fn["outer" + r] = function (t, n) { return typeof t != "number" ? o["outer" + r].call(this, t) : this.each(function () { e(this).css(s, u(this, t, !0, n) + "px") }) } }), e.fn.addBack || (e.fn.addBack = function (e) { return this.add(e == null ? this.prevObject : this.prevObject.filter(e)) }), e("<a>").data("a-b", "a").removeData("a-b").data("a-b") && (e.fn.removeData = function (t) { return function (n) { return arguments.length ? t.call(this, e.camelCase(n)) : t.call(this) } }(e.fn.removeData)), e.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()), e.support.selectstart = "onselectstart" in n.createElement("div"), e.fn.extend({ disableSelection: function () { return this.bind((e.support.selectstart ? "selectstart" : "mousedown") + ".ui-disableSelection", function (e) { e.preventDefault() }) }, enableSelection: function () { return this.unbind(".ui-disableSelection") }, zIndex: function (r) { if (r !== t) return this.css("zIndex", r); if (this.length) { var i = e(this[0]), s, o; while (i.length && i[0] !== n) { s = i.css("position"); if (s === "absolute" || s === "relative" || s === "fixed") { o = parseInt(i.css("zIndex"), 10); if (!isNaN(o) && o !== 0) return o } i = i.parent() } } return 0 } }), e.ui.plugin = { add: function (t, n, r) { var i, s = e.ui[t].prototype; for (i in r) s.plugins[i] = s.plugins[i] || [], s.plugins[i].push([n, r[i]]) }, call: function (e, t, n, r) { var i, s = e.plugins[t]; if (!s) return; if (!r && (!e.element[0].parentNode || e.element[0].parentNode.nodeType === 11)) return; for (i = 0; i < s.length; i++) e.options[s[i][0]] && s[i][1].apply(e.element, n) } } }(e), function (e, t, r) { var i = function (t, n) { var r = t.parent(), i = [], s = function () { var t = e(this), n = e.mobile.toolbar && t.data("mobile-toolbar") ? t.toolbar("option") : { position: t.attr("data-" + e.mobile.ns + "position"), updatePagePadding: t.attr("data-" + e.mobile.ns + "update-page-padding") !== !1 }; return n.position !== "fixed" || n.updatePagePadding !== !0 }, o = r.children(":jqmData(role='header')").filter(s), u = t.children(":jqmData(role='header')"), a = r.children(":jqmData(role='footer')").filter(s), f = t.children(":jqmData(role='footer')"); return u.length === 0 && o.length > 0 && (i = i.concat(o.toArray())), f.length === 0 && a.length > 0 && (i = i.concat(a.toArray())), e.each(i, function (t, r) { n -= e(r).outerHeight() }), Math.max(0, n) }; e.extend(e.mobile, { window: e(t), document: e(n), keyCode: e.ui.keyCode, behaviors: {}, silentScroll: function (n) { e.type(n) !== "number" && (n = e.mobile.defaultHomeScroll), e.event.special.scrollstart.enabled = !1, setTimeout(function () { t.scrollTo(0, n), e.mobile.document.trigger("silentscroll", { x: 0, y: n }) }, 20), setTimeout(function () { e.event.special.scrollstart.enabled = !0 }, 150) }, getClosestBaseUrl: function (t) { var n = e(t).closest(".ui-page").jqmData("url"), r = e.mobile.path.documentBase.hrefNoHash; if (!e.mobile.dynamicBaseEnabled || !n || !e.mobile.path.isPath(n)) n = r; return e.mobile.path.makeUrlAbsolute(n, r) }, removeActiveLinkClass: function (t) { !!e.mobile.activeClickedLink && (!e.mobile.activeClickedLink.closest("." + e.mobile.activePageClass).length || t) && e.mobile.activeClickedLink.removeClass(e.mobile.activeBtnClass), e.mobile.activeClickedLink = null }, getInheritedTheme: function (e, t) { var n = e[0], r = "", i = /ui-(bar|body|overlay)-([a-z])\b/, s, o; while (n) { s = n.className || ""; if (s && (o = i.exec(s)) && (r = o[2])) break; n = n.parentNode } return r || t || "a" }, enhanceable: function (e) { return this.haveParents(e, "enhance") }, hijackable: function (e) { return this.haveParents(e, "ajax") }, haveParents: function (t, n) { if (!e.mobile.ignoreContentEnabled) return t; var r = t.length, i = e(), s, o, u, a, f; for (a = 0; a < r; a++) { o = t.eq(a), u = !1, s = t[a]; while (s) { f = s.getAttribute ? s.getAttribute("data-" + e.mobile.ns + n) : ""; if (f === "false") { u = !0; break } s = s.parentNode } u || (i = i.add(o)) } return i }, getScreenHeight: function () { return t.innerHeight || e.mobile.window.height() }, resetActivePageHeight: function (t) { var n = e("." + e.mobile.activePageClass), r = n.height(), s = n.outerHeight(!0); t = i(n, typeof t == "number" ? t : e.mobile.getScreenHeight()), n.css("min-height", ""), n.height() < t && n.css("min-height", t - (s - r)) }, loading: function () { var t = this.loading._widget || e(e.mobile.loader.prototype.defaultHtml).loader(), n = t.loader.apply(t, arguments); return this.loading._widget = t, n } }), e.addDependents = function (t, n) { var r = e(t), i = r.jqmData("dependents") || e(); r.jqmData("dependents", e(i).add(n)) }, e.fn.extend({ removeWithDependents: function () { e.removeWithDependents(this) }, enhanceWithin: function () { var t, n = {}, r = e.mobile.page.prototype.keepNativeSelector(), i = this; e.mobile.nojs && e.mobile.nojs(this), e.mobile.links && e.mobile.links(this), e.mobile.degradeInputsWithin && e.mobile.degradeInputsWithin(this), e.fn.buttonMarkup && this.find(e.fn.buttonMarkup.initSelector).not(r).jqmEnhanceable().buttonMarkup(), e.fn.fieldcontain && this.find(":jqmData(role='fieldcontain')").not(r).jqmEnhanceable().fieldcontain(), e.each(e.mobile.widgets, function (t, s) { if (s.initSelector) { var o = e.mobile.enhanceable(i.find(s.initSelector)); o.length > 0 && (o = o.not(r)), o.length > 0 && (n[s.prototype.widgetName] = o) } }); for (t in n) n[t][t](); return this }, addDependents: function (t) { e.addDependents(this, t) }, getEncodedText: function () { return e("<a>").text(this.text()).html() }, jqmEnhanceable: function () { return e.mobile.enhanceable(this) }, jqmHijackable: function () { return e.mobile.hijackable(this) } }), e.removeWithDependents = function (t) { var n = e(t); (n.jqmData("dependents") || e()).remove(), n.remove() }, e.addDependents = function (t, n) { var r = e(t), i = r.jqmData("dependents") || e(); r.jqmData("dependents", e(i).add(n)) }, e.find.matches = function (t, n) { return e.find(t, null, null, n) }, e.find.matchesSelector = function (t, n) { return e.find(n, null, null, [t]).length > 0 } }(e, this), function (e, r) { t.matchMedia = t.matchMedia || function (e, t) { var n, r = e.documentElement, i = r.firstElementChild || r.firstChild, s = e.createElement("body"), o = e.createElement("div"); return o.id = "mq-test-1", o.style.cssText = "position:absolute;top:-100em", s.style.background = "none", s.appendChild(o), function (e) { return o.innerHTML = '&shy;<style media="' + e + '"> #mq-test-1 { width: 42px; }</style>', r.insertBefore(s, i), n = o.offsetWidth === 42, r.removeChild(s), { matches: n, media: e } } }(n), e.mobile.media = function (e) { return t.matchMedia(e).matches } }(e), function (e, t) { var r = { touch: "ontouchend" in n }; e.mobile.support = e.mobile.support || {}, e.extend(e.support, r), e.extend(e.mobile.support, r) }(e), function (e, n) { e.extend(e.support, { orientation: "orientation" in t && "onorientationchange" in t }) }(e), function (e, r) { function i(e) { var t = e.charAt(0).toUpperCase() + e.substr(1), n = (e + " " + u.join(t + " ") + t).split(" "), i; for (i in n) if (o[n[i]] !== r) return !0 } function h() { var n = t, r = !!n.document.createElementNS && !!n.document.createElementNS("http://www.w3.org/2000/svg", "svg").createSVGRect && (!n.opera || navigator.userAgent.indexOf("Chrome") !== -1), i = function (t) { (!t || !r) && e("html").addClass("ui-nosvg") }, s = new n.Image; s.onerror = function () { i(!1) }, s.onload = function () { i(s.width === 1 && s.height === 1) }, s.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==" } function p() { var i = "transform-3d", o = e.mobile.media("(-" + u.join("-" + i + "),(-") + "-" + i + "),(" + i + ")"), a, f, l; if (o) return !!o; a = n.createElement("div"), f = { MozTransform: "-moz-transform", transform: "transform" }, s.append(a); for (l in f) a.style[l] !== r && (a.style[l] = "translate3d( 100px, 1px, 1px )", o = t.getComputedStyle(a).getPropertyValue(f[l])); return !!o && o !== "none" } function d() { var t = location.protocol + "//" + location.host + location.pathname + "ui-dir/", n = e("head base"), r = null, i = "", o, u; return n.length ? i = n.attr("href") : n = r = e("<base>", { href: t }).appendTo("head"), o = e("<a href='testurl' />").prependTo(s), u = o[0].href, n[0].href = i || location.pathname, r && r.remove(), u.indexOf(t) === 0 } function v() { var e = n.createElement("x"), r = n.documentElement, i = t.getComputedStyle, s; return "pointerEvents" in e.style ? (e.style.pointerEvents = "auto", e.style.pointerEvents = "x", r.appendChild(e), s = i && i(e, "").pointerEvents === "auto", r.removeChild(e), !!s) : !1 } function m() { var e = n.createElement("div"); return typeof e.getBoundingClientRect != "undefined" } function g() { var e = t, n = navigator.userAgent, r = navigator.platform, i = n.match(/AppleWebKit\/([0-9]+)/), s = !!i && i[1], o = n.match(/Fennec\/([0-9]+)/), u = !!o && o[1], a = n.match(/Opera Mobi\/([0-9]+)/), f = !!a && a[1]; return (r.indexOf("iPhone") > -1 || r.indexOf("iPad") > -1 || r.indexOf("iPod") > -1) && s && s < 534 || e.operamini && {}.toString.call(e.operamini) === "[object OperaMini]" || a && f < 7458 || n.indexOf("Android") > -1 && s && s < 533 || u && u < 6 || "palmGetResource" in t && s && s < 534 || n.indexOf("MeeGo") > -1 && n.indexOf("NokiaBrowser/8.5.0") > -1 ? !1 : !0 } var s = e("<body>").prependTo("html"), o = s[0].style, u = ["Webkit", "Moz", "O"], a = "palmGetResource" in t, f = t.operamini && {}.toString.call(t.operamini) === "[object OperaMini]", l = t.blackberry && !i("-webkit-transform"), c; e.extend(e.mobile, { browser: {} }), e.mobile.browser.oldIE = function () { var e = 3, t = n.createElement("div"), r = t.all || []; do t.innerHTML = "<!--[if gt IE " + ++e + "]><br><![endif]-->"; while (r[0]); return e > 4 ? e : !e }(), e.extend(e.support, { pushState: "pushState" in history && "replaceState" in history && !(t.navigator.userAgent.indexOf("Firefox") >= 0 && t.top !== t) && t.navigator.userAgent.search(/CriOS/) === -1, mediaquery: e.mobile.media("only all"), cssPseudoElement: !!i("content"), touchOverflow: !!i("overflowScrolling"), cssTransform3d: p(), boxShadow: !!i("boxShadow") && !l, fixedPosition: g(), scrollTop: ("pageXOffset" in t || "scrollTop" in n.documentElement || "scrollTop" in s[0]) && !a && !f, dynamicBaseTag: d(), cssPointerEvents: v(), boundingRect: m(), inlineSVG: h }), s.remove(), c = function () { var e = t.navigator.userAgent; return e.indexOf("Nokia") > -1 && (e.indexOf("Symbian/3") > -1 || e.indexOf("Series60/5") > -1) && e.indexOf("AppleWebKit") > -1 && e.match(/(BrowserNG|NokiaBrowser)\/7\.[0-3]/) }(), e.mobile.gradeA = function () { return (e.support.mediaquery && e.support.cssPseudoElement || e.mobile.browser.oldIE && e.mobile.browser.oldIE >= 8) && (e.support.boundingRect || e.fn.jquery.match(/1\.[0-7+]\.[0-9+]?/) !== null) }, e.mobile.ajaxBlacklist = t.blackberry && !t.WebKitPoint || f || c, c && e(function () { e("head link[rel='stylesheet']").attr("rel", "alternate stylesheet").attr("rel", "stylesheet") }), e.support.boxShadow || e("html").addClass("ui-noboxshadow") }(e), function (e, t) { var n = e.mobile.window, r, i = function () { }; e.event.special.beforenavigate = { setup: function () { n.on("navigate", i) }, teardown: function () { n.off("navigate", i) } }, e.event.special.navigate = r = { bound: !1, pushStateEnabled: !0, originalEventName: t, isPushStateEnabled: function () { return e.support.pushState && e.mobile.pushStateEnabled === !0 && this.isHashChangeEnabled() }, isHashChangeEnabled: function () { return e.mobile.hashListeningEnabled === !0 }, popstate: function (t) { var r = new e.Event("navigate"), i = new e.Event("beforenavigate"), s = t.originalEvent.state || {}; i.originalEvent = t, n.trigger(i); if (i.isDefaultPrevented()) return; t.historyState && e.extend(s, t.historyState), r.originalEvent = t, setTimeout(function () { n.trigger(r, { state: s }) }, 0) }, hashchange: function (t) { var r = new e.Event("navigate"), i = new e.Event("beforenavigate"); i.originalEvent = t, n.trigger(i); if (i.isDefaultPrevented()) return; r.originalEvent = t, n.trigger(r, { state: t.hashchangeState || {} }) }, setup: function () { if (r.bound) return; r.bound = !0, r.isPushStateEnabled() ? (r.originalEventName = "popstate", n.bind("popstate.navigate", r.popstate)) : r.isHashChangeEnabled() && (r.originalEventName = "hashchange", n.bind("hashchange.navigate", r.hashchange)) } } }(e), function (e) { e.event.special.throttledresize = { setup: function () { e(this).bind("resize", n) }, teardown: function () { e(this).unbind("resize", n) } }; var t = 250, n = function () { s = (new Date).getTime(), o = s - r, o >= t ? (r = s, e(this).trigger("throttledresize")) : (i && clearTimeout(i), i = setTimeout(n, t - o)) }, r = 0, i, s, o }(e), function (e, t) { function p() { var e = s(); e !== o && (o = e, r.trigger(i)) } var r = e(t), i = "orientationchange", s, o, u, a, f = { 0: !0, 180: !0 }, l, c, h; if (e.support.orientation) { l = t.innerWidth || r.width(), c = t.innerHeight || r.height(), h = 50, u = l > c && l - c > h, a = f[t.orientation]; if (u && a || !u && !a) f = { "-90": !0, 90: !0 } } e.event.special.orientationchange = e.extend({}, e.event.special.orientationchange, { setup: function () { if (e.support.orientation && !e.event.special.orientationchange.disabled) return !1; o = s(), r.bind("throttledresize", p) }, teardown: function () { if (e.support.orientation && !e.event.special.orientationchange.disabled) return !1; r.unbind("throttledresize", p) }, add: function (e) { var t = e.handler; e.handler = function (e) { return e.orientation = s(), t.apply(this, arguments) } } }), e.event.special.orientationchange.orientation = s = function () { var r = !0, i = n.documentElement; return e.support.orientation ? r = f[t.orientation] : r = i && i.clientWidth / i.clientHeight < 1.1, r ? "portrait" : "landscape" }, e.fn[i] = function (e) { return e ? this.bind(i, e) : this.trigger(i) }, e.attrFn && (e.attrFn[i] = !0) }(e, this), function (e, t, n, r) { function T(e) { while (e && typeof e.originalEvent != "undefined") e = e.originalEvent; return e } function N(t, n) { var i = t.type, s, o, a, l, c, h, p, d, v; t = e.Event(t), t.type = n, s = t.originalEvent, o = e.event.props, i.search(/^(mouse|click)/) > -1 && (o = f); if (s) for (p = o.length, l; p;) l = o[--p], t[l] = s[l]; i.search(/mouse(down|up)|click/) > -1 && !t.which && (t.which = 1); if (i.search(/^touch/) !== -1) { a = T(s), i = a.touches, c = a.changedTouches, h = i && i.length ? i[0] : c && c.length ? c[0] : r; if (h) for (d = 0, v = u.length; d < v; d++) l = u[d], t[l] = h[l] } return t } function C(t) { var n = {}, r, s; while (t) { r = e.data(t, i); for (s in r) r[s] && (n[s] = n.hasVirtualBinding = !0); t = t.parentNode } return n } function k(t, n) { var r; while (t) { r = e.data(t, i); if (r && (!n || r[n])) return t; t = t.parentNode } return null } function L() { g = !1 } function A() { g = !0 } function O() { E = 0, v.length = 0, m = !1, A() } function M() { L() } function _() { D(), c = setTimeout(function () { c = 0, O() }, e.vmouse.resetTimerDuration) } function D() { c && (clearTimeout(c), c = 0) } function P(t, n, r) { var i; if (r && r[t] || !r && k(n.target, t)) i = N(n, t), e(n.target).trigger(i); return i } function H(t) { var n = e.data(t.target, s), r; !m && (!E || E !== n) && (r = P("v" + t.type, t), r && (r.isDefaultPrevented() && t.preventDefault(), r.isPropagationStopped() && t.stopPropagation(), r.isImmediatePropagationStopped() && t.stopImmediatePropagation())) } function B(t) { var n = T(t).touches, r, i, o; n && n.length === 1 && (r = t.target, i = C(r), i.hasVirtualBinding && (E = w++, e.data(r, s, E), D(), M(), d = !1, o = T(t).touches[0], h = o.pageX, p = o.pageY, P("vmouseover", t, i), P("vmousedown", t, i))) } function j(e) { if (g) return; d || P("vmousecancel", e, C(e.target)), d = !0, _() } function F(t) { if (g) return; var n = T(t).touches[0], r = d, i = e.vmouse.moveDistanceThreshold, s = C(t.target); d = d || Math.abs(n.pageX - h) > i || Math.abs(n.pageY - p) > i, d && !r && P("vmousecancel", t, s), P("vmousemove", t, s), _() } function I(e) { if (g) return; A(); var t = C(e.target), n, r; P("vmouseup", e, t), d || (n = P("vclick", e, t), n && n.isDefaultPrevented() && (r = T(e).changedTouches[0], v.push({ touchID: E, x: r.clientX, y: r.clientY }), m = !0)), P("vmouseout", e, t), d = !1, _() } function q(t) { var n = e.data(t, i), r; if (n) for (r in n) if (n[r]) return !0; return !1 } function R() { } function U(t) { var n = t.substr(1); return { setup: function () { q(this) || e.data(this, i, {}); var r = e.data(this, i); r[t] = !0, l[t] = (l[t] || 0) + 1, l[t] === 1 && b.bind(n, H), e(this).bind(n, R), y && (l.touchstart = (l.touchstart || 0) + 1, l.touchstart === 1 && b.bind("touchstart", B).bind("touchend", I).bind("touchmove", F).bind("scroll", j)) }, teardown: function () { --l[t], l[t] || b.unbind(n, H), y && (--l.touchstart, l.touchstart || b.unbind("touchstart", B).unbind("touchmove", F).unbind("touchend", I).unbind("scroll", j)); var r = e(this), s = e.data(this, i); s && (s[t] = !1), r.unbind(n, R), q(this) || r.removeData(i) } } } var i = "virtualMouseBindings", s = "virtualTouchID", o = "vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel".split(" "), u = "clientX clientY pageX pageY screenX screenY".split(" "), a = e.event.mouseHooks ? e.event.mouseHooks.props : [], f = e.event.props.concat(a), l = {}, c = 0, h = 0, p = 0, d = !1, v = [], m = !1, g = !1, y = "addEventListener" in n, b = e(n), w = 1, E = 0, S, x; e.vmouse = { moveDistanceThreshold: 10, clickDistanceThreshold: 10, resetTimerDuration: 1500 }; for (x = 0; x < o.length; x++) e.event.special[o[x]] = U(o[x]); y && n.addEventListener("click", function (t) { var n = v.length, r = t.target, i, o, u, a, f, l; if (n) { i = t.clientX, o = t.clientY, S = e.vmouse.clickDistanceThreshold, u = r; while (u) { for (a = 0; a < n; a++) { f = v[a], l = 0; if (u === r && Math.abs(f.x - i) < S && Math.abs(f.y - o) < S || e.data(u, s) === f.touchID) { t.preventDefault(), t.stopPropagation(); return } } u = u.parentNode } } }, !0) }(e, t, n), function (e, t, r) { function l(t, n, i, s) { var o = i.type; i.type = n, s ? e.event.trigger(i, r, t) : e.event.dispatch.call(t, i), i.type = o } var i = e(n), s = e.mobile.support.touch, o = "touchmove scroll", u = s ? "touchstart" : "mousedown", a = s ? "touchend" : "mouseup", f = s ? "touchmove" : "mousemove"; e.each("touchstart touchmove touchend tap taphold swipe swipeleft swiperight scrollstart scrollstop".split(" "), function (t, n) { e.fn[n] = function (e) { return e ? this.bind(n, e) : this.trigger(n) }, e.attrFn && (e.attrFn[n] = !0) }), e.event.special.scrollstart = { enabled: !0, setup: function () { function s(e, n) { r = n, l(t, r ? "scrollstart" : "scrollstop", e) } var t = this, n = e(t), r, i; n.bind(o, function (t) { if (!e.event.special.scrollstart.enabled) return; r || s(t, !0), clearTimeout(i), i = setTimeout(function () { s(t, !1) }, 50) }) }, teardown: function () { e(this).unbind(o) } }, e.event.special.tap = { tapholdThreshold: 750, emitTapOnTaphold: !0, setup: function () { var t = this, n = e(t), r = !1; n.bind("vmousedown", function (s) { function a() { clearTimeout(u) } function f() { a(), n.unbind("vclick", c).unbind("vmouseup", a), i.unbind("vmousecancel", f) } function c(e) { f(), !r && o === e.target ? l(t, "tap", e) : r && e.preventDefault() } r = !1; if (s.which && s.which !== 1) return !1; var o = s.target, u; n.bind("vmouseup", a).bind("vclick", c), i.bind("vmousecancel", f), u = setTimeout(function () { e.event.special.tap.emitTapOnTaphold || (r = !0), l(t, "taphold", e.Event("taphold", { target: o })) }, e.event.special.tap.tapholdThreshold) }) }, teardown: function () { e(this).unbind("vmousedown").unbind("vclick").unbind("vmouseup"), i.unbind("vmousecancel") } }, e.event.special.swipe = { scrollSupressionThreshold: 30, durationThreshold: 1e3, horizontalDistanceThreshold: 30, verticalDistanceThreshold: 30, getLocation: function (e) { var n = t.pageXOffset, r = t.pageYOffset, i = e.clientX, s = e.clientY; if (e.pageY === 0 && Math.floor(s) > Math.floor(e.pageY) || e.pageX === 0 && Math.floor(i) > Math.floor(e.pageX)) i -= n, s -= r; else if (s < e.pageY - r || i < e.pageX - n) i = e.pageX - n, s = e.pageY - r; return { x: i, y: s } }, start: function (t) { var n = t.originalEvent.touches ? t.originalEvent.touches[0] : t, r = e.event.special.swipe.getLocation(n); return { time: (new Date).getTime(), coords: [r.x, r.y], origin: e(t.target) } }, stop: function (t) { var n = t.originalEvent.touches ? t.originalEvent.touches[0] : t, r = e.event.special.swipe.getLocation(n); return { time: (new Date).getTime(), coords: [r.x, r.y] } }, handleSwipe: function (t, n, r, i) { if (n.time - t.time < e.event.special.swipe.durationThreshold && Math.abs(t.coords[0] - n.coords[0]) > e.event.special.swipe.horizontalDistanceThreshold && Math.abs(t.coords[1] - n.coords[1]) < e.event.special.swipe.verticalDistanceThreshold) { var s = t.coords[0] > n.coords[0] ? "swipeleft" : "swiperight"; return l(r, "swipe", e.Event("swipe", { target: i, swipestart: t, swipestop: n }), !0), l(r, s, e.Event(s, { target: i, swipestart: t, swipestop: n }), !0), !0 } return !1 }, eventInProgress: !1, setup: function () { var t, n = this, r = e(n), s = {}; t = e.data(this, "mobile-events"), t || (t = { length: 0 }, e.data(this, "mobile-events", t)), t.length++, t.swipe = s, s.start = function (t) { if (e.event.special.swipe.eventInProgress) return; e.event.special.swipe.eventInProgress = !0; var r, o = e.event.special.swipe.start(t), u = t.target, l = !1; s.move = function (t) { if (!o || t.isDefaultPrevented()) return; r = e.event.special.swipe.stop(t), l || (l = e.event.special.swipe.handleSwipe(o, r, n, u), l && (e.event.special.swipe.eventInProgress = !1)), Math.abs(o.coords[0] - r.coords[0]) > e.event.special.swipe.scrollSupressionThreshold && t.preventDefault() }, s.stop = function () { l = !0, e.event.special.swipe.eventInProgress = !1, i.off(f, s.move), s.move = null }, i.on(f, s.move).one(a, s.stop) }, r.on(u, s.start) }, teardown: function () { var t, n; t = e.data(this, "mobile-events"), t && (n = t.swipe, delete t.swipe, t.length--, t.length === 0 && e.removeData(this, "mobile-events")), n && (n.start && e(this).off(u, n.start), n.move && i.off(f, n.move), n.stop && i.off(a, n.stop)) } }, e.each({ scrollstop: "scrollstart", taphold: "tap", swipeleft: "swipe.left", swiperight: "swipe.right" }, function (t, n) { e.event.special[t] = { setup: function () { e(this).bind(n, e.noop) }, teardown: function () { e(this).unbind(n) } } }) }(e, this), function (e, t) { var r = { animation: {}, transition: {} }, i = n.createElement("a"), s = ["", "webkit-", "moz-", "o-"]; e.each(["animation", "transition"], function (n, o) { var u = n === 0 ? o + "-" + "name" : o; e.each(s, function (n, s) { if (i.style[e.camelCase(s + u)] !== t) return r[o].prefix = s, !1 }), r[o].duration = e.camelCase(r[o].prefix + o + "-" + "duration"), r[o].event = e.camelCase(r[o].prefix + o + "-" + "end"), r[o].prefix === "" && (r[o].event = r[o].event.toLowerCase()) }), e.support.cssTransitions = r.transition.prefix !== t, e.support.cssAnimations = r.animation.prefix !== t, e(i).remove(), e.fn.animationComplete = function (i, s, o) { var u, a, f = this, l = function () { clearTimeout(u), i.apply(this, arguments) }, c = !s || s === "animation" ? "animation" : "transition"; if (e.support.cssTransitions && c === "transition" || e.support.cssAnimations && c === "animation") { if (o === t) { e(this).context !== n && (a = parseFloat(e(this).css(r[c].duration)) * 3e3); if (a === 0 || a === t || isNaN(a)) a = e.fn.animationComplete.defaultDuration } return u = setTimeout(function () { e(f).off(r[c].event, l), i.apply(f) }, a), e(this).one(r[c].event, l) } return setTimeout(e.proxy(i, this), 0), e(this) }, e.fn.animationComplete.defaultDuration = 1e3 }(e), function (e, t) { function s(e, t) { var n = t ? t : []; return n.push("ui-btn"), e.theme && n.push("ui-btn-" + e.theme), e.icon && (n = n.concat(["ui-icon-" + e.icon, "ui-btn-icon-" + e.iconpos]), e.iconshadow && n.push("ui-shadow-icon")), e.inline && n.push("ui-btn-inline"), e.shadow && n.push("ui-shadow"), e.corners && n.push("ui-corner-all"), e.mini && n.push("ui-mini"), n } function o(e) { var r, i, s, o = !1, u = !0, a = { icon: "", inline: !1, shadow: !1, corners: !1, iconshadow: !1, mini: !1 }, f = []; e = e.split(" "); for (r = 0; r < e.length; r++) s = !0, i = n[e[r]], i !== t ? (s = !1, a[i] = !0) : e[r].indexOf("ui-btn-icon-") === 0 ? (s = !1, u = !1, a.iconpos = e[r].substring(12)) : e[r].indexOf("ui-icon-") === 0 ? (s = !1, a.icon = e[r].substring(8)) : e[r].indexOf("ui-btn-") === 0 && e[r].length === 8 ? (s = !1, a.theme = e[r].substring(7)) : e[r] === "ui-btn" && (s = !1, o = !0), s && f.push(e[r]); return u && (a.icon = ""), { options: a, unknownClasses: f, alreadyEnhanced: o } } function u(e) { return "-" + e.toLowerCase() } var n = { "ui-shadow": "shadow", "ui-corner-all": "corners", "ui-btn-inline": "inline", "ui-shadow-icon": "iconshadow", "ui-mini": "mini" }, r = function () { var n = e.mobile.getAttribute.apply(this, arguments); return n == null ? t : n }, i = /[A-Z]/g; e.fn.buttonMarkup = function (n, a) { var f, l, c, h, p, d = e.fn.buttonMarkup.defaults; for (f = 0; f < this.length; f++) { c = this[f], l = a ? { alreadyEnhanced: !1, unknownClasses: [] } : o(c.className), h = e.extend({}, l.alreadyEnhanced ? l.options : {}, n); if (!l.alreadyEnhanced) for (p in d) h[p] === t && (h[p] = r(c, p.replace(i, u))); c.className = s(e.extend({}, d, h), l.unknownClasses).join(" "), c.tagName.toLowerCase() !== "button" && c.setAttribute("role", "button") } return this }, e.fn.buttonMarkup.defaults = { icon: "", iconpos: "left", theme: null, inline: !1, shadow: !0, corners: !0, iconshadow: !1, mini: !1 }, e.extend(e.fn.buttonMarkup, { initSelector: "a:jqmData(role='button'), .ui-bar > a, .ui-bar > :jqmData(role='controlgroup') > a, button:not(:jqmData(role='navbar') button)" }) }(e), function (e, t) { var n = 0, r = Array.prototype.slice, i = e.cleanData; e.cleanData = function (t) { for (var n = 0, r; (r = t[n]) != null; n++) try { e(r).triggerHandler("remove") } catch (s) { } i(t) }, e.widget = function (t, n, r) { var i, s, o, u, a = {}, f = t.split(".")[0]; return t = t.split(".")[1], i = f + "-" + t, r || (r = n, n = e.Widget), e.expr[":"][i.toLowerCase()] = function (t) { return !!e.data(t, i) }, e[f] = e[f] || {}, s = e[f][t], o = e[f][t] = function (e, t) { if (!this._createWidget) return new o(e, t); arguments.length && this._createWidget(e, t) }, e.extend(o, s, { version: r.version, _proto: e.extend({}, r), _childConstructors: [] }), u = new n, u.options = e.widget.extend({}, u.options), e.each(r, function (t, r) { if (!e.isFunction(r)) { a[t] = r; return } a[t] = function () { var e = function () { return n.prototype[t].apply(this, arguments) }, i = function (e) { return n.prototype[t].apply(this, e) }; return function () { var t = this._super, n = this._superApply, s; return this._super = e, this._superApply = i, s = r.apply(this, arguments), this._super = t, this._superApply = n, s } }() }), o.prototype = e.widget.extend(u, { widgetEventPrefix: s ? u.widgetEventPrefix || t : t }, a, { constructor: o, namespace: f, widgetName: t, widgetFullName: i }), s ? (e.each(s._childConstructors, function (t, n) { var r = n.prototype; e.widget(r.namespace + "." + r.widgetName, o, n._proto) }), delete s._childConstructors) : n._childConstructors.push(o), e.widget.bridge(t, o), o }, e.widget.extend = function (n) { var i = r.call(arguments, 1), s = 0, o = i.length, u, a; for (; s < o; s++) for (u in i[s]) a = i[s][u], i[s].hasOwnProperty(u) && a !== t && (e.isPlainObject(a) ? n[u] = e.isPlainObject(n[u]) ? e.widget.extend({}, n[u], a) : e.widget.extend({}, a) : n[u] = a); return n }, e.widget.bridge = function (n, i) { var s = i.prototype.widgetFullName || n; e.fn[n] = function (o) { var u = typeof o == "string", a = r.call(arguments, 1), f = this; return o = !u && a.length ? e.widget.extend.apply(null, [o].concat(a)) : o, u ? this.each(function () { var r, i = e.data(this, s); if (o === "instance") return f = i, !1; if (!i) return e.error("cannot call methods on " + n + " prior to initialization; " + "attempted to call method '" + o + "'"); if (!e.isFunction(i[o]) || o.charAt(0) === "_") return e.error("no such method '" + o + "' for " + n + " widget instance"); r = i[o].apply(i, a); if (r !== i && r !== t) return f = r && r.jquery ? f.pushStack(r.get()) : r, !1 }) : this.each(function () { var t = e.data(this, s); t ? t.option(o || {})._init() : e.data(this, s, new i(o, this)) }), f } }, e.Widget = function () { }, e.Widget._childConstructors = [], e.Widget.prototype = { widgetName: "widget", widgetEventPrefix: "", defaultElement: "<div>", options: { disabled: !1, create: null }, _createWidget: function (t, r) { r = e(r || this.defaultElement || this)[0], this.element = e(r), this.uuid = n++, this.eventNamespace = "." + this.widgetName + this.uuid, this.options = e.widget.extend({}, this.options, this._getCreateOptions(), t), this.bindings = e(), this.hoverable = e(), this.focusable = e(), r !== this && (e.data(r, this.widgetFullName, this), this._on(!0, this.element, { remove: function (e) { e.target === r && this.destroy() } }), this.document = e(r.style ? r.ownerDocument : r.document || r), this.window = e(this.document[0].defaultView || this.document[0].parentWindow)), this._create(), this._trigger("create", null, this._getCreateEventData()), this._init() }, _getCreateOptions: e.noop, _getCreateEventData: e.noop, _create: e.noop, _init: e.noop, destroy: function () { this._destroy(), this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.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: e.noop, widget: function () { return this.element }, option: function (n, r) { var i = n, s, o, u; if (arguments.length === 0) return e.widget.extend({}, this.options); if (typeof n == "string") { i = {}, s = n.split("."), n = s.shift(); if (s.length) { o = i[n] = e.widget.extend({}, this.options[n]); for (u = 0; u < s.length - 1; u++) o[s[u]] = o[s[u]] || {}, o = o[s[u]]; n = s.pop(); if (r === t) return o[n] === t ? null : o[n]; o[n] = r } else { if (r === t) return this.options[n] === t ? null : this.options[n]; i[n] = r } } return this._setOptions(i), this }, _setOptions: function (e) { var t; for (t in e) this._setOption(t, e[t]); return this }, _setOption: function (e, t) { return this.options[e] = t, e === "disabled" && (this.widget().toggleClass(this.widgetFullName + "-disabled", !!t), this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus")), this }, enable: function () { return this._setOptions({ disabled: !1 }) }, disable: function () { return this._setOptions({ disabled: !0 }) }, _on: function (t, n, r) { var i, s = this; typeof t != "boolean" && (r = n, n = t, t = !1), r ? (n = i = e(n), this.bindings = this.bindings.add(n)) : (r = n, n = this.element, i = this.widget()), e.each(r, function (r, o) { function u() { if (!t && (s.options.disabled === !0 || e(this).hasClass("ui-state-disabled"))) return; return (typeof o == "string" ? s[o] : o).apply(s, arguments) } typeof o != "string" && (u.guid = o.guid = o.guid || u.guid || e.guid++); var a = r.match(/^(\w+)\s*(.*)$/), f = a[1] + s.eventNamespace, l = a[2]; l ? i.delegate(l, f, u) : n.bind(f, u) }) }, _off: function (e, t) { t = (t || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, e.unbind(t).undelegate(t) }, _delay: function (e, t) { function n() { return (typeof e == "string" ? r[e] : e).apply(r, arguments) } var r = this; return setTimeout(n, t || 0) }, _hoverable: function (t) { this.hoverable = this.hoverable.add(t), this._on(t, { mouseenter: function (t) { e(t.currentTarget).addClass("ui-state-hover") }, mouseleave: function (t) { e(t.currentTarget).removeClass("ui-state-hover") } }) }, _focusable: function (t) { this.focusable = this.focusable.add(t), this._on(t, { focusin: function (t) { e(t.currentTarget).addClass("ui-state-focus") }, focusout: function (t) { e(t.currentTarget).removeClass("ui-state-focus") } }) }, _trigger: function (t, n, r) { var i, s, o = this.options[t]; r = r || {}, n = e.Event(n), n.type = (t === this.widgetEventPrefix ? t : this.widgetEventPrefix + t).toLowerCase(), n.target = this.element[0], s = n.originalEvent; if (s) for (i in s) i in n || (n[i] = s[i]); return this.element.trigger(n, r), !(e.isFunction(o) && o.apply(this.element[0], [n].concat(r)) === !1 || n.isDefaultPrevented()) } }, e.each({ show: "fadeIn", hide: "fadeOut" }, function (t, n) { e.Widget.prototype["_" + t] = function (r, i, s) { typeof i == "string" && (i = { effect: i }); var o, u = i ? i === !0 || typeof i == "number" ? n : i.effect || n : t; i = i || {}, typeof i == "number" && (i = { duration: i }), o = !e.isEmptyObject(i), i.complete = s, i.delay && r.delay(i.delay), o && e.effects && e.effects.effect[u] ? r[t](i) : u !== t && r[u] ? r[u](i.duration, i.easing, s) : r.queue(function (n) { e(this)[t](), s && s.call(r[0]), n() }) } }) }(e), function (e, t) { var n = /[A-Z]/g, r = function (e) { return "-" + e.toLowerCase() }; e.extend(e.Widget.prototype, { _getCreateOptions: function () { var t, i, s = this.element[0], o = {}; if (!e.mobile.getAttribute(s, "defaults")) for (t in this.options) i = e.mobile.getAttribute(s, t.replace(n, r)), i != null && (o[t] = i); return o } }), e.mobile.widget = e.Widget }(e), function (e, t) { e.mobile.widgets = {}; var n = e.widget, r = e.mobile.keepNative; e.widget = function (n) { return function () { var r = n.apply(this, arguments), i = r.prototype.widgetName; return r.initSelector = r.prototype.initSelector !== t ? r.prototype.initSelector : ":jqmData(role='" + i + "')", e.mobile.widgets[i] = r, r } }(e.widget), e.extend(e.widget, n), e.mobile.document.on("create", function (t) { e(t.target).enhanceWithin() }), e.widget("mobile.page", { options: { theme: "a", domCache: !1, keepNativeDefault: e.mobile.keepNative, contentTheme: null, enhanced: !1 }, _createWidget: function () { e.Widget.prototype._createWidget.apply(this, arguments), this._trigger("init") }, _create: function () { if (this._trigger("beforecreate") === !1) return !1; this.options.enhanced || this._enhance(), this._on(this.element, { pagebeforehide: "removeContainerBackground", pagebeforeshow: "_handlePageBeforeShow" }), this.element.enhanceWithin(), e.mobile.getAttribute(this.element[0], "role") === "dialog" && e.mobile.dialog && this.element.dialog() }, _enhance: function () { var n = "data-" + e.mobile.ns, r = this; this.options.role && this.element.attr("data-" + e.mobile.ns + "role", this.options.role), this.element.attr("tabindex", "0").addClass("ui-page ui-page-theme-" + this.options.theme), this.element.find("[" + n + "role='content']").each(function () { var i = e(this), s = this.getAttribute(n + "theme") || t; r.options.contentTheme = s || r.options.contentTheme || r.options.dialog && r.options.theme || r.element.jqmData("role") === "dialog" && r.options.theme, i.addClass("ui-content"), r.options.contentTheme && i.addClass("ui-body-" + r.options.contentTheme), i.attr("role", "main").addClass("ui-content") }) }, bindRemove: function (t) { var n = this.element; !n.data("mobile-page").options.domCache && n.is(":jqmData(external-page='true')") && n.bind("pagehide.remove", t || function (t, n) { if (!n.samePage) { var r = e(this), i = new e.Event("pageremove"); r.trigger(i), i.isDefaultPrevented() || r.removeWithDependents() } }) }, _setOptions: function (n) { n.theme !== t && this.element.removeClass("ui-page-theme-" + this.options.theme).addClass("ui-page-theme-" + n.theme), n.contentTheme !== t && this.element.find("[data-" + e.mobile.ns + "='content']").removeClass("ui-body-" + this.options.contentTheme).addClass("ui-body-" + n.contentTheme) }, _handlePageBeforeShow: function () { this.setContainerBackground() }, removeContainerBackground: function () { this.element.closest(":mobile-pagecontainer").pagecontainer({ theme: "none" }) }, setContainerBackground: function (e) { this.element.parent().pagecontainer({ theme: e || this.options.theme }) }, keepNativeSelector: function () { var t = this.options, n = e.trim(t.keepNative || ""), i = e.trim(e.mobile.keepNative), s = e.trim(t.keepNativeDefault), o = r === i ? "" : i, u = o === "" ? s : ""; return (n ? [n] : []).concat(o ? [o] : []).concat(u ? [u] : []).join(", ") } }) }(e), function (e, t) { e.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 }, e.mobile.page.prototype.options.degradeInputs = e.mobile.degradeInputs, e.mobile.degradeInputsWithin = function (t) { t = e(t), t.find("input").not(e.mobile.page.prototype.keepNativeSelector()).each(function () { var t = e(this), n = this.getAttribute("type"), r = e.mobile.degradeInputs[n] || "text", i, s, o, u; e.mobile.degradeInputs[n] && (i = e("<div>").html(t.clone()).html(), s = i.indexOf(" type=") > -1, o = s ? /\s+type=["']?\w+['"]?/ : /\/?>/, u = ' type="' + r + '" data-' + e.mobile.ns + 'type="' + n + '"' + (s ? "" : ">"), t.replaceWith(i.replace(o, u))) }) } }(e), function (e, t) { e.fn.fieldcontain = function () { return this.addClass("ui-field-contain") } }(e), function (e, t) { e.fn.grid = function (t) { return this.each(function () { var n = e(this), r = e.extend({ grid: null }, t), i = n.children(), s = { solo: 1, a: 2, b: 3, c: 4, d: 5 }, o = r.grid, u, a; if (!o) if (i.length <= 5) for (a in s) s[a] === i.length && (o = a); else o = "a", n.addClass("ui-grid-duo"); u = s[o], n.addClass("ui-grid-" + o), i.filter(":nth-child(" + u + "n+1)").addClass("ui-block-a"), u > 1 && i.filter(":nth-child(" + u + "n+2)").addClass("ui-block-b"), u > 2 && i.filter(":nth-child(" + u + "n+3)").addClass("ui-block-c"), u > 3 && i.filter(":nth-child(" + u + "n+4)").addClass("ui-block-d"), u > 4 && i.filter(":nth-child(" + u + "n+5)").addClass("ui-block-e") }) } }(e), function (e, n) { var r, i, s = "&ui-state=dialog"; e.mobile.path = r = { uiStateKey: "&ui-state", urlParseRE: /^\s*(((([^:\/#\?]+:)?(?:(\/\/)((?:(([^:@\/#\?]+)(?:\:([^:@\/#\?]+))?)@)?(([^:\/#\?\]\[]+|\[[^\/\]@#?]+\])(?:\:([0-9]+))?))?)?)?((\/?(?:[^\/\?#]+\/+)*)([^\?#]*)))?(\?[^#]+)?)(#.*)?/, getLocation: function (e) { var t = this.parseUrl(e || location.href), n = e ? t : location, r = t.hash; return r = r === "#" ? "" : r, n.protocol + t.doubleSlash + n.host + (n.protocol !== "" && n.pathname.substring(0, 1) !== "/" ? "/" : "") + n.pathname + n.search + r }, getDocumentUrl: function (t) { return t ? e.extend({}, r.documentUrl) : r.documentUrl.href }, parseLocation: function () { return this.parseUrl(this.getLocation()) }, parseUrl: function (t) { if (e.type(t) === "object") return t; var n = r.urlParseRE.exec(t || "") || []; return { href: n[0] || "", hrefNoHash: n[1] || "", hrefNoSearch: n[2] || "", domain: n[3] || "", protocol: n[4] || "", doubleSlash: n[5] || "", authority: n[6] || "", username: n[8] || "", password: n[9] || "", host: n[10] || "", hostname: n[11] || "", port: n[12] || "", pathname: n[13] || "", directory: n[14] || "", filename: n[15] || "", search: n[16] || "", hash: n[17] || "" } }, makePathAbsolute: function (e, t) { var n, r, i, s; if (e && e.charAt(0) === "/") return e; e = e || "", t = t ? t.replace(/^\/|(\/[^\/]*|[^\/]+)$/g, "") : "", n = t ? t.split("/") : [], r = e.split("/"); for (i = 0; i < r.length; i++) { s = r[i]; switch (s) { case ".": break; case "..": n.length && n.pop(); break; default: n.push(s) } } return "/" + n.join("/") }, isSameDomain: function (e, t) { return r.parseUrl(e).domain.toLowerCase() === r.parseUrl(t).domain.toLowerCase() }, isRelativeUrl: function (e) { return r.parseUrl(e).protocol === "" }, isAbsoluteUrl: function (e) { return r.parseUrl(e).protocol !== "" }, makeUrlAbsolute: function (e, t) { if (!r.isRelativeUrl(e)) return e; t === n && (t = this.documentBase); var i = r.parseUrl(e), s = r.parseUrl(t), o = i.protocol || s.protocol, u = i.protocol ? i.doubleSlash : i.doubleSlash || s.doubleSlash, a = i.authority || s.authority, f = i.pathname !== "", l = r.makePathAbsolute(i.pathname || s.filename, s.pathname), c = i.search || !f && s.search || "", h = i.hash; return o + u + a + l + c + h }, addSearchParams: function (t, n) { var i = r.parseUrl(t), s = typeof n == "object" ? e.param(n) : n, o = i.search || "?"; return i.hrefNoSearch + o + (o.charAt(o.length - 1) !== "?" ? "&" : "") + s + (i.hash || "") }, convertUrlToDataUrl: function (e) { var n = e, i = r.parseUrl(e); return r.isEmbeddedPage(i) ? n = i.hash.split(s)[0].replace(/^#/, "").replace(/\?.*$/, "") : r.isSameDomain(i, this.documentBase) && (n = i.hrefNoHash.replace(this.documentBase.domain, "").split(s)[0]), t.decodeURIComponent(n) }, get: function (e) { return e === n && (e = r.parseLocation().hash), r.stripHash(e).replace(/[^\/]*\.[^\/*]+$/, "") }, set: function (e) { location.hash = e }, isPath: function (e) { return /\//.test(e) }, clean: function (e) { return e.replace(this.documentBase.domain, "") }, stripHash: function (e) { return e.replace(/^#/, "") }, stripQueryParams: function (e) { return e.replace(/\?.*$/, "") }, cleanHash: function (e) { return r.stripHash(e.replace(/\?.*$/, "").replace(s, "")) }, isHashValid: function (e) { return /^#[^#]+$/.test(e) }, isExternal: function (e) { var t = r.parseUrl(e); return !!t.protocol && t.domain.toLowerCase() !== this.documentUrl.domain.toLowerCase() }, hasProtocol: function (e) { return /^(:?\w+:)/.test(e) }, isEmbeddedPage: function (e) { var t = r.parseUrl(e); return t.protocol !== "" ? !this.isPath(t.hash) && t.hash && (t.hrefNoHash === this.documentUrl.hrefNoHash || this.documentBaseDiffers && t.hrefNoHash === this.documentBase.hrefNoHash) : /^#/.test(t.href) }, squash: function (e, t) { var n, i, s, o, u, a = this.isPath(e), f = this.parseUrl(e), l = f.hash, c = ""; t || (a ? t = r.getLocation() : (u = r.getDocumentUrl(!0), r.isPath(u.hash) ? t = r.squash(u.href) : t = u.href)), i = a ? r.stripHash(e) : e, i = r.isPath(f.hash) ? r.stripHash(f.hash) : i, o = i.indexOf(this.uiStateKey), o > -1 && (c = i.slice(o), i = i.slice(0, o)), n = r.makeUrlAbsolute(i, t), s = this.parseUrl(n).search; if (a) { if (r.isPath(l) || l.replace("#", "").indexOf(this.uiStateKey) === 0) l = ""; c && l.indexOf(this.uiStateKey) === -1 && (l += c), l.indexOf("#") === -1 && l !== "" && (l = "#" + l), n = r.parseUrl(n), n = n.protocol + n.doubleSlash + n.host + n.pathname + s + l } else n += n.indexOf("#") > -1 ? c : "#" + c; return n }, isPreservableHash: function (e) { return e.replace("#", "").indexOf(this.uiStateKey) === 0 }, hashToSelector: function (e) { var t = e.substring(0, 1) === "#"; return t && (e = e.substring(1)), (t ? "#" : "") + e.replace(/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g, "\\$1") }, getFilePath: function (e) { return e && e.split(s)[0] }, isFirstPageUrl: function (t) { var i = r.parseUrl(r.makeUrlAbsolute(t, this.documentBase)), s = i.hrefNoHash === this.documentUrl.hrefNoHash || this.documentBaseDiffers && i.hrefNoHash === this.documentBase.hrefNoHash, o = e.mobile.firstPage, u = o && o[0] ? o[0].id : n; return s && (!i.hash || i.hash === "#" || u && i.hash.replace(/^#/, "") === u) }, isPermittedCrossDomainRequest: function (t, n) { return e.mobile.allowCrossDomainPages && (t.protocol === "file:" || t.protocol === "content:") && n.search(/^https?:/) !== -1 } }, r.documentUrl = r.parseLocation(), i = e("head").find("base"), r.documentBase = i.length ? r.parseUrl(r.makeUrlAbsolute(i.attr("href"), r.documentUrl.href)) : r.documentUrl, r.documentBaseDiffers = r.documentUrl.hrefNoHash !== r.documentBase.hrefNoHash, r.getDocumentBase = function (t) { return t ? e.extend({}, r.documentBase) : r.documentBase.href }, e.extend(e.mobile, { getDocumentUrl: r.getDocumentUrl, getDocumentBase: r.getDocumentBase }) }(e), function (e, t) { e.mobile.History = function (e, t) { this.stack = e || [], this.activeIndex = t || 0 }, e.extend(e.mobile.History.prototype, { getActive: function () { return this.stack[this.activeIndex] }, getLast: function () { return this.stack[this.previousIndex] }, getNext: function () { return this.stack[this.activeIndex + 1] }, getPrev: function () { return this.stack[this.activeIndex - 1] }, add: function (e, t) { t = t || {}, this.getNext() && this.clearForward(), t.hash && t.hash.indexOf("#") === -1 && (t.hash = "#" + t.hash), t.url = e, this.stack.push(t), this.activeIndex = this.stack.length - 1 }, clearForward: function () { this.stack = this.stack.slice(0, this.activeIndex + 1) }, find: function (e, t, n) { t = t || this.stack; var r, i, s = t.length, o; for (i = 0; i < s; i++) { r = t[i]; if (decodeURIComponent(e) === decodeURIComponent(r.url) || decodeURIComponent(e) === decodeURIComponent(r.hash)) { o = i; if (n) return o } } return o }, closest: function (e) { var n, r = this.activeIndex; return n = this.find(e, this.stack.slice(0, r)), n === t && (n = this.find(e, this.stack.slice(r), !0), n = n === t ? n : n + r), n }, direct: function (n) { var r = this.closest(n.url), i = this.activeIndex; r !== t && (this.activeIndex = r, this.previousIndex = i), r < i ? (n.present || n.back || e.noop)(this.getActive(), "back") : r > i ? (n.present || n.forward || e.noop)(this.getActive(), "forward") : r === t && n.missing && n.missing(this.getActive()) } }) }(e), function (e, r) { var i = e.mobile.path, s = location.href; e.mobile.Navigator = function (t) { this.history = t, this.ignoreInitialHashChange = !0, e.mobile.window.bind({ "popstate.history": e.proxy(this.popstate, this), "hashchange.history": e.proxy(this.hashchange, this) }) }, e.extend(e.mobile.Navigator.prototype, { squash: function (r, s) { var o, u, a = i.isPath(r) ? i.stripHash(r) : r; return u = i.squash(r), o = e.extend({ hash: a, url: u }, s), t.history.replaceState(o, o.title || n.title, u), o }, hash: function (e, t) { var n, r, s, o; return n = i.parseUrl(e), r = i.parseLocation(), r.pathname + r.search === n.pathname + n.search ? s = n.hash ? n.hash : n.pathname + n.search : i.isPath(e) ? (o = i.parseUrl(t), s = o.pathname + o.search + (i.isPreservableHash(o.hash) ? o.hash.replace("#", "") : "")) : s = e, s }, go: function (r, s, o) { var u, a, f, l, c = e.event.special.navigate.isPushStateEnabled(); a = i.squash(r), f = this.hash(r, a), o && f !== i.stripHash(i.parseLocation().hash) && (this.preventNextHashChange = o), this.preventHashAssignPopState = !0, t.location.hash = f, this.preventHashAssignPopState = !1, u = e.extend({ url: a, hash: f, title: n.title }, s), c && (l = new e.Event("popstate"), l.originalEvent = { type: "popstate", state: null }, this.squash(r, u), o || (this.ignorePopState = !0, e.mobile.window.trigger(l))), this.history.add(u.url, u) }, popstate: function (t) { var n, r; if (!e.event.special.navigate.isPushStateEnabled()) return; if (this.preventHashAssignPopState) { this.preventHashAssignPopState = !1, t.stopImmediatePropagation(); return } if (this.ignorePopState) { this.ignorePopState = !1; return } if (!t.originalEvent.state && this.history.stack.length === 1 && this.ignoreInitialHashChange) { this.ignoreInitialHashChange = !1; if (location.href === s) { t.preventDefault(); return } } n = i.parseLocation().hash; if (!t.originalEvent.state && n) { r = this.squash(n), this.history.add(r.url, r), t.historyState = r; return } this.history.direct({ url: (t.originalEvent.state || {}).url || n, present: function (n, r) { t.historyState = e.extend({}, n), t.historyState.direction = r } }) }, hashchange: function (t) { var r, s; if (!e.event.special.navigate.isHashChangeEnabled() || e.event.special.navigate.isPushStateEnabled()) return; if (this.preventNextHashChange) { this.preventNextHashChange = !1, t.stopImmediatePropagation(); return } r = this.history, s = i.parseLocation().hash, this.history.direct({ url: s, present: function (n, r) { t.hashchangeState = e.extend({}, n), t.hashchangeState.direction = r }, missing: function () { r.add(s, { hash: s, title: n.title }) } }) } }) }(e), function (e, t) { e.mobile.navigate = function (t, n, r) { e.mobile.navigate.navigator.go(t, n, r) }, e.mobile.navigate.history = new e.mobile.History, e.mobile.navigate.navigator = new e.mobile.Navigator(e.mobile.navigate.history); var n = e.mobile.path.parseLocation(); e.mobile.navigate.history.add(n.href, { hash: n.hash }) }(e), function (e, t) { var n = e("head").children("base"), r = { element: n.length ? n : e("<base>", { href: e.mobile.path.documentBase.hrefNoHash }).prependTo(e("head")), linkSelector: "[src], link[href], a[rel='external'], :jqmData(ajax='false'), a[target]", set: function (t) { if (!e.mobile.dynamicBaseEnabled) return; e.support.dynamicBaseTag && r.element.attr("href", e.mobile.path.makeUrlAbsolute(t, e.mobile.path.documentBase)) }, rewrite: function (t, n) { var i = e.mobile.path.get(t); n.find(r.linkSelector).each(function (t, n) { var r = e(n).is("[href]") ? "href" : e(n).is("[src]") ? "src" : "action", s = e.mobile.path.parseLocation(), o = e(n).attr(r); o = o.replace(s.protocol + s.doubleSlash + s.host + s.pathname, ""), /^(\w+:|#|\/)/.test(o) || e(n).attr(r, i + o) }) }, reset: function () { r.element.attr("href", e.mobile.path.documentBase.hrefNoSearch) } }; e.mobile.base = r }(e), function (e, t, n) { e.mobile.Transition = function () { this.init.apply(this, arguments) }, e.extend(e.mobile.Transition.prototype, { toPreClass: " ui-page-pre-in", init: function (t, n, r, i) { e.extend(this, { name: t, reverse: n, $to: r, $from: i, deferred: new e.Deferred }) }, cleanFrom: function () { this.$from.removeClass(e.mobile.activePageClass + " out in reverse " + this.name).height("") }, beforeDoneIn: function () { }, beforeDoneOut: function () { }, beforeStartOut: function () { }, doneIn: function () { this.beforeDoneIn(), this.$to.removeClass("out in reverse " + this.name).height(""), this.toggleViewportClass(), e.mobile.window.scrollTop() !== this.toScroll && this.scrollPage(), this.sequential || this.$to.addClass(e.mobile.activePageClass), this.deferred.resolve(this.name, this.reverse, this.$to, this.$from, !0) }, doneOut: function (e, t, n, r) { this.beforeDoneOut(), this.startIn(e, t, n, r) }, hideIn: function (e) { this.$to.css("z-index", -10), e.call(this), this.$to.css("z-index", "") }, scrollPage: function () { e.event.special.scrollstart.enabled = !1, (e.mobile.hideUrlBar || this.toScroll !== e.mobile.defaultHomeScroll) && t.scrollTo(0, this.toScroll), setTimeout(function () { e.event.special.scrollstart.enabled = !0 }, 150) }, startIn: function (t, n, r, i) { this.hideIn(function () { this.$to.addClass(e.mobile.activePageClass + this.toPreClass), i || e.mobile.focusPage(this.$to), this.$to.height(t + this.toScroll), r || this.scrollPage() }), this.$to.removeClass(this.toPreClass).addClass(this.name + " in " + n), r ? this.doneIn() : this.$to.animationComplete(e.proxy(function () { this.doneIn() }, this)) }, startOut: function (t, n, r) { this.beforeStartOut(t, n, r), this.$from.height(t + e.mobile.window.scrollTop()).addClass(this.name + " out" + n) }, toggleViewportClass: function () { e.mobile.pageContainer.toggleClass("ui-mobile-viewport-transitioning viewport-" + this.name) }, transition: function () { var t, n = this.reverse ? " reverse" : "", r = e.mobile.getScreenHeight(), i = e.mobile.maxTransitionWidth !== !1 && e.mobile.window.width() > e.mobile.maxTransitionWidth; return this.toScroll = e.mobile.navigate.history.getActive().lastScroll || e.mobile.defaultHomeScroll, t = !e.support.cssTransitions || !e.support.cssAnimations || i || !this.name || this.name === "none" || Math.max(e.mobile.window.scrollTop(), this.toScroll) > e.mobile.getMaxScrollForTransition(), this.toggleViewportClass(), this.$from && !t ? this.startOut(r, n, t) : this.doneOut(r, n, t, !0), this.deferred.promise() } }) }(e, this), function (e) { e.mobile.SerialTransition = function () { this.init.apply(this, arguments) }, e.extend(e.mobile.SerialTransition.prototype, e.mobile.Transition.prototype, { sequential: !0, beforeDoneOut: function () { this.$from && this.cleanFrom() }, beforeStartOut: function (t, n, r) { this.$from.animationComplete(e.proxy(function () { this.doneOut(t, n, r) }, this)) } }) }(e), function (e) { e.mobile.ConcurrentTransition = function () { this.init.apply(this, arguments) }, e.extend(e.mobile.ConcurrentTransition.prototype, e.mobile.Transition.prototype, { sequential: !1, beforeDoneIn: function () { this.$from && this.cleanFrom() }, beforeStartOut: function (e, t, n) { this.doneOut(e, t, n) } }) }(e), function (e) { var t = function () { return e.mobile.getScreenHeight() * 3 }; e.mobile.transitionHandlers = { sequential: e.mobile.SerialTransition, simultaneous: e.mobile.ConcurrentTransition }, e.mobile.defaultTransitionHandler = e.mobile.transitionHandlers.sequential, e.mobile.transitionFallbacks = {}, e.mobile._maybeDegradeTransition = function (t) { return t && !e.support.cssTransform3d && e.mobile.transitionFallbacks[t] && (t = e.mobile.transitionFallbacks[t]), t }, e.mobile.getMaxScrollForTransition = e.mobile.getMaxScrollForTransition || t }(e), function (e, r) { e.widget("mobile.pagecontainer", { options: { theme: "a" }, initSelector: !1, _create: function () { 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", e.proxy(function () { this.setLastScrollEnabled = !0 }, this)) }, _setOptions: function (e) { e.theme !== r && e.theme !== "none" ? this.element.removeClass("ui-overlay-" + this.options.theme).addClass("ui-overlay-" + e.theme) : e.theme !== r && this.element.removeClass("ui-overlay-" + this.options.theme), this._super(e) }, _disableRecordScroll: function () { this.setLastScrollEnabled = !1 }, _enableRecordScroll: function () { this.setLastScrollEnabled = !0 }, _afterContentChange: function () { this.setLastScrollEnabled = !0, this._off(this.window, "scrollstop"), this._on(this.window, { scrollstop: "_delayedRecordScroll" }) }, _recordScroll: function () { if (!this.setLastScrollEnabled) return; var e = this._getActiveHistory(), t, n, r; e && (t = this._getScroll(), n = this._getMinScroll(), r = this._getDefaultScroll(), e.lastScroll = t < n ? r : t) }, _delayedRecordScroll: function () { setTimeout(e.proxy(this, "_recordScroll"), 100) }, _getScroll: function () { return this.window.scrollTop() }, _getMinScroll: function () { return e.mobile.minScrollBack }, _getDefaultScroll: function () { return e.mobile.defaultHomeScroll }, _filterNavigateEvents: function (t, n) { var r; if (t.originalEvent && t.originalEvent.isDefaultPrevented()) return; r = t.originalEvent.type.indexOf("hashchange") > -1 ? n.state.hash : n.state.url, r || (r = this._getHash()); if (!r || r === "#" || r.indexOf("#" + e.mobile.path.uiStateKey) === 0) r = location.href; this._handleNavigate(r, n.state) }, _getHash: function () { return e.mobile.path.parseLocation().hash }, getActivePage: function () { return this.activePage }, _getInitialContent: function () { return e.mobile.firstPage }, _getHistory: function () { return e.mobile.navigate.history }, _getActiveHistory: function () { return this._getHistory().getActive() }, _getDocumentBase: function () { return e.mobile.path.documentBase }, back: function () { this.go(-1) }, forward: function () { this.go(1) }, go: function (n) { if (e.mobile.hashListeningEnabled) t.history.go(n); else { var r = e.mobile.navigate.history.activeIndex, i = r + parseInt(n, 10), s = e.mobile.navigate.history.stack[i].url, o = n >= 1 ? "forward" : "back"; e.mobile.navigate.history.activeIndex = i, e.mobile.navigate.history.previousIndex = r, this.change(s, { direction: o, changeHash: !1, fromHashChange: !0 }) } }, _handleDestination: function (t) { var n; return e.type(t) === "string" && (t = e.mobile.path.stripHash(t)), t && (n = this._getHistory(), t = e.mobile.path.isPath(t) ? t : e.mobile.path.makeUrlAbsolute("#" + t, this._getDocumentBase())), t || this._getInitialContent() }, _transitionFromHistory: function (e, t) { var n = this._getHistory(), r = e === "back" ? n.getLast() : n.getActive(); return r && r.transition || t }, _handleDialog: function (t, n) { var r, i, s = this.getActivePage(); return s && !s.data("mobile-dialog") ? (n.direction === "back" ? this.back() : this.forward(), !1) : (r = n.pageUrl, i = this._getActiveHistory(), e.extend(t, { role: i.role, transition: this._transitionFromHistory(n.direction, t.transition), reverse: n.direction === "back" }), r) }, _handleNavigate: function (t, n) { var r = e.mobile.path.stripHash(t), i = this._getHistory(), s = i.stack.length === 0 ? "none" : this._transitionFromHistory(n.direction), o = { changeHash: !1, fromHashChange: !0, reverse: n.direction === "back" }; e.extend(o, n, { transition: s }); if (i.activeIndex > 0 && r.indexOf(e.mobile.dialogHashKey) > -1) { r = this._handleDialog(o, n); if (r === !1) return } this._changeContent(this._handleDestination(r), o) }, _changeContent: function (t, n) { e.mobile.changePage(t, n) }, _getBase: function () { return e.mobile.base }, _getNs: function () { return e.mobile.ns }, _enhance: function (e, t) { return e.page({ role: t }) }, _include: function (e, t) { e.appendTo(this.element), this._enhance(e, t.role), e.page("bindRemove") }, _find: function (t) { var n = this._createFileUrl(t), r = this._createDataUrl(t), i, s = this._getInitialContent(); return i = this.element.children("[data-" + this._getNs() + "url='" + e.mobile.path.hashToSelector(r) + "']"), i.length === 0 && r && !e.mobile.path.isPath(r) && (i = this.element.children(e.mobile.path.hashToSelector("#" + r)).attr("data-" + this._getNs() + "url", r).jqmData("url", r)), i.length === 0 && e.mobile.path.isFirstPageUrl(n) && s && s.parent().length && (i = e(s)), i }, _getLoader: function () { return e.mobile.loading() }, _showLoading: function (t, n, r, i) { if (this._loadMsg) return; this._loadMsg = setTimeout(e.proxy(function () { this._getLoader().loader("show", n, r, i), this._loadMsg = 0 }, this), t) }, _hideLoading: function () { clearTimeout(this._loadMsg), this._loadMsg = 0, this._getLoader().loader("hide") }, _showError: function () { this._hideLoading(), this._showLoading(0, e.mobile.pageLoadErrorMessageTheme, e.mobile.pageLoadErrorMessage, !0), setTimeout(e.proxy(this, "_hideLoading"), 1500) }, _parse: function (t, n) { var r, i = e("<div></div>"); return i.get(0).innerHTML = t, r = i.find(":jqmData(role='page'), :jqmData(role='dialog')").first(), r.length || (r = e("<div data-" + this._getNs() + "role='page'>" + (t.split(/<\/?body[^>]*>/gmi)[1] || "") + "</div>")), r.attr("data-" + this._getNs() + "url", this._createDataUrl(n)).attr("data-" + this._getNs() + "external-page", !0), r }, _setLoadedTitle: function (t, n) { var r = n.match(/<title[^>]*>([^<]*)/) && RegExp.$1; r && !t.jqmData("title") && (r = e("<div>" + r + "</div>").text(), t.jqmData("title", r)) }, _isRewritableBaseTag: function () { return e.mobile.dynamicBaseEnabled && !e.support.dynamicBaseTag }, _createDataUrl: function (t) { return e.mobile.path.convertUrlToDataUrl(t) }, _createFileUrl: function (t) { return e.mobile.path.getFilePath(t) }, _triggerWithDeprecated: function (t, n, r) { var i = e.Event("page" + t), s = e.Event(this.widgetName + t); return (r || this.element).trigger(i, n), this._trigger(t, s, n), { deprecatedEvent: i, event: s } }, _loadSuccess: function (t, n, i, s) { var o = this._createFileUrl(t); return e.proxy(function (u, a, f) { var l, c = new RegExp("(<[^>]+\\bdata-" + this._getNs() + "role=[\"']?page[\"']?[^>]*>)"), h = new RegExp("\\bdata-" + this._getNs() + "url=[\"']?([^\"'>]*)[\"']?"); c.test(u) && RegExp.$1 && h.test(RegExp.$1) && RegExp.$1 && (o = e.mobile.path.getFilePath(e("<div>" + RegExp.$1 + "</div>").text()), o = this.window[0].encodeURIComponent(o)), i.prefetch === r && this._getBase().set(o), l = this._parse(u, o), this._setLoadedTitle(l, u), n.xhr = f, n.textStatus = a, n.page = l, n.content = l, n.toPage = l; if (this._triggerWithDeprecated("load", n).event.isDefaultPrevented()) return; this._isRewritableBaseTag() && l && this._getBase().rewrite(o, l), this._include(l, i), i.showLoadMsg && this._hideLoading(), s.resolve(t, i, l) }, this) }, _loadDefaults: { type: "get", data: r, reloadPage: !1, reload: !1, role: r, showLoadMsg: !1, loadMsgDelay: 50 }, load: function (t, n) { var i = n && n.deferred || e.Deferred(), s = n && n.reload === r && n.reloadPage !== r ? { reload: n.reloadPage } : {}, o = e.extend({}, this._loadDefaults, n, s), u = null, a = e.mobile.path.makeUrlAbsolute(t, this._findBaseWithDefault()), f, l, c, h; return o.data && o.type === "get" && (a = e.mobile.path.addSearchParams(a, o.data), o.data = r), o.data && o.type === "post" && (o.reload = !0), f = this._createFileUrl(a), l = this._createDataUrl(a), u = this._find(a), u.length === 0 && e.mobile.path.isEmbeddedPage(f) && !e.mobile.path.isFirstPageUrl(f) ? (i.reject(a, o), i.promise()) : (this._getBase().reset(), u.length && !o.reload ? (this._enhance(u, o.role), i.resolve(a, o, u), o.prefetch || this._getBase().set(t), i.promise()) : (h = { url: t, absUrl: a, toPage: t, prevPage: n ? n.fromPage : r, dataUrl: l, deferred: i, options: o }, c = this._triggerWithDeprecated("beforeload", h), c.deprecatedEvent.isDefaultPrevented() || c.event.isDefaultPrevented() ? i.promise() : (o.showLoadMsg && this._showLoading(o.loadMsgDelay), o.prefetch === r && this._getBase().reset(), !e.mobile.allowCrossDomainPages && !e.mobile.path.isSameDomain(e.mobile.path.documentUrl, a) ? (i.reject(a, o), i.promise()) : (e.ajax({ url: f, type: o.type, data: o.data, contentType: o.contentType, dataType: "html", success: this._loadSuccess(a, h, o, i), error: this._loadError(a, h, o, i) }), i.promise())))) }, _loadError: function (t, n, r, i) { return e.proxy(function (s, o, u) { this._getBase().set(e.mobile.path.get()), n.xhr = s, n.textStatus = o, n.errorThrown = u; var a = this._triggerWithDeprecated("loadfailed", n); if (a.deprecatedEvent.isDefaultPrevented() || a.event.isDefaultPrevented()) return; r.showLoadMsg && this._showError(), i.reject(t, r) }, this) }, _getTransitionHandler: function (t) { return t = e.mobile._maybeDegradeTransition(t), e.mobile.transitionHandlers[t] || e.mobile.defaultTransitionHandler }, _triggerCssTransitionEvents: function (t, n, r) { var i = !1; r = r || "", n && (t[0] === n[0] && (i = !0), this._triggerWithDeprecated(r + "hide", { nextPage: t, toPage: t, prevPage: n, samePage: i }, n)), this._triggerWithDeprecated(r + "show", { prevPage: n || e(""), toPage: t }, t) }, _cssTransition: function (t, n, r) { var i = r.transition, s = r.reverse, o = r.deferred, u, a; this._triggerCssTransitionEvents(t, n, "before"), this._hideLoading(), u = this._getTransitionHandler(i), a = (new u(i, s, t, n)).transition(), a.done(e.proxy(function () { this._triggerCssTransitionEvents(t, n) }, this)), a.done(function () { o.resolve.apply(o, arguments) }) }, _releaseTransitionLock: function () { s = !1, i.length > 0 && e.mobile.changePage.apply(null, i.pop()) }, _removeActiveLinkClass: function (t) { e.mobile.removeActiveLinkClass(t) }, _loadUrl: function (t, n, r) { r.target = t, r.deferred = e.Deferred(), this.load(t, r), r.deferred.done(e.proxy(function (e, t, r) { s = !1, t.absUrl = n.absUrl, this.transition(r, n, t) }, this)), r.deferred.fail(e.proxy(function () { this._removeActiveLinkClass(!0), this._releaseTransitionLock(), this._triggerWithDeprecated("changefailed", n) }, this)) }, _triggerPageBeforeChange: function (t, n, r) { var i; return n.prevPage = this.activePage, e.extend(n, { toPage: t, options: r }), e.type(t) === "string" ? n.absUrl = e.mobile.path.makeUrlAbsolute(t, this._findBaseWithDefault()) : n.absUrl = r.absUrl, i = this._triggerWithDeprecated("beforechange", n), i.event.isDefaultPrevented() || i.deprecatedEvent.isDefaultPrevented() ? !1 : !0 }, change: function (t, n) { if (s) { i.unshift(arguments); return } var r = e.extend({}, e.mobile.changePage.defaults, n), o = {}; r.fromPage = r.fromPage || this.activePage; if (!this._triggerPageBeforeChange(t, o, r)) return; t = o.toPage, e.type(t) === "string" ? (s = !0, this._loadUrl(t, o, r)) : this.transition(t, o, r) }, transition: function (t, o, u) { var a, f, l, c, h, p, d, v, m, g, y, b, w, E; if (s) { i.unshift([t, u]); return } if (!this._triggerPageBeforeChange(t, o, u)) return; o.prevPage = u.fromPage, E = this._triggerWithDeprecated("beforetransition", o); if (E.deprecatedEvent.isDefaultPrevented() || E.event.isDefaultPrevented()) return; s = !0, t[0] === e.mobile.firstPage[0] && !u.dataUrl && (u.dataUrl = e.mobile.path.documentUrl.hrefNoHash), a = u.fromPage, f = u.dataUrl && e.mobile.path.convertUrlToDataUrl(u.dataUrl) || t.jqmData("url"), l = f, c = e.mobile.path.getFilePath(f), h = e.mobile.navigate.history.getActive(), p = e.mobile.navigate.history.activeIndex === 0, d = 0, v = n.title, m = (u.role === "dialog" || t.jqmData("role") === "dialog") && t.jqmData("dialog") !== !0; if (a && a[0] === t[0] && !u.allowSamePageTransition) { s = !1, this._triggerWithDeprecated("transition", o), this._triggerWithDeprecated("change", o), u.fromHashChange && e.mobile.navigate.history.direct({ url: f }); return } t.page({ role: u.role }), u.fromHashChange && (d = u.direction === "back" ? -1 : 1); try { n.activeElement && n.activeElement.nodeName.toLowerCase() !== "body" ? e(n.activeElement).blur() : e("input:focus, textarea:focus, select:focus").blur() } catch (S) { } g = !1, m && h && (h.url && h.url.indexOf(e.mobile.dialogHashKey) > -1 && this.activePage && !this.activePage.hasClass("ui-dialog") && e.mobile.navigate.history.activeIndex > 0 && (u.changeHash = !1, g = !0), f = h.url || "", !g && f.indexOf("#") > -1 ? f += e.mobile.dialogHashKey : f += "#" + e.mobile.dialogHashKey), y = h ? t.jqmData("title") || t.children(":jqmData(role='header')").find(".ui-title").text() : v, !!y && v === n.title && (v = y), t.jqmData("title") || t.jqmData("title", v), u.transition = u.transition || (d && !p ? h.transition : r) || (m ? e.mobile.defaultDialogTransition : e.mobile.defaultPageTransition), !d && g && (e.mobile.navigate.history.getActive().pageUrl = l), f && !u.fromHashChange && (!e.mobile.path.isPath(f) && f.indexOf("#") < 0 && (f = "#" + f), b = { transition: u.transition, title: v, pageUrl: l, role: u.role }, u.changeHash !== !1 && e.mobile.hashListeningEnabled ? e.mobile.navigate(this.window[0].encodeURI(f), b, !0) : t[0] !== e.mobile.firstPage[0] && e.mobile.navigate.history.add(f, b)), n.title = v, e.mobile.activePage = t, this.activePage = t, u.reverse = u.reverse || d < 0, w = e.Deferred(), this._cssTransition(t, a, { transition: u.transition, reverse: u.reverse, deferred: w }), w.done(e.proxy(function (n, r, i, s, a) { e.mobile.removeActiveLinkClass(), u.duplicateCachedPage && u.duplicateCachedPage.remove(), a || e.mobile.focusPage(t), this._releaseTransitionLock(), this._triggerWithDeprecated("transition", o), this._triggerWithDeprecated("change", o) }, this)) }, _findBaseWithDefault: function () { var t = this.activePage && e.mobile.getClosestBaseUrl(this.activePage); return t || e.mobile.path.documentBase.hrefNoHash } }), e.mobile.navreadyDeferred = e.Deferred(); var i = [], s = !1 }(e), function (e, r) { function f(e) { while (e) { if (typeof e.nodeName == "string" && e.nodeName.toLowerCase() === "a") break; e = e.parentNode } return e } var i = e.Deferred(), s = e.Deferred(), o = function () { s.resolve(), s = null }, u = e.mobile.path.documentUrl, a = null; e.mobile.loadPage = function (t, n) { var r; return n = n || {}, r = n.pageContainer || e.mobile.pageContainer, n.deferred = e.Deferred(), r.pagecontainer("load", t, n), n.deferred.promise() }, e.mobile.back = function () { var n = t.navigator; this.phonegapNavigationEnabled && n && n.app && n.app.backHistory ? n.app.backHistory() : e.mobile.pageContainer.pagecontainer("back") }, e.mobile.focusPage = function (e) { var t = e.find("[autofocus]"), n = e.find(".ui-title:eq(0)"); if (t.length) { t.focus(); return } n.length ? n.focus() : e.focus() }, e.mobile._maybeDegradeTransition = e.mobile._maybeDegradeTransition || function (e) { return e }, e.mobile.changePage = function (t, n) { e.mobile.pageContainer.pagecontainer("change", t, n) }, e.mobile.changePage.defaults = { transition: r, reverse: !1, changeHash: !0, fromHashChange: !1, role: r, duplicateCachedPage: r, pageContainer: r, showLoadMsg: !0, dataUrl: r, fromPage: r, allowSamePageTransition: !1 }, e.mobile._registerInternalEvents = function () { var n = function (t, n) { var r, i = !0, s, o, f; return !e.mobile.ajaxEnabled || t.is(":jqmData(ajax='false')") || !t.jqmHijackable().length || t.attr("target") ? !1 : (r = a && a.attr("formaction") || t.attr("action"), f = (t.attr("method") || "get").toLowerCase(), r || (r = e.mobile.getClosestBaseUrl(t), f === "get" && (r = e.mobile.path.parseUrl(r).hrefNoSearch), r === e.mobile.path.documentBase.hrefNoHash && (r = u.hrefNoSearch)), r = e.mobile.path.makeUrlAbsolute(r, e.mobile.getClosestBaseUrl(t)), e.mobile.path.isExternal(r) && !e.mobile.path.isPermittedCrossDomainRequest(u, r) ? !1 : (n || (s = t.serializeArray(), a && a[0].form === t[0] && (o = a.attr("name"), o && (e.each(s, function (e, t) { if (t.name === o) return o = "", !1 }), o && s.push({ name: o, value: a.attr("value") }))), i = { url: r, options: { type: f, data: e.param(s), transition: t.jqmData("transition"), reverse: t.jqmData("direction") === "reverse", reloadPage: !0 } }), i)) }; e.mobile.document.delegate("form", "submit", function (t) { var r; t.isDefaultPrevented() || (r = n(e(this)), r && (e.mobile.changePage(r.url, r.options), t.preventDefault())) }), e.mobile.document.bind("vclick", function (t) { var r, i, s = t.target, o = !1; if (t.which > 1 || !e.mobile.linkBindingEnabled) return; a = e(s); if (e.data(s, "mobile-button")) { if (!n(e(s).closest("form"), !0)) return; s.parentNode && (s = s.parentNode) } else { s = f(s); if (!s || e.mobile.path.parseUrl(s.getAttribute("href") || "#").hash === "#") return; if (!e(s).jqmHijackable().length) return } ~s.className.indexOf("ui-link-inherit") ? s.parentNode && (i = e.data(s.parentNode, "buttonElements")) : i = e.data(s, "buttonElements"), i ? s = i.outer : o = !0, r = e(s), o && (r = r.closest(".ui-btn")), r.length > 0 && !r.hasClass("ui-state-disabled") && (e.mobile.removeActiveLinkClass(!0), e.mobile.activeClickedLink = r, e.mobile.activeClickedLink.addClass(e.mobile.activeBtnClass)) }), e.mobile.document.bind("click", function (n) { if (!e.mobile.linkBindingEnabled || n.isDefaultPrevented()) return; var i = f(n.target), s = e(i), o = function () { t.setTimeout(function () { e.mobile.removeActiveLinkClass(!0) }, 200) }, a, l, c, h, p, d, v; e.mobile.activeClickedLink && e.mobile.activeClickedLink[0] === n.target.parentNode && o(); if (!i || n.which > 1 || !s.jqmHijackable().length) return; if (s.is(":jqmData(rel='back')")) return e.mobile.back(), !1; a = e.mobile.getClosestBaseUrl(s), l = e.mobile.path.makeUrlAbsolute(s.attr("href") || "#", a); if (!e.mobile.ajaxEnabled && !e.mobile.path.isEmbeddedPage(l)) { o(); return } if (l.search("#") !== -1 && (!e.mobile.path.isExternal(l) || !e.mobile.path.isAbsoluteUrl(l))) { l = l.replace(/[^#]*#/, ""); if (!l) { n.preventDefault(); return } e.mobile.path.isPath(l) ? l = e.mobile.path.makeUrlAbsolute(l, a) : l = e.mobile.path.makeUrlAbsolute("#" + l, u.hrefNoHash) } c = s.is("[rel='external']") || s.is(":jqmData(ajax='false')") || s.is("[target]"), h = c || e.mobile.path.isExternal(l) && !e.mobile.path.isPermittedCrossDomainRequest(u, l); if (h) { o(); return } p = s.jqmData("transition"), d = s.jqmData("direction") === "reverse" || s.jqmData("back"), v = s.attr("data-" + e.mobile.ns + "rel") || r, e.mobile.changePage(l, { transition: p, reverse: d, role: v, link: s }), n.preventDefault() }), e.mobile.document.delegate(".ui-page", "pageshow.prefetch", function () { var t = []; e(this).find("a:jqmData(prefetch)").each(function () { var n = e(this), r = n.attr("href"); r && e.inArray(r, t) === -1 && (t.push(r), e.mobile.loadPage(r, { role: n.attr("data-" + e.mobile.ns + "rel"), prefetch: !0 })) }) }), e.mobile.pageContainer.pagecontainer(), e.mobile.document.bind("pageshow", function () { s ? s.done(e.mobile.resetActivePageHeight) : e.mobile.resetActivePageHeight() }), e.mobile.window.bind("throttledresize", e.mobile.resetActivePageHeight) }, e(function () { i.resolve() }), n.readyState === "complete" ? o() : e.mobile.window.load(o), e.when(i, e.mobile.navreadyDeferred).done(function () { e.mobile._registerInternalEvents() }) }(e), function (e) { var t = "ui-loader", n = e("html"); e.widget("mobile.loader", { options: { theme: "a", textVisible: !1, html: "", text: "loading" }, defaultHtml: "<div class='" + t + "'>" + "<span class='ui-icon-loading'></span>" + "<h1></h1>" + "</div>", fakeFixLoader: function () { var t = e("." + e.mobile.activeBtnClass).first(); this.element.css({ top: e.support.scrollTop && this.window.scrollTop() + this.window.height() / 2 || t.length && t.offset().top || 100 }) }, checkLoaderPosition: function () { var t = this.element.offset(), n = this.window.scrollTop(), r = e.mobile.getScreenHeight(); if (t.top < n || t.top - n > r) this.element.addClass("ui-loader-fakefix"), this.fakeFixLoader(), this.window.unbind("scroll", this.checkLoaderPosition).bind("scroll", e.proxy(this.fakeFixLoader, this)) }, resetHtml: function () { this.element.html(e(this.defaultHtml).html()) }, show: function (r, i, s) { var o, u, a; this.resetHtml(), e.type(r) === "object" ? (a = e.extend({}, this.options, r), r = a.theme) : (a = this.options, r = r || a.theme), u = i || (a.text === !1 ? "" : a.text), n.addClass("ui-loading"), o = a.textVisible, this.element.attr("class", t + " ui-corner-all ui-body-" + r + " ui-loader-" + (o || i || r.text ? "verbose" : "default") + (a.textonly || s ? " ui-loader-textonly" : "")), a.html ? this.element.html(a.html) : this.element.find("h1").text(u), this.element.appendTo(e.mobile.pagecontainer ? e(":mobile-pagecontainer") : e("body")), this.checkLoaderPosition(), this.window.bind("scroll", e.proxy(this.checkLoaderPosition, this)) }, hide: function () { n.removeClass("ui-loading"), this.options.text && this.element.removeClass("ui-loader-fakefix"), this.window.unbind("scroll", this.fakeFixLoader), this.window.unbind("scroll", this.checkLoaderPosition) } }) }(e, this), function (e, t, r) { function o() { i.removeClass("ui-mobile-rendering") } var i = e("html"), s = e.mobile.window; e(t.document).trigger("mobileinit"); if (!e.mobile.gradeA()) return; e.mobile.ajaxBlacklist && (e.mobile.ajaxEnabled = !1), i.addClass("ui-mobile ui-mobile-rendering"), setTimeout(o, 5e3), e.extend(e.mobile, { initializePage: function () { var t = e.mobile.path, i = e(":jqmData(role='page'), :jqmData(role='dialog')"), u = t.stripHash(t.stripQueryParams(t.parseLocation().hash)), a = e.mobile.path.parseLocation(), f = u ? n.getElementById(u) : r; i.length || (i = e("body").wrapInner("<div data-" + e.mobile.ns + "role='page'></div>").children(0)), i.each(function () { var n = e(this); n[0].getAttribute("data-" + e.mobile.ns + "url") || n.attr("data-" + e.mobile.ns + "url", n.attr("id") || t.convertUrlToDataUrl(a.pathname + a.search)) }), e.mobile.firstPage = i.first(), e.mobile.pageContainer = e.mobile.firstPage.parent().addClass("ui-mobile-viewport").pagecontainer(), e.mobile.navreadyDeferred.resolve(), s.trigger("pagecontainercreate"), e.mobile.loading("show"), o(), !e.mobile.hashListeningEnabled || !e.mobile.path.isHashValid(location.hash) || !e(f).is(":jqmData(role='page')") && !e.mobile.path.isPath(u) && u !== e.mobile.dialogHashKey ? (e.event.special.navigate.isPushStateEnabled() && e.mobile.navigate.navigator.squash(t.parseLocation().href), e.mobile.changePage(e.mobile.firstPage, { transition: "none", reverse: !0, changeHash: !1, fromHashChange: !0 })) : e.event.special.navigate.isPushStateEnabled() ? (e.mobile.navigate.history.stack = [], e.mobile.navigate(e.mobile.path.isPath(location.hash) ? location.hash : location.href)) : s.trigger("hashchange", [!0]) } }), e(function () { e.support.inlineSVG(), e.mobile.hideUrlBar && t.scrollTo(0, 1), e.mobile.defaultHomeScroll = !e.support.scrollTop || e.mobile.window.scrollTop() === 1 ? 0 : 1, e.mobile.autoInitializePage && e.mobile.initializePage(), e.mobile.hideUrlBar && s.load(e.mobile.silentScroll), e.support.cssPointerEvents || e.mobile.document.delegate(".ui-state-disabled,.ui-disabled", "vclick", function (e) { e.preventDefault(), e.stopImmediatePropagation() }) }) }(e, this), function (e, t) { e.mobile.links = function (t) { e(t).find("a").jqmEnhanceable().filter(":jqmData(rel='popup')[href][href!='']").each(function () { var e = this, t = e.getAttribute("href").substring(1); t && (e.setAttribute("aria-haspopup", !0), e.setAttribute("aria-owns", t), e.setAttribute("aria-expanded", !1)) }).end().not(".ui-btn, :jqmData(role='none'), :jqmData(role='nojs')").addClass("ui-link") } }(e), function (e) { var t = e("meta[name=viewport]"), n = t.attr("content"), r = n + ",maximum-scale=1, user-scalable=no", i = n + ",maximum-scale=10, user-scalable=yes", s = /(user-scalable[\s]*=[\s]*no)|(maximum-scale[\s]*=[\s]*1)[$,\s]/.test(n); e.mobile.zoom = e.extend({}, { enabled: !s, locked: !1, disable: function (n) { !s && !e.mobile.zoom.locked && (t.attr("content", r), e.mobile.zoom.enabled = !1, e.mobile.zoom.locked = n || !1) }, enable: function (n) { !s && (!e.mobile.zoom.locked || n === !0) && (t.attr("content", i), e.mobile.zoom.enabled = !0, e.mobile.zoom.locked = !1) }, restore: function () { s || (t.attr("content", n), e.mobile.zoom.enabled = !0) } }) }(e), function (e, t) { function r(t) { var r, i = t.length, s = []; for (r = 0; r < i; r++) t[r].className.match(n) || s.push(t[r]); return e(s) } var n = /\bui-screen-hidden\b/; e.mobile.behaviors.addFirstLastClasses = { _getVisibles: function (e, t) { var n; return t ? n = r(e) : (n = e.filter(":visible"), n.length === 0 && (n = r(e))), n }, _addFirstLastClasses: function (e, t, n) { e.removeClass("ui-first-child ui-last-child"), t.eq(0).addClass("ui-first-child").end().last().addClass("ui-last-child"), n || this.element.trigger("updatelayout") }, _removeFirstLastClasses: function (e) { e.removeClass("ui-first-child ui-last-child") } } }(e), function (e, t) { var n = /([A-Z])/g, r = function (e) { return "ui-btn-icon-" + (e === null ? "left" : e) }; e.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 () { var t = this.element, n = { accordion: t.closest(":jqmData(role='collapsible-set'),:jqmData(role='collapsibleset')" + (e.mobile.collapsibleset ? ", :mobile-collapsibleset" : "")).addClass("ui-collapsible-set") }; this._ui = n, this._renderedOptions = this._getOptions(this.options), this.options.enhanced ? (n.heading = this.element.children(".ui-collapsible-heading"), n.content = n.heading.next(), n.anchor = n.heading.children(), n.status = n.anchor.children(".ui-collapsible-heading-status")) : this._enhance(t, n), this._on(n.heading, { tap: function () { n.heading.find("a").first().addClass(e.mobile.activeBtnClass) }, click: function (e) { this._handleExpandCollapse(!n.heading.hasClass("ui-collapsible-heading-collapsed")), e.preventDefault(), e.stopPropagation() } }) }, _getOptions: function (t) { var r, i = this._ui.accordion, s = this._ui.accordionWidget; t = e.extend({}, t), i.length && !s && (this._ui.accordionWidget = s = i.data("mobile-collapsibleset")); for (r in t) t[r] = t[r] != null ? t[r] : s ? s.options[r] : i.length ? e.mobile.getAttribute(i[0], r.replace(n, "-$1").toLowerCase()) : null, null == t[r] && (t[r] = e.mobile.collapsible.defaults[r]); return t }, _themeClassFromOption: function (e, t) { return t ? t === "none" ? "" : e + t : "" }, _enhance: function (t, n) { var i, s = this._renderedOptions, o = this._themeClassFromOption("ui-body-", s.contentTheme); return t.addClass("ui-collapsible " + (s.inset ? "ui-collapsible-inset " : "") + (s.inset && s.corners ? "ui-corner-all " : "") + (o ? "ui-collapsible-themed-content " : "")), n.originalHeading = t.children(this.options.heading).first(), n.content = t.wrapInner("<div class='ui-collapsible-content " + o + "'></div>").children(".ui-collapsible-content"), n.heading = n.originalHeading, n.heading.is("legend") && (n.heading = e("<div role='heading'>" + n.heading.html() + "</div>"), n.placeholder = e("<div><!-- placeholder for legend --></div>").insertBefore(n.originalHeading), n.originalHeading.remove()), i = s.collapsed ? s.collapsedIcon ? "ui-icon-" + s.collapsedIcon : "" : s.expandedIcon ? "ui-icon-" + s.expandedIcon : "", n.status = e("<span class='ui-collapsible-heading-status'></span>"), n.anchor = n.heading.detach().addClass("ui-collapsible-heading").append(n.status).wrapInner("<a href='#' class='ui-collapsible-heading-toggle'></a>").find("a").first().addClass("ui-btn " + (i ? i + " " : "") + (i ? r(s.iconpos) + " " : "") + this._themeClassFromOption("ui-btn-", s.theme) + " " + (s.mini ? "ui-mini " : "")), n.heading.insertBefore(n.content), this._handleExpandCollapse(this.options.collapsed), n }, refresh: function () { this._applyOptions(this.options), this._renderedOptions = this._getOptions(this.options) }, _applyOptions: function (e) { var n, i, s, o, u, a = this.element, f = this._renderedOptions, l = this._ui, c = l.anchor, h = l.status, p = this._getOptions(e); e.collapsed !== t && this._handleExpandCollapse(e.collapsed), n = a.hasClass("ui-collapsible-collapsed"), n ? p.expandCueText !== t && h.text(p.expandCueText) : p.collapseCueText !== t && h.text(p.collapseCueText), u = p.collapsedIcon !== t ? p.collapsedIcon !== !1 : f.collapsedIcon !== !1; if (p.iconpos !== t || p.collapsedIcon !== t || p.expandedIcon !== t) c.removeClass([r(f.iconpos)].concat(f.expandedIcon ? ["ui-icon-" + f.expandedIcon] : []).concat(f.collapsedIcon ? ["ui-icon-" + f.collapsedIcon] : []).join(" ")), u && c.addClass([r(p.iconpos !== t ? p.iconpos : f.iconpos)].concat(n ? ["ui-icon-" + (p.collapsedIcon !== t ? p.collapsedIcon : f.collapsedIcon)] : ["ui-icon-" + (p.expandedIcon !== t ? p.expandedIcon : f.expandedIcon)]).join(" ")); p.theme !== t && (s = this._themeClassFromOption("ui-btn-", f.theme), i = this._themeClassFromOption("ui-btn-", p.theme), c.removeClass(s).addClass(i)), p.contentTheme !== t && (s = this._themeClassFromOption("ui-body-", f.contentTheme), i = this._themeClassFromOption("ui-body-", p.contentTheme), l.content.removeClass(s).addClass(i)), p.inset !== t && (a.toggleClass("ui-collapsible-inset", p.inset), o = !(!p.inset || !p.corners && !f.corners)), p.corners !== t && (o = !(!p.corners || !p.inset && !f.inset)), o !== t && a.toggleClass("ui-corner-all", o), p.mini !== t && c.toggleClass("ui-mini", p.mini) }, _setOptions: function (e) { this._applyOptions(e), this._super(e), this._renderedOptions = this._getOptions(this.options) }, _handleExpandCollapse: function (t) { var n = this._renderedOptions, r = this._ui; r.status.text(t ? n.expandCueText : n.collapseCueText), r.heading.toggleClass("ui-collapsible-heading-collapsed", t).find("a").first().toggleClass("ui-icon-" + n.expandedIcon, !t).toggleClass("ui-icon-" + n.collapsedIcon, t || n.expandedIcon === n.collapsedIcon).removeClass(e.mobile.activeBtnClass), this.element.toggleClass("ui-collapsible-collapsed", t), r.content.toggleClass("ui-collapsible-content-collapsed", t).attr("aria-hidden", t).trigger("updatelayout"), this.options.collapsed = t, this._trigger(t ? "collapse" : "expand") }, expand: function () { this._handleExpandCollapse(!1) }, collapse: function () { this._handleExpandCollapse(!0) }, _destroy: function () { var e = this._ui, t = this.options; if (t.enhanced) return; e.placeholder ? (e.originalHeading.insertBefore(e.placeholder), e.placeholder.remove(), e.heading.remove()) : (e.status.remove(), e.heading.removeClass("ui-collapsible-heading ui-collapsible-heading-collapsed").children().contents().unwrap()), e.anchor.contents().unwrap(), e.content.contents().unwrap(), this.element.removeClass("ui-collapsible ui-collapsible-collapsed ui-collapsible-themed-content ui-collapsible-inset ui-corner-all") } }), e.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 } }(e), function (e, t) { e.widget("mobile.controlgroup", e.extend({ options: { enhanced: !1, theme: null, shadow: !1, corners: !0, excludeInvisible: !0, type: "vertical", mini: !1 }, _create: function () { var t = this.element, n = this.options, r = e.mobile.page.prototype.keepNativeSelector(); e.fn.buttonMarkup && this.element.find(e.fn.buttonMarkup.initSelector).not(r).buttonMarkup(), e.each(this._childWidgets, e.proxy(function (t, n) { e.mobile[n] && this.element.find(e.mobile[n].initSelector).not(r)[n]() }, this)), e.extend(this, { _ui: null, _initialRefresh: !0 }), n.enhanced ? this._ui = { groupLegend: t.children(".ui-controlgroup-label").children(), childWrapper: t.children(".ui-controlgroup-controls") } : this._ui = this._enhance() }, _childWidgets: ["checkboxradio", "selectmenu", "button"], _themeClassFromOption: function (e) { return e ? e === "none" ? "" : "ui-group-theme-" + e : "" }, _enhance: function () { var t = this.element, n = this.options, r = { groupLegend: t.children("legend"), childWrapper: t.addClass("ui-controlgroup ui-controlgroup-" + (n.type === "horizontal" ? "horizontal" : "vertical") + " " + this._themeClassFromOption(n.theme) + " " + (n.corners ? "ui-corner-all " : "") + (n.mini ? "ui-mini " : "")).wrapInner("<div class='ui-controlgroup-controls " + (n.shadow === !0 ? "ui-shadow" : "") + "'></div>").children() }; return r.groupLegend.length > 0 && e("<div role='heading' class='ui-controlgroup-label'></div>").append(r.groupLegend).prependTo(t), r }, _init: function () { this.refresh() }, _setOptions: function (e) { var n, r, i = this.element; return e.type !== t && (i.removeClass("ui-controlgroup-horizontal ui-controlgroup-vertical").addClass("ui-controlgroup-" + (e.type === "horizontal" ? "horizontal" : "vertical")), n = !0), e.theme !== t && i.removeClass(this._themeClassFromOption(this.options.theme)).addClass(this._themeClassFromOption(e.theme)), e.corners !== t && i.toggleClass("ui-corner-all", e.corners), e.mini !== t && i.toggleClass("ui-mini", e.mini), e.shadow !== t && this._ui.childWrapper.toggleClass("ui-shadow", e.shadow), e.excludeInvisible !== t && (this.options.excludeInvisible = e.excludeInvisible, n = !0), r = this._super(e), n && this.refresh(), r }, container: function () { return this._ui.childWrapper }, refresh: function () { var t = this.container(), n = t.find(".ui-btn").not(".ui-slider-handle"), r = this._initialRefresh; e.mobile.checkboxradio && t.find(":mobile-checkboxradio").checkboxradio("refresh"), this._addFirstLastClasses(n, this.options.excludeInvisible ? this._getVisibles(n, r) : n, r), this._initialRefresh = !1 }, _destroy: function () { var e, t, n = this.options; if (n.enhanced) return this; e = this._ui, t = this.element.removeClass("ui-controlgroup ui-controlgroup-horizontal ui-controlgroup-vertical ui-corner-all ui-mini " + this._themeClassFromOption(n.theme)).find(".ui-btn").not(".ui-slider-handle"), this._removeFirstLastClasses(t), e.groupLegend.unwrap(), e.childWrapper.children().unwrap() } }, e.mobile.behaviors.addFirstLastClasses)) }(e), function (e, t) { e.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 () { var t = this.options, n = this.element.is("[type='search'], :jqmData(type='search')"), r = this.element[0].tagName === "TEXTAREA", i = this.element.is("[data-" + (e.mobile.ns || "") + "type='range']"), s = (this.element.is("input") || this.element.is("[data-" + (e.mobile.ns || "") + "type='search']")) && !i; this.element.prop("disabled") && (t.disabled = !0), e.extend(this, { classes: this._classesFromOptions(), isSearch: n, isTextarea: r, isRange: i, inputNeedsWrap: s }), this._autoCorrect(), t.enhanced || this._enhance(), this._on({ focus: "_handleFocus", blur: "_handleBlur" }) }, refresh: function () { this.setOptions({ disabled: this.element.is(":disabled") }) }, _enhance: function () { var e = []; this.isTextarea && e.push("ui-input-text"), (this.isTextarea || this.isRange) && e.push("ui-shadow-inset"), this.inputNeedsWrap ? this.element.wrap(this._wrap()) : e = e.concat(this.classes), this.element.addClass(e.join(" ")) }, widget: function () { return this.inputNeedsWrap ? this.element.parent() : this.element }, _classesFromOptions: function () { var e = this.options, t = []; return t.push("ui-body-" + (e.theme === null ? "inherit" : e.theme)), e.corners && t.push("ui-corner-all"), e.mini && t.push("ui-mini"), e.disabled && t.push("ui-state-disabled"), e.wrapperClass && t.push(e.wrapperClass), t }, _wrap: function () { return e("<div class='" + (this.isSearch ? "ui-input-search " : "ui-input-text ") + this.classes.join(" ") + " " + "ui-shadow-inset'></div>") }, _autoCorrect: function () { typeof this.element[0].autocorrect != "undefined" && !e.support.touchOverflow && (this.element[0].setAttribute("autocorrect", "off"), this.element[0].setAttribute("autocomplete", "off")) }, _handleBlur: function () { this.widget().removeClass(e.mobile.focusClass), this.options.preventFocusZoom && e.mobile.zoom.enable(!0) }, _handleFocus: function () { this.options.preventFocusZoom && e.mobile.zoom.disable(!0), this.widget().addClass(e.mobile.focusClass) }, _setOptions: function (e) { var n = this.widget(); this._super(e); if (e.disabled !== t || e.mini !== t || e.corners !== t || e.theme !== t || e.wrapperClass !== t) n.removeClass(this.classes.join(" ")), this.classes = this._classesFromOptions(), n.addClass(this.classes.join(" ")); e.disabled !== t && this.element.prop("disabled", !!e.disabled) }, _destroy: function () { if (this.options.enhanced) return; this.inputNeedsWrap && this.element.unwrap(), this.element.removeClass("ui-input-text " + this.classes.join(" ")) } }) }(e), function (e, t) { e.widget("mobile.textinput", e.mobile.textinput, { options: { autogrow: !0, keyupTimeoutBuffer: 100 }, _create: function () { this._super(), this.options.autogrow && this.isTextarea && this._autogrow() }, _autogrow: function () { 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 (t) { e.contains(t.target, this.element[0]) && this.element.is(":visible") && (t.type !== "popupbeforeposition" && this.element.addClass("ui-textinput-autogrow-resize").animationComplete(e.proxy(function () { this.element.removeClass("ui-textinput-autogrow-resize") }, this), "transition"), this._prepareHeightUpdate()) }, _unbindAutogrow: function () { 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 (e) { this.keyupTimeout && clearTimeout(this.keyupTimeout), e === t ? this._updateHeight() : this.keyupTimeout = this._delay("_updateHeight", e) }, _timeout: function () { this._prepareHeightUpdate(this.options.keyupTimeoutBuffer) }, _updateHeight: function () { var e, t, n, r, i, s, o, u, a, f = this.window.scrollTop(); this.keyupTimeout = 0, "onpage" in this.element[0] || this.element.css({ height: 0, "min-height": 0, "max-height": 0 }), r = this.element[0].scrollHeight, i = this.element[0].clientHeight, s = parseFloat(this.element.css("border-top-width")), o = parseFloat(this.element.css("border-bottom-width")), u = s + o, a = r + u + 15, i === 0 && (e = parseFloat(this.element.css("padding-top")), t = parseFloat(this.element.css("padding-bottom")), n = e + t, a += n), this.element.css({ height: a, "min-height": "", "max-height": "" }), this.window.scrollTop(f) }, refresh: function () { this.options.autogrow && this.isTextarea && this._updateHeight() }, _setOptions: function (e) { this._super(e), e.autogrow !== t && this.isTextarea && (e.autogrow ? this._autogrow() : this._unbindAutogrow()) } }) }(e), function (e, t) { e.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 () { this.element.is(":disabled") && (this.options.disabled = !0), this.options.enhanced || this._enhance(), e.extend(this, { wrapper: this.element.parent() }), this._on({ focus: function () { this.widget().addClass(e.mobile.focusClass) }, blur: function () { this.widget().removeClass(e.mobile.focusClass) } }), this.refresh(!0) }, _enhance: function () { this.element.wrap(this._button()) }, _button: function () { var t = this.options, n = this._getIconClasses(this.options); return e("<div class='ui-btn ui-input-btn" + (t.wrapperClass ? " " + t.wrapperClass : "") + (t.theme ? " ui-btn-" + t.theme : "") + (t.corners ? " ui-corner-all" : "") + (t.shadow ? " ui-shadow" : "") + (t.inline ? " ui-btn-inline" : "") + (t.mini ? " ui-mini" : "") + (t.disabled ? " ui-state-disabled" : "") + (n ? " " + n : "") + "' >" + this.element.val() + "</div>") }, widget: function () { return this.wrapper }, _destroy: function () { this.element.insertBefore(this.wrapper), this.wrapper.remove() }, _getIconClasses: function (e) { return e.icon ? "ui-icon-" + e.icon + (e.iconshadow ? " ui-shadow-icon" : "") + " ui-btn-icon-" + e.iconpos : "" }, _setOptions: function (n) { var r = this.widget(); n.theme !== t && r.removeClass(this.options.theme).addClass("ui-btn-" + n.theme), n.corners !== t && r.toggleClass("ui-corner-all", n.corners), n.shadow !== t && r.toggleClass("ui-shadow", n.shadow), n.inline !== t && r.toggleClass("ui-btn-inline", n.inline), n.mini !== t && r.toggleClass("ui-mini", n.mini), n.disabled !== t && (this.element.prop("disabled", n.disabled), r.toggleClass("ui-state-disabled", n.disabled)), (n.icon !== t || n.iconshadow !== t || n.iconpos !== t) && r.removeClass(this._getIconClasses(this.options)).addClass(this._getIconClasses(e.extend({}, this.options, n))), this._super(n) }, refresh: function (t) { var n, r = this.element.prop("disabled"); this.options.icon && this.options.iconpos === "notext" && this.element.attr("title") && this.element.attr("title", this.element.val()), t || (n = this.element.detach(), e(this.wrapper).text(this.element.val()).append(n)), this.options.disabled !== r && this._setOptions({ disabled: r }) } }) }(e), function (e, t) { e.mobile.behaviors.formReset = { _handleFormReset: function () { this._on(this.element.closest("form"), { reset: function () { this._delay("_reset") } }) } } }(e), function (e, t) { var n = e.mobile.path.hashToSelector; e.widget("mobile.checkboxradio", e.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 () { var t = this.element, n = this.options, r = function (e, t) { return e.jqmData(t) || e.closest("form, fieldset").jqmData(t) }, i = this.options.enhanced ? { element: this.element.siblings("label"), isParent: !1 } : this._findLabel(), s = t[0].type, o = "ui-" + s + "-on", u = "ui-" + s + "-off"; if (s !== "checkbox" && s !== "radio") return; this.element[0].disabled && (this.options.disabled = !0), n.iconpos = r(t, "iconpos") || i.element.attr("data-" + e.mobile.ns + "iconpos") || n.iconpos, n.mini = r(t, "mini") || n.mini, e.extend(this, { input: t, label: i.element, labelIsParent: i.isParent, inputtype: s, checkedClass: o, uncheckedClass: u }), this.options.enhanced || this._enhance(), this._on(i.element, { vmouseover: "_handleLabelVMouseOver", vclick: "_handleLabelVClick" }), this._on(t, { vmousedown: "_cacheVals", vclick: "_handleInputVClick", focus: "_handleInputFocus", blur: "_handleInputBlur" }), this._handleFormReset(), this.refresh() }, _findLabel: function () { var t, r, i, s = this.element, o = s[0].labels; return o && o.length > 0 ? (r = e(o[0]), i = e.contains(r[0], s[0])) : (t = s.closest("label"), i = t.length > 0, r = i ? t : e(this.document[0].getElementsByTagName("label")).filter("[for='" + n(s[0].id) + "']").first()), { element: r, isParent: i } }, _enhance: function () { 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 () { return e("<div class='" + (this.options.wrapperClass ? this.options.wrapperClass : "") + " ui-" + this.inputtype + (this.options.disabled ? " ui-state-disabled" : "") + "' ></div>") }, _handleInputFocus: function () { this.label.addClass(e.mobile.focusClass) }, _handleInputBlur: function () { this.label.removeClass(e.mobile.focusClass) }, _handleInputVClick: function () { this.element.prop("checked", this.element.is(":checked")), this._getInputSet().not(this.element).prop("checked", !1), this._updateAll(!0) }, _handleLabelVMouseOver: function (e) { this.label.parent().hasClass("ui-state-disabled") && e.stopPropagation() }, _handleLabelVClick: function (e) { var t = this.element; if (t.is(":disabled")) { e.preventDefault(); return } return this._cacheVals(), t.prop("checked", this.inputtype === "radio" && !0 || !t.prop("checked")), t.triggerHandler("click"), this._getInputSet().not(t).prop("checked", !1), this._updateAll(), !1 }, _cacheVals: function () { this._getInputSet().each(function () { e(this).attr("data-" + e.mobile.ns + "cacheVal", this.checked) }) }, _getInputSet: function () { var t, r, i = this.element[0], s = i.name, o = i.form, u = this.element.parents().last().get(0), a = this.element; return s && this.inputtype === "radio" && u && (t = "input[type='radio'][name='" + n(s) + "']", o ? (r = o.getAttribute("id"), r && (a = e(t + "[form='" + n(r) + "']", u)), a = e(o).find(t).filter(function () { return this.form === o }).add(a)) : a = e(t, u).filter(function () { return !this.form })), a }, _updateAll: function (t) { var n = this; this._getInputSet().each(function () { var r = e(this); (this.checked || n.inputtype === "checkbox") && !t && r.trigger("change") }).checkboxradio("refresh") }, _reset: function () { this.refresh() }, _hasIcon: function () { var t, n, r = e.mobile.controlgroup; if (r) { t = this.element.closest(":mobile-controlgroup," + r.prototype.initSelector); if (t.length > 0) return n = e.data(t[0], "mobile-controlgroup"), (n ? n.options.type : t.attr("data-" + e.mobile.ns + "type")) !== "horizontal" } return !0 }, refresh: function () { var t = this.element[0].checked, n = e.mobile.activeBtnClass, r = "ui-btn-icon-" + this.options.iconpos, i = [], s = []; this._hasIcon() ? (s.push(n), i.push(r)) : (s.push(r), (t ? i : s).push(n)), t ? (i.push(this.checkedClass), s.push(this.uncheckedClass)) : (i.push(this.uncheckedClass), s.push(this.checkedClass)), this.widget().toggleClass("ui-state-disabled", this.element.prop("disabled")), this.label.addClass(i.join(" ")).removeClass(s.join(" ")) }, widget: function () { return this.label.parent() }, _setOptions: function (e) { var n = this.label, r = this.options, i = this.widget(), s = this._hasIcon(); e.disabled !== t && (this.input.prop("disabled", !!e.disabled), i.toggleClass("ui-state-disabled", !!e.disabled)), e.mini !== t && i.toggleClass("ui-mini", !!e.mini), e.theme !== t && n.removeClass("ui-btn-" + r.theme).addClass("ui-btn-" + e.theme), e.wrapperClass !== t && i.removeClass(r.wrapperClass).addClass(e.wrapperClass), e.iconpos !== t && s ? n.removeClass("ui-btn-icon-" + r.iconpos).addClass("ui-btn-icon-" + e.iconpos) : s || n.removeClass("ui-btn-icon-" + r.iconpos), this._super(e) } }, e.mobile.behaviors.formReset)) }(e), function (e, t) { e.widget("mobile.flipswitch", e.extend({ options: { onText: "On", offText: "Off", theme: null, enhanced: !1, wrapperClass: null, corners: !0, mini: !1 }, _create: function () { this.options.enhanced ? e.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"), this._originalTabIndex != null && 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 () { this.on.focus() }, widget: function () { return this.flipswitch }, _left: function () { this.flipswitch.removeClass("ui-flipswitch-active"), this.type === "SELECT" ? this.element.get(0).selectedIndex = 0 : this.element.prop("checked", !1), this.element.trigger("change") }, _right: function () { this.flipswitch.addClass("ui-flipswitch-active"), this.type === "SELECT" ? this.element.get(0).selectedIndex = 1 : this.element.prop("checked", !0), this.element.trigger("change") }, _enhance: function () { var t = e("<div>"), n = this.options, r = this.element, i = n.theme ? n.theme : "inherit", s = e("<a></a>", { href: "#" }), o = e("<span></span>"), u = r.get(0).tagName, a = u === "INPUT" ? n.onText : r.find("option").eq(1).text(), f = u === "INPUT" ? n.offText : r.find("option").eq(0).text(); s.addClass("ui-flipswitch-on ui-btn ui-shadow ui-btn-inherit").text(a), o.addClass("ui-flipswitch-off").text(f), t.addClass("ui-flipswitch ui-shadow-inset ui-bar-" + i + " " + (n.wrapperClass ? n.wrapperClass : "") + " " + (r.is(":checked") || r.find("option").eq(1).is(":selected") ? "ui-flipswitch-active" : "") + (r.is(":disabled") ? " ui-state-disabled" : "") + (n.corners ? " ui-corner-all" : "") + (n.mini ? " ui-mini" : "")).append(s, o), r.addClass("ui-flipswitch-input").after(t).appendTo(t), e.extend(this, { flipswitch: t, on: s, off: o, type: u }) }, _reset: function () { this.refresh() }, refresh: function () { var e, t = this.flipswitch.hasClass("ui-flipswitch-active") ? "_right" : "_left"; this.type === "SELECT" ? e = this.element.get(0).selectedIndex > 0 ? "_right" : "_left" : e = this.element.prop("checked") ? "_right" : "_left", e !== t && this[e]() }, _toggle: function () { var e = this.flipswitch.hasClass("ui-flipswitch-active") ? "_left" : "_right"; this[e]() }, _keydown: function (t) { t.which === e.mobile.keyCode.LEFT ? this._left() : t.which === e.mobile.keyCode.RIGHT ? this._right() : t.which === e.mobile.keyCode.SPACE && (this._toggle(), t.preventDefault()) }, _setOptions: function (e) { if (e.theme !== t) { var n = e.theme ? e.theme : "inherit", r = e.theme ? e.theme : "inherit"; this.widget().removeClass("ui-bar-" + n).addClass("ui-bar-" + r) } e.onText !== t && this.on.text(e.onText), e.offText !== t && this.off.text(e.offText), e.disabled !== t && this.widget().toggleClass("ui-state-disabled", e.disabled), e.mini !== t && this.widget().toggleClass("ui-mini", e.mini), e.corners !== t && this.widget().toggleClass("ui-corner-all", e.corners), this._super(e) }, _destroy: function () { if (this.options.enhanced) return; this._originalTabIndex != null ? 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") } }, e.mobile.behaviors.formReset)) }(e), function (e, r) { e.widget("mobile.slider", e.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 () { var i = this, s = this.element, o = this.options.trackTheme || e.mobile.getAttribute(s[0], "theme"), u = o ? " ui-bar-" + o : " ui-bar-inherit", a = this.options.corners || s.jqmData("corners") ? " ui-corner-all" : "", f = this.options.mini || s.jqmData("mini") ? " ui-mini" : "", l = s[0].nodeName.toLowerCase(), c = l === "select", h = s.parent().is(":jqmData(role='rangeslider')"), p = c ? "ui-slider-switch" : "", d = s.attr("id"), v = e("[for='" + d + "']"), m = v.attr("id") || d + "-label", g = c ? 0 : parseFloat(s.attr("min")), y = c ? s.find("option").length - 1 : parseFloat(s.attr("max")), b = t.parseFloat(s.attr("step") || 1), w = n.createElement("a"), E = e(w), S = n.createElement("div"), x = e(S), T = this.options.highlight && !c ? function () { var t = n.createElement("div"); return t.className = "ui-slider-bg " + e.mobile.activeBtnClass, e(t).prependTo(x) }() : !1, N, C, k, L, A, O, M, _, D, P; v.attr("id", m), this.isToggleSwitch = c, w.setAttribute("href", "#"), S.setAttribute("role", "application"), S.className = [this.isToggleSwitch ? "ui-slider ui-slider-track ui-shadow-inset " : "ui-slider-track ui-shadow-inset ", p, u, a, f].join(""), w.className = "ui-slider-handle", S.appendChild(w), E.attr({ role: "slider", "aria-valuemin": g, "aria-valuemax": y, "aria-valuenow": this._value(), "aria-valuetext": this._value(), title: this._value(), "aria-labelledby": m }), e.extend(this, { slider: x, handle: E, control: s, type: l, step: b, max: y, min: g, valuebg: T, isRangeslider: h, dragging: !1, beforeStart: null, userModified: !1, mouseMoved: !1 }); if (c) { M = s.attr("tabindex"), M && E.attr("tabindex", M), s.attr("tabindex", "-1").focus(function () { e(this).blur(), E.focus() }), C = n.createElement("div"), C.className = "ui-slider-inneroffset"; for (k = 0, L = S.childNodes.length; k < L; k++) C.appendChild(S.childNodes[k]); S.appendChild(C), E.addClass("ui-slider-handle-snapping"), N = s.find("option"); for (A = 0, O = N.length; A < O; A++) _ = A ? "a" : "b", D = A ? " " + e.mobile.activeBtnClass : "", P = n.createElement("span"), P.className = ["ui-slider-label ui-slider-label-", _, D].join(""), P.setAttribute("role", "img"), P.appendChild(n.createTextNode(N[A].innerHTML)), e(P).prependTo(x); i._labels = e(".ui-slider-label", x) } s.addClass(c ? "ui-slider-switch" : "ui-slider-input"), this._on(s, { change: "_controlChange", keyup: "_controlKeyup", blur: "_controlBlur", vmouseup: "_controlVMouseUp" }), x.bind("vmousedown", e.proxy(this._sliderVMouseDown, this)).bind("vclick", !1), this._on(n, { vmousemove: "_preventDocumentDrag" }), this._on(x.add(n), { vmouseup: "_sliderVMouseUp" }), x.insertAfter(s), !c && !h && (C = this.options.mini ? "<div class='ui-slider ui-mini'>" : "<div class='ui-slider'>", s.add(x).wrapAll(C)), this._on(this.handle, { vmousedown: "_handleVMouseDown", keydown: "_handleKeydown", keyup: "_handleKeyup" }), this.handle.bind("vclick", !1), this._handleFormReset(), this.refresh(r, r, !0) }, _setOptions: function (e) { e.theme !== r && this._setTheme(e.theme), e.trackTheme !== r && this._setTrackTheme(e.trackTheme), e.corners !== r && this._setCorners(e.corners), e.mini !== r && this._setMini(e.mini), e.highlight !== r && this._setHighlight(e.highlight), e.disabled !== r && this._setDisabled(e.disabled), this._super(e) }, _controlChange: function (e) { if (this._trigger("controlchange", e) === !1) return !1; this.mouseMoved || this.refresh(this._value(), !0) }, _controlKeyup: function () { this.refresh(this._value(), !0, !0) }, _controlBlur: function () { this.refresh(this._value(), !0) }, _controlVMouseUp: function () { this._checkedRefresh() }, _handleVMouseDown: function () { this.handle.focus() }, _handleKeydown: function (t) { var n = this._value(); if (this.options.disabled) return; switch (t.keyCode) { case e.mobile.keyCode.HOME: case e.mobile.keyCode.END: case e.mobile.keyCode.PAGE_UP: case e.mobile.keyCode.PAGE_DOWN: case e.mobile.keyCode.UP: case e.mobile.keyCode.RIGHT: case e.mobile.keyCode.DOWN: case e.mobile.keyCode.LEFT: t.preventDefault(), this._keySliding || (this._keySliding = !0, this.handle.addClass("ui-state-active")) } switch (t.keyCode) { case e.mobile.keyCode.HOME: this.refresh(this.min); break; case e.mobile.keyCode.END: this.refresh(this.max); break; case e.mobile.keyCode.PAGE_UP: case e.mobile.keyCode.UP: case e.mobile.keyCode.RIGHT: this.refresh(n + this.step); break; case e.mobile.keyCode.PAGE_DOWN: case e.mobile.keyCode.DOWN: case e.mobile.keyCode.LEFT: this.refresh(n - this.step) } }, _handleKeyup: function () { this._keySliding && (this._keySliding = !1, this.handle.removeClass("ui-state-active")) }, _sliderVMouseDown: function (e) { return this.options.disabled || e.which !== 1 && e.which !== 0 && e.which !== r ? !1 : this._trigger("beforestart", e) === !1 ? !1 : (this.dragging = !0, this.userModified = !1, this.mouseMoved = !1, this.isToggleSwitch && (this.beforeStart = this.element[0].selectedIndex), this.refresh(e), this._trigger("start"), !1) }, _sliderVMouseUp: function () { if (this.dragging) return this.dragging = !1, this.isToggleSwitch && (this.handle.addClass("ui-slider-handle-snapping"), this.mouseMoved ? this.userModified ? this.refresh(this.beforeStart === 0 ? 1 : 0) : this.refresh(this.beforeStart) : this.refresh(this.beforeStart === 0 ? 1 : 0)), this.mouseMoved = !1, this._trigger("stop"), !1 }, _preventDocumentDrag: function (e) { if (this._trigger("drag", e) === !1) return !1; if (this.dragging && !this.options.disabled) return this.mouseMoved = !0, this.isToggleSwitch && this.handle.removeClass("ui-slider-handle-snapping"), this.refresh(e), this.userModified = this.beforeStart !== this.element[0].selectedIndex, !1 }, _checkedRefresh: function () { this.value !== this._value() && this.refresh(this._value()) }, _value: function () { return this.isToggleSwitch ? this.element[0].selectedIndex : parseFloat(this.element.val()) }, _reset: function () { this.refresh(r, !1, !0) }, refresh: function (t, r, i) { var s = this, o = e.mobile.getAttribute(this.element[0], "theme"), u = this.options.theme || o, a = u ? " ui-btn-" + u : "", f = this.options.trackTheme || o, l = f ? " ui-bar-" + f : " ui-bar-inherit", c = this.options.corners ? " ui-corner-all" : "", h = this.options.mini ? " ui-mini" : "", p, d, v, m, g, y, b, w, E, S, x, T, N, C, k, L, A, O, M, _; s.slider[0].className = [this.isToggleSwitch ? "ui-slider ui-slider-switch ui-slider-track ui-shadow-inset" : "ui-slider-track ui-shadow-inset", l, c, h].join(""), (this.options.disabled || this.element.prop("disabled")) && this.disable(), this.value = this._value(), this.options.highlight && !this.isToggleSwitch && this.slider.find(".ui-slider-bg").length === 0 && (this.valuebg = function () { var t = n.createElement("div"); return t.className = "ui-slider-bg " + e.mobile.activeBtnClass, e(t).prependTo(s.slider) }()), this.handle.addClass("ui-btn" + a + " ui-shadow"), b = this.element, w = !this.isToggleSwitch, E = w ? [] : b.find("option"), S = w ? parseFloat(b.attr("min")) : 0, x = w ? parseFloat(b.attr("max")) : E.length - 1, T = w && parseFloat(b.attr("step")) > 0 ? parseFloat(b.attr("step")) : 1; if (typeof t == "object") { v = t, m = 8, p = this.slider.offset().left, d = this.slider.width(), g = d / ((x - S) / T); if (!this.dragging || v.pageX < p - m || v.pageX > p + d + m) return; g > 1 ? y = (v.pageX - p) / d * 100 : y = Math.round((v.pageX - p) / d * 100) } else t == null && (t = w ? parseFloat(b.val() || 0) : b[0].selectedIndex), y = (parseFloat(t) - S) / (x - S) * 100; if (isNaN(y)) return; N = y / 100 * (x - S) + S, C = (N - S) % T, k = N - C, Math.abs(C) * 2 >= T && (k += C > 0 ? T : -T), L = 100 / ((x - S) / T), N = parseFloat(k.toFixed(5)), typeof g == "undefined" && (g = d / ((x - S) / T)), g > 1 && w && (y = (N - S) * L * (1 / T)), y < 0 && (y = 0), y > 100 && (y = 100), N < S && (N = S), N > x && (N = x), this.handle.css("left", y + "%"), this.handle[0].setAttribute("aria-valuenow", w ? N : E.eq(N).attr("value")), this.handle[0].setAttribute("aria-valuetext", w ? N : E.eq(N).getEncodedText()), this.handle[0].setAttribute("title", w ? N : E.eq(N).getEncodedText()), this.valuebg && this.valuebg.css("width", y + "%"), this._labels && (A = this.handle.width() / this.slider.width() * 100, O = y && A + (100 - A) * y / 100, M = y === 100 ? 0 : Math.min(A + 100 - O, 100), this._labels.each(function () { var t = e(this).hasClass("ui-slider-label-a"); e(this).width((t ? O : M) + "%") })); if (!i) { _ = !1, w ? (_ = parseFloat(b.val()) !== N, b.val(N)) : (_ = b[0].selectedIndex !== N, b[0].selectedIndex = N); if (this._trigger("beforechange", t) === !1) return !1; !r && _ && b.trigger("change") } }, _setHighlight: function (e) { e = !!e, e ? (this.options.highlight = !!e, this.refresh()) : this.valuebg && (this.valuebg.remove(), this.valuebg = !1) }, _setTheme: function (e) { this.handle.removeClass("ui-btn-" + this.options.theme).addClass("ui-btn-" + e); var t = this.options.theme ? this.options.theme : "inherit", n = e ? e : "inherit"; this.control.removeClass("ui-body-" + t).addClass("ui-body-" + n) }, _setTrackTheme: function (e) { var t = this.options.trackTheme ? this.options.trackTheme : "inherit", n = e ? e : "inherit"; this.slider.removeClass("ui-body-" + t).addClass("ui-body-" + n) }, _setMini: function (e) { e = !!e, !this.isToggleSwitch && !this.isRangeslider && (this.slider.parent().toggleClass("ui-mini", e), this.element.toggleClass("ui-mini", e)), this.slider.toggleClass("ui-mini", e) }, _setCorners: function (e) { this.slider.toggleClass("ui-corner-all", e), this.isToggleSwitch || this.control.toggleClass("ui-corner-all", e) }, _setDisabled: function (e) { e = !!e, this.element.prop("disabled", e), this.slider.toggleClass("ui-state-disabled", e).attr("aria-disabled", e), this.element.toggleClass("ui-state-disabled", e) } }, e.mobile.behaviors.formReset)) }(e), function (e, t) { e.widget("mobile.rangeslider", e.extend({ options: { theme: null, trackTheme: null, corners: !0, mini: !1, highlight: !0 }, _create: function () { var t = this.element, n = this.options.mini ? "ui-rangeslider ui-mini" : "ui-rangeslider", r = t.find("input").first(), i = t.find("input").last(), s = t.find("label").first(), o = e.data(r.get(0), "mobile-slider") || e.data(r.slider().get(0), "mobile-slider"), u = e.data(i.get(0), "mobile-slider") || e.data(i.slider().get(0), "mobile-slider"), a = o.slider, f = u.slider, l = o.handle, c = e("<div class='ui-rangeslider-sliders' />").appendTo(t); r.addClass("ui-rangeslider-first"), i.addClass("ui-rangeslider-last"), t.addClass(n), a.appendTo(c), f.appendTo(c), s.insertBefore(t), l.prependTo(f), e.extend(this, { _inputFirst: r, _inputLast: i, _sliderFirst: a, _sliderLast: f, _label: s, _targetVal: null, _sliderTarget: !1, _sliders: c, _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(l, { vmousedown: "_dragFirstHandle" }) }, _handleReset: function () { var e = this; setTimeout(function () { e._updateHighlight() }, 0) }, _dragFirstHandle: function (t) { return e.data(this._inputFirst.get(0), "mobile-slider").dragging = !0, e.data(this._inputFirst.get(0), "mobile-slider").refresh(t), e.data(this._inputFirst.get(0), "mobile-slider")._trigger("start"), !1 }, _slidedrag: function (t) { var n = e(t.target).is(this._inputFirst), r = n ? this._inputLast : this._inputFirst; this._sliderTarget = !1; if (this._proxy === "first" && n || this._proxy === "last" && !n) return e.data(r.get(0), "mobile-slider").dragging = !0, e.data(r.get(0), "mobile-slider").refresh(t), !1 }, _slidestop: function (t) { var n = e(t.target).is(this._inputFirst); this._proxy = !1, this.element.find("input").trigger("vmouseup"), this._sliderFirst.css("z-index", n ? 1 : "") }, _slidebeforestart: function (t) { this._sliderTarget = !1, e(t.originalEvent.target).hasClass("ui-slider-track") && (this._sliderTarget = !0, this._targetVal = e(t.target).val()) }, _setOptions: function (e) { e.theme !== t && this._setTheme(e.theme), e.trackTheme !== t && this._setTrackTheme(e.trackTheme), e.mini !== t && this._setMini(e.mini), e.highlight !== t && this._setHighlight(e.highlight), e.disabled !== t && this._setDisabled(e.disabled), this._super(e), this.refresh() }, refresh: function () { var e = this.element, t = this.options; if (this._inputFirst.is(":disabled") || this._inputLast.is(":disabled")) this.options.disabled = !0; e.find("input").slider({ theme: t.theme, trackTheme: t.trackTheme, disabled: t.disabled, corners: t.corners, mini: t.mini, highlight: t.highlight }).slider("refresh"), this._updateHighlight() }, _change: function (t) { if (t.type === "keyup") return this._updateHighlight(), !1; var n = this, r = parseFloat(this._inputFirst.val(), 10), i = parseFloat(this._inputLast.val(), 10), s = e(t.target).hasClass("ui-rangeslider-first"), o = s ? this._inputFirst : this._inputLast, u = s ? this._inputLast : this._inputFirst; if (this._inputFirst.val() > this._inputLast.val() && t.type === "mousedown" && !e(t.target).hasClass("ui-slider-handle")) o.blur(); else if (t.type === "mousedown") return; r > i && !this._sliderTarget ? (o.val(s ? i : r).slider("refresh"), this._trigger("normalize")) : r > i && (o.val(this._targetVal).slider("refresh"), setTimeout(function () { u.val(s ? r : i).slider("refresh"), e.data(u.get(0), "mobile-slider").handle.focus(), n._sliderFirst.css("z-index", s ? "" : 1), n._trigger("normalize") }, 0), this._proxy = s ? "first" : "last"), r === i ? (e.data(o.get(0), "mobile-slider").handle.css("z-index", 1), e.data(u.get(0), "mobile-slider").handle.css("z-index", 0)) : (e.data(u.get(0), "mobile-slider").handle.css("z-index", ""), e.data(o.get(0), "mobile-slider").handle.css("z-index", "")), this._updateHighlight(); if (r >= i) return !1 }, _updateHighlight: function () { var t = parseInt(e.data(this._inputFirst.get(0), "mobile-slider").handle.get(0).style.left, 10), n = parseInt(e.data(this._inputLast.get(0), "mobile-slider").handle.get(0).style.left, 10), r = n - t; this.element.find(".ui-slider-bg").css({ "margin-left": t + "%", width: r + "%" }) }, _setTheme: function (e) { this._inputFirst.slider("option", "theme", e), this._inputLast.slider("option", "theme", e) }, _setTrackTheme: function (e) { this._inputFirst.slider("option", "trackTheme", e), this._inputLast.slider("option", "trackTheme", e) }, _setMini: function (e) { this._inputFirst.slider("option", "mini", e), this._inputLast.slider("option", "mini", e), this.element.toggleClass("ui-mini", !!e) }, _setHighlight: function (e) { this._inputFirst.slider("option", "highlight", e), this._inputLast.slider("option", "highlight", e) }, _setDisabled: function (e) { this._inputFirst.prop("disabled", e), this._inputLast.prop("disabled", e) }, _destroy: function () { 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") } }, e.mobile.behaviors.formReset)) }(e), function (e, r) { e.widget("mobile.selectmenu", e.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 () { return e("<div/>") }, _setDisabled: function (e) { return this.element.attr("disabled", e), this.button.attr("aria-disabled", e), this._setOption("disabled", e) }, _focusButton: function () { var e = this; setTimeout(function () { e.button.focus() }, 40) }, _selectOptions: function () { return this.select.find("option") }, _preExtension: function () { var t = this.options.inline || this.element.jqmData("inline"), n = this.options.mini || this.element.jqmData("mini"), r = ""; !~this.element[0].className.indexOf("ui-btn-left") || (r = " ui-btn-left"), !~this.element[0].className.indexOf("ui-btn-right") || (r = " ui-btn-right"), t && (r += " ui-btn-inline"), n && (r += " ui-mini"), this.select = this.element.removeClass("ui-btn-left ui-btn-right").wrap("<div class='ui-select" + r + "'>"), this.selectId = this.select.attr("id") || "select-" + this.uuid, this.buttonId = this.selectId + "-button", this.label = e("label[for='" + this.selectId + "']"), this.isMultiple = this.select[0].multiple }, _destroy: function () { var e = this.element.parents(".ui-select"); e.length > 0 && (e.is(".ui-btn-left, .ui-btn-right") && this.element.addClass(e.hasClass("ui-btn-left") ? "ui-btn-left" : "ui-btn-right"), this.element.insertAfter(e), e.remove()) }, _create: function () { this._preExtension(), this.button = this._button(); var n = this, r = this.options, i = r.icon ? r.iconpos || this.select.jqmData("iconpos") : !1, s = this.button.insertBefore(this.select).attr("id", this.buttonId).addClass("ui-btn" + (r.icon ? " ui-icon-" + r.icon + " ui-btn-icon-" + i + (r.iconshadow ? " ui-shadow-icon" : "") : "") + (r.theme ? " ui-btn-" + r.theme : "") + (r.corners ? " ui-corner-all" : "") + (r.shadow ? " ui-shadow" : "")); this.setButtonText(), r.nativeMenu && t.opera && t.opera.version && s.addClass("ui-select-nativeonly"), this.isMultiple && (this.buttonCount = e("<span>").addClass("ui-li-count ui-body-inherit").hide().appendTo(s.addClass("ui-li-has-count"))), (r.disabled || this.element.attr("disabled")) && this.disable(), this.select.change(function () { n.refresh(), !r.nativeMenu || n._delay(function () { n.select.blur() }) }), this._handleFormReset(), this._on(this.button, { keydown: "_handleKeydown" }), this.build() }, build: function () { var t = this; this.select.appendTo(t.button).bind("vmousedown", function () { t.button.addClass(e.mobile.activeBtnClass) }).bind("focus", function () { t.button.addClass(e.mobile.focusClass) }).bind("blur", function () { t.button.removeClass(e.mobile.focusClass) }).bind("focus vmouseover", function () { t.button.trigger("vmouseover") }).bind("vmousemove", function () { t.button.removeClass(e.mobile.activeBtnClass) }).bind("change blur vmouseout", function () { t.button.trigger("vmouseout").removeClass(e.mobile.activeBtnClass) }), t.button.bind("vmousedown", function () { t.options.preventFocusZoom && e.mobile.zoom.disable(!0) }), t.label.bind("click focus", function () { t.options.preventFocusZoom && e.mobile.zoom.disable(!0) }), t.select.bind("focus", function () { t.options.preventFocusZoom && e.mobile.zoom.disable(!0) }), t.button.bind("mouseup", function () { t.options.preventFocusZoom && setTimeout(function () { e.mobile.zoom.enable(!0) }, 0) }), t.select.bind("blur", function () { t.options.preventFocusZoom && e.mobile.zoom.enable(!0) }) }, selected: function () { return this._selectOptions().filter(":selected") }, selectedIndices: function () { var e = this; return this.selected().map(function () { return e._selectOptions().index(this) }).get() }, setButtonText: function () { var t = this, r = this.selected(), i = this.placeholder, s = e(n.createElement("span")); this.button.children("span").not(".ui-li-count").remove().end().end().prepend(function () { return r.length ? i = r.map(function () { return e(this).text() }).get().join(", ") : i = t.placeholder, i ? s.text(i) : s.html("&#160;"), s.addClass(t.select.attr("class")).addClass(r.attr("class")).removeClass("ui-screen-hidden") }()) }, setButtonCount: function () { var e = this.selected(); this.isMultiple && this.buttonCount[e.length > 1 ? "show" : "hide"]().text(e.length) }, _handleKeydown: function () { this._delay("_refreshButton") }, _reset: function () { this.refresh() }, _refreshButton: function () { this.setButtonText(), this.setButtonCount() }, refresh: function () { this._refreshButton() }, open: e.noop, close: e.noop, disable: function () { this._setDisabled(!0), this.button.addClass("ui-state-disabled") }, enable: function () { this._setDisabled(!1), this.button.removeClass("ui-state-disabled") } }, e.mobile.behaviors.formReset)) }(e), function (e, t) { function r() { return n || (n = e("<div></div>", { "class": "ui-slider-popup ui-shadow ui-corner-all" })), n.clone() } var n; e.widget("mobile.slider", e.mobile.slider, { options: { popupEnabled: !1, showValue: !1 }, _create: function () { this._super(), e.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 () { var e = this.handle.offset(); this._popup.offset({ left: e.left + (this.handle.width() - this._popup.width()) / 2, top: e.top - this._popup.outerHeight() - 5 }) }, _setOption: function (e, t) { this._super(e, t), e === "showValue" ? this.handle.html(t && !this.options.mini ? this._value() : "") : e === "popupEnabled" && t && !this._popup && (this._popup = r().addClass("ui-body-" + (this.options.theme || "a")).hide().insertBefore(this.element)) }, refresh: function () { this._super.apply(this, arguments), this._refresh() }, _refresh: function () { var e = this.options, t; e.popupEnabled && this.handle.removeAttr("title"), t = this._value(); if (t === this._currentValue) return; this._currentValue = t, e.popupEnabled && this._popup && (this._positionPopup(), this._popup.html(t)), e.showValue && !this.options.mini && this.handle.html(t) }, _showPopup: function () { this.options.popupEnabled && !this._popupVisible && (this.handle.html(""), this._popup.show(), this._positionPopup(), this._popupVisible = !0) }, _hidePopup: function () { var e = this.options; e.popupEnabled && this._popupVisible && (e.showValue && !e.mini && this.handle.html(this._value()), this._popup.hide(), this._popupVisible = !1) } }) }(e), function (e, t) { var n = e.mobile.getAttribute; e.widget("mobile.listview", e.extend({ options: { theme: null, countTheme: null, dividerTheme: null, icon: "carat-r", splitIcon: "carat-r", splitTheme: null, corners: !0, shadow: !0, inset: !1 }, _create: function () { var e = this, t = ""; t += e.options.inset ? " ui-listview-inset" : "", !e.options.inset || (t += e.options.corners ? " ui-corner-all" : "", t += e.options.shadow ? " ui-shadow" : ""), e.element.addClass(" ui-listview" + t), e.refresh(!0) }, _findFirstElementByTagName: function (e, t, n, r) { var i = {}; i[n] = i[r] = !0; while (e) { if (i[e.nodeName]) return e; e = e[t] } return null }, _addThumbClasses: function (t) { var n, r, i = t.length; for (n = 0; n < i; n++) r = e(this._findFirstElementByTagName(t[n].firstChild, "nextSibling", "img", "IMG")), r.length && e(this._findFirstElementByTagName(r[0].parentNode, "parentNode", "li", "LI")).addClass(r.hasClass("ui-li-icon") ? "ui-li-has-icon" : "ui-li-has-thumb") }, _getChildrenByTagName: function (t, n, r) { var i = [], s = {}; s[n] = s[r] = !0, t = t.firstChild; while (t) s[t.nodeName] && i.push(t), t = t.nextSibling; return e(i) }, _beforeListviewRefresh: e.noop, _afterListviewRefresh: e.noop, refresh: function (t) { var r, i, s, o, u, a, f, l, c, h, p, d, v, m, g, y, b, w, E, S, x = this.options, T = this.element, N = !!e.nodeName(T[0], "ol"), C = T.attr("start"), k = {}, L = T.find(".ui-li-count"), A = n(T[0], "counttheme") || this.options.countTheme, O = A ? "ui-body-" + A : "ui-body-inherit"; x.theme && T.addClass("ui-group-theme-" + x.theme), N && (C || C === 0) && (p = parseInt(C, 10) - 1, T.css("counter-reset", "listnumbering " + p)), this._beforeListviewRefresh(), S = this._getChildrenByTagName(T[0], "li", "LI"); for (i = 0, s = S.length; i < s; i++) { o = S.eq(i), u = ""; if (t || o[0].className.search(/\bui-li-static\b|\bui-li-divider\b/) < 0) c = this._getChildrenByTagName(o[0], "a", "A"), h = n(o[0], "role") === "list-divider", v = o.attr("value"), a = n(o[0], "theme"), c.length && c[0].className.search(/\bui-btn\b/) < 0 && !h ? (f = n(o[0], "icon"), l = f === !1 ? !1 : f || x.icon, c.removeClass("ui-link"), r = "ui-btn", a && (r += " ui-btn-" + a), c.length > 1 ? (u = "ui-li-has-alt", m = c.last(), g = n(m[0], "theme") || x.splitTheme || n(o[0], "theme", !0), y = g ? " ui-btn-" + g : "", b = n(m[0], "icon") || n(o[0], "icon") || x.splitIcon, w = "ui-btn ui-btn-icon-notext ui-icon-" + b + y, m.attr("title", e.trim(m.getEncodedText())).addClass(w).empty(), c = c.first()) : l && (r += " ui-btn-icon-right ui-icon-" + l), c.addClass(r)) : h ? (E = n(o[0], "theme") || x.dividerTheme || x.theme, u = "ui-li-divider ui-bar-" + (E ? E : "inherit"), o.attr("role", "heading")) : c.length <= 0 && (u = "ui-li-static ui-body-" + (a ? a : "inherit")), N && v && (d = parseInt(v, 10) - 1, o.css("counter-reset", "listnumbering " + d)); k[u] || (k[u] = []), k[u].push(o[0]) } for (u in k) e(k[u]).addClass(u); L.each(function () { e(this).closest("li").addClass("ui-li-has-count") }), O && L.not("[class*='ui-body-']").addClass(O), this._addThumbClasses(S), this._addThumbClasses(S.find(".ui-btn")), this._afterListviewRefresh(), this._addFirstLastClasses(S, this._getVisibles(S, t), t) } }, e.mobile.behaviors.addFirstLastClasses)) }(e), function (e, t) { e.widget("mobile.navbar", { options: { iconpos: "top", grid: null }, _create: function () { var r = this.element, i = r.find("a, button"), s = i.filter(":jqmData(icon)").length ? this.options.iconpos : t; r.addClass("ui-navbar").attr("role", "navigation").find("ul").jqmEnhanceable().grid({ grid: this.options.grid }), i.each(function () { var t = e.mobile.getAttribute(this, "icon"), n = e.mobile.getAttribute(this, "theme"), r = "ui-btn"; n && (r += " ui-btn-" + n), t && (r += " ui-icon-" + t + " ui-btn-icon-" + s), e(this).addClass(r) }), r.delegate("a", "vclick", function () { var t = e(this); t.hasClass("ui-state-disabled") || t.hasClass("ui-disabled") || t.hasClass(e.mobile.activeBtnClass) || (i.removeClass(e.mobile.activeBtnClass), t.addClass(e.mobile.activeBtnClass), e(n).one("pagehide", function () { t.removeClass(e.mobile.activeBtnClass) })) }), r.closest(".ui-page").bind("pagebeforeshow", function () { i.filter(".ui-state-persist").addClass(e.mobile.activeBtnClass) }) } }) }(e), function (e, n) { e.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 () { var t = this.element, n = t.closest(".ui-page, :jqmData(role='page')"); e.extend(this, { _closeLink: t.find(":jqmData(rel='close')"), _parentPage: n.length > 0 ? n : !1, _openedPage: null, _page: this._getPage, _panelInner: this._getPanelInner(), _fixedToolbars: this._getFixedToolbars }), this.options.display !== "overlay" && this._getWrapper(), this._addPanelClasses(), e.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 () { var e = this.element.find("." + this.options.classes.panelInner); return e.length === 0 && (e = this.element.children().wrapAll("<div class='" + this.options.classes.panelInner + "' />").parent()), e }, _createModal: function () { var t = this, n = t._parentPage ? t._parentPage.parent() : t.element.parent(); t._modal = e("<div class='" + t.options.classes.modal + "'></div>").on("mousedown", function () { t.close() }).appendTo(n) }, _getPage: function () { var t = this._openedPage || this._parentPage || e("." + e.mobile.activePageClass); return t }, _getWrapper: function () { var e = this._page().find("." + this.options.classes.pageWrapper); e.length === 0 && (e = 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 = e }, _getFixedToolbars: function () { var t = e("body").children(".ui-header-fixed, .ui-footer-fixed"), n = this._page().find(".ui-header-fixed, .ui-footer-fixed"), r = t.add(n).addClass(this.options.classes.pageFixedToolbar); return r }, _getPosDisplayClasses: function (e) { return e + "-position-" + this.options.position + " " + e + "-display-" + this.options.display }, _getPanelClasses: function () { var e = 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 || (e += " " + this.options.classes.panelFixed), e }, _addPanelClasses: function () { this.element.addClass(this._getPanelClasses()) }, _handleCloseClick: function (e) { e.isDefaultPrevented() || this.close() }, _bindCloseEvents: function () { this._on(this._closeLink, { click: "_handleCloseClick" }), this._on({ "click a:jqmData(ajax='false')": "_handleCloseClick" }) }, _positionPanel: function (t) { var n = this, r = n._panelInner.outerHeight(), i = r > e.mobile.getScreenHeight(); i || !n.options.positionFixed ? (i && (n._unfixPanel(), e.mobile.resetActivePageHeight(r)), t && this.window[0].scrollTo(0, e.mobile.defaultHomeScroll)) : n._fixPanel() }, _bindFixListener: function () { this._on(e(t), { throttledresize: "_positionPanel" }) }, _unbindFixListener: function () { this._off(e(t), "throttledresize") }, _unfixPanel: function () { !!this.options.positionFixed && e.support.fixedPosition && this.element.removeClass(this.options.classes.panelFixed) }, _fixPanel: function () { !!this.options.positionFixed && e.support.fixedPosition && this.element.addClass(this.options.classes.panelFixed) }, _bindUpdateLayout: function () { var e = this; e.element.on("updatelayout", function () { e._open && e._positionPanel() }) }, _bindLinkListeners: function () { this._on("body", { "click a": "_handleClick" }) }, _handleClick: function (t) { var r, i = this.element.attr("id"); t.currentTarget.href.split("#")[1] === i && i !== n && (t.preventDefault(), r = e(t.target), r.hasClass("ui-btn") && (r.addClass(e.mobile.activeBtnClass), this.element.one("panelopen panelclose", function () { r.removeClass(e.mobile.activeBtnClass) })), this.toggle()) }, _bindSwipeEvents: function () { var e = this, t = e._modal ? e.element.add(e._modal) : e.element; !e.options.swipeClose || (e.options.position === "left" ? t.on("swipeleft.panel", function () { e.close() }) : t.on("swiperight.panel", function () { e.close() })) }, _bindPageEvents: function () { var e = this; this.document.on("panelbeforeopen", function (t) { e._open && t.target !== e.element[0] && e.close() }).on("keyup.panel", function (t) { t.keyCode === 27 && e._open && e.close() }), !this._parentPage && this.options.display !== "overlay" && this._on(this.document, { pageshow: function () { this._openedPage = null, this._getWrapper() } }), e._parentPage ? this.document.on("pagehide", ":jqmData(role='page')", function () { e._open && e.close(!0) }) : this.document.on("pagebeforehide", function () { e._open && e.close(!0) }) }, _open: !1, _pageContentOpenClasses: null, _modalOpenClasses: null, open: function (t) { if (!this._open) { var n = this, r = n.options, i = function () { n._off(n.document, "panelclose"), n._page().jqmData("panel", "open"), e.support.cssTransform3d && !!r.animate && r.display !== "overlay" && (n._wrapper.addClass(r.classes.animate), n._fixedToolbars().addClass(r.classes.animate)), !t && e.support.cssTransform3d && !!r.animate ? (n._wrapper || n.element).animationComplete(s, "transition") : setTimeout(s, 0), r.theme && r.display !== "overlay" && n._page().parent().addClass(r.classes.pageContainer + "-themed " + r.classes.pageContainer + "-" + r.theme), n.element.removeClass(r.classes.panelClosed).addClass(r.classes.panelOpen), n._positionPanel(!0), n._pageContentOpenClasses = n._getPosDisplayClasses(r.classes.pageContentPrefix), r.display !== "overlay" && (n._page().parent().addClass(r.classes.pageContainer), n._wrapper.addClass(n._pageContentOpenClasses), n._fixedToolbars().addClass(n._pageContentOpenClasses)), n._modalOpenClasses = n._getPosDisplayClasses(r.classes.modal) + " " + r.classes.modalOpen, n._modal && n._modal.addClass(n._modalOpenClasses).height(Math.max(n._modal.height(), n.document.height())) }, s = function () { if (!n._open) return; r.display !== "overlay" && (n._wrapper.addClass(r.classes.pageContentPrefix + "-open"), n._fixedToolbars().addClass(r.classes.pageContentPrefix + "-open")), n._bindFixListener(), n._trigger("open"), n._openedPage = n._page() }; n._trigger("beforeopen"), n._page().jqmData("panel") === "open" ? n._on(n.document, { panelclose: i }) : i(), n._open = !0 } }, close: function (t) { if (this._open) { var n = this, r = this.options, i = function () { n.element.removeClass(r.classes.panelOpen), r.display !== "overlay" && (n._wrapper.removeClass(n._pageContentOpenClasses), n._fixedToolbars().removeClass(n._pageContentOpenClasses)), !t && e.support.cssTransform3d && !!r.animate ? (n._wrapper || n.element).animationComplete(s, "transition") : setTimeout(s, 0), n._modal && n._modal.removeClass(n._modalOpenClasses).height("") }, s = function () { r.theme && r.display !== "overlay" && n._page().parent().removeClass(r.classes.pageContainer + "-themed " + r.classes.pageContainer + "-" + r.theme), n.element.addClass(r.classes.panelClosed), r.display !== "overlay" && (n._page().parent().removeClass(r.classes.pageContainer), n._wrapper.removeClass(r.classes.pageContentPrefix + "-open"), n._fixedToolbars().removeClass(r.classes.pageContentPrefix + "-open")), e.support.cssTransform3d && !!r.animate && r.display !== "overlay" && (n._wrapper.removeClass(r.classes.animate), n._fixedToolbars().removeClass(r.classes.animate)), n._fixPanel(), n._unbindFixListener(), e.mobile.resetActivePageHeight(), n._page().jqmRemoveData("panel"), n._trigger("close"), n._openedPage = null }; n._trigger("beforeclose"), i(), n._open = !1 } }, toggle: function () { this[this._open ? "close" : "open"]() }, _destroy: function () { var t, n = this.options, r = e("body > :mobile-panel").length + e.mobile.activePage.find(":mobile-panel").length > 1; n.display !== "overlay" && (t = e("body > :mobile-panel").add(e.mobile.activePage.find(":mobile-panel")), t.not(".ui-panel-display-overlay").not(this.element).length === 0 && this._wrapper.children().unwrap(), this._open && (this._fixedToolbars().removeClass(n.classes.pageContentPrefix + "-open"), e.support.cssTransform3d && !!n.animate && this._fixedToolbars().removeClass(n.classes.animate), this._page().parent().removeClass(n.classes.pageContainer), n.theme && this._page().parent().removeClass(n.classes.pageContainer + "-themed " + n.classes.pageContainer + "-" + n.theme))), r || this.document.off("panelopen panelclose"), this._open && this._page().jqmRemoveData("panel"), this._panelInner.children().unwrap(), this.element.removeClass([this._getPanelClasses(), n.classes.panelOpen, n.classes.animate].join(" ")).off("swipeleft.panel swiperight.panel").off("panelbeforeopen").off("panelhide").off("keyup.panel").off("updatelayout"), this._modal && this._modal.remove() } }) }(e), function (e, n) { function r(e, t, n, r) { var i = r; return e < t ? i = n + (e - t) / 2 : i = Math.min(Math.max(n, r - t / 2), n + e - t), i } function i(e) { return { x: e.scrollLeft(), y: e.scrollTop(), cx: e[0].innerWidth || e.width(), cy: e[0].innerHeight || e.height() } } e.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: !e.mobile.browser.oldIE }, _handleDocumentVmousedown: function (t) { this._isOpen && e.contains(this._ui.container[0], t.target) && this._ignoreResizeEvents() }, _create: function () { var t = this.element, n = t.attr("id"), r = this.options; r.history = r.history && e.mobile.ajaxEnabled && e.mobile.hashListeningEnabled, this._on(this.document, { vmousedown: "_handleDocumentVmousedown" }), e.extend(this, { _scrollTop: 0, _page: t.closest(".ui-page"), _ui: null, _fallbackTransition: "", _currentTransition: !1, _prerequisites: null, _isOpen: !1, _tolerance: null, _resizeData: null, _ignoreResizeTo: 0, _orientationchangeInProgress: !1 }), this._page.length === 0 && (this._page = e("body")), r.enhanced ? this._ui = { container: t.parent(), screen: t.parent().prev(), placeholder: e(this.document[0].getElementById(n + "-placeholder")) } : (this._ui = this._enhance(t, n), this._applyTransition(r.transition)), this._setTolerance(r.tolerance)._ui.focusElement = this._ui.container, this._on(this._ui.screen, { vclick: "_eatEventAndClose" }), this._on(this.window, { orientationchange: e.proxy(this, "_handleWindowOrientationchange"), resize: e.proxy(this, "_handleWindowResize"), keyup: e.proxy(this, "_handleWindowKeyUp") }), this._on(this.document, { focusin: "_handleDocumentFocusIn" }) }, _enhance: function (t, n) { var r = this.options, i = r.wrapperClass, s = { screen: e("<div class='ui-screen-hidden ui-popup-screen " + this._themeClassFromOption("ui-overlay-", r.overlayTheme) + "'></div>"), placeholder: e("<div style='display: none;'><!-- placeholder --></div>"), container: e("<div class='ui-popup-container ui-popup-hidden ui-popup-truncate" + (i ? " " + i : "") + "'></div>") }, o = this.document[0].createDocumentFragment(); return o.appendChild(s.screen[0]), o.appendChild(s.container[0]), n && (s.screen.attr("id", n + "-screen"), s.container.attr("id", n + "-popup"), s.placeholder.attr("id", n + "-placeholder").html("<!-- placeholder for " + n + " -->")), this._page[0].appendChild(o), s.placeholder.insertAfter(t), t.detach().addClass("ui-popup " + this._themeClassFromOption("ui-body-", r.theme) + " " + (r.shadow ? "ui-overlay-shadow " : "") + (r.corners ? "ui-corner-all " : "")).appendTo(s.container), s }, _eatEventAndClose: function (e) { return e.preventDefault(), e.stopImmediatePropagation(), this.options.dismissible && this.close(), !1 }, _resizeScreen: function () { var e = this._ui.screen, t = this._ui.container.outerHeight(!0), n = e.removeAttr("style").height(), r = this.document.height() - 1; n < r ? e.height(r) : t > n && e.height(t) }, _handleWindowKeyUp: function (t) { if (this._isOpen && t.keyCode === e.mobile.keyCode.ESCAPE) return this._eatEventAndClose(t) }, _expectResizeEvent: function () { var e = i(this.window); if (this._resizeData) { if (e.x === this._resizeData.windowCoordinates.x && e.y === this._resizeData.windowCoordinates.y && e.cx === this._resizeData.windowCoordinates.cx && e.cy === this._resizeData.windowCoordinates.cy) return !1; clearTimeout(this._resizeData.timeoutId) } return this._resizeData = { timeoutId: this._delay("_resizeTimeout", 200), windowCoordinates: e }, !0 }, _resizeTimeout: function () { 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 () { this._ignoreResizeTo = 0 }, _ignoreResizeEvents: function () { this._ignoreResizeTo && clearTimeout(this._ignoreResizeTo), this._ignoreResizeTo = this._delay("_stopIgnoringResizeEvents", 1e3) }, _handleWindowResize: function () { this._isOpen && this._ignoreResizeTo === 0 && (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 () { !this._orientationchangeInProgress && this._isOpen && this._ignoreResizeTo === 0 && (this._expectResizeEvent(), this._orientationchangeInProgress = !0) }, _handleDocumentFocusIn: function (t) { var n, r = t.target, i = this._ui; if (!this._isOpen) return; if (r !== i.container[0]) { n = e(r); if (!e.contains(i.container[0], r)) return e(this.document[0].activeElement).one("focus", e.proxy(function () { this._safelyBlur(r) }, this)), i.focusElement.focus(), t.preventDefault(), t.stopImmediatePropagation(), !1; i.focusElement[0] === i.container[0] && (i.focusElement = n) } this._ignoreResizeEvents() }, _themeClassFromOption: function (e, t) { return t ? t === "none" ? "" : e + t : e + "inherit" }, _applyTransition: function (t) { return t && (this._ui.container.removeClass(this._fallbackTransition), t !== "none" && (this._fallbackTransition = e.mobile._maybeDegradeTransition(t), this._fallbackTransition === "none" && (this._fallbackTransition = ""), this._ui.container.addClass(this._fallbackTransition))), this }, _setOptions: function (e) { var t = this.options, r = this.element, i = this._ui.screen; return e.wrapperClass !== n && this._ui.container.removeClass(t.wrapperClass).addClass(e.wrapperClass), e.theme !== n && r.removeClass(this._themeClassFromOption("ui-body-", t.theme)).addClass(this._themeClassFromOption("ui-body-", e.theme)), e.overlayTheme !== n && (i.removeClass(this._themeClassFromOption("ui-overlay-", t.overlayTheme)).addClass(this._themeClassFromOption("ui-overlay-", e.overlayTheme)), this._isOpen && i.addClass("in")), e.shadow !== n && r.toggleClass("ui-overlay-shadow", e.shadow), e.corners !== n && r.toggleClass("ui-corner-all", e.corners), e.transition !== n && (this._currentTransition || this._applyTransition(e.transition)), e.tolerance !== n && this._setTolerance(e.tolerance), e.disabled !== n && e.disabled && this.close(), this._super(e) }, _setTolerance: function (t) { var r = { t: 30, r: 15, b: 30, l: 15 }, i; if (t !== n) { i = String(t).split(","), e.each(i, function (e, t) { i[e] = parseInt(t, 10) }); switch (i.length) { case 1: isNaN(i[0]) || (r.t = r.r = r.b = r.l = i[0]); break; case 2: isNaN(i[0]) || (r.t = r.b = i[0]), isNaN(i[1]) || (r.l = r.r = i[1]); break; case 4: isNaN(i[0]) || (r.t = i[0]), isNaN(i[1]) || (r.r = i[1]), isNaN(i[2]) || (r.b = i[2]), isNaN(i[3]) || (r.l = i[3]); break; default: } } return this._tolerance = r, this }, _clampPopupWidth: function (e) { var t, n = i(this.window), r = { x: this._tolerance.l, y: n.y + this._tolerance.t, cx: n.cx - this._tolerance.l - this._tolerance.r, cy: n.cy - this._tolerance.t - this._tolerance.b }; return e || this._ui.container.css("max-width", r.cx), t = { cx: this._ui.container.outerWidth(!0), cy: this._ui.container.outerHeight(!0) }, { rc: r, menuSize: t } }, _calculateFinalLocation: function (e, t) { var n, i = t.rc, s = t.menuSize; return n = { left: r(i.cx, s.cx, i.x, e.x), top: r(i.cy, s.cy, i.y, e.y) }, n.top = Math.max(0, n.top), n.top -= Math.min(n.top, Math.max(0, n.top + s.cy - this.document.height())), n }, _placementCoords: function (e) { return this._calculateFinalLocation(e, this._clampPopupWidth()) }, _createPrerequisites: function (t, n, r) { var i, s = this; i = { screen: e.Deferred(), container: e.Deferred() }, i.screen.then(function () { i === s._prerequisites && t() }), i.container.then(function () { i === s._prerequisites && n() }), e.when(i.screen, i.container).done(function () { i === s._prerequisites && (s._prerequisites = null, r()) }), s._prerequisites = i }, _animate: function (t) { this._ui.screen.removeClass(t.classToRemove).addClass(t.screenClassToAdd), t.prerequisites.screen.resolve(); if (t.transition && t.transition !== "none") { t.applyTransition && this._applyTransition(t.transition); if (this._fallbackTransition) { this._ui.container.addClass(t.containerClassToAdd).removeClass(t.classToRemove).animationComplete(e.proxy(t.prerequisites.container, "resolve")); return } } this._ui.container.removeClass(t.classToRemove), t.prerequisites.container.resolve() }, _desiredCoords: function (t) { var n, r = null, s = i(this.window), o = t.x, u = t.y, a = t.positionTo; if (a && a !== "origin") if (a === "window") o = s.cx / 2 + s.x, u = s.cy / 2 + s.y; else { try { r = e(a) } catch (f) { r = null } r && (r.filter(":visible"), r.length === 0 && (r = null)) } r && (n = r.offset(), o = n.left + r.outerWidth() / 2, u = n.top + r.outerHeight() / 2); if (e.type(o) !== "number" || isNaN(o)) o = s.cx / 2 + s.x; if (e.type(u) !== "number" || isNaN(u)) u = s.cy / 2 + s.y; return { x: o, y: u } }, _reposition: function (e) { e = { x: e.x, y: e.y, positionTo: e.positionTo }, this._trigger("beforeposition", n, e), this._ui.container.offset(this._placementCoords(this._desiredCoords(e))) }, reposition: function (e) { this._isOpen && this._reposition(e) }, _safelyBlur: function (t) { t !== this.window[0] && t.nodeName.toLowerCase() !== "body" && e(t).blur() }, _openPrerequisitesComplete: function () { var t = this.element.attr("id"), n = this._ui.container.find(":focusable").first(); this._ui.container.addClass("ui-popup-active"), this._isOpen = !0, this._resizeScreen(), e.contains(this._ui.container[0], this.document[0].activeElement) || this._safelyBlur(this.document[0].activeElement), n.length > 0 && (this._ui.focusElement = n), this._ignoreResizeEvents(), t && this.document.find("[aria-haspopup='true'][aria-owns='" + t + "']").attr("aria-expanded", !0), this._trigger("afteropen") }, _open: function (t) { var n = e.extend({}, this.options, t), r = function () { var e = navigator.userAgent, t = e.match(/AppleWebKit\/([0-9\.]+)/), n = !!t && t[1], r = e.match(/Android (\d+(?:\.\d+))/), i = !!r && r[1], s = e.indexOf("Chrome") > -1; return r !== null && i === "4.0" && n && n > 534.13 && !s ? !0 : !1 }(); this._createPrerequisites(e.noop, e.noop, e.proxy(this, "_openPrerequisitesComplete")), this._currentTransition = n.transition, this._applyTransition(n.transition), this._ui.screen.removeClass("ui-screen-hidden"), this._ui.container.removeClass("ui-popup-truncate"), this._reposition(n), this._ui.container.removeClass("ui-popup-hidden"), this.options.overlayTheme && r && this.element.closest(".ui-page").addClass("ui-popup-open"), this._animate({ additionalCondition: !0, transition: n.transition, classToRemove: "", screenClassToAdd: "in", containerClassToAdd: "in", applyTransition: !1, prerequisites: this._prerequisites }) }, _closePrerequisiteScreen: function () { this._ui.screen.removeClass("out").addClass("ui-screen-hidden") }, _closePrerequisiteContainer: function () { this._ui.container.removeClass("reverse out").addClass("ui-popup-hidden ui-popup-truncate").removeAttr("style") }, _closePrerequisitesDone: function () { var t = this._ui.container, r = this.element.attr("id"); e.mobile.popup.active = n, e(":focus", t[0]).add(t[0]).blur(), r && this.document.find("[aria-haspopup='true'][aria-owns='" + r + "']").attr("aria-expanded", !1), this._trigger("afterclose") }, _close: function (t) { this._ui.container.removeClass("ui-popup-active"), this._page.removeClass("ui-popup-open"), this._isOpen = !1, this._createPrerequisites(e.proxy(this, "_closePrerequisiteScreen"), e.proxy(this, "_closePrerequisiteContainer"), e.proxy(this, "_closePrerequisitesDone")), this._animate({ additionalCondition: this._ui.screen.hasClass("in"), transition: t ? "none" : this._currentTransition, classToRemove: "in", screenClassToAdd: "out", containerClassToAdd: "reverse out", applyTransition: !0, prerequisites: this._prerequisites }) }, _unenhance: function () { if (this.options.enhanced) return; this._setOptions({ theme: e.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 () { return e.mobile.popup.active === this ? (this.element.one("popupafterclose", e.proxy(this, "_unenhance")), this.close()) : this._unenhance(), this }, _closePopup: function (n, r) { var i, s, o = this.options, u = !1; if (n && n.isDefaultPrevented() || e.mobile.popup.active !== this) return; t.scrollTo(0, this._scrollTop), n && n.type === "pagebeforechange" && r && (typeof r.toPage == "string" ? i = r.toPage : i = r.toPage.jqmData("url"), i = e.mobile.path.parseUrl(i), s = i.pathname + i.search + i.hash, this._myUrl !== e.mobile.path.makeUrlAbsolute(s) ? u = !0 : n.preventDefault()), this.window.off(o.closeEvents), this.element.undelegate(o.closeLinkSelector, o.closeLinkEvents), this._close(u) }, _bindContainerClose: function () { this.window.on(this.options.closeEvents, e.proxy(this, "_closePopup")) }, widget: function () { return this._ui.container }, open: function (t) { var n, r, i, s, o, u, a = this, f = this.options; return e.mobile.popup.active || f.disabled ? this : (e.mobile.popup.active = this, this._scrollTop = this.window.scrollTop(), f.history ? (u = e.mobile.navigate.history, r = e.mobile.dialogHashKey, i = e.mobile.activePage, s = i ? i.hasClass("ui-dialog") : !1, this._myUrl = n = u.getActive().url, o = n.indexOf(r) > -1 && !s && u.activeIndex > 0, o ? (a._open(t), a._bindContainerClose(), this) : (n.indexOf(r) === -1 && !s ? n += n.indexOf("#") > -1 ? r : "#" + r : n = e.mobile.path.parseLocation().hash + r, this.window.one("beforenavigate", function (e) { e.preventDefault(), a._open(t), a._bindContainerClose() }), this.urlAltered = !0, e.mobile.navigate(n, { role: "dialog" }), this)) : (a._open(t), a._bindContainerClose(), a.element.delegate(f.closeLinkSelector, f.closeLinkEvents, function (e) { a.close(), e.preventDefault() }), this)) }, close: function () { return e.mobile.popup.active !== this ? this : (this._scrollTop = this.window.scrollTop(), this.options.history && this.urlAltered ? (e.mobile.back(), this.urlAltered = !1) : this._closePopup(), this) } }), e.mobile.popup.handleLink = function (t) { var n, r = e.mobile.path, i = e(r.hashToSelector(r.parseUrl(t.attr("href")).hash)).first(); i.length > 0 && i.data("mobile-popup") && (n = t.offset(), i.popup("open", { x: n.left + t.outerWidth() / 2, y: n.top + t.outerHeight() / 2, transition: t.jqmData("transition"), positionTo: t.jqmData("position-to") })), setTimeout(function () { t.removeClass(e.mobile.activeBtnClass) }, 300) }, e.mobile.document.on("pagebeforechange", function (t, n) { n.options.role === "popup" && (e.mobile.popup.handleLink(n.options.link), t.preventDefault()) }) }(e), function (e, t) { function i() { var e = r.clone(), t = e.eq(0), n = e.eq(1), i = n.children(); return { arEls: n.add(t), gd: t, ct: n, ar: i } } var n = e.mobile.browser.oldIE && e.mobile.browser.oldIE <= 8, r = e("<div class='ui-popup-arrow-guide'></div><div class='ui-popup-arrow-container" + (n ? " ie" : "") + "'>" + "<div class='ui-popup-arrow'></div>" + "</div>"); e.widget("mobile.popup", e.mobile.popup, { options: { arrow: "" }, _create: function () { var e, t = this._super(); return this.options.arrow && (this._ui.arrow = e = this._addArrow()), t }, _addArrow: function () { var e, t = this.options, n = i(); return e = this._themeClassFromOption("ui-body-", t.theme), n.ar.addClass(e + (t.shadow ? " ui-overlay-shadow" : "")), n.arEls.hide().appendTo(this.element), n }, _unenhance: function () { var e = this._ui.arrow; return e && e.arEls.remove(), this._super() }, _tryAnArrow: function (e, t, n, r, i) { var s, o, u, a = {}, f = {}; if (r.arFull[e.dimKey] > r.guideDims[e.dimKey]) return i; a[e.fst] = n[e.fst] + (r.arHalf[e.oDimKey] + r.menuHalf[e.oDimKey]) * e.offsetFactor - r.contentBox[e.fst] + (r.clampInfo.menuSize[e.oDimKey] - r.contentBox[e.oDimKey]) * e.arrowOffsetFactor, a[e.snd] = n[e.snd], s = r.result || this._calculateFinalLocation(a, r.clampInfo), o = { x: s.left, y: s.top }, f[e.fst] = o[e.fst] + r.contentBox[e.fst] + e.tipOffset, f[e.snd] = Math.max(s[e.prop] + r.guideOffset[e.prop] + r.arHalf[e.dimKey], Math.min(s[e.prop] + r.guideOffset[e.prop] + r.guideDims[e.dimKey] - r.arHalf[e.dimKey], n[e.snd])), u = Math.abs(n.x - f.x) + Math.abs(n.y - f.y); if (!i || u < i.diff) f[e.snd] -= r.arHalf[e.dimKey] + s[e.prop] + r.contentBox[e.snd], i = { dir: t, diff: u, result: s, posProp: e.prop, posVal: f[e.snd] }; return i }, _getPlacementState: function (e) { var t, n, r = this._ui.arrow, i = { clampInfo: this._clampPopupWidth(!e), arFull: { cx: r.ct.width(), cy: r.ct.height() }, guideDims: { cx: r.gd.width(), cy: r.gd.height() }, guideOffset: r.gd.offset() }; return t = this.element.offset(), r.gd.css({ left: 0, top: 0, right: 0, bottom: 0 }), n = r.gd.offset(), i.contentBox = { x: n.left - t.left, y: n.top - t.top, cx: r.gd.width(), cy: r.gd.height() }, r.gd.removeAttr("style"), i.guideOffset = { left: i.guideOffset.left - t.left, top: i.guideOffset.top - t.top }, i.arHalf = { cx: i.arFull.cx / 2, cy: i.arFull.cy / 2 }, i.menuHalf = { cx: i.clampInfo.menuSize.cx / 2, cy: i.clampInfo.menuSize.cy / 2 }, i }, _placementCoords: function (t) { var r, i, s, o, u, a = this.options.arrow, f = this._ui.arrow; return f ? (f.arEls.show(), u = {}, r = this._getPlacementState(!0), s = { l: { fst: "x", snd: "y", prop: "top", dimKey: "cy", oDimKey: "cx", offsetFactor: 1, tipOffset: -r.arHalf.cx, arrowOffsetFactor: 0 }, r: { fst: "x", snd: "y", prop: "top", dimKey: "cy", oDimKey: "cx", offsetFactor: -1, tipOffset: r.arHalf.cx + r.contentBox.cx, arrowOffsetFactor: 1 }, b: { fst: "y", snd: "x", prop: "left", dimKey: "cx", oDimKey: "cy", offsetFactor: -1, tipOffset: r.arHalf.cy + r.contentBox.cy, arrowOffsetFactor: 1 }, t: { fst: "y", snd: "x", prop: "left", dimKey: "cx", oDimKey: "cy", offsetFactor: 1, tipOffset: -r.arHalf.cy, arrowOffsetFactor: 0 } }, e.each((a === !0 ? "l,t,r,b" : a).split(","), e.proxy(function (e, n) { i = this._tryAnArrow(s[n], n, t, r, i) }, this)), i ? (f.ct.removeClass("ui-popup-arrow-l ui-popup-arrow-t ui-popup-arrow-r ui-popup-arrow-b").addClass("ui-popup-arrow-" + i.dir).removeAttr("style").css(i.posProp, i.posVal).show(), n || (o = this.element.offset(), u[s[i.dir].fst] = f.ct.offset(), u[s[i.dir].snd] = { left: o.left + r.contentBox.x, top: o.top + r.contentBox.y }), i.result) : (f.arEls.hide(), this._super(t))) : this._super(t) }, _setOptions: function (e) { var n, r = this.options.theme, i = this._ui.arrow, s = this._super(e); if (e.arrow !== t) { if (!i && e.arrow) { this._ui.arrow = this._addArrow(); return } i && !e.arrow && (i.arEls.remove(), this._ui.arrow = null) } return i = this._ui.arrow, i && (e.theme !== t && (r = this._themeClassFromOption("ui-body-", r), n = this._themeClassFromOption("ui-body-", e.theme), i.ar.removeClass(r).addClass(n)), e.shadow !== t && i.ar.toggleClass("ui-overlay-shadow", e.shadow)), s }, _destroy: function () { var e = this._ui.arrow; return e && e.arEls.remove(), this._super() } }) }(e), function (e, t) { e.widget("mobile.table", { options: { classes: { table: "ui-table" }, enhanced: !1 }, _create: function () { this.options.enhanced || this.element.addClass(this.options.classes.table), e.extend(this, { headers: t, allHeaders: t }), this._refresh(!0) }, _setHeaders: function () { var e = this.element.find("thead tr"); this.headers = this.element.find("tr:eq(0)").children(), this.allHeaders = this.headers.add(e.children()) }, refresh: function () { this._refresh() }, rebuild: e.noop, _refresh: function () { var t = this.element, n = t.find("thead tr"); this._setHeaders(), n.each(function () { var r = 0; e(this).children().each(function () { var i = parseInt(this.getAttribute("colspan"), 10), s = ":nth-child(" + (r + 1) + ")", o; this.setAttribute("data-" + e.mobile.ns + "colstart", r + 1); if (i) for (o = 0; o < i - 1; o++) r++, s += ", :nth-child(" + (r + 1) + ")"; e(this).jqmData("cells", t.find("tr").not(n.eq(0)).not(this).children(s)), r++ }) }) } }) }(e), function (e, t) { e.widget("mobile.table", e.mobile.table, { options: { mode: "reflow", classes: e.extend(e.mobile.table.prototype.options.classes, { reflowTable: "ui-table-reflow", cellLabels: "ui-table-cell-label" }) }, _create: function () { this._super(); if (this.options.mode !== "reflow") return; this.options.enhanced || (this.element.addClass(this.options.classes.reflowTable), this._updateReflow()) }, rebuild: function () { this._super(), this.options.mode === "reflow" && this._refresh(!1) }, _refresh: function (e) { this._super(e), !e && this.options.mode === "reflow" && this._updateReflow() }, _updateReflow: function () { var t = this, n = this.options; e(t.allHeaders.get().reverse()).each(function () { var r = e(this).jqmData("cells"), i = e.mobile.getAttribute(this, "colstart"), s = r.not(this).filter("thead th").length && " ui-table-cell-label-top", o = e(this).clone().contents(), u, a; o.length > 0 && (s ? (u = parseInt(this.getAttribute("colspan"), 10), a = "", u && (a = "td:nth-child(" + u + "n + " + i + ")"), t._addLabels(r.filter(a), n.classes.cellLabels + s, o)) : t._addLabels(r, n.classes.cellLabels, o)) }) }, _addLabels: function (t, n, r) { r.length === 1 && r[0].nodeName.toLowerCase() === "abbr" && (r = r.eq(0).attr("title")), t.not(":has(b." + n + ")").prepend(e("<b class='" + n + "'></b>").append(r)) } }) }(e) });