!function(root, doc, factory) { "function" == typeof define && define.amd ? define([ "jquery" ], function($) { return factory($, root, doc), $.mobile; }) : factory(root.jQuery, root, doc); }(this, document, function(jQuery, window, document, undefined) { var $, rcapitals, doc, bool, docElem, refNode, fakeBody, div, $1, support, $2, self, $win, dummyFnToInitNavigate, $3, undefined, path, $base, $4, undefined, $5, path1, initialHref, $6, heldCall, curr, diff, handler, lastCall, $7, baseElement, base, $8, $9, $10, $11, undefined, rInitialLetter, iconposClass, $12, $13, $14, meta, initialContent, disabledZoom, enabledZoom, disabledInitially, $15, $16, undefined, rDividerListItem, origDefaultFilterCallback; jQuery.mobile = { }, (function($, window, undefined) { $.extend($.mobile, { version: "1.4.2", subPageUrlKey: "ui-page", hideUrlBar: !0, keepNative: ":jqmData(role='none'), :jqmData(role='nojs')", activePageClass: "ui-page-active", activeBtnClass: "ui-btn-active", focusClass: "ui-focus", ajaxEnabled: !0, hashListeningEnabled: !0, linkBindingEnabled: !0, defaultPageTransition: "fade", maxTransitionWidth: !1, minScrollBack: 0, defaultDialogTransition: "pop", pageLoadErrorMessage: "Error Loading Page", pageLoadErrorMessageTheme: "a", phonegapNavigationEnabled: !1, autoInitializePage: !0, pushStateEnabled: !0, ignoreContentEnabled: !1, buttonMarkup: { hoverDelay: 200 }, dynamicBaseEnabled: !0, pageContainer: $(), allowCrossDomainPages: !1, dialogHashKey: "&ui-state=dialog" }); })(jQuery, this), (function($, window, undefined) { var nsNormalizeDict = { }, oldFind = $.find, rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, jqmDataRE = /:jqmData\(([^)]*)\)/g; $.extend($.mobile, { ns: "", getAttribute: function(element, key) { var data; (element = element.jquery ? element[0] : element) && element.getAttribute && (data = element.getAttribute("data-" + $.mobile.ns + key)); try { data = "true" === data || "false" !== data && ("null" === data ? null : +data + "" === data ? +data : rbrace.test(data) ? JSON.parse(data) : data); } catch (err) { } return data; }, nsNormalizeDict: nsNormalizeDict, nsNormalize: function(prop) { return nsNormalizeDict[prop] || (nsNormalizeDict[prop] = $.camelCase($.mobile.ns + prop)); }, closestPageData: function($target) { return $target.closest(":jqmData(role='page'), :jqmData(role='dialog')").data("mobile-page"); } }), $.fn.jqmData = function(prop, value) { var result; return void 0 !== prop && (prop && (prop = $.mobile.nsNormalize(prop)), result = arguments.length < 2 || void 0 === value ? this.data(prop) : this.data(prop, value)), result; }, $.jqmData = function(elem, prop, value) { var result; return void 0 !== prop && (result = $.data(elem, prop ? $.mobile.nsNormalize(prop) : prop, value)), result; }, $.fn.jqmRemoveData = function(prop) { return this.removeData($.mobile.nsNormalize(prop)); }, $.jqmRemoveData = function(elem, prop) { return $.removeData(elem, $.mobile.nsNormalize(prop)); }, $.find = function(selector, context, ret, extra) { return selector.indexOf(":jqmData") > -1 && (selector = selector.replace(jqmDataRE, "[data-" + ($.mobile.ns || "") + "$1]")), oldFind.call(this, selector, context, ret, extra); }, $.extend($.find, oldFind); })(jQuery, this), (function($, undefined) { var uuid = 0, runiqueId = /^ui-id-\d+$/; function focusable(element, isTabIndexNotNaN) { var mapName, img, nodeName = element.nodeName.toLowerCase(); return "area" === nodeName ? (mapName = element.parentNode.name, !!element.href && !!mapName && "map" === element.parentNode.nodeName.toLowerCase() && !!(img = $("img[usemap=#" + mapName + "]")[0]) && visible(img)) : (/input|select|textarea|button|object/.test(nodeName) ? !element.disabled : "a" === nodeName ? element.href || isTabIndexNotNaN : isTabIndexNotNaN) && visible(element); } function visible(element) { return $.expr.filters.visible(element) && !$(element).parents().addBack().filter(function() { return "hidden" === $.css(this, "visibility"); }).length; } $.ui = $.ui || { }, $.extend($.ui, { version: "c0ab71056b936627e8a7821f03c044aec6280a40", keyCode: { BACKSPACE: 8, COMMA: 188, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, LEFT: 37, PAGE_DOWN: 34, PAGE_UP: 33, PERIOD: 190, RIGHT: 39, SPACE: 32, TAB: 9, UP: 38 } }), $.fn.extend({ focus: function(orig) { return function(delay, fn) { return "number" == typeof delay ? this.each(function() { var elem = this; setTimeout(function() { $(elem).focus(), fn && fn.call(elem); }, delay); }) : orig.apply(this, arguments); }; }($.fn.focus), scrollParent: function() { var scrollParent; return scrollParent = $.ui.ie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? this.parents().filter(function() { return /(relative|absolute|fixed)/.test($.css(this, "position")) && /(auto|scroll)/.test($.css(this, "overflow") + $.css(this, "overflow-y") + $.css(this, "overflow-x")); }).eq(0) : this.parents().filter(function() { return /(auto|scroll)/.test($.css(this, "overflow") + $.css(this, "overflow-y") + $.css(this, "overflow-x")); }).eq(0), /fixed/.test(this.css("position")) || !scrollParent.length ? $(this[0].ownerDocument || document) : scrollParent; }, uniqueId: function() { return this.each(function() { this.id || (this.id = "ui-id-" + ++uuid); }); }, removeUniqueId: function() { return this.each(function() { runiqueId.test(this.id) && $(this).removeAttr("id"); }); } }), $.extend($.expr[":"], { data: $.expr.createPseudo ? $.expr.createPseudo(function(dataName) { return function(elem) { return !!$.data(elem, dataName); }; }) : function(elem, i, match) { return !!$.data(elem, match[3]); }, focusable: function(element) { return focusable(element, !isNaN($.attr(element, "tabindex"))); }, tabbable: function(element) { var tabIndex = $.attr(element, "tabindex"), isTabIndexNaN = isNaN(tabIndex); return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN); } }), $("").outerWidth(1).jquery || $.each([ "Width", "Height" ], function(i, name) { var side = "Width" === name ? [ "Left", "Right" ] : [ "Top", "Bottom" ], type = name.toLowerCase(), orig = { innerWidth: $.fn.innerWidth, innerHeight: $.fn.innerHeight, outerWidth: $.fn.outerWidth, outerHeight: $.fn.outerHeight }; function reduce(elem, size, border, margin) { return $.each(side, function() { size -= parseFloat($.css(elem, "padding" + this)) || 0, border && (size -= parseFloat($.css(elem, "border" + this + "Width")) || 0), margin && (size -= parseFloat($.css(elem, "margin" + this)) || 0); }), size; } $.fn["inner" + name] = function(size) { return size === undefined ? orig["inner" + name].call(this) : this.each(function() { $(this).css(type, reduce(this, size) + "px"); }); }, $.fn["outer" + name] = function(size, margin) { return "number" != typeof size ? orig["outer" + name].call(this, size) : this.each(function() { $(this).css(type, reduce(this, size, !0, margin) + "px"); }); }; }), $.fn.addBack || ($.fn.addBack = function(selector) { return this.add(null == selector ? this.prevObject : this.prevObject.filter(selector)); }), $("").data("a-b", "a").removeData("a-b").data("a-b") && ($.fn.removeData = (function(removeData) { return function(key) { return arguments.length ? removeData.call(this, $.camelCase(key)) : removeData.call(this); }; })($.fn.removeData)), $.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()), $.support.selectstart = "onselectstart" in document.createElement("div"), $.fn.extend({ disableSelection: function() { return this.bind(($.support.selectstart ? "selectstart" : "mousedown") + ".ui-disableSelection", function(event) { event.preventDefault(); }); }, enableSelection: function() { return this.unbind(".ui-disableSelection"); }, zIndex: function(zIndex) { if (zIndex !== undefined) return this.css("zIndex", zIndex); if (this.length) for(var position, value, elem = $(this[0]); elem.length && elem[0] !== document;){ if (("absolute" === (position = elem.css("position")) || "relative" === position || "fixed" === position) && !isNaN(value = parseInt(elem.css("zIndex"), 10)) && 0 !== value) return value; elem = elem.parent(); } return 0; } }), $.ui.plugin = { add: function(module, option, set) { var i, proto = $.ui[module].prototype; for(i in set)proto.plugins[i] = proto.plugins[i] || [], proto.plugins[i].push([ option, set[i] ]); }, call: function(instance, name, args, allowDisconnected) { var i, set = instance.plugins[name]; if (set && (allowDisconnected || instance.element[0].parentNode && 11 !== instance.element[0].parentNode.nodeType)) for(i = 0; i < set.length; i++)instance.options[set[i][0]] && set[i][1].apply(instance.element, args); } }; })(jQuery), (function($, window, undefined) { var compensateToolbars = function(page, desiredHeight) { var pageParent = page.parent(), toolbarsAffectingHeight = [], externalHeaders = pageParent.children(":jqmData(role='header')"), internalHeaders = page.children(":jqmData(role='header')"), externalFooters = pageParent.children(":jqmData(role='footer')"), internalFooters = page.children(":jqmData(role='footer')"); return 0 === internalHeaders.length && externalHeaders.length > 0 && (toolbarsAffectingHeight = toolbarsAffectingHeight.concat(externalHeaders.toArray())), 0 === internalFooters.length && externalFooters.length > 0 && (toolbarsAffectingHeight = toolbarsAffectingHeight.concat(externalFooters.toArray())), $.each(toolbarsAffectingHeight, function(index, value) { desiredHeight -= $(value).outerHeight(); }), Math.max(0, desiredHeight); }; $.extend($.mobile, { window: $(window), document: $(document), keyCode: $.ui.keyCode, behaviors: { }, silentScroll: function(ypos) { "number" !== $.type(ypos) && (ypos = $.mobile.defaultHomeScroll), $.event.special.scrollstart.enabled = !1, setTimeout(function() { window.scrollTo(0, ypos), $.mobile.document.trigger("silentscroll", { x: 0, y: ypos }); }, 20), setTimeout(function() { $.event.special.scrollstart.enabled = !0; }, 150); }, getClosestBaseUrl: function(ele) { var url = $(ele).closest(".ui-page").jqmData("url"), base = $.mobile.path.documentBase.hrefNoHash; return $.mobile.dynamicBaseEnabled && url && $.mobile.path.isPath(url) || (url = base), $.mobile.path.makeUrlAbsolute(url, base); }, removeActiveLinkClass: function(forceRemoval) { $.mobile.activeClickedLink && (!$.mobile.activeClickedLink.closest("." + $.mobile.activePageClass).length || forceRemoval) && $.mobile.activeClickedLink.removeClass($.mobile.activeBtnClass), $.mobile.activeClickedLink = null; }, getInheritedTheme: function(el, defaultTheme) { for(var c, m, e = el[0], ltr = "", re = /ui-(bar|body|overlay)-([a-z])\b/; e;){ if ((c = e.className || "") && (m = re.exec(c)) && (ltr = m[2])) break; e = e.parentNode; } return ltr || defaultTheme || "a"; }, enhanceable: function(elements) { return this.haveParents(elements, "enhance"); }, hijackable: function(elements) { return this.haveParents(elements, "ajax"); }, haveParents: function(elements, attr) { if (!$.mobile.ignoreContentEnabled) return elements; var e, $element, excluded, i, count = elements.length, $newSet = $(); for(i = 0; i < count; i++){ for($element = elements.eq(i), excluded = !1, e = elements[i]; e;){ if ("false" === (e.getAttribute ? e.getAttribute("data-" + $.mobile.ns + attr) : "")) { excluded = !0; break; } e = e.parentNode; } excluded || ($newSet = $newSet.add($element)); } return $newSet; }, getScreenHeight: function() { return window.innerHeight || $.mobile.window.height(); }, resetActivePageHeight: function(height) { var page = $("." + $.mobile.activePageClass), pageHeight = page.height(), pageOuterHeight = page.outerHeight(!0); height = compensateToolbars(page, "number" == typeof height ? height : $.mobile.getScreenHeight()), page.css("min-height", height - (pageOuterHeight - pageHeight)); }, loading: function() { var loader = this.loading._widget || $($.mobile.loader.prototype.defaultHtml).loader(), returnValue = loader.loader.apply(loader, arguments); return this.loading._widget = loader, returnValue; } }), $.addDependents = function(elem, newDependents) { var $elem = $(elem), dependents = $elem.jqmData("dependents") || $(); $elem.jqmData("dependents", $(dependents).add(newDependents)); }, $.fn.extend({ removeWithDependents: function() { $.removeWithDependents(this); }, enhanceWithin: function() { var index, widgetElements = { }, keepNative = $.mobile.page.prototype.keepNativeSelector(), that = this; for(index in $.mobile.nojs && $.mobile.nojs(this), $.mobile.links && $.mobile.links(this), $.mobile.degradeInputsWithin && $.mobile.degradeInputsWithin(this), $.fn.buttonMarkup && this.find($.fn.buttonMarkup.initSelector).not(keepNative).jqmEnhanceable().buttonMarkup(), $.fn.fieldcontain && this.find(":jqmData(role='fieldcontain')").not(keepNative).jqmEnhanceable().fieldcontain(), $.each($.mobile.widgets, function(name, constructor) { if (constructor.initSelector) { var elements = $.mobile.enhanceable(that.find(constructor.initSelector)); elements.length > 0 && (elements = elements.not(keepNative)), elements.length > 0 && (widgetElements[constructor.prototype.widgetName] = elements); } }), widgetElements)widgetElements[index][index](); return this; }, addDependents: function(newDependents) { $.addDependents(this, newDependents); }, getEncodedText: function() { return $("").text(this.text()).html(); }, jqmEnhanceable: function() { return $.mobile.enhanceable(this); }, jqmHijackable: function() { return $.mobile.hijackable(this); } }), $.removeWithDependents = function(nativeElement) { var element = $(nativeElement); (element.jqmData("dependents") || $()).remove(), element.remove(); }, $.addDependents = function(nativeElement, newDependents) { var element = $(nativeElement), dependents = element.jqmData("dependents") || $(); element.jqmData("dependents", $(dependents).add(newDependents)); }, $.find.matches = function(expr, set) { return $.find(expr, null, null, set); }, $.find.matchesSelector = function(node, expr) { return $.find(expr, null, null, [ node ]).length > 0; }; })(jQuery, this), (function($, undefined) { var uuid = 0, slice = Array.prototype.slice, _cleanData = $.cleanData; $.cleanData = function(elems) { for(var elem, i = 0; null != (elem = elems[i]); i++)try { $(elem).triggerHandler("remove"); } catch (e) { } _cleanData(elems); }, $.widget = function(name, base, prototype) { var fullName, existingConstructor, constructor, basePrototype, proxiedPrototype = { }, namespace = name.split(".")[0]; return fullName = namespace + "-" + (name = name.split(".")[1]), prototype || (prototype = base, base = $.Widget), $.expr[":"][fullName.toLowerCase()] = function(elem) { return !!$.data(elem, fullName); }, $[namespace] = $[namespace] || { }, existingConstructor = $[namespace][name], constructor = $[namespace][name] = function(options, element) { if (!this._createWidget) return new constructor(options, element); arguments.length && this._createWidget(options, element); }, $.extend(constructor, existingConstructor, { version: prototype.version, _proto: $.extend({ }, prototype), _childConstructors: [] }), (basePrototype = new base()).options = $.widget.extend({ }, basePrototype.options), $.each(prototype, function(prop, value) { if (!$.isFunction(value)) return void (proxiedPrototype[prop] = value); proxiedPrototype[prop] = (function() { return function() { var returnValue, __super = this._super, __superApply = this._superApply; return this._super = function() { return base.prototype[prop].apply(this, arguments); }, this._superApply = function(args) { return base.prototype[prop].apply(this, args); }, returnValue = value.apply(this, arguments), this._super = __super, this._superApply = __superApply, returnValue; }; })(); }), constructor.prototype = $.widget.extend(basePrototype, { widgetEventPrefix: existingConstructor ? basePrototype.widgetEventPrefix || name : name }, proxiedPrototype, { constructor: constructor, namespace: namespace, widgetName: name, widgetFullName: fullName }), existingConstructor ? ($.each(existingConstructor._childConstructors, function(i, child) { var childPrototype = child.prototype; $.widget(childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto); }), delete existingConstructor._childConstructors) : base._childConstructors.push(constructor), $.widget.bridge(name, constructor), constructor; }, $.widget.extend = function(target) { for(var key, value, input = slice.call(arguments, 1), inputIndex = 0, inputLength = input.length; inputIndex < inputLength; inputIndex++)for(key in input[inputIndex])value = input[inputIndex][key], input[inputIndex].hasOwnProperty(key) && value !== undefined && ($.isPlainObject(value) ? target[key] = $.isPlainObject(target[key]) ? $.widget.extend({ }, target[key], value) : $.widget.extend({ }, value) : target[key] = value); return target; }, $.widget.bridge = function(name, object) { var fullName = object.prototype.widgetFullName || name; $.fn[name] = function(options) { var isMethodCall = "string" == typeof options, args = slice.call(arguments, 1), returnValue = this; return options = !isMethodCall && args.length ? $.widget.extend.apply(null, [ options ].concat(args)) : options, isMethodCall ? this.each(function() { var methodValue, instance = $.data(this, fullName); return "instance" === options ? (returnValue = instance, !1) : instance ? $.isFunction(instance[options]) && "_" !== options.charAt(0) ? (methodValue = instance[options].apply(instance, args)) !== instance && methodValue !== undefined ? (returnValue = methodValue && methodValue.jquery ? returnValue.pushStack(methodValue.get()) : methodValue, !1) : void 0 : $.error("no such method '" + options + "' for " + name + " widget instance") : $.error("cannot call methods on " + name + " prior to initialization; attempted to call method '" + options + "'"); }) : this.each(function() { var instance = $.data(this, fullName); instance ? instance.option(options || { })._init() : $.data(this, fullName, new object(options, this)); }), returnValue; }; }, $.Widget = function() { }, $.Widget._childConstructors = [], $.Widget.prototype = { widgetName: "widget", widgetEventPrefix: "", defaultElement: "
", options: { disabled: !1, create: null }, _createWidget: function(options, element) { element = $(element || this.defaultElement || this)[0], this.element = $(element), this.uuid = uuid++, this.eventNamespace = "." + this.widgetName + this.uuid, this.options = $.widget.extend({ }, this.options, this._getCreateOptions(), options), this.bindings = $(), this.hoverable = $(), this.focusable = $(), element !== this && ($.data(element, this.widgetFullName, this), this._on(!0, this.element, { remove: function(event) { event.target === element && this.destroy(); } }), this.document = $(element.style ? element.ownerDocument : element.document || element), this.window = $(this.document[0].defaultView || this.document[0].parentWindow)), this._create(), this._trigger("create", null, this._getCreateEventData()), this._init(); }, _getCreateOptions: $.noop, _getCreateEventData: $.noop, _create: $.noop, _init: $.noop, destroy: function() { this._destroy(), this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData($.camelCase(this.widgetFullName)), this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName + "-disabled ui-state-disabled"), this.bindings.unbind(this.eventNamespace), this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus"); }, _destroy: $.noop, widget: function() { return this.element; }, option: function(key, value) { var parts, curOption, i, options = key; if (0 === arguments.length) return $.widget.extend({ }, this.options); if ("string" == typeof key) if (options = { }, key = (parts = key.split(".")).shift(), parts.length) { for(i = 0, curOption = options[key] = $.widget.extend({ }, this.options[key]); i < parts.length - 1; i++)curOption[parts[i]] = curOption[parts[i]] || { }, curOption = curOption[parts[i]]; if (key = parts.pop(), value === undefined) return undefined === curOption[key] ? null : curOption[key]; curOption[key] = value; } else { if (value === undefined) return undefined === this.options[key] ? null : this.options[key]; options[key] = value; } return this._setOptions(options), this; }, _setOptions: function(options) { var key; for(key in options)this._setOption(key, options[key]); return this; }, _setOption: function(key, value) { return this.options[key] = value, "disabled" === key && (this.widget().toggleClass(this.widgetFullName + "-disabled", !!value), this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus")), this; }, enable: function() { return this._setOptions({ disabled: !1 }); }, disable: function() { return this._setOptions({ disabled: !0 }); }, _on: function(suppressDisabledCheck, element, handlers) { var delegateElement, instance = this; "boolean" != typeof suppressDisabledCheck && (handlers = element, element = suppressDisabledCheck, suppressDisabledCheck = !1), handlers ? (element = delegateElement = $(element), this.bindings = this.bindings.add(element)) : (handlers = element, element = this.element, delegateElement = this.widget()), $.each(handlers, function(event, handler) { function handlerProxy() { if (!(!suppressDisabledCheck && (!0 === instance.options.disabled || $(this).hasClass("ui-state-disabled")))) return ("string" == typeof handler ? instance[handler] : handler).apply(instance, arguments); } "string" != typeof handler && (handlerProxy.guid = handler.guid = handler.guid || handlerProxy.guid || $.guid++); var match = event.match(/^(\w+)\s*(.*)$/), eventName = match[1] + instance.eventNamespace, selector = match[2]; selector ? delegateElement.delegate(selector, eventName, handlerProxy) : element.bind(eventName, handlerProxy); }); }, _off: function(element, eventName) { eventName = (eventName || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, element.unbind(eventName).undelegate(eventName); }, _delay: function(handler, delay) { var instance = this; return setTimeout(function() { return ("string" == typeof handler ? instance[handler] : handler).apply(instance, arguments); }, delay || 0); }, _hoverable: function(element) { this.hoverable = this.hoverable.add(element), this._on(element, { mouseenter: function(event) { $(event.currentTarget).addClass("ui-state-hover"); }, mouseleave: function(event) { $(event.currentTarget).removeClass("ui-state-hover"); } }); }, _focusable: function(element) { this.focusable = this.focusable.add(element), this._on(element, { focusin: function(event) { $(event.currentTarget).addClass("ui-state-focus"); }, focusout: function(event) { $(event.currentTarget).removeClass("ui-state-focus"); } }); }, _trigger: function(type, event, data) { var prop, orig, callback = this.options[type]; if (data = data || { }, (event = $.Event(event)).type = (type === this.widgetEventPrefix ? type : this.widgetEventPrefix + type).toLowerCase(), event.target = this.element[0], orig = event.originalEvent) for(prop in orig)prop in event || (event[prop] = orig[prop]); return this.element.trigger(event, data), !($.isFunction(callback) && !1 === callback.apply(this.element[0], [ event ].concat(data)) || event.isDefaultPrevented()); } }, $.each({ show: "fadeIn", hide: "fadeOut" }, function(method, defaultEffect) { $.Widget.prototype["_" + method] = function(element, options, callback) { "string" == typeof options && (options = { effect: options }); var hasOptions, effectName = options ? !0 === options || "number" == typeof options ? defaultEffect : options.effect || defaultEffect : method; "number" == typeof (options = options || { }) && (options = { duration: options }), hasOptions = !$.isEmptyObject(options), options.complete = callback, options.delay && element.delay(options.delay), hasOptions && $.effects && $.effects.effect[effectName] ? element[method](options) : effectName !== method && element[effectName] ? element[effectName](options.duration, options.easing, callback) : element.queue(function(next) { $(this)[method](), callback && callback.call(element[0]), next(); }); }; }); })(jQuery), rcapitals = /[A-Z]/g, ($ = jQuery).extend($.Widget.prototype, { _getCreateOptions: function() { var option, value, elem = this.element[0], options = { }; if (!$.mobile.getAttribute(elem, "defaults")) for(option in this.options)null != (value = $.mobile.getAttribute(elem, option.replace(rcapitals, function(c) { return "-" + c.toLowerCase(); }))) && (options[option] = value); return options; } }), $.mobile.widget = $.Widget, (function($) { var $html = $("html"); $.widget("mobile.loader", { options: { theme: "a", textVisible: !1, html: "", text: "loading" }, defaultHtml: "

", fakeFixLoader: function() { var activeBtn = $("." + $.mobile.activeBtnClass).first(); this.element.css({ top: $.support.scrollTop && this.window.scrollTop() + this.window.height() / 2 || activeBtn.length && activeBtn.offset().top || 100 }); }, checkLoaderPosition: function() { var offset = this.element.offset(), scrollTop = this.window.scrollTop(), screenHeight = $.mobile.getScreenHeight(); (offset.top < scrollTop || offset.top - scrollTop > screenHeight) && (this.element.addClass("ui-loader-fakefix"), this.fakeFixLoader(), this.window.unbind("scroll", this.checkLoaderPosition).bind("scroll", $.proxy(this.fakeFixLoader, this))); }, resetHtml: function() { this.element.html($(this.defaultHtml).html()); }, show: function(theme, msgText, textonly) { var message, loadSettings; this.resetHtml(), "object" === $.type(theme) ? theme = (loadSettings = $.extend({ }, this.options, theme)).theme : (loadSettings = this.options, theme = theme || loadSettings.theme), message = msgText || (!1 === loadSettings.text ? "" : loadSettings.text), $html.addClass("ui-loading"), loadSettings.textVisible, this.element.attr("class", "ui-loader ui-corner-all ui-body-" + theme + " ui-loader-" + (loadSettings.textVisible || msgText || theme.text ? "verbose" : "default") + (loadSettings.textonly || textonly ? " ui-loader-textonly" : "")), loadSettings.html ? this.element.html(loadSettings.html) : this.element.find("h1").text(message), this.element.appendTo($.mobile.pageContainer), this.checkLoaderPosition(), this.window.bind("scroll", $.proxy(this.checkLoaderPosition, this)); }, hide: function() { $html.removeClass("ui-loading"), this.options.text && this.element.removeClass("ui-loader-fakefix"), $.mobile.window.unbind("scroll", this.fakeFixLoader), $.mobile.window.unbind("scroll", this.checkLoaderPosition); } }); })(jQuery, this), (function($, window, undefined) { "$:nomunge"; var fake_onhashchange, doc = document, special = $.event.special, doc_mode = doc.documentMode, supports_onhashchange = "onhashchange" in window && (doc_mode === undefined || doc_mode > 7); function get_fragment(url) { return "#" + (url = url || location.href).replace(/^[^#]*#?(.*)$/, "$1"); } $.fn.hashchange = function(fn) { return fn ? this.bind("hashchange", fn) : this.trigger("hashchange"); }, $.fn.hashchange.delay = 50, special.hashchange = $.extend(special.hashchange, { setup: function() { if (supports_onhashchange) return !1; $(fake_onhashchange.start); }, teardown: function() { if (supports_onhashchange) return !1; $(fake_onhashchange.stop); } }), fake_onhashchange = (function() { var iframe, iframe_src, timeout_id, self = { }, last_hash = get_fragment(), fn_retval = function(val) { return val; }, history_set = fn_retval, history_get = fn_retval; function poll() { var hash = get_fragment(), history_hash = history_get(last_hash); hash !== last_hash ? (history_set(last_hash = hash, history_hash), $(window).trigger("hashchange")) : history_hash !== last_hash && (location.href = location.href.replace(/#.*/, "") + history_hash), timeout_id = setTimeout(poll, $.fn.hashchange.delay); } return self.start = function() { timeout_id || poll(); }, self.stop = function() { timeout_id && clearTimeout(timeout_id), timeout_id = undefined; }, !window.attachEvent || window.addEventListener || supports_onhashchange || (self.start = function() { iframe || (iframe_src = (iframe_src = $.fn.hashchange.src) && iframe_src + get_fragment(), iframe = $("