").html(element.clone()).html()).indexOf(" type=") > -1) ? /\s+type=["']?\w+['"]?/ : /\/?>/, repstr = " type=\"" + optType + "\" data-" + $10.mobile.ns + "type=\"" + type + "\"" + (hasType ? "" : ">"), element.replaceWith(html.replace(findstr, repstr)));
});
}, (function($, window, undefined) {
$.widget("mobile.page", $.mobile.page, {
options: {
closeBtn: "left",
closeBtnText: "Close",
overlayTheme: "a",
corners: !0,
dialog: !1
},
_create: function() {
this._super(), this.options.dialog && ($.extend(this, {
_inner: this.element.children(),
_headerCloseButton: null
}), this.options.enhanced || this._setCloseBtn(this.options.closeBtn));
},
_enhance: function() {
this._super(), this.options.dialog && this.element.addClass("ui-dialog").wrapInner($("
", {
role: "dialog",
"class": "ui-dialog-contain ui-overlay-shadow" + (this.options.corners ? " ui-corner-all" : "")
}));
},
_setOptions: function(options) {
var closeButtonLocation, closeButtonText, currentOpts = this.options;
undefined !== options.corners && this._inner.toggleClass("ui-corner-all", !!options.corners), undefined !== options.overlayTheme && $.mobile.activePage[0] === this.element[0] && (currentOpts.overlayTheme = options.overlayTheme, this._handlePageBeforeShow()), undefined !== options.closeBtnText && (closeButtonLocation = currentOpts.closeBtn, closeButtonText = options.closeBtnText), undefined !== options.closeBtn && (closeButtonLocation = options.closeBtn), closeButtonLocation && this._setCloseBtn(closeButtonLocation, closeButtonText), this._super(options);
},
_handlePageBeforeShow: function() {
this.options.overlayTheme && this.options.dialog ? (this.removeContainerBackground(), this.setContainerBackground(this.options.overlayTheme)) : this._super();
},
_setCloseBtn: function(location, text) {
var dst, btn = this._headerCloseButton;
"none" == (location = "left" === location ? "left" : "right" === location ? "right" : "none") ? btn && (btn.remove(), btn = null) : btn ? (btn.removeClass("ui-btn-left ui-btn-right").addClass("ui-btn-" + location), text && btn.text(text)) : (dst = this._inner.find(":jqmData(role='header')").first(), btn = $("
", {
href: "#",
"class": "ui-btn ui-corner-all ui-icon-delete ui-btn-icon-notext ui-btn-" + location
}).attr("data-" + $.mobile.ns + "rel", "back").text(text || this.options.closeBtnText || "").prependTo(dst)), this._headerCloseButton = btn;
}
});
})(jQuery, this), (function($, window, undefined) {
$.widget("mobile.dialog", {
options: {
closeBtn: "left",
closeBtnText: "Close",
overlayTheme: "a",
corners: !0
},
_handlePageBeforeShow: function() {
this._isCloseable = !0, this.options.overlayTheme && this.element.page("removeContainerBackground").page("setContainerBackground", this.options.overlayTheme);
},
_handlePageBeforeHide: function() {
this._isCloseable = !1;
},
_handleVClickSubmit: function(event) {
var attrs, $target = $(event.target).closest("vclick" === event.type ? "a" : "form");
$target.length && !$target.jqmData("transition") && ((attrs = {
})["data-" + $.mobile.ns + "transition"] = ($.mobile.navigate.history.getActive() || {
}).transition || $.mobile.defaultDialogTransition, attrs["data-" + $.mobile.ns + "direction"] = "reverse", $target.attr(attrs));
},
_create: function() {
var elem = this.element, opts = this.options;
elem.addClass("ui-dialog").wrapInner($("
", {
role: "dialog",
"class": "ui-dialog-contain ui-overlay-shadow" + (opts.corners ? " ui-corner-all" : "")
})), $.extend(this, {
_isCloseable: !1,
_inner: elem.children(),
_headerCloseButton: null
}), this._on(elem, {
vclick: "_handleVClickSubmit",
submit: "_handleVClickSubmit",
pagebeforeshow: "_handlePageBeforeShow",
pagebeforehide: "_handlePageBeforeHide"
}), this._setCloseBtn(opts.closeBtn);
},
_setOptions: function(options) {
var closeButtonLocation, closeButtonText, currentOpts = this.options;
undefined !== options.corners && this._inner.toggleClass("ui-corner-all", !!options.corners), undefined !== options.overlayTheme && $.mobile.activePage[0] === this.element[0] && (currentOpts.overlayTheme = options.overlayTheme, this._handlePageBeforeShow()), undefined !== options.closeBtnText && (closeButtonLocation = currentOpts.closeBtn, closeButtonText = options.closeBtnText), undefined !== options.closeBtn && (closeButtonLocation = options.closeBtn), closeButtonLocation && this._setCloseBtn(closeButtonLocation, closeButtonText), this._super(options);
},
_setCloseBtn: function(location, text) {
var dst, btn = this._headerCloseButton;
"none" == (location = "left" === location ? "left" : "right" === location ? "right" : "none") ? btn && (btn.remove(), btn = null) : btn ? (btn.removeClass("ui-btn-left ui-btn-right").addClass("ui-btn-" + location), text && btn.text(text)) : (dst = this._inner.find(":jqmData(role='header')").first(), btn = $("
", {
role: "button",
href: "#",
"class": "ui-btn ui-corner-all ui-icon-delete ui-btn-icon-notext ui-btn-" + location
}).text(text || this.options.closeBtnText || "").prependTo(dst), this._on(btn, {
click: "close"
})), this._headerCloseButton = btn;
},
close: function() {
this._isCloseable && (this._isCloseable = !1, $.mobile.hashListeningEnabled && $.mobile.navigate.history.activeIndex > 0 ? $.mobile.back() : $.mobile.pageContainer.pagecontainer("back"));
}
});
})(jQuery, this), $11 = jQuery, rInitialLetter = /([A-Z])/g, iconposClass = function(iconpos) {
return "ui-btn-icon-" + (null === iconpos ? "left" : iconpos);
}, $11.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 elem = this.element, ui = {
accordion: elem.closest(":jqmData(role='collapsible-set'),:jqmData(role='collapsibleset')" + ($11.mobile.collapsibleset ? ", :mobile-collapsibleset" : "")).addClass("ui-collapsible-set")
};
this._ui = ui, this._renderedOptions = this._getOptions(this.options), this.options.enhanced ? (ui.heading = $11(".ui-collapsible-heading", this.element[0]), ui.content = ui.heading.next(), ui.anchor = $11("a", ui.heading[0]).first(), ui.status = ui.anchor.children(".ui-collapsible-heading-status")) : this._enhance(elem, ui), this._on(ui.heading, {
tap: function() {
ui.heading.find("a").first().addClass($11.mobile.activeBtnClass);
},
click: function(event) {
this._handleExpandCollapse(!ui.heading.hasClass("ui-collapsible-heading-collapsed")), event.preventDefault(), event.stopPropagation();
}
});
},
_getOptions: function(options) {
var key, accordion = this._ui.accordion, accordionWidget = this._ui.accordionWidget;
for(key in options = $11.extend({
}, options), accordion.length && !accordionWidget && (this._ui.accordionWidget = accordionWidget = accordion.data("mobile-collapsibleset")), options)options[key] = null != options[key] ? options[key] : accordionWidget ? accordionWidget.options[key] : accordion.length ? $11.mobile.getAttribute(accordion[0], key.replace(rInitialLetter, "-$1").toLowerCase()) : null, null == options[key] && (options[key] = $11.mobile.collapsible.defaults[key]);
return options;
},
_themeClassFromOption: function(prefix, value) {
return value ? "none" === value ? "" : prefix + value : "";
},
_enhance: function(elem, ui) {
var iconclass, opts = this._renderedOptions, contentThemeClass = this._themeClassFromOption("ui-body-", opts.contentTheme);
return elem.addClass("ui-collapsible " + (opts.inset ? "ui-collapsible-inset " : "") + (opts.inset && opts.corners ? "ui-corner-all " : "") + (contentThemeClass ? "ui-collapsible-themed-content " : "")), ui.originalHeading = elem.children(this.options.heading).first(), ui.content = elem.wrapInner("
").children(".ui-collapsible-content"), ui.heading = ui.originalHeading, ui.heading.is("legend") && (ui.heading = $11("
" + ui.heading.html() + "
"), ui.placeholder = $11("
").insertBefore(ui.originalHeading), ui.originalHeading.remove()), iconclass = opts.collapsed ? opts.collapsedIcon ? "ui-icon-" + opts.collapsedIcon : "" : opts.expandedIcon ? "ui-icon-" + opts.expandedIcon : "", ui.status = $11("
"), ui.anchor = ui.heading.detach().addClass("ui-collapsible-heading").append(ui.status).wrapInner("
").find("a").first().addClass("ui-btn " + (iconclass ? iconclass + " " : "") + (iconclass ? iconposClass(opts.iconpos) + " " : "") + this._themeClassFromOption("ui-btn-", opts.theme) + " " + (opts.mini ? "ui-mini " : "")), ui.heading.insertBefore(ui.content), this._handleExpandCollapse(this.options.collapsed), ui;
},
refresh: function() {
this._applyOptions(this.options), this._renderedOptions = this._getOptions(this.options);
},
_applyOptions: function(options) {
var isCollapsed, newTheme, oldTheme, hasCorners, hasIcon, elem = this.element, currentOpts = this._renderedOptions, ui = this._ui, anchor = ui.anchor, status = ui.status, opts = this._getOptions(options);
undefined !== options.collapsed && this._handleExpandCollapse(options.collapsed), (isCollapsed = elem.hasClass("ui-collapsible-collapsed")) ? undefined !== opts.expandCueText && status.text(opts.expandCueText) : undefined !== opts.collapseCueText && status.text(opts.collapseCueText), hasIcon = undefined !== opts.collapsedIcon ? !1 !== opts.collapsedIcon : !1 !== currentOpts.collapsedIcon, !(undefined === opts.iconpos && undefined === opts.collapsedIcon && undefined === opts.expandedIcon) && (anchor.removeClass([
iconposClass(currentOpts.iconpos)
].concat(currentOpts.expandedIcon ? [
"ui-icon-" + currentOpts.expandedIcon
] : []).concat(currentOpts.collapsedIcon ? [
"ui-icon-" + currentOpts.collapsedIcon
] : []).join(" ")), hasIcon && anchor.addClass([
iconposClass(undefined !== opts.iconpos ? opts.iconpos : currentOpts.iconpos)
].concat(isCollapsed ? [
"ui-icon-" + (undefined !== opts.collapsedIcon ? opts.collapsedIcon : currentOpts.collapsedIcon)
] : [
"ui-icon-" + (undefined !== opts.expandedIcon ? opts.expandedIcon : currentOpts.expandedIcon)
]).join(" "))), undefined !== opts.theme && (oldTheme = this._themeClassFromOption("ui-btn-", currentOpts.theme), newTheme = this._themeClassFromOption("ui-btn-", opts.theme), anchor.removeClass(oldTheme).addClass(newTheme)), undefined !== opts.contentTheme && (oldTheme = this._themeClassFromOption("ui-body-", currentOpts.contentTheme), newTheme = this._themeClassFromOption("ui-body-", opts.contentTheme), ui.content.removeClass(oldTheme).addClass(newTheme)), undefined !== opts.inset && (elem.toggleClass("ui-collapsible-inset", opts.inset), hasCorners = !!(opts.inset && (opts.corners || currentOpts.corners))), undefined !== opts.corners && (hasCorners = !!(opts.corners && (opts.inset || currentOpts.inset))), hasCorners !== undefined && elem.toggleClass("ui-corner-all", hasCorners), undefined !== opts.mini && anchor.toggleClass("ui-mini", opts.mini);
},
_setOptions: function(options) {
this._applyOptions(options), this._super(options), this._renderedOptions = this._getOptions(this.options);
},
_handleExpandCollapse: function(isCollapse) {
var opts = this._renderedOptions, ui = this._ui;
ui.status.text(isCollapse ? opts.expandCueText : opts.collapseCueText), ui.heading.toggleClass("ui-collapsible-heading-collapsed", isCollapse).find("a").first().toggleClass("ui-icon-" + opts.expandedIcon, !isCollapse).toggleClass("ui-icon-" + opts.collapsedIcon, isCollapse || opts.expandedIcon === opts.collapsedIcon).removeClass($11.mobile.activeBtnClass), this.element.toggleClass("ui-collapsible-collapsed", isCollapse), ui.content.toggleClass("ui-collapsible-content-collapsed", isCollapse).attr("aria-hidden", isCollapse).trigger("updatelayout"), this.options.collapsed = isCollapse, this._trigger(isCollapse ? "collapse" : "expand");
},
expand: function() {
this._handleExpandCollapse(!1);
},
collapse: function() {
this._handleExpandCollapse(!0);
},
_destroy: function() {
var ui = this._ui;
this.options.enhanced || (ui.placeholder ? (ui.originalHeading.insertBefore(ui.placeholder), ui.placeholder.remove(), ui.heading.remove()) : (ui.status.remove(), ui.heading.removeClass("ui-collapsible-heading ui-collapsible-heading-collapsed").children().contents().unwrap()), ui.anchor.contents().unwrap(), ui.content.contents().unwrap(), this.element.removeClass("ui-collapsible ui-collapsible-collapsed ui-collapsible-themed-content ui-collapsible-inset ui-corner-all"));
}
}), $11.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
}, jQuery.mobile.behaviors.addFirstLastClasses = {
_getVisibles: function($els, create) {
var visibles;
return create ? visibles = $els.not(".ui-screen-hidden") : 0 === (visibles = $els.filter(":visible")).length && (visibles = $els.not(".ui-screen-hidden")), visibles;
},
_addFirstLastClasses: function($els, $visibles, create) {
$els.removeClass("ui-first-child ui-last-child"), $visibles.eq(0).addClass("ui-first-child").end().last().addClass("ui-last-child"), create || this.element.trigger("updatelayout");
},
_removeFirstLastClasses: function($els) {
$els.removeClass("ui-first-child ui-last-child");
}
}, (function($, undefined) {
var childCollapsiblesSelector = ":mobile-collapsible, " + $.mobile.collapsible.initSelector;
$.widget("mobile.collapsibleset", $.extend({
initSelector: ":jqmData(role='collapsible-set'),:jqmData(role='collapsibleset')",
options: $.extend({
enhanced: !1
}, $.mobile.collapsible.defaults),
_handleCollapsibleExpand: function(event) {
var closestCollapsible = $(event.target).closest(".ui-collapsible");
closestCollapsible.parent().is(":mobile-collapsibleset, :jqmData(role='collapsible-set')") && closestCollapsible.siblings(".ui-collapsible:not(.ui-collapsible-collapsed)").collapsible("collapse");
},
_create: function() {
var elem = this.element, opts = this.options;
$.extend(this, {
_classes: ""
}), opts.enhanced || (elem.addClass("ui-collapsible-set " + this._themeClassFromOption("ui-group-theme-", opts.theme) + " " + (opts.corners && opts.inset ? "ui-corner-all " : "")), this.element.find($.mobile.collapsible.initSelector).collapsible()), this._on(elem, {
collapsibleexpand: "_handleCollapsibleExpand"
});
},
_themeClassFromOption: function(prefix, value) {
return value ? "none" === value ? "" : prefix + value : "";
},
_init: function() {
this._refresh(!0), this.element.children(childCollapsiblesSelector).filter(":jqmData(collapsed='false')").collapsible("expand");
},
_setOptions: function(options) {
var ret, hasCorners, elem = this.element, themeClass = this._themeClassFromOption("ui-group-theme-", options.theme);
return themeClass && elem.removeClass(this._themeClassFromOption("ui-group-theme-", this.options.theme)).addClass(themeClass), undefined !== options.inset && (hasCorners = !!(options.inset && (options.corners || this.options.corners))), undefined !== options.corners && (hasCorners = !!(options.corners && (options.inset || this.options.inset))), hasCorners !== undefined && elem.toggleClass("ui-corner-all", hasCorners), ret = this._super(options), this.element.children(":mobile-collapsible").collapsible("refresh"), ret;
},
_destroy: function() {
var el = this.element;
this._removeFirstLastClasses(el.children(childCollapsiblesSelector)), el.removeClass("ui-collapsible-set ui-corner-all " + this._themeClassFromOption("ui-group-theme-", this.options.theme)).children(":mobile-collapsible").collapsible("destroy");
},
_refresh: function(create) {
var collapsiblesInSet = this.element.children(childCollapsiblesSelector);
this.element.find($.mobile.collapsible.initSelector).not(".ui-collapsible").collapsible(), this._addFirstLastClasses(collapsiblesInSet, this._getVisibles(collapsiblesInSet, create), create);
},
refresh: function() {
this._refresh(!1);
}
}, $.mobile.behaviors.addFirstLastClasses));
})(jQuery), jQuery.fn.fieldcontain = function() {
return this.addClass("ui-field-contain");
}, ($12 = jQuery).fn.grid = function(options) {
return this.each(function() {
var iterator, letter, $this = $12(this), o = $12.extend({
grid: null
}, options), $kids = $this.children(), gridCols = {
solo: 1,
a: 2,
b: 3,
c: 4,
d: 5
}, grid = o.grid;
if (!grid) if ($kids.length <= 5) for(letter in gridCols)gridCols[letter] === $kids.length && (grid = letter);
else grid = "a", $this.addClass("ui-grid-duo");
iterator = gridCols[grid], $this.addClass("ui-grid-" + grid), $kids.filter(":nth-child(" + iterator + "n+1)").addClass("ui-block-a"), iterator > 1 && $kids.filter(":nth-child(" + iterator + "n+2)").addClass("ui-block-b"), iterator > 2 && $kids.filter(":nth-child(" + iterator + "n+3)").addClass("ui-block-c"), iterator > 3 && $kids.filter(":nth-child(" + iterator + "n+4)").addClass("ui-block-d"), iterator > 4 && $kids.filter(":nth-child(" + iterator + "n+5)").addClass("ui-block-e");
});
}, (function($, undefined) {
$.widget("mobile.navbar", {
options: {
iconpos: "top",
grid: null
},
_create: function() {
var $navbar = this.element, $navbtns = $navbar.find("a"), iconpos = $navbtns.filter(":jqmData(icon)").length ? this.options.iconpos : void 0;
$navbar.addClass("ui-navbar").attr("role", "navigation").find("ul").jqmEnhanceable().grid({
grid: this.options.grid
}), $navbtns.each(function() {
var icon = $.mobile.getAttribute(this, "icon"), theme = $.mobile.getAttribute(this, "theme"), classes = "ui-btn";
theme && (classes += " ui-btn-" + theme), icon && (classes += " ui-icon-" + icon + " ui-btn-icon-" + iconpos), $(this).addClass(classes);
}), $navbar.delegate("a", "vclick", function() {
var activeBtn = $(this);
activeBtn.hasClass("ui-state-disabled") || activeBtn.hasClass("ui-disabled") || activeBtn.hasClass($.mobile.activeBtnClass) || ($navbtns.removeClass($.mobile.activeBtnClass), activeBtn.addClass($.mobile.activeBtnClass), $(document).one("pagehide", function() {
activeBtn.removeClass($.mobile.activeBtnClass);
}));
}), $navbar.closest(".ui-page").bind("pagebeforeshow", function() {
$navbtns.filter(".ui-state-persist").addClass($.mobile.activeBtnClass);
});
}
});
})(jQuery), (function($, undefined) {
var getAttr = $.mobile.getAttribute;
$.widget("mobile.listview", $.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 listviewClasses = "";
listviewClasses += this.options.inset ? " ui-listview-inset" : "", this.options.inset && (listviewClasses += this.options.corners ? " ui-corner-all" : "", listviewClasses += this.options.shadow ? " ui-shadow" : ""), this.element.addClass(" ui-listview" + listviewClasses), this.refresh(!0);
},
_findFirstElementByTagName: function(ele, nextProp, lcName, ucName) {
var dict = {
};
for(dict[lcName] = dict[ucName] = !0; ele;){
if (dict[ele.nodeName]) return ele;
ele = ele[nextProp];
}
return null;
},
_addThumbClasses: function(containers) {
var i, img, len = containers.length;
for(i = 0; i < len; i++)(img = $(this._findFirstElementByTagName(containers[i].firstChild, "nextSibling", "img", "IMG"))).length && $(this._findFirstElementByTagName(img[0].parentNode, "parentNode", "li", "LI")).addClass(img.hasClass("ui-li-icon") ? "ui-li-has-icon" : "ui-li-has-thumb");
},
_getChildrenByTagName: function(ele, lcName, ucName) {
var results = [], dict = {
};
for(dict[lcName] = dict[ucName] = !0, ele = ele.firstChild; ele;)dict[ele.nodeName] && results.push(ele), ele = ele.nextSibling;
return $(results);
},
_beforeListviewRefresh: $.noop,
_afterListviewRefresh: $.noop,
refresh: function(create) {
var buttonClass, pos, numli, item, itemClass, itemTheme, itemIcon, icon, a, isDivider, startCount, newStartCount, value, last, splittheme, splitThemeClass, altButtonClass, li, o = this.options, $list = this.element, ol = !!$.nodeName($list[0], "ol"), start = $list.attr("start"), itemClassDict = {
}, countBubbles = $list.find(".ui-li-count"), countTheme = getAttr($list[0], "counttheme") || this.options.countTheme, countThemeClass = countTheme ? "ui-body-" + countTheme : "ui-body-inherit";
for(o.theme && $list.addClass("ui-group-theme-" + o.theme), ol && (start || 0 === start) && (startCount = parseInt(start, 10) - 1, $list.css("counter-reset", "listnumbering " + startCount)), this._beforeListviewRefresh(), pos = 0, numli = (li = this._getChildrenByTagName($list[0], "li", "LI")).length; pos < numli; pos++)item = li.eq(pos), itemClass = "", (create || 0 > item[0].className.search(/\bui-li-static\b|\bui-li-divider\b/)) && (a = this._getChildrenByTagName(item[0], "a", "A"), isDivider = "list-divider" === getAttr(item[0], "role"), value = item.attr("value"), itemTheme = getAttr(item[0], "theme"), a.length && 0 > a[0].className.search(/\bui-btn\b/) && !isDivider ? (icon = !1 !== (itemIcon = getAttr(item[0], "icon")) && (itemIcon || o.icon), a.removeClass("ui-link"), buttonClass = "ui-btn", itemTheme && (buttonClass += " ui-btn-" + itemTheme), a.length > 1 ? (itemClass = "ui-li-has-alt", splitThemeClass = (splittheme = getAttr((last = a.last())[0], "theme") || o.splitTheme || getAttr(item[0], "theme", !0)) ? " ui-btn-" + splittheme : "", altButtonClass = "ui-btn ui-btn-icon-notext ui-icon-" + (getAttr(last[0], "icon") || getAttr(item[0], "icon") || o.splitIcon) + splitThemeClass, last.attr("title", $.trim(last.getEncodedText())).addClass(altButtonClass).empty()) : icon && (buttonClass += " ui-btn-icon-right ui-icon-" + icon), a.first().addClass(buttonClass)) : isDivider ? (itemClass = "ui-li-divider ui-bar-" + (getAttr(item[0], "theme") || o.dividerTheme || o.theme || "inherit"), item.attr("role", "heading")) : a.length <= 0 && (itemClass = "ui-li-static ui-body-" + (itemTheme || "inherit")), ol && value && (newStartCount = parseInt(value, 10) - 1, item.css("counter-reset", "listnumbering " + newStartCount))), itemClassDict[itemClass] || (itemClassDict[itemClass] = []), itemClassDict[itemClass].push(item[0]);
for(itemClass in itemClassDict)$(itemClassDict[itemClass]).addClass(itemClass);
countBubbles.each(function() {
$(this).closest("li").addClass("ui-li-has-count");
}), countThemeClass && countBubbles.addClass(countThemeClass), this._addThumbClasses(li), this._addThumbClasses(li.find(".ui-btn")), this._afterListviewRefresh(), this._addFirstLastClasses(li, this._getVisibles(li, create), create);
}
}, $.mobile.behaviors.addFirstLastClasses));
})(jQuery), (function($, undefined) {
$.widget("mobile.listview", $.mobile.listview, {
options: {
autodividers: !1,
autodividersSelector: function(elt) {
var text = $.trim(elt.text()) || null;
return text ? text = text.slice(0, 1).toUpperCase() : null;
}
},
_beforeListviewRefresh: function() {
this.options.autodividers && (this._replaceDividers(), this._superApply(arguments));
},
_replaceDividers: function() {
var i, lis, li, dividerText, divider, lastDividerText = null, list = this.element;
for(list.children("li:jqmData(role='list-divider')").remove(), lis = list.children("li"), i = 0; i < lis.length; i++)li = lis[i], (dividerText = this.options.autodividersSelector($(li))) && lastDividerText !== dividerText && ((divider = document.createElement("li")).appendChild(document.createTextNode(dividerText)), divider.setAttribute("data-" + $.mobile.ns + "role", "list-divider"), li.parentNode.insertBefore(divider, li)), lastDividerText = dividerText;
}
});
})(jQuery), (function($, undefined) {
var rdivider = /(^|\s)ui-li-divider($|\s)/, rhidden = /(^|\s)ui-screen-hidden($|\s)/;
$.widget("mobile.listview", $.mobile.listview, {
options: {
hideDividers: !1
},
_afterListviewRefresh: function() {
var items, idx, item, hideDivider = !0;
if (this._superApply(arguments), this.options.hideDividers) for(idx = (items = this._getChildrenByTagName(this.element[0], "li", "LI")).length - 1; idx > -1; idx--)(item = items[idx]).className.match(rdivider) ? (hideDivider && (item.className = item.className + " ui-screen-hidden"), hideDivider = !0) : item.className.match(rhidden) || (hideDivider = !1);
}
});
})(jQuery), ($13 = jQuery).mobile.nojs = function(target) {
$13(":jqmData(role='nojs')", target).addClass("ui-nojs");
}, jQuery.mobile.behaviors.formReset = {
_handleFormReset: function() {
this._on(this.element.closest("form"), {
reset: function() {
this._delay("_reset");
}
});
}
}, (function($, undefined) {
var escapeId = $.mobile.path.hashToSelector;
$.widget("mobile.checkboxradio", $.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 input = this.element, o = this.options, inheritAttr = function(input, dataAttr) {
return input.jqmData(dataAttr) || input.closest("form, fieldset").jqmData(dataAttr);
}, parentLabel = input.closest("label"), label = parentLabel.length ? parentLabel : input.closest("form, fieldset, :jqmData(role='page'), :jqmData(role='dialog')").find("label").filter("[for='" + escapeId(input[0].id) + "']").first(), inputtype = input[0].type;
("checkbox" === inputtype || "radio" === inputtype) && (this.element[0].disabled && (this.options.disabled = !0), o.iconpos = inheritAttr(input, "iconpos") || label.attr("data-" + $.mobile.ns + "iconpos") || o.iconpos, o.mini = inheritAttr(input, "mini") || o.mini, $.extend(this, {
input: input,
label: label,
parentLabel: parentLabel,
inputtype: inputtype,
checkedClass: "ui-" + inputtype + "-on",
uncheckedClass: "ui-" + inputtype + "-off"
}), this.options.enhanced || this._enhance(), this._on(label, {
vmouseover: "_handleLabelVMouseOver",
vclick: "_handleLabelVClick"
}), this._on(input, {
vmousedown: "_cacheVals",
vclick: "_handleInputVClick",
focus: "_handleInputFocus",
blur: "_handleInputBlur"
}), this._handleFormReset(), this.refresh());
},
_enhance: function() {
this.label.addClass("ui-btn ui-corner-all"), this.parentLabel.length > 0 ? 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 $("
");
},
_handleInputFocus: function() {
this.label.addClass($.mobile.focusClass);
},
_handleInputBlur: function() {
this.label.removeClass($.mobile.focusClass);
},
_handleInputVClick: function() {
this.element.prop("checked", this.element.is(":checked")), this._getInputSet().not(this.element).prop("checked", !1), this._updateAll();
},
_handleLabelVMouseOver: function(event) {
this.label.parent().hasClass("ui-state-disabled") && event.stopPropagation();
},
_handleLabelVClick: function(event) {
var input = this.element;
return input.is(":disabled") ? void event.preventDefault() : (this._cacheVals(), input.prop("checked", "radio" === this.inputtype || !input.prop("checked")), input.triggerHandler("click"), this._getInputSet().not(input).prop("checked", !1), this._updateAll(), !1);
},
_cacheVals: function() {
this._getInputSet().each(function() {
$(this).attr("data-" + $.mobile.ns + "cacheVal", this.checked);
});
},
_getInputSet: function() {
var selector, formId, radio = this.element[0], name = radio.name, form = radio.form, doc = this.element.parents().last().get(0), radios = this.element;
return name && "radio" === this.inputtype && doc && (selector = "input[type='radio'][name='" + escapeId(name) + "']", form ? ((formId = form.id) && (radios = $(selector + "[form='" + escapeId(formId) + "']", doc)), radios = $(form).find(selector).filter(function() {
return this.form === form;
}).add(radios)) : radios = $(selector, doc).filter(function() {
return !this.form;
})), radios;
},
_updateAll: function() {
var self = this;
this._getInputSet().each(function() {
(this.checked || "checkbox" === self.inputtype) && $(this).trigger("change");
}).checkboxradio("refresh");
},
_reset: function() {
this.refresh();
},
_hasIcon: function() {
var controlgroup, controlgroupWidget, controlgroupConstructor = $.mobile.controlgroup;
return !controlgroupConstructor || !((controlgroup = this.element.closest(":mobile-controlgroup," + controlgroupConstructor.prototype.initSelector)).length > 0) || ((controlgroupWidget = $.data(controlgroup[0], "mobile-controlgroup")) ? controlgroupWidget.options.type : controlgroup.attr("data-" + $.mobile.ns + "type")) !== "horizontal";
},
refresh: function() {
var hasIcon = this._hasIcon(), isChecked = this.element[0].checked, active = $.mobile.activeBtnClass, iconposClass = "ui-btn-icon-" + this.options.iconpos, addClasses = [], removeClasses = [];
hasIcon ? (removeClasses.push(active), addClasses.push(iconposClass)) : (removeClasses.push(iconposClass), (isChecked ? addClasses : removeClasses).push(active)), isChecked ? (addClasses.push(this.checkedClass), removeClasses.push(this.uncheckedClass)) : (addClasses.push(this.uncheckedClass), removeClasses.push(this.checkedClass)), this.label.addClass(addClasses.join(" ")).removeClass(removeClasses.join(" "));
},
widget: function() {
return this.label.parent();
},
_setOptions: function(options) {
var label = this.label, currentOptions = this.options, outer = this.widget(), hasIcon = this._hasIcon();
undefined !== options.disabled && (this.input.prop("disabled", !!options.disabled), outer.toggleClass("ui-state-disabled", !!options.disabled)), undefined !== options.mini && outer.toggleClass("ui-mini", !!options.mini), undefined !== options.theme && label.removeClass("ui-btn-" + currentOptions.theme).addClass("ui-btn-" + options.theme), undefined !== options.wrapperClass && outer.removeClass(currentOptions.wrapperClass).addClass(options.wrapperClass), undefined !== options.iconpos && hasIcon ? label.removeClass("ui-btn-icon-" + currentOptions.iconpos).addClass("ui-btn-icon-" + options.iconpos) : hasIcon || label.removeClass("ui-btn-icon-" + currentOptions.iconpos), this._super(options);
}
}, $.mobile.behaviors.formReset));
})(jQuery), (function($, undefined) {
$.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(), $.extend(this, {
wrapper: this.element.parent()
}), this._on({
focus: function() {
this.widget().addClass($.mobile.focusClass);
},
blur: function() {
this.widget().removeClass($.mobile.focusClass);
}
}), this.refresh(!0);
},
_enhance: function() {
this.element.wrap(this._button());
},
_button: function() {
var options = this.options, iconClasses = this._getIconClasses(this.options);
return $("
" + this.element.val() + "
");
},
widget: function() {
return this.wrapper;
},
_destroy: function() {
this.element.insertBefore(this.button), this.button.remove();
},
_getIconClasses: function(options) {
return options.icon ? "ui-icon-" + options.icon + (options.iconshadow ? " ui-shadow-icon" : "") + " ui-btn-icon-" + options.iconpos : "";
},
_setOptions: function(options) {
var outer = this.widget();
undefined !== options.theme && outer.removeClass(this.options.theme).addClass("ui-btn-" + options.theme), undefined !== options.corners && outer.toggleClass("ui-corner-all", options.corners), undefined !== options.shadow && outer.toggleClass("ui-shadow", options.shadow), undefined !== options.inline && outer.toggleClass("ui-btn-inline", options.inline), undefined !== options.mini && outer.toggleClass("ui-mini", options.mini), undefined !== options.disabled && (this.element.prop("disabled", options.disabled), outer.toggleClass("ui-state-disabled", options.disabled)), (undefined !== options.icon || undefined !== options.iconshadow || undefined !== options.iconpos) && outer.removeClass(this._getIconClasses(this.options)).addClass(this._getIconClasses($.extend({
}, this.options, options))), this._super(options);
},
refresh: function(create) {
var originalElement, isDisabled = this.element.prop("disabled");
this.options.icon && "notext" === this.options.iconpos && this.element.attr("title") && this.element.attr("title", this.element.val()), create || (originalElement = this.element.detach(), $(this.wrapper).text(this.element.val()).append(originalElement)), this.options.disabled !== isDisabled && this._setOptions({
disabled: isDisabled
});
}
});
})(jQuery), disabledZoom = (initialContent = (meta = ($14 = jQuery)("meta[name=viewport]")).attr("content")) + ",maximum-scale=1, user-scalable=no", enabledZoom = initialContent + ",maximum-scale=10, user-scalable=yes", disabledInitially = /(user-scalable[\s]*=[\s]*no)|(maximum-scale[\s]*=[\s]*1)[$,\s]/.test(initialContent), $14.mobile.zoom = $14.extend({
}, {
enabled: !disabledInitially,
locked: !1,
disable: function(lock) {
disabledInitially || $14.mobile.zoom.locked || (meta.attr("content", disabledZoom), $14.mobile.zoom.enabled = !1, $14.mobile.zoom.locked = lock || !1);
},
enable: function(unlock) {
disabledInitially || $14.mobile.zoom.locked && !0 !== unlock || (meta.attr("content", enabledZoom), $14.mobile.zoom.enabled = !0, $14.mobile.zoom.locked = !1);
},
restore: function() {
disabledInitially || (meta.attr("content", initialContent), $14.mobile.zoom.enabled = !0);
}
}), (function($, undefined) {
$.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 options = this.options, isSearch = this.element.is("[type='search'], :jqmData(type='search')"), isTextarea = "TEXTAREA" === this.element[0].tagName, isRange = this.element.is("[data-" + ($.mobile.ns || "") + "type='range']"), inputNeedsWrap = (this.element.is("input") || this.element.is("[data-" + ($.mobile.ns || "") + "type='search']")) && !isRange;
this.element.prop("disabled") && (options.disabled = !0), $.extend(this, {
classes: this._classesFromOptions(),
isSearch: isSearch,
isTextarea: isTextarea,
isRange: isRange,
inputNeedsWrap: inputNeedsWrap
}), this._autoCorrect(), options.enhanced || this._enhance(), this._on({
focus: "_handleFocus",
blur: "_handleBlur"
});
},
refresh: function() {
this.setOptions({
disabled: this.element.is(":disabled")
});
},
_enhance: function() {
var elementClasses = [];
this.isTextarea && elementClasses.push("ui-input-text"), (this.isTextarea || this.isRange) && elementClasses.push("ui-shadow-inset"), this.inputNeedsWrap ? this.element.wrap(this._wrap()) : elementClasses = elementClasses.concat(this.classes), this.element.addClass(elementClasses.join(" "));
},
widget: function() {
return this.inputNeedsWrap ? this.element.parent() : this.element;
},
_classesFromOptions: function() {
var options = this.options, classes = [];
return classes.push("ui-body-" + (null === options.theme ? "inherit" : options.theme)), options.corners && classes.push("ui-corner-all"), options.mini && classes.push("ui-mini"), options.disabled && classes.push("ui-state-disabled"), options.wrapperClass && classes.push(options.wrapperClass), classes;
},
_wrap: function() {
return $("
");
},
_autoCorrect: function() {
void 0 === this.element[0].autocorrect || $.support.touchOverflow || (this.element[0].setAttribute("autocorrect", "off"), this.element[0].setAttribute("autocomplete", "off"));
},
_handleBlur: function() {
this.widget().removeClass($.mobile.focusClass), this.options.preventFocusZoom && $.mobile.zoom.enable(!0);
},
_handleFocus: function() {
this.options.preventFocusZoom && $.mobile.zoom.disable(!0), this.widget().addClass($.mobile.focusClass);
},
_setOptions: function(options) {
var outer = this.widget();
this._super(options), undefined === options.disabled && undefined === options.mini && undefined === options.corners && undefined === options.theme && undefined === options.wrapperClass || (outer.removeClass(this.classes.join(" ")), this.classes = this._classesFromOptions(), outer.addClass(this.classes.join(" "))), undefined !== options.disabled && this.element.prop("disabled", !!options.disabled);
},
_destroy: function() {
this.options.enhanced || (this.inputNeedsWrap && this.element.unwrap(), this.element.removeClass("ui-input-text " + this.classes.join(" ")));
}
});
})(jQuery), (function($, undefined) {
$.widget("mobile.slider", $.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 bg, options, wrapper, j, length, i, optionsCount, origTabIndex, side, activeClass, sliderImg, control = this.element, trackTheme = this.options.trackTheme || $.mobile.getAttribute(control[0], "theme"), cornerClass = this.options.corners || control.jqmData("corners") ? " ui-corner-all" : "", miniClass = this.options.mini || control.jqmData("mini") ? " ui-mini" : "", cType = control[0].nodeName.toLowerCase(), isToggleSwitch = "select" === cType, isRangeslider = control.parent().is(":jqmData(role='rangeslider')"), controlID = control.attr("id"), $label = $("[for='" + controlID + "']"), labelID = $label.attr("id") || controlID + "-label", min = isToggleSwitch ? 0 : parseFloat(control.attr("min")), max = isToggleSwitch ? control.find("option").length - 1 : parseFloat(control.attr("max")), step = window.parseFloat(control.attr("step") || 1), domHandle = document.createElement("a"), handle = $(domHandle), domSlider = document.createElement("div"), slider = $(domSlider), valuebg = !!this.options.highlight && !isToggleSwitch && ((bg = document.createElement("div")).className = "ui-slider-bg " + $.mobile.activeBtnClass, $(bg).prependTo(slider));
if ($label.attr("id", labelID), this.isToggleSwitch = isToggleSwitch, domHandle.setAttribute("href", "#"), domSlider.setAttribute("role", "application"), domSlider.className = [
this.isToggleSwitch ? "ui-slider ui-slider-track ui-shadow-inset " : "ui-slider-track ui-shadow-inset ",
isToggleSwitch ? "ui-slider-switch" : "",
trackTheme ? " ui-bar-" + trackTheme : " ui-bar-inherit",
cornerClass,
miniClass
].join(""), domHandle.className = "ui-slider-handle", domSlider.appendChild(domHandle), handle.attr({
role: "slider",
"aria-valuemin": min,
"aria-valuemax": max,
"aria-valuenow": this._value(),
"aria-valuetext": this._value(),
title: this._value(),
"aria-labelledby": labelID
}), $.extend(this, {
slider: slider,
handle: handle,
control: control,
type: cType,
step: step,
max: max,
min: min,
valuebg: valuebg,
isRangeslider: isRangeslider,
dragging: !1,
beforeStart: null,
userModified: !1,
mouseMoved: !1
}), isToggleSwitch) {
for((origTabIndex = control.attr("tabindex")) && handle.attr("tabindex", origTabIndex), control.attr("tabindex", "-1").focus(function() {
$(this).blur(), handle.focus();
}), (wrapper = document.createElement("div")).className = "ui-slider-inneroffset", j = 0, length = domSlider.childNodes.length; j < length; j++)wrapper.appendChild(domSlider.childNodes[j]);
for(domSlider.appendChild(wrapper), handle.addClass("ui-slider-handle-snapping"), i = 0, optionsCount = (options = control.find("option")).length; i < optionsCount; i++)side = i ? "a" : "b", activeClass = i ? " " + $.mobile.activeBtnClass : "", (sliderImg = document.createElement("span")).className = [
"ui-slider-label ui-slider-label-",
side,
activeClass
].join(""), sliderImg.setAttribute("role", "img"), sliderImg.appendChild(document.createTextNode(options[i].innerHTML)), $(sliderImg).prependTo(slider);
this._labels = $(".ui-slider-label", slider);
}
control.addClass(isToggleSwitch ? "ui-slider-switch" : "ui-slider-input"), this._on(control, {
change: "_controlChange",
keyup: "_controlKeyup",
blur: "_controlBlur",
vmouseup: "_controlVMouseUp"
}), slider.bind("vmousedown", $.proxy(this._sliderVMouseDown, this)).bind("vclick", !1), this._on(document, {
vmousemove: "_preventDocumentDrag"
}), this._on(slider.add(document), {
vmouseup: "_sliderVMouseUp"
}), slider.insertAfter(control), isToggleSwitch || isRangeslider || (wrapper = this.options.mini ? "
" : "
", control.add(slider).wrapAll(wrapper)), this._on(this.handle, {
vmousedown: "_handleVMouseDown",
keydown: "_handleKeydown",
keyup: "_handleKeyup"
}), this.handle.bind("vclick", !1), this._handleFormReset(), this.refresh(undefined, undefined, !0);
},
_setOptions: function(options) {
undefined !== options.theme && this._setTheme(options.theme), undefined !== options.trackTheme && this._setTrackTheme(options.trackTheme), undefined !== options.corners && this._setCorners(options.corners), undefined !== options.mini && this._setMini(options.mini), undefined !== options.highlight && this._setHighlight(options.highlight), undefined !== options.disabled && this._setDisabled(options.disabled), this._super(options);
},
_controlChange: function(event) {
if (!1 === this._trigger("controlchange", event)) 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(event) {
var index = this._value();
if (!this.options.disabled) {
switch(event.keyCode){
case $.mobile.keyCode.HOME:
case $.mobile.keyCode.END:
case $.mobile.keyCode.PAGE_UP:
case $.mobile.keyCode.PAGE_DOWN:
case $.mobile.keyCode.UP:
case $.mobile.keyCode.RIGHT:
case $.mobile.keyCode.DOWN:
case $.mobile.keyCode.LEFT:
event.preventDefault(), this._keySliding || (this._keySliding = !0, this.handle.addClass("ui-state-active"));
break;
}
switch(event.keyCode){
case $.mobile.keyCode.HOME:
this.refresh(this.min);
break;
case $.mobile.keyCode.END:
this.refresh(this.max);
break;
case $.mobile.keyCode.PAGE_UP:
case $.mobile.keyCode.UP:
case $.mobile.keyCode.RIGHT:
this.refresh(index + this.step);
break;
case $.mobile.keyCode.PAGE_DOWN:
case $.mobile.keyCode.DOWN:
case $.mobile.keyCode.LEFT:
this.refresh(index - this.step);
break;
}
}
},
_handleKeyup: function() {
this._keySliding && (this._keySliding = !1, this.handle.removeClass("ui-state-active"));
},
_sliderVMouseDown: function(event) {
return this.options.disabled || !(1 === event.which || 0 === event.which || undefined === event.which) || !1 === this._trigger("beforestart", event) || (this.dragging = !0, this.userModified = !1, this.mouseMoved = !1, this.isToggleSwitch && (this.beforeStart = this.element[0].selectedIndex), this.refresh(event), 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(0 === this.beforeStart ? 1 : 0) : this.refresh(this.beforeStart) : this.refresh(0 === this.beforeStart ? 1 : 0)), this.mouseMoved = !1, this._trigger("stop"), !1;
},
_preventDocumentDrag: function(event) {
return !1 !== this._trigger("drag", event) && (this.dragging && !this.options.disabled ? (this.mouseMoved = !0, this.isToggleSwitch && this.handle.removeClass("ui-slider-handle-snapping"), this.refresh(event), this.userModified = this.beforeStart !== this.element[0].selectedIndex, !1) : void 0);
},
_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(undefined, !1, !0);
},
refresh: function(val, isfromControl, preventInputUpdate) {
var bg, left, width, data, pxStep, percent, control, isInput, optionElements, min, max, step, newval, valModStep, alignValue, percentPerStep, handlePercent, aPercent, bPercent, valueChanged, parentTheme = $.mobile.getAttribute(this.element[0], "theme"), theme = this.options.theme || parentTheme, trackTheme = this.options.trackTheme || parentTheme, cornerClass = this.options.corners ? " ui-corner-all" : "", miniClass = this.options.mini ? " ui-mini" : "";
if (this.slider[0].className = [
this.isToggleSwitch ? "ui-slider ui-slider-switch ui-slider-track ui-shadow-inset" : "ui-slider-track ui-shadow-inset",
trackTheme ? " ui-bar-" + trackTheme : " ui-bar-inherit",
cornerClass,
miniClass
].join(""), (this.options.disabled || this.element.prop("disabled")) && this.disable(), this.value = this._value(), this.options.highlight && !this.isToggleSwitch && 0 === this.slider.find(".ui-slider-bg").length && (this.valuebg = ((bg = document.createElement("div")).className = "ui-slider-bg " + $.mobile.activeBtnClass, $(bg).prependTo(this.slider))), (this.handle.addClass("ui-btn" + (theme ? " ui-btn-" + theme : "") + " ui-shadow"), control = this.element, optionElements = (isInput = !this.isToggleSwitch) ? [] : control.find("option"), min = isInput ? parseFloat(control.attr("min")) : 0, max = isInput ? parseFloat(control.attr("max")) : optionElements.length - 1, step = isInput && parseFloat(control.attr("step")) > 0 ? parseFloat(control.attr("step")) : 1, "object" == typeof val) ? (data = val, left = this.slider.offset().left, pxStep = (width = this.slider.width()) / ((max - min) / step), !this.dragging || data.pageX < left - 8 || data.pageX > left + width + 8 || (percent = pxStep > 1 ? (data.pageX - left) / width * 100 : Math.round((data.pageX - left) / width * 100))) : (null == val && (val = isInput ? parseFloat(control.val() || 0) : control[0].selectedIndex), percent = (parseFloat(val) - min) / (max - min) * 100), !isNaN(percent) && (alignValue = newval - (valModStep = ((newval = percent / 100 * (max - min) + min) - min) % step), 2 * Math.abs(valModStep) >= step && (alignValue += valModStep > 0 ? step : -step), percentPerStep = 100 / ((max - min) / step), newval = parseFloat(alignValue.toFixed(5)), void 0 === pxStep && (pxStep = width / ((max - min) / step)), pxStep > 1 && isInput && (percent = (newval - min) * percentPerStep * (1 / step)), percent < 0 && (percent = 0), percent > 100 && (percent = 100), newval < min && (newval = min), newval > max && (newval = max), this.handle.css("left", percent + "%"), this.handle[0].setAttribute("aria-valuenow", isInput ? newval : optionElements.eq(newval).attr("value")), this.handle[0].setAttribute("aria-valuetext", isInput ? newval : optionElements.eq(newval).getEncodedText()), this.handle[0].setAttribute("title", isInput ? newval : optionElements.eq(newval).getEncodedText()), this.valuebg && this.valuebg.css("width", percent + "%"), this._labels && (handlePercent = this.handle.width() / this.slider.width() * 100, aPercent = percent && handlePercent + (100 - handlePercent) * percent / 100, bPercent = 100 === percent ? 0 : Math.min(handlePercent + 100 - aPercent, 100), this._labels.each(function() {
var ab = $(this).hasClass("ui-slider-label-a");
$(this).width((ab ? aPercent : bPercent) + "%");
})), !preventInputUpdate)) {
if (valueChanged = !1, isInput ? (valueChanged = control.val() !== newval, control.val(newval)) : (valueChanged = control[0].selectedIndex !== newval, control[0].selectedIndex = newval), !1 === this._trigger("beforechange", val)) return !1;
!isfromControl && valueChanged && control.trigger("change");
}
},
_setHighlight: function(value) {
(value = !!value) ? (this.options.highlight = !!value, this.refresh()) : this.valuebg && (this.valuebg.remove(), this.valuebg = !1);
},
_setTheme: function(value) {
this.handle.removeClass("ui-btn-" + this.options.theme).addClass("ui-btn-" + value);
var currentTheme = this.options.theme ? this.options.theme : "inherit";
this.control.removeClass("ui-body-" + currentTheme).addClass("ui-body-" + (value || "inherit"));
},
_setTrackTheme: function(value) {
var currentTrackTheme = this.options.trackTheme ? this.options.trackTheme : "inherit";
this.slider.removeClass("ui-body-" + currentTrackTheme).addClass("ui-body-" + (value || "inherit"));
},
_setMini: function(value) {
value = !!value, this.isToggleSwitch || this.isRangeslider || (this.slider.parent().toggleClass("ui-mini", value), this.element.toggleClass("ui-mini", value)), this.slider.toggleClass("ui-mini", value);
},
_setCorners: function(value) {
this.slider.toggleClass("ui-corner-all", value), this.isToggleSwitch || this.control.toggleClass("ui-corner-all", value);
},
_setDisabled: function(value) {
value = !!value, this.element.prop("disabled", value), this.slider.toggleClass("ui-state-disabled", value).attr("aria-disabled", value);
}
}, $.mobile.behaviors.formReset));
})(jQuery), (function($, undefined) {
var popup;
function getPopup() {
return popup || (popup = $("
", {
"class": "ui-slider-popup ui-shadow ui-corner-all"
})), popup.clone();
}
$.widget("mobile.slider", $.mobile.slider, {
options: {
popupEnabled: !1,
showValue: !1
},
_create: function() {
this._super(), $.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 dstOffset = this.handle.offset();
this._popup.offset({
left: dstOffset.left + (this.handle.width() - this._popup.width()) / 2,
top: dstOffset.top - this._popup.outerHeight() - 5
});
},
_setOption: function(key, value) {
this._super(key, value), "showValue" === key ? this.handle.html(value && !this.options.mini ? this._value() : "") : "popupEnabled" === key && value && !this._popup && (this._popup = getPopup().addClass("ui-body-" + (this.options.theme || "a")).hide().insertBefore(this.element));
},
refresh: function() {
this._super.apply(this, arguments), this._refresh();
},
_refresh: function() {
var newValue, o = this.options;
o.popupEnabled && this.handle.removeAttr("title"), (newValue = this._value()) !== this._currentValue && (this._currentValue = newValue, o.popupEnabled && this._popup ? (this._positionPopup(), this._popup.html(newValue)) : o.showValue && !this.options.mini && this.handle.html(newValue));
},
_showPopup: function() {
this.options.popupEnabled && !this._popupVisible && (this.handle.html(""), this._popup.show(), this._positionPopup(), this._popupVisible = !0);
},
_hidePopup: function() {
var o = this.options;
o.popupEnabled && this._popupVisible && (o.showValue && !o.mini && this.handle.html(this._value()), this._popup.hide(), this._popupVisible = !1);
}
});
})(jQuery), (function($, undefined) {
$.widget("mobile.flipswitch", $.extend({
options: {
onText: "On",
offText: "Off",
theme: null,
enhanced: !1,
wrapperClass: null,
corners: !0,
mini: !1
},
_create: function() {
this.options.enhanced ? $.extend(this, {
flipswitch: this.element.parent(),
on: this.element.find(".ui-flipswitch-on").eq(0),
off: this.element.find(".ui-flipswitch-off").eq(0),
type: this.element.get(0).tagName
}) : this._enhance(), this._handleFormReset(), this._originalTabIndex = this.element.attr("tabindex"), null != this._originalTabIndex && this.on.attr("tabindex", this._originalTabIndex), this.element.attr("tabindex", "-1"), this._on({
focus: "_handleInputFocus"
}), this.element.is(":disabled") && this._setOptions({
disabled: !0
}), this._on(this.flipswitch, {
click: "_toggle",
swipeleft: "_left",
swiperight: "_right"
}), this._on(this.on, {
keydown: "_keydown"
}), this._on({
change: "refresh"
});
},
_handleInputFocus: function() {
this.on.focus();
},
widget: function() {
return this.flipswitch;
},
_left: function() {
this.flipswitch.removeClass("ui-flipswitch-active"), "SELECT" === this.type ? this.element.get(0).selectedIndex = 0 : this.element.prop("checked", !1), this.element.trigger("change");
},
_right: function() {
this.flipswitch.addClass("ui-flipswitch-active"), "SELECT" === this.type ? this.element.get(0).selectedIndex = 1 : this.element.prop("checked", !0), this.element.trigger("change");
},
_enhance: function() {
var flipswitch = $("
"), options = this.options, element = this.element, theme = options.theme ? options.theme : "inherit", on = $("
", {
href: "#"
}), off = $("
"), type = element.get(0).tagName, onText = "INPUT" === type ? options.onText : element.find("option").eq(1).text(), offText = "INPUT" === type ? options.offText : element.find("option").eq(0).text();
on.addClass("ui-flipswitch-on ui-btn ui-shadow ui-btn-inherit").text(onText), off.addClass("ui-flipswitch-off").text(offText), flipswitch.addClass("ui-flipswitch ui-shadow-inset ui-bar-" + theme + " " + (options.wrapperClass ? options.wrapperClass : "") + " " + (element.is(":checked") || element.find("option").eq(1).is(":selected") ? "ui-flipswitch-active" : "") + (element.is(":disabled") ? " ui-state-disabled" : "") + (options.corners ? " ui-corner-all" : "") + (options.mini ? " ui-mini" : "")).append(on, off), element.addClass("ui-flipswitch-input").after(flipswitch).appendTo(flipswitch), $.extend(this, {
flipswitch: flipswitch,
on: on,
off: off,
type: type
});
},
_reset: function() {
this.refresh();
},
refresh: function() {
var direction, existingDirection = this.flipswitch.hasClass("ui-flipswitch-active") ? "_right" : "_left";
(direction = "SELECT" === this.type ? this.element.get(0).selectedIndex > 0 ? "_right" : "_left" : this.element.prop("checked") ? "_right" : "_left") !== existingDirection && this[direction]();
},
_toggle: function() {
this[this.flipswitch.hasClass("ui-flipswitch-active") ? "_left" : "_right"]();
},
_keydown: function(e) {
e.which === $.mobile.keyCode.LEFT ? this._left() : e.which === $.mobile.keyCode.RIGHT ? this._right() : e.which === $.mobile.keyCode.SPACE && (this._toggle(), e.preventDefault());
},
_setOptions: function(options) {
if (undefined !== options.theme) {
var currentTheme = options.theme ? options.theme : "inherit", newTheme = options.theme ? options.theme : "inherit";
this.widget().removeClass("ui-bar-" + currentTheme).addClass("ui-bar-" + newTheme);
}
undefined !== options.onText && this.on.text(options.onText), undefined !== options.offText && this.off.text(options.offText), undefined !== options.disabled && this.widget().toggleClass("ui-state-disabled", options.disabled), undefined !== options.mini && this.widget().toggleClass("ui-mini", options.mini), undefined !== options.corners && this.widget().toggleClass("ui-corner-all", options.corners), this._super(options);
},
_destroy: function() {
this.options.enhanced || (null != this._originalTabIndex ? this.element.attr("tabindex", this._originalTabIndex) : this.element.removeAttr("tabindex"), this.on.remove(), this.off.remove(), this.element.unwrap(), this.flipswitch.remove(), this.removeClass("ui-flipswitch-input"));
}
}, $.mobile.behaviors.formReset));
})(jQuery), (function($, undefined) {
$.widget("mobile.rangeslider", $.extend({
options: {
theme: null,
trackTheme: null,
corners: !0,
mini: !1,
highlight: !0
},
_create: function() {
var $el = this.element, elClass = this.options.mini ? "ui-rangeslider ui-mini" : "ui-rangeslider", _inputFirst = $el.find("input").first(), _inputLast = $el.find("input").last(), _label = $el.find("label").first(), _sliderWidgetFirst = $.data(_inputFirst.get(0), "mobile-slider") || $.data(_inputFirst.slider().get(0), "mobile-slider"), _sliderWidgetLast = $.data(_inputLast.get(0), "mobile-slider") || $.data(_inputLast.slider().get(0), "mobile-slider"), _sliderFirst = _sliderWidgetFirst.slider, _sliderLast = _sliderWidgetLast.slider, firstHandle = _sliderWidgetFirst.handle, _sliders = $("
").appendTo($el);
_inputFirst.addClass("ui-rangeslider-first"), _inputLast.addClass("ui-rangeslider-last"), $el.addClass(elClass), _sliderFirst.appendTo(_sliders), _sliderLast.appendTo(_sliders), _label.insertBefore($el), firstHandle.prependTo(_sliderLast), $.extend(this, {
_inputFirst: _inputFirst,
_inputLast: _inputLast,
_sliderFirst: _sliderFirst,
_sliderLast: _sliderLast,
_label: _label,
_targetVal: null,
_sliderTarget: !1,
_sliders: _sliders,
_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(firstHandle, {
vmousedown: "_dragFirstHandle"
});
},
_handleReset: function() {
var self = this;
setTimeout(function() {
self._updateHighlight();
}, 0);
},
_dragFirstHandle: function(event) {
return $.data(this._inputFirst.get(0), "mobile-slider").dragging = !0, $.data(this._inputFirst.get(0), "mobile-slider").refresh(event), !1;
},
_slidedrag: function(event) {
var first = $(event.target).is(this._inputFirst), otherSlider = first ? this._inputLast : this._inputFirst;
if (this._sliderTarget = !1, "first" === this._proxy && first || "last" === this._proxy && !first) return $.data(otherSlider.get(0), "mobile-slider").dragging = !0, $.data(otherSlider.get(0), "mobile-slider").refresh(event), !1;
},
_slidestop: function(event) {
var first = $(event.target).is(this._inputFirst);
this._proxy = !1, this.element.find("input").trigger("vmouseup"), this._sliderFirst.css("z-index", first ? 1 : "");
},
_slidebeforestart: function(event) {
this._sliderTarget = !1, $(event.originalEvent.target).hasClass("ui-slider-track") && (this._sliderTarget = !0, this._targetVal = $(event.target).val());
},
_setOptions: function(options) {
undefined !== options.theme && this._setTheme(options.theme), undefined !== options.trackTheme && this._setTrackTheme(options.trackTheme), undefined !== options.mini && this._setMini(options.mini), undefined !== options.highlight && this._setHighlight(options.highlight), this._super(options), this.refresh();
},
refresh: function() {
var $el = this.element, o = this.options;
(this._inputFirst.is(":disabled") || this._inputLast.is(":disabled")) && (this.options.disabled = !0), $el.find("input").slider({
theme: o.theme,
trackTheme: o.trackTheme,
disabled: o.disabled,
corners: o.corners,
mini: o.mini,
highlight: o.highlight
}).slider("refresh"), this._updateHighlight();
},
_change: function(event) {
if ("keyup" === event.type) return this._updateHighlight(), !1;
var self = this, min = parseFloat(this._inputFirst.val(), 10), max = parseFloat(this._inputLast.val(), 10), first = $(event.target).hasClass("ui-rangeslider-first"), thisSlider = first ? this._inputFirst : this._inputLast, otherSlider = first ? this._inputLast : this._inputFirst;
if (this._inputFirst.val() > this._inputLast.val() && "mousedown" === event.type && !$(event.target).hasClass("ui-slider-handle")) thisSlider.blur();
else if ("mousedown" === event.type) return;
if (min > max && !this._sliderTarget ? (thisSlider.val(first ? max : min).slider("refresh"), this._trigger("normalize")) : min > max && (thisSlider.val(this._targetVal).slider("refresh"), setTimeout(function() {
otherSlider.val(first ? min : max).slider("refresh"), $.data(otherSlider.get(0), "mobile-slider").handle.focus(), self._sliderFirst.css("z-index", first ? "" : 1), self._trigger("normalize");
}, 0), this._proxy = first ? "first" : "last"), min === max ? ($.data(thisSlider.get(0), "mobile-slider").handle.css("z-index", 1), $.data(otherSlider.get(0), "mobile-slider").handle.css("z-index", 0)) : ($.data(otherSlider.get(0), "mobile-slider").handle.css("z-index", ""), $.data(thisSlider.get(0), "mobile-slider").handle.css("z-index", "")), this._updateHighlight(), min >= max) return !1;
},
_updateHighlight: function() {
var min = parseInt($.data(this._inputFirst.get(0), "mobile-slider").handle.get(0).style.left, 10), max = parseInt($.data(this._inputLast.get(0), "mobile-slider").handle.get(0).style.left, 10);
this.element.find(".ui-slider-bg").css({
"margin-left": min + "%",
width: max - min + "%"
});
},
_setTheme: function(value) {
this._inputFirst.slider("option", "theme", value), this._inputLast.slider("option", "theme", value);
},
_setTrackTheme: function(value) {
this._inputFirst.slider("option", "trackTheme", value), this._inputLast.slider("option", "trackTheme", value);
},
_setMini: function(value) {
this._inputFirst.slider("option", "mini", value), this._inputLast.slider("option", "mini", value), this.element.toggleClass("ui-mini", !!value);
},
_setHighlight: function(value) {
this._inputFirst.slider("option", "highlight", value), this._inputLast.slider("option", "highlight", value);
},
_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");
}
}, $.mobile.behaviors.formReset));
})(jQuery), (function($, undefined) {
$.widget("mobile.textinput", $.mobile.textinput, {
options: {
clearBtn: !1,
clearBtnText: "Clear text"
},
_create: function() {
this._super(), (this.options.clearBtn || this.isSearch) && this._addClearBtn();
},
clearButton: function() {
return $("
" + this.options.clearBtnText + "");
},
_clearBtnClick: function(event) {
this.element.val("").focus().trigger("change"), this._clearBtn.addClass("ui-input-clear-hidden"), event.preventDefault();
},
_addClearBtn: function() {
this.options.enhanced || this._enhanceClear(), $.extend(this, {
_clearBtn: this.widget().find("a.ui-input-clear")
}), this._bindClearEvents(), this._toggleClear();
},
_enhanceClear: function() {
this.clearButton().appendTo(this.widget()), this.widget().addClass("ui-input-has-clear");
},
_bindClearEvents: function() {
this._on(this._clearBtn, {
click: "_clearBtnClick"
}), this._on({
keyup: "_toggleClear",
change: "_toggleClear",
input: "_toggleClear",
focus: "_toggleClear",
blur: "_toggleClear",
cut: "_toggleClear",
paste: "_toggleClear"
});
},
_unbindClear: function() {
this._off(this._clearBtn, "click"), this._off(this.element, "keyup change input focus blur cut paste");
},
_setOptions: function(options) {
this._super(options), undefined === options.clearBtn || this.element.is("textarea, :jqmData(type='range')") || (options.clearBtn ? this._addClearBtn() : this._destroyClear()), undefined !== options.clearBtnText && undefined !== this._clearBtn && this._clearBtn.text(options.clearBtnText).attr("title", options.clearBtnText);
},
_toggleClear: function() {
this._delay("_toggleClearClass", 0);
},
_toggleClearClass: function() {
this._clearBtn.toggleClass("ui-input-clear-hidden", !this.element.val());
},
_destroyClear: function() {
this.widget().removeClass("ui-input-has-clear"), this._unbindClear(), this._clearBtn.remove();
},
_destroy: function() {
this._super(), this._destroyClear();
}
});
})(jQuery), (function($, undefined) {
$.widget("mobile.textinput", $.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(event) {
$.contains(event.target, this.element[0]) && this.element.is(":visible") && ("popupbeforeposition" !== event.type && this.element.addClass("ui-textinput-autogrow-resize").animationComplete($.proxy(function() {
this.element.removeClass("ui-textinput-autogrow-resize");
}, this), "transition"), this._timeout());
},
_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(delay) {
this.keyupTimeout && clearTimeout(this.keyupTimeout), delay === undefined ? this._updateHeight() : this.keyupTimeout = this._delay("_updateHeight", delay);
},
_timeout: function() {
this._prepareHeightUpdate(this.options.keyupTimeoutBuffer);
},
_updateHeight: function() {
var borderHeight, height, scrollTop = this.window.scrollTop();
this.keyupTimeout = 0, "onpage" in this.element[0] || this.element.css({
height: 0,
"min-height": 0,
"max-height": 0
}), this.element[0].scrollHeight, this.element[0].clientHeight, borderHeight = parseFloat(this.element.css("border-top-width")) + parseFloat(this.element.css("border-bottom-width")), height = this.element[0].scrollHeight + borderHeight + 15, 0 === this.element[0].clientHeight && (height += parseFloat(this.element.css("padding-top")) + parseFloat(this.element.css("padding-bottom"))), this.element.css({
height: height,
"min-height": "",
"max-height": ""
}), this.window.scrollTop(scrollTop);
},
refresh: function() {
this.options.autogrow && this.isTextarea && this._updateHeight();
},
_setOptions: function(options) {
this._super(options), undefined !== options.autogrow && this.isTextarea && (options.autogrow ? this._autogrow() : this._unbindAutogrow());
}
});
})(jQuery), (function($, undefined) {
$.widget("mobile.selectmenu", $.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 $("
");
},
_setDisabled: function(value) {
return this.element.attr("disabled", value), this.button.attr("aria-disabled", value), this._setOption("disabled", value);
},
_focusButton: function() {
var self = this;
setTimeout(function() {
self.button.focus();
}, 40);
},
_selectOptions: function() {
return this.select.find("option");
},
_preExtension: function() {
var inline = this.options.inline || this.element.jqmData("inline"), mini = this.options.mini || this.element.jqmData("mini"), classes = "";
~this.element[0].className.indexOf("ui-btn-left") && (classes = " ui-btn-left"), ~this.element[0].className.indexOf("ui-btn-right") && (classes = " ui-btn-right"), inline && (classes += " ui-btn-inline"), mini && (classes += " ui-mini"), this.select = this.element.removeClass("ui-btn-left ui-btn-right").wrap("
"), this.selectId = this.select.attr("id") || "select-" + this.uuid, this.buttonId = this.selectId + "-button", this.label = $("label[for='" + this.selectId + "']"), this.isMultiple = this.select[0].multiple;
},
_destroy: function() {
var wrapper = this.element.parents(".ui-select");
wrapper.length > 0 && (wrapper.is(".ui-btn-left, .ui-btn-right") && this.element.addClass(wrapper.hasClass("ui-btn-left") ? "ui-btn-left" : "ui-btn-right"), this.element.insertAfter(wrapper), wrapper.remove());
},
_create: function() {
this._preExtension(), this.button = this._button();
var self = this, options = this.options, iconpos = !!options.icon && (options.iconpos || this.select.jqmData("iconpos")), button = this.button.insertBefore(this.select).attr("id", this.buttonId).addClass("ui-btn" + (options.icon ? " ui-icon-" + options.icon + " ui-btn-icon-" + iconpos + (options.iconshadow ? " ui-shadow-icon" : "") : "") + (options.theme ? " ui-btn-" + options.theme : "") + (options.corners ? " ui-corner-all" : "") + (options.shadow ? " ui-shadow" : ""));
this.setButtonText(), options.nativeMenu && window.opera && window.opera.version && button.addClass("ui-select-nativeonly"), this.isMultiple && (this.buttonCount = $("
").addClass("ui-li-count ui-body-inherit").hide().appendTo(button.addClass("ui-li-has-count"))), (options.disabled || this.element.attr("disabled")) && this.disable(), this.select.change(function() {
self.refresh(), options.nativeMenu && this.blur();
}), this._handleFormReset(), this._on(this.button, {
keydown: "_handleKeydown"
}), this.build();
},
build: function() {
var self = this;
this.select.appendTo(self.button).bind("vmousedown", function() {
self.button.addClass($.mobile.activeBtnClass);
}).bind("focus", function() {
self.button.addClass($.mobile.focusClass);
}).bind("blur", function() {
self.button.removeClass($.mobile.focusClass);
}).bind("focus vmouseover", function() {
self.button.trigger("vmouseover");
}).bind("vmousemove", function() {
self.button.removeClass($.mobile.activeBtnClass);
}).bind("change blur vmouseout", function() {
self.button.trigger("vmouseout").removeClass($.mobile.activeBtnClass);
}), self.button.bind("vmousedown", function() {
self.options.preventFocusZoom && $.mobile.zoom.disable(!0);
}), self.label.bind("click focus", function() {
self.options.preventFocusZoom && $.mobile.zoom.disable(!0);
}), self.select.bind("focus", function() {
self.options.preventFocusZoom && $.mobile.zoom.disable(!0);
}), self.button.bind("mouseup", function() {
self.options.preventFocusZoom && setTimeout(function() {
$.mobile.zoom.enable(!0);
}, 0);
}), self.select.bind("blur", function() {
self.options.preventFocusZoom && $.mobile.zoom.enable(!0);
});
},
selected: function() {
return this._selectOptions().filter(":selected");
},
selectedIndices: function() {
var self = this;
return this.selected().map(function() {
return self._selectOptions().index(this);
}).get();
},
setButtonText: function() {
var selected = this.selected(), text = this.placeholder, span = $(document.createElement("span"));
this.button.children("span").not(".ui-li-count").remove().end().end().prepend(((text = selected.length ? selected.map(function() {
return $(this).text();
}).get().join(", ") : this.placeholder) ? span.text(text) : span.html(" "), span.addClass(this.select.attr("class")).addClass(selected.attr("class")).removeClass("ui-screen-hidden")));
},
setButtonCount: function() {
var selected = this.selected();
this.isMultiple && this.buttonCount[selected.length > 1 ? "show" : "hide"]().text(selected.length);
},
_handleKeydown: function() {
this._delay("_refreshButton");
},
_reset: function() {
this.refresh();
},
_refreshButton: function() {
this.setButtonText(), this.setButtonCount();
},
refresh: function() {
this._refreshButton();
},
open: $.noop,
close: $.noop,
disable: function() {
this._setDisabled(!0), this.button.addClass("ui-state-disabled");
},
enable: function() {
this._setDisabled(!1), this.button.removeClass("ui-state-disabled");
}
}, $.mobile.behaviors.formReset));
})(jQuery), ($15 = jQuery).mobile.links = function(target) {
$15(target).find("a").jqmEnhanceable().filter(":jqmData(rel='popup')[href][href!='']").each(function() {
var idref = this.getAttribute("href").substring(1);
idref && (this.setAttribute("aria-haspopup", !0), this.setAttribute("aria-owns", idref), this.setAttribute("aria-expanded", !1));
}).end().not(".ui-btn, :jqmData(role='none'), :jqmData(role='nojs')").addClass("ui-link");
}, (function($, undefined) {
function fitSegmentInsideSegment(windowSize, segmentSize, offset, desired) {
return windowSize < segmentSize ? offset + (windowSize - segmentSize) / 2 : Math.min(Math.max(offset, desired - segmentSize / 2), offset + windowSize - segmentSize);
}
function getWindowCoordinates(theWindow) {
return {
x: theWindow.scrollLeft(),
y: theWindow.scrollTop(),
cx: theWindow[0].innerWidth || theWindow.width(),
cy: theWindow[0].innerHeight || theWindow.height()
};
}
$.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: !$.mobile.browser.oldIE
},
_create: function() {
var theElement = this.element, myId = theElement.attr("id"), currentOptions = this.options;
currentOptions.history = currentOptions.history && $.mobile.ajaxEnabled && $.mobile.hashListeningEnabled, $.extend(this, {
_scrollTop: 0,
_page: theElement.closest(".ui-page"),
_ui: null,
_fallbackTransition: "",
_currentTransition: !1,
_prerequisites: null,
_isOpen: !1,
_tolerance: null,
_resizeData: null,
_ignoreResizeTo: 0,
_orientationchangeInProgress: !1
}), 0 === this._page.length && (this._page = $("body")), currentOptions.enhanced ? this._ui = {
container: theElement.parent(),
screen: theElement.parent().prev(),
placeholder: $(this.document[0].getElementById(myId + "-placeholder"))
} : (this._ui = this._enhance(theElement, myId), this._applyTransition(currentOptions.transition)), this._setTolerance(currentOptions.tolerance)._ui.focusElement = this._ui.container, this._on(this._ui.screen, {
vclick: "_eatEventAndClose"
}), this._on(this.window, {
orientationchange: $.proxy(this, "_handleWindowOrientationchange"),
resize: $.proxy(this, "_handleWindowResize"),
keyup: $.proxy(this, "_handleWindowKeyUp")
}), this._on(this.document, {
focusin: "_handleDocumentFocusIn"
});
},
_enhance: function(theElement, myId) {
var currentOptions = this.options, wrapperClass = currentOptions.wrapperClass, ui = {
screen: $(""),
placeholder: $(""),
container: $("")
}, fragment = this.document[0].createDocumentFragment();
return fragment.appendChild(ui.screen[0]), fragment.appendChild(ui.container[0]), myId && (ui.screen.attr("id", myId + "-screen"), ui.container.attr("id", myId + "-popup"), ui.placeholder.attr("id", myId + "-placeholder").html("")), this._page[0].appendChild(fragment), ui.placeholder.insertAfter(theElement), theElement.detach().addClass("ui-popup " + this._themeClassFromOption("ui-body-", currentOptions.theme) + " " + (currentOptions.shadow ? "ui-overlay-shadow " : "") + (currentOptions.corners ? "ui-corner-all " : "")).appendTo(ui.container), ui;
},
_eatEventAndClose: function(theEvent) {
return theEvent.preventDefault(), theEvent.stopImmediatePropagation(), this.options.dismissible && this.close(), !1;
},
_resizeScreen: function() {
var screen = this._ui.screen, popupHeight = this._ui.container.outerHeight(!0), screenHeight = screen.removeAttr("style").height(), documentHeight = this.document.height() - 1;
screenHeight < documentHeight ? screen.height(documentHeight) : popupHeight > screenHeight && screen.height(popupHeight);
},
_handleWindowKeyUp: function(theEvent) {
if (this._isOpen && theEvent.keyCode === $.mobile.keyCode.ESCAPE) return this._eatEventAndClose(theEvent);
},
_expectResizeEvent: function() {
var windowCoordinates = getWindowCoordinates(this.window);
if (this._resizeData) {
if (windowCoordinates.x === this._resizeData.windowCoordinates.x && windowCoordinates.y === this._resizeData.windowCoordinates.y && windowCoordinates.cx === this._resizeData.windowCoordinates.cx && windowCoordinates.cy === this._resizeData.windowCoordinates.cy) return !1;
clearTimeout(this._resizeData.timeoutId);
}
return this._resizeData = {
timeoutId: this._delay("_resizeTimeout", 200),
windowCoordinates: windowCoordinates
}, !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", 1000);
},
_handleWindowResize: function() {
this._isOpen && 0 === this._ignoreResizeTo && (this._expectResizeEvent() || this._orientationchangeInProgress) && !this._ui.container.hasClass("ui-popup-hidden") && this._ui.container.addClass("ui-popup-hidden ui-popup-truncate").removeAttr("style");
},
_handleWindowOrientationchange: function() {
!this._orientationchangeInProgress && this._isOpen && 0 === this._ignoreResizeTo && (this._expectResizeEvent(), this._orientationchangeInProgress = !0);
},
_handleDocumentFocusIn: function(theEvent) {
var target, targetElement = theEvent.target, ui = this._ui;
if (this._isOpen) {
if (targetElement !== ui.container[0]) {
if (0 === (target = $(targetElement)).parents().filter(ui.container[0]).length) return $(this.document[0].activeElement).one("focus", function() {
target.blur();
}), ui.focusElement.focus(), theEvent.preventDefault(), theEvent.stopImmediatePropagation(), !1;
ui.focusElement[0] === ui.container[0] && (ui.focusElement = target);
}
this._ignoreResizeEvents();
}
},
_themeClassFromOption: function(prefix, value) {
return value ? "none" === value ? "" : prefix + value : prefix + "inherit";
},
_applyTransition: function(value) {
return value && (this._ui.container.removeClass(this._fallbackTransition), "none" !== value && (this._fallbackTransition = $.mobile._maybeDegradeTransition(value), "none" === this._fallbackTransition && (this._fallbackTransition = ""), this._ui.container.addClass(this._fallbackTransition))), this;
},
_setOptions: function(newOptions) {
var currentOptions = this.options, theElement = this.element, screen = this._ui.screen;
return undefined !== newOptions.wrapperClass && this._ui.container.removeClass(currentOptions.wrapperClass).addClass(newOptions.wrapperClass), undefined !== newOptions.theme && theElement.removeClass(this._themeClassFromOption("ui-body-", currentOptions.theme)).addClass(this._themeClassFromOption("ui-body-", newOptions.theme)), undefined !== newOptions.overlayTheme && (screen.removeClass(this._themeClassFromOption("ui-overlay-", currentOptions.overlayTheme)).addClass(this._themeClassFromOption("ui-overlay-", newOptions.overlayTheme)), this._isOpen && screen.addClass("in")), undefined !== newOptions.shadow && theElement.toggleClass("ui-overlay-shadow", newOptions.shadow), undefined !== newOptions.corners && theElement.toggleClass("ui-corner-all", newOptions.corners), undefined === newOptions.transition || this._currentTransition || this._applyTransition(newOptions.transition), undefined !== newOptions.tolerance && this._setTolerance(newOptions.tolerance), undefined !== newOptions.disabled && newOptions.disabled && this.close(), this._super(newOptions);
},
_setTolerance: function(value) {
var ar, tol = {
t: 30,
r: 15,
b: 30,
l: 15
};
if (value !== undefined) switch(ar = String(value).split(","), $.each(ar, function(idx, val) {
ar[idx] = parseInt(val, 10);
}), ar.length){
case 1:
isNaN(ar[0]) || (tol.t = tol.r = tol.b = tol.l = ar[0]);
break;
case 2:
isNaN(ar[0]) || (tol.t = tol.b = ar[0]), isNaN(ar[1]) || (tol.l = tol.r = ar[1]);
break;
case 4:
isNaN(ar[0]) || (tol.t = ar[0]), isNaN(ar[1]) || (tol.r = ar[1]), isNaN(ar[2]) || (tol.b = ar[2]), isNaN(ar[3]) || (tol.l = ar[3]);
break;
default:
break;
}
return this._tolerance = tol, this;
},
_clampPopupWidth: function(infoOnly) {
var windowCoordinates = getWindowCoordinates(this.window), rectangle = {
x: this._tolerance.l,
y: windowCoordinates.y + this._tolerance.t,
cx: windowCoordinates.cx - this._tolerance.l - this._tolerance.r,
cy: windowCoordinates.cy - this._tolerance.t - this._tolerance.b
};
return infoOnly || this._ui.container.css("max-width", rectangle.cx), {
rc: rectangle,
menuSize: {
cx: this._ui.container.outerWidth(!0),
cy: this._ui.container.outerHeight(!0)
}
};
},
_calculateFinalLocation: function(desired, clampInfo) {
var returnValue, rectangle = clampInfo.rc, menuSize = clampInfo.menuSize;
return (returnValue = {
left: fitSegmentInsideSegment(rectangle.cx, menuSize.cx, rectangle.x, desired.x),
top: fitSegmentInsideSegment(rectangle.cy, menuSize.cy, rectangle.y, desired.y)
}).top = Math.max(0, returnValue.top), returnValue.top -= Math.min(returnValue.top, Math.max(0, returnValue.top + menuSize.cy - this.document.height())), returnValue;
},
_placementCoords: function(desired) {
return this._calculateFinalLocation(desired, this._clampPopupWidth());
},
_createPrerequisites: function(screenPrerequisite, containerPrerequisite, whenDone) {
var prerequisites, self = this;
(prerequisites = {
screen: $.Deferred(),
container: $.Deferred()
}).screen.then(function() {
prerequisites === self._prerequisites && screenPrerequisite();
}), prerequisites.container.then(function() {
prerequisites === self._prerequisites && containerPrerequisite();
}), $.when(prerequisites.screen, prerequisites.container).done(function() {
prerequisites === self._prerequisites && (self._prerequisites = null, whenDone());
}), self._prerequisites = prerequisites;
},
_animate: function(args) {
if (this._ui.screen.removeClass(args.classToRemove).addClass(args.screenClassToAdd), args.prerequisites.screen.resolve(), args.transition && "none" !== args.transition && (args.applyTransition && this._applyTransition(args.transition), this._fallbackTransition)) return void this._ui.container.addClass(args.containerClassToAdd).removeClass(args.classToRemove).animationComplete($.proxy(args.prerequisites.container, "resolve"));
this._ui.container.removeClass(args.classToRemove), args.prerequisites.container.resolve();
},
_desiredCoords: function(openOptions) {
var offset, dst = null, windowCoordinates = getWindowCoordinates(this.window), x = openOptions.x, y = openOptions.y, pTo = openOptions.positionTo;
if (pTo && "origin" !== pTo) if ("window" === pTo) x = windowCoordinates.cx / 2 + windowCoordinates.x, y = windowCoordinates.cy / 2 + windowCoordinates.y;
else {
try {
dst = $(pTo);
} catch (err) {
dst = null;
}
dst && (dst.filter(":visible"), 0 === dst.length && (dst = null));
}
return dst && (x = (offset = dst.offset()).left + dst.outerWidth() / 2, y = offset.top + dst.outerHeight() / 2), ("number" !== $.type(x) || isNaN(x)) && (x = windowCoordinates.cx / 2 + windowCoordinates.x), ("number" !== $.type(y) || isNaN(y)) && (y = windowCoordinates.cy / 2 + windowCoordinates.y), {
x: x,
y: y
};
},
_reposition: function(openOptions) {
openOptions = {
x: openOptions.x,
y: openOptions.y,
positionTo: openOptions.positionTo
}, this._trigger("beforeposition", undefined, openOptions), this._ui.container.offset(this._placementCoords(this._desiredCoords(openOptions)));
},
reposition: function(openOptions) {
this._isOpen && this._reposition(openOptions);
},
_openPrerequisitesComplete: function() {
var id = this.element.attr("id");
this._ui.container.addClass("ui-popup-active"), this._isOpen = !0, this._resizeScreen(), this._ui.container.attr("tabindex", "0").focus(), this._ignoreResizeEvents(), id && this.document.find("[aria-haspopup='true'][aria-owns='" + id + "']").attr("aria-expanded", !0), this._trigger("afteropen");
},
_open: function(options) {
var ua, wkmatch, wkversion, androidmatch, andversion, chromematch, openOptions = $.extend({
}, this.options, options), androidBlacklist = (wkversion = !!(wkmatch = (ua = navigator.userAgent).match(/AppleWebKit\/([0-9\.]+)/)) && wkmatch[1], andversion = !!(androidmatch = ua.match(/Android (\d+(?:\.\d+))/)) && androidmatch[1], chromematch = ua.indexOf("Chrome") > -1, null !== androidmatch && "4.0" === andversion && !!wkversion && wkversion > 534.13 && !chromematch);
this._createPrerequisites($.noop, $.noop, $.proxy(this, "_openPrerequisitesComplete")), this._currentTransition = openOptions.transition, this._applyTransition(openOptions.transition), this._ui.screen.removeClass("ui-screen-hidden"), this._ui.container.removeClass("ui-popup-truncate"), this._reposition(openOptions), this._ui.container.removeClass("ui-popup-hidden"), this.options.overlayTheme && androidBlacklist && this.element.closest(".ui-page").addClass("ui-popup-open"), this._animate({
additionalCondition: !0,
transition: openOptions.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 container = this._ui.container, id = this.element.attr("id");
container.removeAttr("tabindex"), $.mobile.popup.active = undefined, $(":focus", container[0]).add(container[0]).blur(), id && this.document.find("[aria-haspopup='true'][aria-owns='" + id + "']").attr("aria-expanded", !1), this._trigger("afterclose");
},
_close: function(immediate) {
this._ui.container.removeClass("ui-popup-active"), this._page.removeClass("ui-popup-open"), this._isOpen = !1, this._createPrerequisites($.proxy(this, "_closePrerequisiteScreen"), $.proxy(this, "_closePrerequisiteContainer"), $.proxy(this, "_closePrerequisitesDone")), this._animate({
additionalCondition: this._ui.screen.hasClass("in"),
transition: immediate ? "none" : this._currentTransition,
classToRemove: "in",
screenClassToAdd: "out",
containerClassToAdd: "reverse out",
applyTransition: !0,
prerequisites: this._prerequisites
});
},
_unenhance: function() {
this.options.enhanced || (this._setOptions({
theme: $.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 $.mobile.popup.active === this ? (this.element.one("popupafterclose", $.proxy(this, "_unenhance")), this.close()) : this._unenhance(), this;
},
_closePopup: function(theEvent, data) {
var parsedDst, toUrl, currentOptions = this.options, immediate = !1;
theEvent && theEvent.isDefaultPrevented() || $.mobile.popup.active !== this || (window.scrollTo(0, this._scrollTop), theEvent && "pagebeforechange" === theEvent.type && data && (parsedDst = "string" == typeof data.toPage ? data.toPage : data.toPage.jqmData("url"), toUrl = (parsedDst = $.mobile.path.parseUrl(parsedDst)).pathname + parsedDst.search + parsedDst.hash, this._myUrl !== $.mobile.path.makeUrlAbsolute(toUrl) ? immediate = !0 : theEvent.preventDefault()), this.window.off(currentOptions.closeEvents), this.element.undelegate(currentOptions.closeLinkSelector, currentOptions.closeLinkEvents), this._close(immediate));
},
_bindContainerClose: function() {
this.window.on(this.options.closeEvents, $.proxy(this, "_closePopup"));
},
widget: function() {
return this._ui.container;
},
open: function(options) {
var url, hashkey, activePage, currentIsDialog, urlHistory, self = this, currentOptions = this.options;
return $.mobile.popup.active || currentOptions.disabled ? this : ($.mobile.popup.active = this, this._scrollTop = this.window.scrollTop(), currentOptions.history) ? (urlHistory = $.mobile.navigate.history, hashkey = $.mobile.dialogHashKey, currentIsDialog = !!(activePage = $.mobile.activePage) && activePage.hasClass("ui-dialog"), this._myUrl = url = urlHistory.getActive().url, url.indexOf(hashkey) > -1 && !currentIsDialog && urlHistory.activeIndex > 0) ? (self._open(options), self._bindContainerClose(), this) : (-1 !== url.indexOf(hashkey) || currentIsDialog ? url = $.mobile.path.parseLocation().hash + hashkey : url += url.indexOf("#") > -1 ? hashkey : "#" + hashkey, 0 === urlHistory.activeIndex && url === urlHistory.initialDst && (url += hashkey), this.window.one("beforenavigate", function(theEvent) {
theEvent.preventDefault(), self._open(options), self._bindContainerClose();
}), this.urlAltered = !0, $.mobile.navigate(url, {
role: "dialog"
}), this) : (self._open(options), self._bindContainerClose(), self.element.delegate(currentOptions.closeLinkSelector, currentOptions.closeLinkEvents, function(theEvent) {
self.close(), theEvent.preventDefault();
}), this);
},
close: function() {
return $.mobile.popup.active !== this || (this._scrollTop = this.window.scrollTop(), this.options.history && this.urlAltered ? ($.mobile.back(), this.urlAltered = !1) : this._closePopup()), this;
}
}), $.mobile.popup.handleLink = function($link) {
var offset, path = $.mobile.path, popup = $(path.hashToSelector(path.parseUrl($link.attr("href")).hash)).first();
popup.length > 0 && popup.data("mobile-popup") && (offset = $link.offset(), popup.popup("open", {
x: offset.left + $link.outerWidth() / 2,
y: offset.top + $link.outerHeight() / 2,
transition: $link.jqmData("transition"),
positionTo: $link.jqmData("position-to")
})), setTimeout(function() {
$link.removeClass($.mobile.activeBtnClass);
}, 300);
}, $.mobile.document.on("pagebeforechange", function(theEvent, data) {
"popup" === data.options.role && ($.mobile.popup.handleLink(data.options.link), theEvent.preventDefault());
});
})(jQuery), (function($, undefined) {
var goToAdjacentItem = function(item, target, direction) {
var adjacent = item[direction + "All"]().not(".ui-disabled,.ui-state-disabled,.ui-li-divider,.ui-screen-hidden,:jqmData(role='placeholder')").first();
adjacent.length && (target.blur().attr("tabindex", "-1"), adjacent.find("a").first().focus());
};
$.widget("mobile.selectmenu", $.mobile.selectmenu, {
_create: function() {
var o = this.options;
return o.nativeMenu = o.nativeMenu || this.element.parents(":jqmData(role='popup'),:mobile-popup").length > 0, this._super();
},
_handleSelectFocus: function() {
this.element.blur(), this.button.focus();
},
_handleKeydown: function(event) {
this._super(event), this._handleButtonVclickKeydown(event);
},
_handleButtonVclickKeydown: function(event) {
this.options.disabled || this.isOpen || ("vclick" === event.type || event.keyCode && (event.keyCode === $.mobile.keyCode.ENTER || event.keyCode === $.mobile.keyCode.SPACE)) && (this._decideFormat(), "overlay" === this.menuType ? this.button.attr("href", "#" + this.popupId).attr("data-" + ($.mobile.ns || "") + "rel", "popup") : this.button.attr("href", "#" + this.dialogId).attr("data-" + ($.mobile.ns || "") + "rel", "dialog"), this.isOpen = !0);
},
_handleListFocus: function(e) {
var params = "focusin" === e.type ? {
tabindex: "0",
event: "vmouseover"
} : {
tabindex: "-1",
event: "vmouseout"
};
$(e.target).attr("tabindex", params.tabindex).trigger(params.event);
},
_handleListKeydown: function(event) {
var target = $(event.target), li = target.closest("li");
switch(event.keyCode){
case 38:
return goToAdjacentItem(li, target, "prev"), !1;
case 40:
return goToAdjacentItem(li, target, "next"), !1;
case 13:
case 32:
return target.trigger("click"), !1;
}
},
_handleMenuPageHide: function() {
this.thisPage.page("bindRemove");
},
_handleHeaderCloseClick: function() {
if ("overlay" === this.menuType) return this.close(), !1;
},
build: function() {
var selectId, popupId, dialogId, label, thisPage, isMultiple, menuId, themeAttr, overlayTheme, overlayThemeAttr, dividerThemeAttr, menuPage, listbox, list, header, headerTitle, menuPageContent, menuPageClose, headerClose, self, o = this.options;
return o.nativeMenu ? this._super() : (self = this, popupId = (selectId = this.selectId) + "-listbox", dialogId = selectId + "-dialog", label = this.label, thisPage = this.element.closest(".ui-page"), isMultiple = this.element[0].multiple, menuId = selectId + "-menu", themeAttr = o.theme ? " data-" + $.mobile.ns + "theme='" + o.theme + "'" : "", overlayThemeAttr = (overlayTheme = o.overlayTheme || o.theme || null) ? " data-" + $.mobile.ns + "overlay-theme='" + overlayTheme + "'" : "", dividerThemeAttr = o.dividerTheme && isMultiple ? " data-" + $.mobile.ns + "divider-theme='" + o.dividerTheme + "'" : "", menuPage = $(""), listbox = $("").insertAfter(this.select).popup({
theme: o.overlayTheme
}), list = $("").appendTo(listbox), header = $("").prependTo(listbox), headerTitle = $("").appendTo(header), this.isMultiple && (headerClose = $("", {
role: "button",
text: o.closeText,
href: "#",
"class": "ui-btn ui-corner-all ui-btn-left ui-btn-icon-notext ui-icon-delete"
}).appendTo(header)), $.extend(this, {
selectId: selectId,
menuId: menuId,
popupId: popupId,
dialogId: dialogId,
thisPage: thisPage,
menuPage: menuPage,
label: label,
isMultiple: isMultiple,
theme: o.theme,
listbox: listbox,
list: list,
header: header,
headerTitle: headerTitle,
headerClose: headerClose,
menuPageContent: menuPageContent,
menuPageClose: menuPageClose,
placeholder: ""
}), this.refresh(), undefined === this._origTabIndex && (this._origTabIndex = null !== this.select[0].getAttribute("tabindex") && this.select.attr("tabindex")), this.select.attr("tabindex", "-1"), this._on(this.select, {
focus: "_handleSelectFocus"
}), this._on(this.button, {
vclick: "_handleButtonVclickKeydown"
}), this.list.attr("role", "listbox"), this._on(this.list, {
focusin: "_handleListFocus",
focusout: "_handleListFocus",
keydown: "_handleListKeydown"
}), this.list.delegate("li:not(.ui-disabled,.ui-state-disabled,.ui-li-divider)", "click", function(event) {
var oldIndex = self.select[0].selectedIndex, newIndex = $.mobile.getAttribute(this, "option-index"), option = self._selectOptions().eq(newIndex)[0];
option.selected = !self.isMultiple || !option.selected, self.isMultiple && $(this).find("a").toggleClass("ui-checkbox-on", option.selected).toggleClass("ui-checkbox-off", !option.selected), (self.isMultiple || oldIndex !== newIndex) && self.select.trigger("change"), self.isMultiple ? self.list.find("li:not(.ui-li-divider)").eq(newIndex).find("a").first().focus() : self.close(), event.preventDefault();
}), this._on(this.menuPage, {
pagehide: "_handleMenuPageHide"
}), this._on(this.listbox, {
popupafterclose: "close"
}), this.isMultiple && this._on(this.headerClose, {
click: "_handleHeaderCloseClick"
}), this);
},
_isRebuildRequired: function() {
var list = this.list.find("li");
return this._selectOptions().not(".ui-screen-hidden").text() !== list.text();
},
selected: function() {
return this._selectOptions().filter(":selected:not( :jqmData(placeholder='true') )");
},
refresh: function(force) {
var self, indices;
if (this.options.nativeMenu) return this._super(force);
self = this, (force || this._isRebuildRequired()) && self._buildList(), indices = this.selectedIndices(), self.setButtonText(), self.setButtonCount(), self.list.find("li:not(.ui-li-divider)").find("a").removeClass($.mobile.activeBtnClass).end().attr("aria-selected", !1).each(function(i) {
if ($.inArray(i, indices) > -1) {
var item = $(this);
item.attr("aria-selected", !0), self.isMultiple ? item.find("a").removeClass("ui-checkbox-off").addClass("ui-checkbox-on") : item.hasClass("ui-screen-hidden") ? item.next().find("a").addClass($.mobile.activeBtnClass) : item.find("a").addClass($.mobile.activeBtnClass);
}
});
},
close: function() {
this.options.disabled || !this.isOpen || ("page" === this.menuType ? (this.menuPage.dialog("close"), this.list.appendTo(this.listbox)) : this.listbox.popup("close"), this._focusButton(), this.isOpen = !1);
},
open: function() {
this.button.click();
},
_focusMenuItem: function() {
var selector = this.list.find("a." + $.mobile.activeBtnClass);
0 === selector.length && (selector = this.list.find("li:not(.ui-disabled,.ui-state-disabled,.ui-li-divider,.ui-screen-hidden,:jqmData(role='placeholder')) a.ui-btn")), selector.first().focus();
},
_decideFormat: function() {
var $window = this.window, menuHeight = this.list.parent().outerHeight(), scrollTop = $window.scrollTop(), btnOffset = this.button.offset().top, screenHeight = $window.height();
menuHeight > screenHeight - 80 || !$.support.scrollTop ? (this.menuPage.appendTo($.mobile.pageContainer).page(), this.menuPageContent = this.menuPage.find(".ui-content"), this.menuPageClose = this.menuPage.find(".ui-header a"), this.thisPage.unbind("pagehide.remove"), 0 === scrollTop && btnOffset > screenHeight && this.thisPage.one("pagehide", function() {
$(this).jqmData("lastScroll", btnOffset);
}), this.menuPage.one({
pageshow: $.proxy(this, "_focusMenuItem"),
pagehide: $.proxy(this, "close")
}), this.menuType = "page", this.menuPageContent.append(this.list), this.menuPage.find("div .ui-title").text(this.label.text())) : (this.menuType = "overlay", this.listbox.one({
popupafteropen: $.proxy(this, "_focusMenuItem")
}));
},
_buildList: function() {
var $options, numOptions, select, optGroup, i, option, $option, parent, text, anchor, classes, optLabel, divider, item, o = this.options, placeholder = this.placeholder, needPlaceholder = !0, dataPrefix = "data-" + $.mobile.ns, dataIndexAttr = dataPrefix + "option-index", dataIconAttr = dataPrefix + "icon", dataRoleAttr = dataPrefix + "role", dataPlaceholderAttr = dataPrefix + "placeholder", fragment = document.createDocumentFragment(), isPlaceholderItem = !1;
for(this.list.empty().filter(".ui-listview").listview("destroy"), numOptions = ($options = this._selectOptions()).length, select = this.select[0], i = 0; i < numOptions; i++, isPlaceholderItem = !1)($option = $(option = $options[i])).hasClass("ui-screen-hidden") || (parent = option.parentNode, text = $option.text(), classes = [], (anchor = document.createElement("a")).setAttribute("href", "#"), anchor.appendChild(document.createTextNode(text)), parent !== select && "optgroup" === parent.nodeName.toLowerCase() && (optLabel = parent.getAttribute("label")) !== optGroup && ((divider = document.createElement("li")).setAttribute(dataRoleAttr, "list-divider"), divider.setAttribute("role", "option"), divider.setAttribute("tabindex", "-1"), divider.appendChild(document.createTextNode(optLabel)), fragment.appendChild(divider), optGroup = optLabel), needPlaceholder && (!option.getAttribute("value") || 0 === text.length || $option.jqmData("placeholder")) && (needPlaceholder = !1, isPlaceholderItem = !0, null === option.getAttribute(dataPlaceholderAttr) && (this._removePlaceholderAttr = !0), option.setAttribute(dataPlaceholderAttr, !0), o.hidePlaceholderMenuItems && classes.push("ui-screen-hidden"), placeholder !== text && (placeholder = this.placeholder = text)), item = document.createElement("li"), option.disabled && (classes.push("ui-state-disabled"), item.setAttribute("aria-disabled", !0)), item.setAttribute(dataIndexAttr, i), item.setAttribute(dataIconAttr, "false"), isPlaceholderItem && item.setAttribute(dataPlaceholderAttr, !0), item.className = classes.join(" "), item.setAttribute("role", "option"), anchor.setAttribute("tabindex", "-1"), this.isMultiple && $(anchor).addClass("ui-btn ui-checkbox-off ui-btn-icon-right"), item.appendChild(anchor), fragment.appendChild(item));
this.list[0].appendChild(fragment), this.isMultiple || placeholder.length ? this.headerTitle.text(this.placeholder) : this.header.addClass("ui-screen-hidden"), this.list.listview();
},
_button: function() {
return this.options.nativeMenu ? this._super() : $("", {
href: "#",
role: "button",
id: this.buttonId,
"aria-haspopup": "true",
"aria-owns": this.menuId
});
},
_destroy: function() {
this.options.nativeMenu || (this.close(), undefined !== this._origTabIndex && (!1 !== this._origTabIndex ? this.select.attr("tabindex", this._origTabIndex) : this.select.removeAttr("tabindex")), this._removePlaceholderAttr && this._selectOptions().removeAttr("data-" + $.mobile.ns + "placeholder"), this.listbox.remove(), this.menuPage.remove()), this._super();
}
});
})(jQuery), (function($, undefined) {
var reverseBoolOptionMap = {
"ui-shadow": "shadow",
"ui-corner-all": "corners",
"ui-btn-inline": "inline",
"ui-shadow-icon": "iconshadow",
"ui-mini": "mini"
}, getAttrFixed = function() {
var ret = $.mobile.getAttribute.apply(this, arguments);
return null == ret ? undefined : ret;
}, capitalLettersRE = /[A-Z]/g;
function optionsToClasses(options, existingClasses) {
var classes = existingClasses || [];
return classes.push("ui-btn"), options.theme && classes.push("ui-btn-" + options.theme), options.icon && (classes = classes.concat([
"ui-icon-" + options.icon,
"ui-btn-icon-" + options.iconpos
]), options.iconshadow && classes.push("ui-shadow-icon")), options.inline && classes.push("ui-btn-inline"), options.shadow && classes.push("ui-shadow"), options.corners && classes.push("ui-corner-all"), options.mini && classes.push("ui-mini"), classes;
}
function classNameToOptions(classes) {
var idx, map, unknownClass, alreadyEnhanced = !1, noIcon = !0, o = {
icon: "",
inline: !1,
shadow: !1,
corners: !1,
iconshadow: !1,
mini: !1
}, unknownClasses = [];
for(idx = 0, classes = classes.split(" "); idx < classes.length; idx++)unknownClass = !0, undefined !== (map = reverseBoolOptionMap[classes[idx]]) ? (unknownClass = !1, o[map] = !0) : 0 === classes[idx].indexOf("ui-btn-icon-") ? (unknownClass = !1, noIcon = !1, o.iconpos = classes[idx].substring(12)) : 0 === classes[idx].indexOf("ui-icon-") ? (unknownClass = !1, o.icon = classes[idx].substring(8)) : 0 === classes[idx].indexOf("ui-btn-") && 8 === classes[idx].length ? (unknownClass = !1, o.theme = classes[idx].substring(7)) : "ui-btn" === classes[idx] && (unknownClass = !1, alreadyEnhanced = !0), unknownClass && unknownClasses.push(classes[idx]);
return noIcon && (o.icon = ""), {
options: o,
unknownClasses: unknownClasses,
alreadyEnhanced: alreadyEnhanced
};
}
function camelCase2Hyphenated(c) {
return "-" + c.toLowerCase();
}
$.fn.buttonMarkup = function(options, overwriteClasses) {
var idx, data, el, retrievedOptions, optionKey, defaults = $.fn.buttonMarkup.defaults;
for(idx = 0; idx < this.length; idx++){
if (el = this[idx], data = overwriteClasses ? {
alreadyEnhanced: !1,
unknownClasses: []
} : classNameToOptions(el.className), retrievedOptions = $.extend({
}, data.alreadyEnhanced ? data.options : {
}, options), !data.alreadyEnhanced) for(optionKey in defaults)undefined === retrievedOptions[optionKey] && (retrievedOptions[optionKey] = getAttrFixed(el, optionKey.replace(capitalLettersRE, camelCase2Hyphenated)));
el.className = optionsToClasses($.extend({
}, defaults, retrievedOptions), data.unknownClasses).join(" "), "button" !== el.tagName.toLowerCase() && el.setAttribute("role", "button");
}
return this;
}, $.fn.buttonMarkup.defaults = {
icon: "",
iconpos: "left",
theme: null,
inline: !1,
shadow: !0,
corners: !0,
iconshadow: !1,
mini: !1
}, $.extend($.fn.buttonMarkup, {
initSelector: "a:jqmData(role='button'), .ui-bar > a, .ui-bar > :jqmData(role='controlgroup') > a, button"
});
})(jQuery), (function($, undefined) {
$.widget("mobile.controlgroup", $.extend({
options: {
enhanced: !1,
theme: null,
shadow: !1,
corners: !0,
excludeInvisible: !0,
type: "vertical",
mini: !1
},
_create: function() {
var elem = this.element, opts = this.options;
$.fn.buttonMarkup && this.element.find($.fn.buttonMarkup.initSelector).buttonMarkup(), $.each(this._childWidgets, $.proxy(function(number, widgetName) {
$.mobile[widgetName] && this.element.find($.mobile[widgetName].initSelector).not($.mobile.page.prototype.keepNativeSelector())[widgetName]();
}, this)), $.extend(this, {
_ui: null,
_initialRefresh: !0
}), opts.enhanced ? this._ui = {
groupLegend: elem.children(".ui-controlgroup-label").children(),
childWrapper: elem.children(".ui-controlgroup-controls")
} : this._ui = this._enhance();
},
_childWidgets: [
"checkboxradio",
"selectmenu",
"button"
],
_themeClassFromOption: function(value) {
return value ? "none" === value ? "" : "ui-group-theme-" + value : "";
},
_enhance: function() {
var elem = this.element, opts = this.options, ui = {
groupLegend: elem.children("legend"),
childWrapper: elem.addClass("ui-controlgroup ui-controlgroup-" + ("horizontal" === opts.type ? "horizontal" : "vertical") + " " + this._themeClassFromOption(opts.theme) + " " + (opts.corners ? "ui-corner-all " : "") + (opts.mini ? "ui-mini " : "")).wrapInner("").children()
};
return ui.groupLegend.length > 0 && $("").append(ui.groupLegend).prependTo(elem), ui;
},
_init: function() {
this.refresh();
},
_setOptions: function(options) {
var callRefresh, returnValue, elem = this.element;
return undefined !== options.type && (elem.removeClass("ui-controlgroup-horizontal ui-controlgroup-vertical").addClass("ui-controlgroup-" + ("horizontal" === options.type ? "horizontal" : "vertical")), callRefresh = !0), undefined !== options.theme && elem.removeClass(this._themeClassFromOption(this.options.theme)).addClass(this._themeClassFromOption(options.theme)), undefined !== options.corners && elem.toggleClass("ui-corner-all", options.corners), undefined !== options.mini && elem.toggleClass("ui-mini", options.mini), undefined !== options.shadow && this._ui.childWrapper.toggleClass("ui-shadow", options.shadow), undefined !== options.excludeInvisible && (this.options.excludeInvisible = options.excludeInvisible, callRefresh = !0), returnValue = this._super(options), callRefresh && this.refresh(), returnValue;
},
container: function() {
return this._ui.childWrapper;
},
refresh: function() {
var $el = this.container(), els = $el.find(".ui-btn").not(".ui-slider-handle"), create = this._initialRefresh;
$.mobile.checkboxradio && $el.find(":mobile-checkboxradio").checkboxradio("refresh"), this._addFirstLastClasses(els, this.options.excludeInvisible ? this._getVisibles(els, create) : els, create), this._initialRefresh = !1;
},
_destroy: function() {
var ui, buttons, opts = this.options;
if (opts.enhanced) return this;
ui = this._ui, buttons = this.element.removeClass("ui-controlgroup ui-controlgroup-horizontal ui-controlgroup-vertical ui-corner-all ui-mini " + this._themeClassFromOption(opts.theme)).find(".ui-btn").not(".ui-slider-handle"), this._removeFirstLastClasses(buttons), ui.groupLegend.unwrap(), ui.childWrapper.children().unwrap();
}
}, $.mobile.behaviors.addFirstLastClasses));
})(jQuery), (function($, undefined) {
$.widget("mobile.toolbar", {
initSelector: ":jqmData(role='footer'), :jqmData(role='header')",
options: {
theme: null,
addBackBtn: !1,
backBtnTheme: null,
backBtnText: "Back"
},
_create: function() {
var leftbtn, rightbtn, role = this.element.is(":jqmData(role='header')") ? "header" : "footer", page = this.element.closest(".ui-page");
0 === page.length && (page = !1, this._on(this.document, {
pageshow: "refresh"
})), $.extend(this, {
role: role,
page: page,
leftbtn: leftbtn,
rightbtn: rightbtn
}), this.element.attr("role", "header" === role ? "banner" : "contentinfo").addClass("ui-" + role), this.refresh(), this._setOptions(this.options);
},
_setOptions: function(o) {
if (undefined !== o.addBackBtn && (this.options.addBackBtn && "header" === this.role && $(".ui-page").length > 1 && this.page[0].getAttribute("data-" + $.mobile.ns + "url") !== $.mobile.path.stripHash(location.hash) && !this.leftbtn ? this._addBackButton() : this.element.find(".ui-toolbar-back-btn").remove()), null != o.backBtnTheme && this.element.find(".ui-toolbar-back-btn").addClass("ui-btn ui-btn-" + o.backBtnTheme), undefined !== o.backBtnText && this.element.find(".ui-toolbar-back-btn .ui-btn-text").text(o.backBtnText), undefined !== o.theme) {
var currentTheme = this.options.theme ? this.options.theme : "inherit", newTheme = o.theme ? o.theme : "inherit";
this.element.removeClass("ui-bar-" + currentTheme).addClass("ui-bar-" + newTheme);
}
this._super(o);
},
refresh: function() {
"header" === this.role && this._addHeaderButtonClasses(), this.page || (this._setRelative(), "footer" === this.role && this.element.appendTo("body")), this._addHeadingClasses(), this._btnMarkup();
},
_setRelative: function() {
$("[data-" + $.mobile.ns + "role='page']").css({
position: "relative"
});
},
_btnMarkup: function() {
this.element.children("a").filter(":not([data-" + $.mobile.ns + "role='none'])").attr("data-" + $.mobile.ns + "role", "button"), this.element.trigger("create");
},
_addHeaderButtonClasses: function() {
var $headeranchors = this.element.children("a, button");
this.leftbtn = $headeranchors.hasClass("ui-btn-left"), this.rightbtn = $headeranchors.hasClass("ui-btn-right"), this.leftbtn = this.leftbtn || $headeranchors.eq(0).not(".ui-btn-right").addClass("ui-btn-left").length, this.rightbtn = this.rightbtn || $headeranchors.eq(1).addClass("ui-btn-right").length;
},
_addBackButton: function() {
var options = this.options, theme = options.backBtnTheme || options.theme;
$("" + options.backBtnText + "").prependTo(this.element);
},
_addHeadingClasses: function() {
this.element.children("h1, h2, h3, h4, h5, h6").addClass("ui-title").attr({
role: "heading",
"aria-level": "1"
});
}
});
})(jQuery), (function($, undefined) {
$.widget("mobile.toolbar", $.mobile.toolbar, {
options: {
position: null,
visibleOnPageShow: !0,
disablePageZoom: !0,
transition: "slide",
fullscreen: !1,
tapToggle: !0,
tapToggleBlacklist: "a, button, input, select, textarea, .ui-header-fixed, .ui-footer-fixed, .ui-flipswitch, .ui-popup, .ui-panel, .ui-panel-dismiss-open",
hideDuringFocus: "input, textarea, select",
updatePagePadding: !0,
trackPersistentToolbars: !0,
supportBlacklist: function() {
return !$.support.fixedPosition;
}
},
_create: function() {
this._super(), "fixed" !== this.options.position || this.options.supportBlacklist() || this._makeFixed();
},
_makeFixed: function() {
this.element.addClass("ui-" + this.role + "-fixed"), this.updatePagePadding(), this._addTransitionClass(), this._bindPageEvents(), this._bindToggleHandlers();
},
_setOptions: function(o) {
if ("fixed" === o.position && "fixed" !== this.options.position && this._makeFixed(), "fixed" === this.options.position && !this.options.supportBlacklist()) {
var $page = this.page ? this.page : $(".ui-page-active").length > 0 ? $(".ui-page-active") : $(".ui-page").eq(0);
undefined !== o.fullscreen && (o.fullscreen ? (this.element.addClass("ui-" + this.role + "-fullscreen"), $page.addClass("ui-page-" + this.role + "-fullscreen")) : (this.element.removeClass("ui-" + this.role + "-fullscreen"), $page.removeClass("ui-page-" + this.role + "-fullscreen").addClass("ui-page-" + this.role + "-fixed")));
}
this._super(o);
},
_addTransitionClass: function() {
var tclass = this.options.transition;
tclass && "none" !== tclass && ("slide" === tclass && (tclass = this.element.hasClass("ui-header") ? "slidedown" : "slideup"), this.element.addClass(tclass));
},
_bindPageEvents: function() {
var page = this.page ? this.element.closest(".ui-page") : this.document;
this._on(page, {
pagebeforeshow: "_handlePageBeforeShow",
webkitAnimationStart: "_handleAnimationStart",
animationstart: "_handleAnimationStart",
updatelayout: "_handleAnimationStart",
pageshow: "_handlePageShow",
pagebeforehide: "_handlePageBeforeHide"
});
},
_handlePageBeforeShow: function() {
var o = this.options;
o.disablePageZoom && $.mobile.zoom.disable(!0), o.visibleOnPageShow || this.hide(!0);
},
_handleAnimationStart: function() {
this.options.updatePagePadding && this.updatePagePadding(this.page ? this.page : ".ui-page-active");
},
_handlePageShow: function() {
this.updatePagePadding(this.page ? this.page : ".ui-page-active"), this.options.updatePagePadding && this._on(this.window, {
throttledresize: "updatePagePadding"
});
},
_handlePageBeforeHide: function(e, ui) {
var thisFooter, thisHeader, nextFooter, nextHeader, o = this.options;
o.disablePageZoom && $.mobile.zoom.enable(!0), o.updatePagePadding && this._off(this.window, "throttledresize"), o.trackPersistentToolbars && (thisFooter = $(".ui-footer-fixed:jqmData(id)", this.page), thisHeader = $(".ui-header-fixed:jqmData(id)", this.page), nextFooter = thisFooter.length && ui.nextPage && $(".ui-footer-fixed:jqmData(id='" + thisFooter.jqmData("id") + "')", ui.nextPage) || $(), nextHeader = thisHeader.length && ui.nextPage && $(".ui-header-fixed:jqmData(id='" + thisHeader.jqmData("id") + "')", ui.nextPage) || $(), (nextFooter.length || nextHeader.length) && (nextFooter.add(nextHeader).appendTo($.mobile.pageContainer), ui.nextPage.one("pageshow", function() {
nextHeader.prependTo(this), nextFooter.appendTo(this);
})));
},
_visible: !0,
updatePagePadding: function(tbPage) {
var $el = this.element, header = "header" === this.role, pos = parseFloat($el.css(header ? "top" : "bottom"));
this.options.fullscreen || (tbPage = tbPage && undefined === tbPage.type && tbPage || this.page || $el.closest(".ui-page"), $(tbPage = this.page ? this.page : ".ui-page-active").css("padding-" + (header ? "top" : "bottom"), $el.outerHeight() + pos));
},
_useTransition: function(notransition) {
var $win = this.window, $el = this.element, scroll = $win.scrollTop(), elHeight = $el.height(), pHeight = this.page ? $el.closest(".ui-page").height() : $(".ui-page-active").height(), viewportHeight = $.mobile.getScreenHeight();
return !notransition && (this.options.transition && "none" !== this.options.transition && ("header" === this.role && !this.options.fullscreen && scroll > elHeight || "footer" === this.role && !this.options.fullscreen && scroll + viewportHeight < pHeight - elHeight) || this.options.fullscreen);
},
show: function(notransition) {
var $el = this.element;
this._useTransition(notransition) ? $el.removeClass("out ui-fixed-hidden").addClass("in").animationComplete(function() {
$el.removeClass("in");
}) : $el.removeClass("ui-fixed-hidden"), this._visible = !0;
},
hide: function(notransition) {
var $el = this.element, outclass = "out" + ("slide" === this.options.transition ? " reverse" : "");
this._useTransition(notransition) ? $el.addClass(outclass).removeClass("in").animationComplete(function() {
$el.addClass("ui-fixed-hidden").removeClass(outclass);
}) : $el.addClass("ui-fixed-hidden").removeClass(outclass), this._visible = !1;
},
toggle: function() {
this[this._visible ? "hide" : "show"]();
},
_bindToggleHandlers: function() {
var delayShow, delayHide, self = this, o = self.options, isVisible = !0;
(this.page ? this.page : $(".ui-page")).bind("vclick", function(e) {
o.tapToggle && !$(e.target).closest(o.tapToggleBlacklist).length && self.toggle();
}).bind("focusin focusout", function(e) {
screen.width < 1025 && $(e.target).is(o.hideDuringFocus) && !$(e.target).closest(".ui-header-fixed, .ui-footer-fixed").length && ("focusout" !== e.type || isVisible ? "focusin" === e.type && isVisible && (clearTimeout(delayShow), isVisible = !1, delayHide = setTimeout(function() {
self.hide();
}, 0)) : (isVisible = !0, clearTimeout(delayHide), delayShow = setTimeout(function() {
self.show();
}, 0)));
});
},
_setRelative: function() {
"fixed" !== this.options.position && $("[data-" + $.mobile.ns + "role='page']").css({
position: "relative"
});
},
_destroy: function() {
var $el = this.element, header = $el.hasClass("ui-header");
$el.closest(".ui-page").css("padding-" + (header ? "top" : "bottom"), ""), $el.removeClass("ui-header-fixed ui-footer-fixed ui-header-fullscreen ui-footer-fullscreen in out fade slidedown slideup ui-fixed-hidden"), $el.closest(".ui-page").removeClass("ui-page-header-fixed ui-page-footer-fixed ui-page-header-fullscreen ui-page-footer-fullscreen");
}
});
})(jQuery), (function($, undefined) {
$.widget("mobile.toolbar", $.mobile.toolbar, {
_makeFixed: function() {
this._super(), this._workarounds();
},
_workarounds: function() {
var ua = navigator.userAgent, platform = navigator.platform, wkmatch = ua.match(/AppleWebKit\/([0-9]+)/), wkversion = !!wkmatch && wkmatch[1], os = null;
if (platform.indexOf("iPhone") > -1 || platform.indexOf("iPad") > -1 || platform.indexOf("iPod") > -1) os = "ios";
else {
if (!(ua.indexOf("Android") > -1)) return;
os = "android";
}
if ("ios" === os) this._bindScrollWorkaround();
else {
if ("android" !== os || !wkversion || !(wkversion < 534)) return;
this._bindScrollWorkaround(), this._bindListThumbWorkaround();
}
},
_viewportOffset: function() {
var $el = this.element, header = $el.hasClass("ui-header"), offset = Math.abs($el.offset().top - this.window.scrollTop());
return header || (offset = Math.round(offset - this.window.height() + $el.outerHeight()) - 60), offset;
},
_bindScrollWorkaround: function() {
var self = this;
this._on(this.window, {
scrollstop: function() {
self._viewportOffset() > 2 && self._visible && self._triggerRedraw();
}
});
},
_bindListThumbWorkaround: function() {
this.element.closest(".ui-page").addClass("ui-android-2x-fixed");
},
_triggerRedraw: function() {
var paddingBottom = parseFloat($(".ui-page-active").css("padding-bottom"));
$(".ui-page-active").css("padding-bottom", paddingBottom + 1 + "px"), setTimeout(function() {
$(".ui-page-active").css("padding-bottom", paddingBottom + "px");
}, 0);
},
destroy: function() {
this._super(), this.element.closest(".ui-page-active").removeClass("ui-android-2x-fix");
}
});
})(jQuery), (function($, undefined) {
var ieHack = $.mobile.browser.oldIE && $.mobile.browser.oldIE <= 8, uiTemplate = $("");
function getArrow() {
var clone = uiTemplate.clone(), gd = clone.eq(0), ct = clone.eq(1), ar = ct.children();
return {
arEls: ct.add(gd),
gd: gd,
ct: ct,
ar: ar
};
}
$.widget("mobile.popup", $.mobile.popup, {
options: {
arrow: ""
},
_create: function() {
var ret = this._super();
return this.options.arrow && (this._ui.arrow = this._addArrow()), ret;
},
_addArrow: function() {
var theme, opts = this.options, ar = getArrow();
return theme = this._themeClassFromOption("ui-body-", opts.theme), ar.ar.addClass(theme + (opts.shadow ? " ui-overlay-shadow" : "")), ar.arEls.hide().appendTo(this.element), ar;
},
_unenhance: function() {
var ar = this._ui.arrow;
return ar && ar.arEls.remove(), this._super();
},
_tryAnArrow: function(p, dir, desired, s, best) {
var result, r, diff, desiredForArrow = {
}, tip = {
};
return s.arFull[p.dimKey] > s.guideDims[p.dimKey] || (desiredForArrow[p.fst] = desired[p.fst] + (s.arHalf[p.oDimKey] + s.menuHalf[p.oDimKey]) * p.offsetFactor - s.contentBox[p.fst] + (s.clampInfo.menuSize[p.oDimKey] - s.contentBox[p.oDimKey]) * p.arrowOffsetFactor, desiredForArrow[p.snd] = desired[p.snd], r = {
x: (result = s.result || this._calculateFinalLocation(desiredForArrow, s.clampInfo)).left,
y: result.top
}, tip[p.fst] = r[p.fst] + s.contentBox[p.fst] + p.tipOffset, tip[p.snd] = Math.max(result[p.prop] + s.guideOffset[p.prop] + s.arHalf[p.dimKey], Math.min(result[p.prop] + s.guideOffset[p.prop] + s.guideDims[p.dimKey] - s.arHalf[p.dimKey], desired[p.snd])), diff = Math.abs(desired.x - tip.x) + Math.abs(desired.y - tip.y), (!best || diff < best.diff) && (tip[p.snd] -= s.arHalf[p.dimKey] + result[p.prop] + s.contentBox[p.snd], best = {
dir: dir,
diff: diff,
result: result,
posProp: p.prop,
posVal: tip[p.snd]
})), best;
},
_getPlacementState: function(clamp) {
var offset, gdOffset, ar = this._ui.arrow, state = {
clampInfo: this._clampPopupWidth(!clamp),
arFull: {
cx: ar.ct.width(),
cy: ar.ct.height()
},
guideDims: {
cx: ar.gd.width(),
cy: ar.gd.height()
},
guideOffset: ar.gd.offset()
};
return offset = this.element.offset(), ar.gd.css({
left: 0,
top: 0,
right: 0,
bottom: 0
}), gdOffset = ar.gd.offset(), state.contentBox = {
x: gdOffset.left - offset.left,
y: gdOffset.top - offset.top,
cx: ar.gd.width(),
cy: ar.gd.height()
}, ar.gd.removeAttr("style"), state.guideOffset = {
left: state.guideOffset.left - offset.left,
top: state.guideOffset.top - offset.top
}, state.arHalf = {
cx: state.arFull.cx / 2,
cy: state.arFull.cy / 2
}, state.menuHalf = {
cx: state.clampInfo.menuSize.cx / 2,
cy: state.clampInfo.menuSize.cy / 2
}, state;
},
_placementCoords: function(desired) {
var state, best, params, elOffset, bgRef, optionValue = this.options.arrow, ar = this._ui.arrow;
return ar ? (ar.arEls.show(), bgRef = {
}, params = {
l: {
fst: "x",
snd: "y",
prop: "top",
dimKey: "cy",
oDimKey: "cx",
offsetFactor: 1,
tipOffset: -(state = this._getPlacementState(!0)).arHalf.cx,
arrowOffsetFactor: 0
},
r: {
fst: "x",
snd: "y",
prop: "top",
dimKey: "cy",
oDimKey: "cx",
offsetFactor: -1,
tipOffset: state.arHalf.cx + state.contentBox.cx,
arrowOffsetFactor: 1
},
b: {
fst: "y",
snd: "x",
prop: "left",
dimKey: "cx",
oDimKey: "cy",
offsetFactor: -1,
tipOffset: state.arHalf.cy + state.contentBox.cy,
arrowOffsetFactor: 1
},
t: {
fst: "y",
snd: "x",
prop: "left",
dimKey: "cx",
oDimKey: "cy",
offsetFactor: 1,
tipOffset: -state.arHalf.cy,
arrowOffsetFactor: 0
}
}, $.each((!0 === optionValue ? "l,t,r,b" : optionValue).split(","), $.proxy(function(key, value) {
best = this._tryAnArrow(params[value], value, desired, state, best);
}, this)), best) ? (ar.ct.removeClass("ui-popup-arrow-l ui-popup-arrow-t ui-popup-arrow-r ui-popup-arrow-b").addClass("ui-popup-arrow-" + best.dir).removeAttr("style").css(best.posProp, best.posVal).show(), ieHack || (elOffset = this.element.offset(), bgRef[params[best.dir].fst] = ar.ct.offset(), bgRef[params[best.dir].snd] = {
left: elOffset.left + state.contentBox.x,
top: elOffset.top + state.contentBox.y
}), best.result) : (ar.arEls.hide(), this._super(desired)) : this._super(desired);
},
_setOptions: function(opts) {
var newTheme, oldTheme = this.options.theme, ar = this._ui.arrow, ret = this._super(opts);
if (undefined !== opts.arrow) {
if (!ar && opts.arrow) return void (this._ui.arrow = this._addArrow());
ar && !opts.arrow && (ar.arEls.remove(), this._ui.arrow = null);
}
return (ar = this._ui.arrow) && (undefined !== opts.theme && (oldTheme = this._themeClassFromOption("ui-body-", oldTheme), newTheme = this._themeClassFromOption("ui-body-", opts.theme), ar.ar.removeClass(oldTheme).addClass(newTheme)), undefined !== opts.shadow && ar.ar.toggleClass("ui-overlay-shadow", opts.shadow)), ret;
},
_destroy: function() {
var ar = this._ui.arrow;
return ar && ar.arEls.remove(), this._super();
}
});
})(jQuery), (function($, undefined) {
$.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 el = this.element, parentPage = el.closest(".ui-page, :jqmData(role='page')");
$.extend(this, {
_closeLink: el.find(":jqmData(rel='close')"),
_parentPage: parentPage.length > 0 && parentPage,
_openedPage: null,
_page: this._getPage,
_panelInner: this._getPanelInner(),
_fixedToolbars: this._getFixedToolbars
}), "overlay" !== this.options.display && this._getWrapper(), this._addPanelClasses(), $.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 panelInner = this.element.find("." + this.options.classes.panelInner);
return 0 === panelInner.length && (panelInner = this.element.children().wrapAll("").parent()), panelInner;
},
_createModal: function() {
var self = this, target = self._parentPage ? self._parentPage.parent() : self.element.parent();
self._modal = $("").on("mousedown", function() {
self.close();
}).appendTo(target);
},
_getPage: function() {
return this._openedPage || this._parentPage || $("." + $.mobile.activePageClass);
},
_getWrapper: function() {
var wrapper = this._page().find("." + this.options.classes.pageWrapper);
0 === wrapper.length && (wrapper = this._page().children(".ui-header:not(.ui-header-fixed), .ui-content:not(.ui-popup), .ui-footer:not(.ui-footer-fixed)").wrapAll("").parent()), this._wrapper = wrapper;
},
_getFixedToolbars: function() {
var extFixedToolbars = $("body").children(".ui-header-fixed, .ui-footer-fixed"), intFixedToolbars = this._page().find(".ui-header-fixed, .ui-footer-fixed");
return extFixedToolbars.add(intFixedToolbars).addClass(this.options.classes.pageFixedToolbar);
},
_getPosDisplayClasses: function(prefix) {
return prefix + "-position-" + this.options.position + " " + prefix + "-display-" + this.options.display;
},
_getPanelClasses: function() {
var panelClasses = 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 && (panelClasses += " " + this.options.classes.panelFixed), panelClasses;
},
_addPanelClasses: function() {
this.element.addClass(this._getPanelClasses());
},
_handleCloseClickAndEatEvent: function(event) {
if (!event.isDefaultPrevented()) return event.preventDefault(), this.close(), !1;
},
_handleCloseClick: function(event) {
event.isDefaultPrevented() || this.close();
},
_bindCloseEvents: function() {
this._on(this._closeLink, {
click: "_handleCloseClick"
}), this._on({
"click a:jqmData(ajax='false')": "_handleCloseClick"
});
},
_positionPanel: function(scrollToTop) {
var panelInnerHeight = this._panelInner.outerHeight(), expand = panelInnerHeight > $.mobile.getScreenHeight();
expand || !this.options.positionFixed ? (expand && (this._unfixPanel(), $.mobile.resetActivePageHeight(panelInnerHeight)), scrollToTop && this.window[0].scrollTo(0, $.mobile.defaultHomeScroll)) : this._fixPanel();
},
_bindFixListener: function() {
this._on($(window), {
throttledresize: "_positionPanel"
});
},
_unbindFixListener: function() {
this._off($(window), "throttledresize");
},
_unfixPanel: function() {
this.options.positionFixed && $.support.fixedPosition && this.element.removeClass(this.options.classes.panelFixed);
},
_fixPanel: function() {
this.options.positionFixed && $.support.fixedPosition && this.element.addClass(this.options.classes.panelFixed);
},
_bindUpdateLayout: function() {
var self = this;
self.element.on("updatelayout", function() {
self._open && self._positionPanel();
});
},
_bindLinkListeners: function() {
this._on("body", {
"click a": "_handleClick"
});
},
_handleClick: function(e) {
var link, panelId = this.element.attr("id");
if (e.currentTarget.href.split("#")[1] === panelId && void 0 !== panelId) return e.preventDefault(), (link = $(e.target)).hasClass("ui-btn") && (link.addClass($.mobile.activeBtnClass), this.element.one("panelopen panelclose", function() {
link.removeClass($.mobile.activeBtnClass);
})), this.toggle(), !1;
},
_bindSwipeEvents: function() {
var self = this, area = self._modal ? self.element.add(self._modal) : self.element;
self.options.swipeClose && ("left" === self.options.position ? area.on("swipeleft.panel", function() {
self.close();
}) : area.on("swiperight.panel", function() {
self.close();
}));
},
_bindPageEvents: function() {
var self = this;
this.document.on("panelbeforeopen", function(e) {
self._open && e.target !== self.element[0] && self.close();
}).on("keyup.panel", function(e) {
27 === e.keyCode && self._open && self.close();
}), this._parentPage || "overlay" === this.options.display || this._on(this.document, {
pageshow: "_getWrapper"
}), self._parentPage ? this.document.on("pagehide", ":jqmData(role='page')", function() {
self._open && self.close(!0);
}) : this.document.on("pagebeforehide", function() {
self._open && self.close(!0);
});
},
_open: !1,
_pageContentOpenClasses: null,
_modalOpenClasses: null,
open: function(immediate) {
if (!this._open) {
var self = this, o = self.options, _openPanel = function() {
self.document.off("panelclose"), self._page().jqmData("panel", "open"), $.support.cssTransform3d && o.animate && "overlay" !== o.display && (self._wrapper.addClass(o.classes.animate), self._fixedToolbars().addClass(o.classes.animate)), !immediate && $.support.cssTransform3d && o.animate ? self.element.animationComplete(complete, "transition") : setTimeout(complete, 0), o.theme && "overlay" !== o.display && self._page().parent().addClass(o.classes.pageContainer + "-themed " + o.classes.pageContainer + "-" + o.theme), self.element.removeClass(o.classes.panelClosed).addClass(o.classes.panelOpen), self._positionPanel(!0), self._pageContentOpenClasses = self._getPosDisplayClasses(o.classes.pageContentPrefix), "overlay" !== o.display && (self._page().parent().addClass(o.classes.pageContainer), self._wrapper.addClass(self._pageContentOpenClasses), self._fixedToolbars().addClass(self._pageContentOpenClasses)), self._modalOpenClasses = self._getPosDisplayClasses(o.classes.modal) + " " + o.classes.modalOpen, self._modal && self._modal.addClass(self._modalOpenClasses).height(Math.max(self._modal.height(), self.document.height()));
}, complete = function() {
"overlay" !== o.display && (self._wrapper.addClass(o.classes.pageContentPrefix + "-open"), self._fixedToolbars().addClass(o.classes.pageContentPrefix + "-open")), self._bindFixListener(), self._trigger("open"), self._openedPage = self._page();
};
self._trigger("beforeopen"), "open" === self._page().jqmData("panel") ? self.document.on("panelclose", function() {
_openPanel();
}) : _openPanel(), self._open = !0;
}
},
close: function(immediate) {
if (this._open) {
var self = this, o = this.options, _closePanel = function() {
self.element.removeClass(o.classes.panelOpen), "overlay" !== o.display && (self._wrapper.removeClass(self._pageContentOpenClasses), self._fixedToolbars().removeClass(self._pageContentOpenClasses)), !immediate && $.support.cssTransform3d && o.animate ? self.element.animationComplete(complete, "transition") : setTimeout(complete, 0), self._modal && self._modal.removeClass(self._modalOpenClasses);
}, complete = function() {
o.theme && "overlay" !== o.display && self._page().parent().removeClass(o.classes.pageContainer + "-themed " + o.classes.pageContainer + "-" + o.theme), self.element.addClass(o.classes.panelClosed), "overlay" !== o.display && (self._page().parent().removeClass(o.classes.pageContainer), self._wrapper.removeClass(o.classes.pageContentPrefix + "-open"), self._fixedToolbars().removeClass(o.classes.pageContentPrefix + "-open")), $.support.cssTransform3d && o.animate && "overlay" !== o.display && (self._wrapper.removeClass(o.classes.animate), self._fixedToolbars().removeClass(o.classes.animate)), self._fixPanel(), self._unbindFixListener(), $.mobile.resetActivePageHeight(), self._page().jqmRemoveData("panel"), self._trigger("close"), self._openedPage = null;
};
self._trigger("beforeclose"), _closePanel(), self._open = !1;
}
},
toggle: function() {
this[this._open ? "close" : "open"]();
},
_destroy: function() {
var o = this.options, multiplePanels = $("body > :mobile-panel").length + $.mobile.activePage.find(":mobile-panel").length > 1;
"overlay" !== o.display && (0 === $("body > :mobile-panel").add($.mobile.activePage.find(":mobile-panel")).not(".ui-panel-display-overlay").not(this.element).length && this._wrapper.children().unwrap(), this._open && (this._fixedToolbars().removeClass(o.classes.pageContentPrefix + "-open"), $.support.cssTransform3d && o.animate && this._fixedToolbars().removeClass(o.classes.animate), this._page().parent().removeClass(o.classes.pageContainer), o.theme && this._page().parent().removeClass(o.classes.pageContainer + "-themed " + o.classes.pageContainer + "-" + o.theme))), multiplePanels || this.document.off("panelopen panelclose"), this._open && this._page().jqmRemoveData("panel"), this._panelInner.children().unwrap(), this.element.removeClass([
this._getPanelClasses(),
o.classes.panelOpen,
o.classes.animate
].join(" ")).off("swipeleft.panel swiperight.panel").off("panelbeforeopen").off("panelhide").off("keyup.panel").off("updatelayout"), this._modal && this._modal.remove();
}
});
})(jQuery), (function($, undefined) {
$.widget("mobile.table", {
options: {
classes: {
table: "ui-table"
},
enhanced: !1
},
_create: function() {
this.options.enhanced || this.element.addClass(this.options.classes.table), $.extend(this, {
headers: undefined,
allHeaders: undefined
}), this._refresh(!0);
},
_setHeaders: function() {
var trs = this.element.find("thead tr");
this.headers = this.element.find("tr:eq(0)").children(), this.allHeaders = this.headers.add(trs.children());
},
refresh: function() {
this._refresh();
},
rebuild: $.noop,
_refresh: function() {
var table = this.element, trs = table.find("thead tr");
this._setHeaders(), trs.each(function() {
var columnCount = 0;
$(this).children().each(function() {
var j, span = parseInt(this.getAttribute("colspan"), 10), selector = ":nth-child(" + (columnCount + 1) + ")";
if (this.setAttribute("data-" + $.mobile.ns + "colstart", columnCount + 1), span) for(j = 0; j < span - 1; j++)columnCount++, selector += ", :nth-child(" + (columnCount + 1) + ")";
$(this).jqmData("cells", table.find("tr").not(trs.eq(0)).not(this).children(selector)), columnCount++;
});
});
}
});
})(jQuery), (function($, undefined) {
$.widget("mobile.table", $.mobile.table, {
options: {
mode: "columntoggle",
columnBtnTheme: null,
columnPopupTheme: null,
columnBtnText: "Columns...",
classes: $.extend($.mobile.table.prototype.options.classes, {
popup: "ui-table-columntoggle-popup",
columnBtn: "ui-table-columntoggle-btn",
priorityPrefix: "ui-table-priority-",
columnToggleTable: "ui-table-columntoggle"
})
},
_create: function() {
this._super(), "columntoggle" === this.options.mode && ($.extend(this, {
_menu: null
}), this.options.enhanced ? (this._menu = $(this.document[0].getElementById(this._id() + "-popup")).children().first(), this._addToggles(this._menu, !0)) : (this._menu = this._enhanceColToggle(), this.element.addClass(this.options.classes.columnToggleTable)), this._setupEvents(), this._setToggleState());
},
_id: function() {
return this.element.attr("id") || this.widgetName + this.uuid;
},
_setupEvents: function() {
this._on(this.window, {
throttledresize: "_setToggleState"
}), this._on(this._menu, {
"change input": "_menuInputChange"
});
},
_addToggles: function(menu, keep) {
var inputs, checkboxIndex = 0, opts = this.options, container = menu.controlgroup("container");
keep ? inputs = menu.find("input") : container.empty(), this.headers.not("td").each(function() {
var header = $(this), priority = $.mobile.getAttribute(this, "priority"), cells = header.add(header.jqmData("cells"));
priority && (cells.addClass(opts.classes.priorityPrefix + priority), (keep ? inputs.eq(checkboxIndex++) : $("").appendTo(container).children(0).checkboxradio({
theme: opts.columnPopupTheme
})).jqmData("cells", cells));
}), keep || menu.controlgroup("refresh");
},
_menuInputChange: function(evt) {
var input = $(evt.target), checked = input[0].checked;
input.jqmData("cells").toggleClass("ui-table-cell-hidden", !checked).toggleClass("ui-table-cell-visible", checked), input[0].getAttribute("locked") ? (input.removeAttr("locked"), this._unlockCells(input.jqmData("cells"))) : input.attr("locked", !0);
},
_unlockCells: function(cells) {
cells.removeClass("ui-table-cell-hidden ui-table-cell-visible");
},
_enhanceColToggle: function() {
var id, menuButton, popup, menu, table = this.element, opts = this.options, ns = $.mobile.ns, fragment = this.document[0].createDocumentFragment();
return menuButton = $("" + opts.columnBtnText + ""), popup = $(""), menu = $("").controlgroup(), this._addToggles(menu, !1), menu.appendTo(popup), fragment.appendChild(popup[0]), fragment.appendChild(menuButton[0]), table.before(fragment), popup.popup(), menu;
},
rebuild: function() {
this._super(), "columntoggle" === this.options.mode && this._refresh(!1);
},
_refresh: function(create) {
this._super(create), create || "columntoggle" !== this.options.mode || (this._unlockCells(this.element.find(".ui-table-cell-hidden, .ui-table-cell-visible")), this._addToggles(this._menu, create), this._setToggleState());
},
_setToggleState: function() {
this._menu.find("input").each(function() {
var checkbox = $(this);
this.checked = "table-cell" === checkbox.jqmData("cells").eq(0).css("display"), checkbox.checkboxradio("refresh");
});
},
_destroy: function() {
this._super();
}
});
})(jQuery), (function($, undefined) {
$.widget("mobile.table", $.mobile.table, {
options: {
mode: "reflow",
classes: $.extend($.mobile.table.prototype.options.classes, {
reflowTable: "ui-table-reflow",
cellLabels: "ui-table-cell-label"
})
},
_create: function() {
this._super(), "reflow" === this.options.mode && (this.options.enhanced || (this.element.addClass(this.options.classes.reflowTable), this._updateReflow()));
},
rebuild: function() {
this._super(), "reflow" === this.options.mode && this._refresh(!1);
},
_refresh: function(create) {
this._super(create), create || "reflow" !== this.options.mode || this._updateReflow();
},
_updateReflow: function() {
var table = this, opts = this.options;
$(table.allHeaders.get().reverse()).each(function() {
var iteration, filter, cells = $(this).jqmData("cells"), colstart = $.mobile.getAttribute(this, "colstart"), hierarchyClass = cells.not(this).filter("thead th").length && " ui-table-cell-label-top", text = $(this).text();
"" !== text && (hierarchyClass ? (filter = "", (iteration = parseInt(this.getAttribute("colspan"), 10)) && (filter = "td:nth-child(" + iteration + "n + " + colstart + ")"), table._addLabels(cells.filter(filter), opts.classes.cellLabels + hierarchyClass, text)) : table._addLabels(cells, opts.classes.cellLabels, text));
});
},
_addLabels: function(cells, label, text) {
cells.not(":has(b." + label + ")").prepend("" + text + "");
}
});
})(jQuery), (function($, undefined) {
var defaultFilterCallback = function(index, searchValue) {
return -1 === ("" + ($.mobile.getAttribute(this, "filtertext") || $(this).text())).toLowerCase().indexOf(searchValue);
};
$.widget("mobile.filterable", {
initSelector: ":jqmData(filter='true')",
options: {
filterReveal: !1,
filterCallback: defaultFilterCallback,
enhanced: !1,
input: null,
children: "> li, > option, > optgroup option, > tbody tr, > .ui-controlgroup-controls > .ui-btn, > .ui-controlgroup-controls > .ui-checkbox, > .ui-controlgroup-controls > .ui-radio"
},
_create: function() {
var opts = this.options;
$.extend(this, {
_search: null,
_timer: 0
}), this._setInput(opts.input), opts.enhanced || this._filterItems((this._search && this._search.val() || "").toLowerCase());
},
_onKeyUp: function() {
var val, lastval, search = this._search;
!search || (val = search.val().toLowerCase(), (lastval = $.mobile.getAttribute(search[0], "lastval") + "") && lastval === val || (this._timer && (window.clearTimeout(this._timer), this._timer = 0), this._timer = this._delay(function() {
this._trigger("beforefilter", null, {
input: search
}), search[0].setAttribute("data-" + $.mobile.ns + "lastval", val), this._filterItems(val), this._timer = 0;
}, 250)));
},
_getFilterableItems: function() {
var children = this.options.children, items = children ? $.isFunction(children) ? children() : children.nodeName ? $(children) : children.jquery ? children : this.element.find(children) : {
length: 0
};
return 0 === items.length && (items = this.element.children()), items;
},
_filterItems: function(val) {
var idx, callback, length, show = [], hide = [], opts = this.options, filterItems = this._getFilterableItems();
if (null != val) for(idx = 0, callback = opts.filterCallback || defaultFilterCallback, length = filterItems.length; idx < length; idx++)(callback.call(filterItems[idx], idx, val) ? hide : show).push(filterItems[idx]);
0 === hide.length ? filterItems[opts.filterReveal ? "addClass" : "removeClass"]("ui-screen-hidden") : ($(hide).addClass("ui-screen-hidden"), $(show).removeClass("ui-screen-hidden")), this._refreshChildWidget(), this._trigger("filter", null, {
items: filterItems
});
},
_refreshChildWidget: function() {
var widget, idx, recognizedWidgets = [
"collapsibleset",
"selectmenu",
"controlgroup",
"listview"
];
for(idx = recognizedWidgets.length - 1; idx > -1; idx--)widget = recognizedWidgets[idx], $.mobile[widget] && (widget = this.element.data("mobile-" + widget)) && $.isFunction(widget.refresh) && widget.refresh();
},
_setInput: function(selector) {
var search = this._search;
this._timer && (window.clearTimeout(this._timer), this._timer = 0), search && (this._off(search, "keyup change input"), search = null), selector && (search = selector.jquery ? selector : selector.nodeName ? $(selector) : this.document.find(selector), this._on(search, {
keyup: "_onKeyUp",
change: "_onKeyUp",
input: "_onKeyUp"
})), this._search = search;
},
_setOptions: function(options) {
var refilter = !(undefined === options.filterReveal && undefined === options.filterCallback && undefined === options.children);
this._super(options), undefined !== options.input && (this._setInput(options.input), refilter = !0), refilter && this.refresh();
},
_destroy: function() {
var opts = this.options, items = this._getFilterableItems();
opts.enhanced ? items.toggleClass("ui-screen-hidden", opts.filterReveal) : items.removeClass("ui-screen-hidden");
},
refresh: function() {
this._timer && (window.clearTimeout(this._timer), this._timer = 0), this._filterItems((this._search && this._search.val() || "").toLowerCase());
}
});
})(jQuery), rDividerListItem = /(^|\s)ui-li-divider(\s|$)/, origDefaultFilterCallback = ($16 = jQuery).mobile.filterable.prototype.options.filterCallback, $16.mobile.filterable.prototype.options.filterCallback = function(index, searchValue) {
return !this.className.match(rDividerListItem) && origDefaultFilterCallback.call(this, index, searchValue);
}, $16.widget("mobile.filterable", $16.mobile.filterable, {
options: {
filterPlaceholder: "Filter items...",
filterTheme: null
},
_create: function() {
var idx, widgetName, elem = this.element, recognizedWidgets = [
"collapsibleset",
"selectmenu",
"controlgroup",
"listview"
], createHandlers = {
};
for(this._super(), $16.extend(this, {
_widget: null
}), idx = recognizedWidgets.length - 1; idx > -1; idx--)if (widgetName = recognizedWidgets[idx], $16.mobile[widgetName]) {
if (this._setWidget(elem.data("mobile-" + widgetName))) break;
createHandlers[widgetName + "create"] = "_handleCreate";
}
this._widget || this._on(elem, createHandlers);
},
_handleCreate: function(evt) {
this._setWidget(this.element.data("mobile-" + evt.type.substring(0, evt.type.length - 6)));
},
_trigger: function(type, event, data) {
this._widget && "mobile-listview" === this._widget.widgetFullName && "beforefilter" === type && this._widget._trigger("beforefilter", event, data), this._super(type, event, data);
},
_setWidget: function(widget) {
if (!this._widget && widget) {
var self, orig;
this._widget = widget, self = this, this._widget._setOptions = function(options) {
(orig = this._widget._setOptions).call(this, options), self._syncTextInputOptions(options);
};
}
return this._widget && (this._syncTextInputOptions(this._widget.options), "listview" === this._widget.widgetName && (this._widget.options.hideDividers = !0, this._widget.element.listview("refresh"))), !!this._widget;
},
_isSearchInternal: function() {
return this._search && this._search.jqmData("ui-filterable-" + this.uuid + "-internal");
},
_setInput: function(selector) {
var opts = this.options, updatePlaceholder = !0, textinputOpts = {
};
selector || !this._isSearchInternal() && (updatePlaceholder = !1, selector = $16("").jqmData("ui-filterable-" + this.uuid + "-internal", !0), $16("").append(selector).submit(function(evt) {
evt.preventDefault(), selector.blur();
}).insertBefore(this.element), $16.mobile.textinput && (null != this.options.filterTheme && (textinputOpts.theme = opts.filterTheme), selector.textinput(textinputOpts))), this._super(selector), this._isSearchInternal() && updatePlaceholder && this._search.attr("placeholder", this.options.filterPlaceholder);
},
_setOptions: function(options) {
var ret = this._super(options);
return undefined !== options.filterPlaceholder && this._isSearchInternal() && this._search.attr("placeholder", options.filterPlaceholder), undefined !== options.filterTheme && this._search && $16.mobile.textinput && this._search.textinput("option", "theme", options.filterTheme), ret;
},
_destroy: function() {
this._isSearchInternal() && this._search.remove(), this._super();
},
_syncTextInputOptions: function(options) {
var idx, textinputOptions = {
};
if (this._isSearchInternal() && $16.mobile.textinput) {
for(idx in $16.mobile.textinput.prototype.options)undefined !== options[idx] && ("theme" === idx && null != this.options.filterTheme ? textinputOptions[idx] = this.options.filterTheme : textinputOptions[idx] = options[idx]);
this._search.textinput("option", textinputOptions);
}
}
}), (function($, undefined) {
var tabId = 0, rhash = /#.*$/;
function getNextTabId() {
return ++tabId;
}
function isLocal(anchor) {
return anchor.hash.length > 1 && decodeURIComponent(anchor.href.replace(rhash, "")) === decodeURIComponent(location.href.replace(rhash, ""));
}
$.widget("ui.tabs", {
version: "fadf2b312a05040436451c64bbfaf4814bc62c56",
delay: 300,
options: {
active: null,
collapsible: !1,
event: "click",
heightStyle: "content",
hide: null,
show: null,
activate: null,
beforeActivate: null,
beforeLoad: null,
load: null
},
_create: function() {
var that = this, options = this.options;
this.running = !1, this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible", options.collapsible).delegate(".ui-tabs-nav > li", "mousedown" + this.eventNamespace, function(event) {
$(this).is(".ui-state-disabled") && event.preventDefault();
}).delegate(".ui-tabs-anchor", "focus" + this.eventNamespace, function() {
$(this).closest("li").is(".ui-state-disabled") && this.blur();
}), this._processTabs(), options.active = this._initialActive(), $.isArray(options.disabled) && (options.disabled = $.unique(options.disabled.concat($.map(this.tabs.filter(".ui-state-disabled"), function(li) {
return that.tabs.index(li);
}))).sort()), !1 !== this.options.active && this.anchors.length ? this.active = this._findActive(options.active) : this.active = $(), this._refresh(), this.active.length && this.load(options.active);
},
_initialActive: function() {
var active = this.options.active, collapsible = this.options.collapsible, locationHash = location.hash.substring(1);
return null === active && (locationHash && this.tabs.each(function(i, tab) {
if ($(tab).attr("aria-controls") === locationHash) return active = i, !1;
}), null === active && (active = this.tabs.index(this.tabs.filter(".ui-tabs-active"))), (null === active || -1 === active) && (active = !!this.tabs.length && 0)), !1 !== active && -1 === (active = this.tabs.index(this.tabs.eq(active))) && (active = !collapsible && 0), !collapsible && !1 === active && this.anchors.length && (active = 0), active;
},
_getCreateEventData: function() {
return {
tab: this.active,
panel: this.active.length ? this._getPanelForTab(this.active) : $()
};
},
_tabKeydown: function(event) {
var focusedTab = $(this.document[0].activeElement).closest("li"), selectedIndex = this.tabs.index(focusedTab), goingForward = !0;
if (!this._handlePageNav(event)) {
switch(event.keyCode){
case $.ui.keyCode.RIGHT:
case $.ui.keyCode.DOWN:
selectedIndex++;
break;
case $.ui.keyCode.UP:
case $.ui.keyCode.LEFT:
goingForward = !1, selectedIndex--;
break;
case $.ui.keyCode.END:
selectedIndex = this.anchors.length - 1;
break;
case $.ui.keyCode.HOME:
selectedIndex = 0;
break;
case $.ui.keyCode.SPACE:
return event.preventDefault(), clearTimeout(this.activating), void this._activate(selectedIndex);
case $.ui.keyCode.ENTER:
return event.preventDefault(), clearTimeout(this.activating), void this._activate(selectedIndex !== this.options.active && selectedIndex);
default:
return;
}
event.preventDefault(), clearTimeout(this.activating), selectedIndex = this._focusNextTab(selectedIndex, goingForward), event.ctrlKey || (focusedTab.attr("aria-selected", "false"), this.tabs.eq(selectedIndex).attr("aria-selected", "true"), this.activating = this._delay(function() {
this.option("active", selectedIndex);
}, this.delay));
}
},
_panelKeydown: function(event) {
!this._handlePageNav(event) && event.ctrlKey && event.keyCode === $.ui.keyCode.UP && (event.preventDefault(), this.active.focus());
},
_handlePageNav: function(event) {
return event.altKey && event.keyCode === $.ui.keyCode.PAGE_UP ? (this._activate(this._focusNextTab(this.options.active - 1, !1)), !0) : event.altKey && event.keyCode === $.ui.keyCode.PAGE_DOWN ? (this._activate(this._focusNextTab(this.options.active + 1, !0)), !0) : void 0;
},
_findNextTab: function(index, goingForward) {
var lastTabIndex = this.tabs.length - 1;
function constrain() {
return index > lastTabIndex && (index = 0), index < 0 && (index = lastTabIndex), index;
}
for(; -1 !== $.inArray(constrain(), this.options.disabled);)index = goingForward ? index + 1 : index - 1;
return index;
},
_focusNextTab: function(index, goingForward) {
return index = this._findNextTab(index, goingForward), this.tabs.eq(index).focus(), index;
},
_setOption: function(key, value) {
return "active" === key ? void this._activate(value) : "disabled" === key ? void this._setupDisabled(value) : void (this._super(key, value), "collapsible" !== key || (this.element.toggleClass("ui-tabs-collapsible", value), value || !1 !== this.options.active || this._activate(0)), "event" === key && this._setupEvents(value), "heightStyle" === key && this._setupHeightStyle(value));
},
_tabId: function(tab) {
return tab.attr("aria-controls") || "ui-tabs-" + getNextTabId();
},
_sanitizeSelector: function(hash) {
return hash ? hash.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&") : "";
},
refresh: function() {
var options = this.options, lis = this.tablist.children(":has(a[href])");
options.disabled = $.map(lis.filter(".ui-state-disabled"), function(tab) {
return lis.index(tab);
}), this._processTabs(), !1 !== options.active && this.anchors.length ? this.active.length && !$.contains(this.tablist[0], this.active[0]) ? this.tabs.length === options.disabled.length ? (options.active = !1, this.active = $()) : this._activate(this._findNextTab(Math.max(0, options.active - 1), !1)) : options.active = this.tabs.index(this.active) : (options.active = !1, this.active = $()), this._refresh();
},
_refresh: function() {
this._setupDisabled(this.options.disabled), this._setupEvents(this.options.event), this._setupHeightStyle(this.options.heightStyle), this.tabs.not(this.active).attr({
"aria-selected": "false",
tabIndex: -1
}), this.panels.not(this._getPanelForTab(this.active)).hide().attr({
"aria-expanded": "false",
"aria-hidden": "true"
}), this.active.length ? (this.active.addClass("ui-tabs-active ui-state-active").attr({
"aria-selected": "true",
tabIndex: 0
}), this._getPanelForTab(this.active).show().attr({
"aria-expanded": "true",
"aria-hidden": "false"
})) : this.tabs.eq(0).attr("tabIndex", 0);
},
_processTabs: function() {
var that = this;
this.tablist = this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role", "tablist"), this.tabs = this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({
role: "tab",
tabIndex: -1
}), this.anchors = this.tabs.map(function() {
return $("a", this)[0];
}).addClass("ui-tabs-anchor").attr({
role: "presentation",
tabIndex: -1
}), this.panels = $(), this.anchors.each(function(i, anchor) {
var selector, panel, panelId, anchorId = $(anchor).uniqueId().attr("id"), tab = $(anchor).closest("li"), originalAriaControls = tab.attr("aria-controls");
isLocal(anchor) ? (selector = anchor.hash, panel = that.element.find(that._sanitizeSelector(selector))) : (selector = "#" + (panelId = that._tabId(tab)), (panel = that.element.find(selector)).length || (panel = that._createPanel(panelId)).insertAfter(that.panels[i - 1] || that.tablist), panel.attr("aria-live", "polite")), panel.length && (that.panels = that.panels.add(panel)), originalAriaControls && tab.data("ui-tabs-aria-controls", originalAriaControls), tab.attr({
"aria-controls": selector.substring(1),
"aria-labelledby": anchorId
}), panel.attr("aria-labelledby", anchorId);
}), this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role", "tabpanel");
},
_getList: function() {
return this.element.find("ol,ul").eq(0);
},
_createPanel: function(id) {
return $("").attr("id", id).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy", !0);
},
_setupDisabled: function(disabled) {
$.isArray(disabled) && (disabled.length ? disabled.length === this.anchors.length && (disabled = !0) : disabled = !1);
for(var li, i = 0; li = this.tabs[i]; i++)!0 === disabled || -1 !== $.inArray(i, disabled) ? $(li).addClass("ui-state-disabled").attr("aria-disabled", "true") : $(li).removeClass("ui-state-disabled").removeAttr("aria-disabled");
this.options.disabled = disabled;
},
_setupEvents: function(event) {
var events = {
click: function(event) {
event.preventDefault();
}
};
event && $.each(event.split(" "), function(index, eventName) {
events[eventName] = "_eventHandler";
}), this._off(this.anchors.add(this.tabs).add(this.panels)), this._on(this.anchors, events), this._on(this.tabs, {
keydown: "_tabKeydown"
}), this._on(this.panels, {
keydown: "_panelKeydown"
}), this._focusable(this.tabs), this._hoverable(this.tabs);
},
_setupHeightStyle: function(heightStyle) {
var maxHeight;
"fill" === heightStyle ? (maxHeight = this.element.parent().height(), maxHeight -= this.element.outerHeight() - this.element.height(), this.element.siblings(":visible").each(function() {
var elem = $(this), position = elem.css("position");
"absolute" !== position && "fixed" !== position && (maxHeight -= elem.outerHeight(!0));
}), this.element.children().not(this.panels).each(function() {
maxHeight -= $(this).outerHeight(!0);
}), this.panels.each(function() {
$(this).height(Math.max(0, maxHeight - $(this).innerHeight() + $(this).height()));
}).css("overflow", "auto")) : "auto" === heightStyle && (maxHeight = 0, this.panels.each(function() {
maxHeight = Math.max(maxHeight, $(this).height("").height());
}).height(maxHeight));
},
_eventHandler: function(event) {
var options = this.options, active = this.active, tab = $(event.currentTarget).closest("li"), clickedIsActive = tab[0] === active[0], collapsing = clickedIsActive && options.collapsible, toShow = collapsing ? $() : this._getPanelForTab(tab), toHide = active.length ? this._getPanelForTab(active) : $(), eventData = {
oldTab: active,
oldPanel: toHide,
newTab: collapsing ? $() : tab,
newPanel: toShow
};
event.preventDefault(), tab.hasClass("ui-state-disabled") || tab.hasClass("ui-tabs-loading") || this.running || clickedIsActive && !options.collapsible || !1 === this._trigger("beforeActivate", event, eventData) || (options.active = !collapsing && this.tabs.index(tab), this.active = clickedIsActive ? $() : tab, this.xhr && this.xhr.abort(), toHide.length || toShow.length || $.error("jQuery UI Tabs: Mismatching fragment identifier."), toShow.length && this.load(this.tabs.index(tab), event), this._toggle(event, eventData));
},
_toggle: function(event, eventData) {
var that = this, toShow = eventData.newPanel, toHide = eventData.oldPanel;
function complete() {
that.running = !1, that._trigger("activate", event, eventData);
}
function show() {
eventData.newTab.closest("li").addClass("ui-tabs-active ui-state-active"), toShow.length && that.options.show ? that._show(toShow, that.options.show, complete) : (toShow.show(), complete());
}
this.running = !0, toHide.length && this.options.hide ? this._hide(toHide, this.options.hide, function() {
eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"), show();
}) : (eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"), toHide.hide(), show()), toHide.attr({
"aria-expanded": "false",
"aria-hidden": "true"
}), eventData.oldTab.attr("aria-selected", "false"), toShow.length && toHide.length ? eventData.oldTab.attr("tabIndex", -1) : toShow.length && this.tabs.filter(function() {
return 0 === $(this).attr("tabIndex");
}).attr("tabIndex", -1), toShow.attr({
"aria-expanded": "true",
"aria-hidden": "false"
}), eventData.newTab.attr({
"aria-selected": "true",
tabIndex: 0
});
},
_activate: function(index) {
var anchor, active = this._findActive(index);
active[0] !== this.active[0] && (active.length || (active = this.active), anchor = active.find(".ui-tabs-anchor")[0], this._eventHandler({
target: anchor,
currentTarget: anchor,
preventDefault: $.noop
}));
},
_findActive: function(index) {
return !1 === index ? $() : this.tabs.eq(index);
},
_getIndex: function(index) {
return "string" == typeof index && (index = this.anchors.index(this.anchors.filter("[href$='" + index + "']"))), index;
},
_destroy: function() {
this.xhr && this.xhr.abort(), this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"), this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"), this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(), this.tabs.add(this.panels).each(function() {
$.data(this, "ui-tabs-destroy") ? $(this).remove() : $(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role");
}), this.tabs.each(function() {
var li = $(this), prev = li.data("ui-tabs-aria-controls");
prev ? li.attr("aria-controls", prev).removeData("ui-tabs-aria-controls") : li.removeAttr("aria-controls");
}), this.panels.show(), "content" !== this.options.heightStyle && this.panels.css("height", "");
},
enable: function(index) {
var disabled = this.options.disabled;
!1 !== disabled && (index === undefined ? disabled = !1 : (index = this._getIndex(index), disabled = $.isArray(disabled) ? $.map(disabled, function(num) {
return num !== index ? num : null;
}) : $.map(this.tabs, function(li, num) {
return num !== index ? num : null;
})), this._setupDisabled(disabled));
},
disable: function(index) {
var disabled = this.options.disabled;
if (!0 !== disabled) {
if (index === undefined) disabled = !0;
else {
if (index = this._getIndex(index), -1 !== $.inArray(index, disabled)) return;
disabled = $.isArray(disabled) ? $.merge([
index
], disabled).sort() : [
index
];
}
this._setupDisabled(disabled);
}
},
load: function(index, event) {
index = this._getIndex(index);
var that = this, tab = this.tabs.eq(index), anchor = tab.find(".ui-tabs-anchor"), panel = this._getPanelForTab(tab), eventData = {
tab: tab,
panel: panel
};
!isLocal(anchor[0]) && (this.xhr = $.ajax(this._ajaxSettings(anchor, event, eventData)), this.xhr && "canceled" !== this.xhr.statusText && (tab.addClass("ui-tabs-loading"), panel.attr("aria-busy", "true"), this.xhr.success(function(response) {
setTimeout(function() {
panel.html(response), that._trigger("load", event, eventData);
}, 1);
}).complete(function(jqXHR, status) {
setTimeout(function() {
"abort" === status && that.panels.stop(!1, !0), tab.removeClass("ui-tabs-loading"), panel.removeAttr("aria-busy"), jqXHR === that.xhr && delete that.xhr;
}, 1);
})));
},
_ajaxSettings: function(anchor, event, eventData) {
var that = this;
return {
url: anchor.attr("href"),
beforeSend: function(jqXHR, settings) {
return that._trigger("beforeLoad", event, $.extend({
jqXHR: jqXHR,
ajaxSettings: settings
}, eventData));
}
};
},
_getPanelForTab: function(tab) {
var id = $(tab).attr("aria-controls");
return this.element.find(this._sanitizeSelector("#" + id));
}
});
})(jQuery), (function($, window) {
$.mobile.iosorientationfixEnabled = !0;
var zoom, evt, x, y, z, aig, ua = navigator.userAgent;
if (!(/iPhone|iPad|iPod/.test(navigator.platform) && /OS [1-5]_[0-9_]* like Mac OS X/i.test(ua) && ua.indexOf("AppleWebKit") > -1)) return void ($.mobile.iosorientationfixEnabled = !1);
function checkTilt(e) {
x = Math.abs((aig = (evt = e.originalEvent).accelerationIncludingGravity).x), y = Math.abs(aig.y), z = Math.abs(aig.z), !window.orientation && (x > 7 || (z > 6 && y < 8 || z < 8 && y > 6) && x > 5) ? zoom.enabled && zoom.disable() : zoom.enabled || zoom.enable();
}
zoom = $.mobile.zoom, $.mobile.document.on("mobileinit", function() {
$.mobile.iosorientationfixEnabled && $.mobile.window.bind("orientationchange.iosorientationfix", zoom.enable).bind("devicemotion.iosorientationfix", checkTilt);
});
})(jQuery, this), (function($, window, undefined) {
var $html = $("html"), $window = $.mobile.window;
function hideRenderingClass() {
$html.removeClass("ui-mobile-rendering");
}
$(window.document).trigger("mobileinit"), $.mobile.gradeA() && ($.mobile.ajaxBlacklist && ($.mobile.ajaxEnabled = !1), $html.addClass("ui-mobile ui-mobile-rendering"), setTimeout(hideRenderingClass, 5000), $.extend($.mobile, {
initializePage: function() {
var path = $.mobile.path, $pages = $(":jqmData(role='page'), :jqmData(role='dialog')"), hash = path.stripHash(path.stripQueryParams(path.parseLocation().hash)), hashPage = document.getElementById(hash);
$pages.length || ($pages = $("body").wrapInner("
").children(0)), $pages.each(function() {
var $this = $(this);
$this[0].getAttribute("data-" + $.mobile.ns + "url") || $this.attr("data-" + $.mobile.ns + "url", $this.attr("id") || location.pathname + location.search);
}), $.mobile.firstPage = $pages.first(), $.mobile.pageContainer = $.mobile.firstPage.parent().addClass("ui-mobile-viewport").pagecontainer(), $.mobile.navreadyDeferred.resolve(), $window.trigger("pagecontainercreate"), $.mobile.loading("show"), hideRenderingClass(), $.mobile.hashListeningEnabled && $.mobile.path.isHashValid(location.hash) && ($(hashPage).is(":jqmData(role='page')") || $.mobile.path.isPath(hash) || hash === $.mobile.dialogHashKey) ? $.event.special.navigate.isPushStateEnabled() ? ($.mobile.navigate.history.stack = [], $.mobile.navigate($.mobile.path.isPath(location.hash) ? location.hash : location.href)) : $window.trigger("hashchange", [
!0
]) : ($.mobile.path.isHashValid(location.hash) && ($.mobile.navigate.history.initialDst = hash.replace("#", "")), $.event.special.navigate.isPushStateEnabled() && $.mobile.navigate.navigator.squash(path.parseLocation().href), $.mobile.changePage($.mobile.firstPage, {
transition: "none",
reverse: !0,
changeHash: !1,
fromHashChange: !0
}));
}
}), $(function() {
$.support.inlineSVG(), $.mobile.hideUrlBar && window.scrollTo(0, 1), $.mobile.defaultHomeScroll = $.support.scrollTop && 1 !== $.mobile.window.scrollTop() ? 1 : 0, $.mobile.autoInitializePage && $.mobile.initializePage(), $.mobile.hideUrlBar && $window.load($.mobile.silentScroll), $.support.cssPointerEvents || $.mobile.document.delegate(".ui-state-disabled,.ui-disabled", "vclick", function(e) {
e.preventDefault(), e.stopImmediatePropagation();
});
}));
})(jQuery, this);
});