{
"jquery.mobile.tizen.scrollview": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.tizen.scrollview.js",
"name": "jquery.mobile.tizen.scrollview",
"depends": [],
"description": "Implements scroll by javascript"
},
"events/throttledresize": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "events/throttledresize.js",
"name": "events/throttledresize",
"depends": [
"description": "Throttled resize event"
},
"events/touch": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "events/touch.js",
"name": "events/touch",
"depends": [
"description": "Touch events: touchstart, touchmove, touchend, tap, taphold, swipe, swipeleft, swiperight, scrollstart, scrollstop"
},
"events/orientationchange": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "events/orientationchange.js",
"name": "events/orientationchange",
"depends": [
"description": "Orientation change event"
},
"jquery.mobile.tizen.pinch": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.tizen.pinch.js",
"name": "jquery.mobile.tizen.pinch",
"depends": [
"description": "Tizen core library"
},
"jquery.mobile.define": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.define.js",
"name": "jquery.mobile.define",
"depends": [],
"description": ""
},
"jquery.mobile.docs": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.docs.js",
"name": "jquery.mobile.docs",
"depends": [
"description": ""
},
"text": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "text.js",
"name": "text",
"depends": [],
"description": ""
},
"depend": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "depend.js",
"name": "depend",
"depends": [],
"description": ""
},
"jquery.mobile.navigation": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.navigation.js",
"name": "jquery.mobile.navigation",
"depends": [
"description": "Applies the AJAX navigation system to links and forms to enable page transitions"
},
"jquery.mobile.tizen.core": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.tizen.core.js",
"name": "jquery.mobile.tizen.core",
"depends": [
"description": "Tizen core library"
},
"jquery.mobile.support.orientation": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.support.orientation.js",
"name": "jquery.mobile.support.orientation",
"depends": [
"description": "Feature test for orientation"
},
"util/range": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "util/range.js",
"name": "util/range",
"depends": [],
"description": "Makes array with given range"
},
"util/ensurens": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "util/ensurens.js",
"name": "util/ensurens",
"depends": [],
"description": "Make namespace for modules"
},
"jquery.mobile.tizen.clrlib": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.tizen.clrlib.js",
"name": "jquery.mobile.tizen.clrlib",
- "depends": [],
+ "depends": [
+ "util/ensurens"
+ ],
"label": "Color library",
"group": "Tizen:Core",
"description": "Color code converter"
},
"jquery.mobile.links": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.links.js",
"name": "jquery.mobile.links",
"depends": [
"description": "Adds classes to links."
},
"jquery.mobile.tizen.configure": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.tizen.configure.js",
"name": "jquery.mobile.tizen.configure",
"depends": [],
"description": "jQuery Mobile configuration for Tizen widgets"
},
"jquery.mobile.support": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.support.js",
"name": "jquery.mobile.support",
"depends": [
"description": "Assorted tests to qualify browsers by detecting features"
},
"jquery.mobile.zoom.iosorientationfix": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.zoom.iosorientationfix.js",
"name": "jquery.mobile.zoom.iosorientationfix",
"depends": [
"description": "Fixes the orientation change bug in iOS when switching between landspace and portrait"
},
"widgets/jquery.mobile.tizen.gallery3d": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.gallery3d.js",
"name": "widgets/jquery.mobile.tizen.gallery3d",
"depends": [
"description": "3D photo gallery widget."
},
"widgets/jquery.mobile.tizen.multimediaview": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.multimediaview.js",
"name": "widgets/jquery.mobile.tizen.multimediaview",
"depends": [
"description": "Shows multimedia and its controls"
},
"widgets/jquery.mobile.tizen.button": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.button.js",
"name": "widgets/jquery.mobile.tizen.button",
"depends": [],
"description": "Tizen button"
},
"widgets/loader": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/loader.js",
"name": "widgets/loader",
"depends": [
"description": "packaged loading message functionality"
},
"widgets/jquery.mobile.tizen.scrollview.handler": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.scrollview.handler.js",
"name": "widgets/jquery.mobile.tizen.scrollview.handler",
"depends": [
"description": "Shows a scroll-handler with a scrollview"
},
"widgets/jquery.mobile.tizen.popupwindow.ctxpopup": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.popupwindow.ctxpopup.js",
"name": "widgets/jquery.mobile.tizen.popupwindow.ctxpopup",
"depends": [
"description": "Shows popup at any place in the page content, with various styles"
},
"widgets/jquery.mobile.tizen.datetimepicker": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.datetimepicker.js",
"name": "widgets/jquery.mobile.tizen.datetimepicker",
"depends": [
"description": "Shows date and time, and make them able to be changed by user"
},
"widgets/jquery.mobile.tizen.slider": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.slider.js",
"name": "widgets/jquery.mobile.tizen.slider",
"depends": [
"description": "Shows slider bar to input number by dragging"
},
"widgets/listview.filter": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/listview.filter.js",
"name": "widgets/listview.filter",
"depends": [
"description": "Extends the listview to add a search box to filter lists"
},
"widgets/jquery.mobile.tizen.swipe": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.swipe.js",
"name": "widgets/jquery.mobile.tizen.swipe",
"depends": [
"description": "Shows background listitem by swiping left/right on a listitem"
},
"widgets/dialog": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/dialog.js",
"name": "widgets/dialog",
"depends": [
"description": "Displays a page as a modal dialog with inset appearance and overlay background"
},
"widgets/jquery.mobile.tizen.listdivider": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.listdivider.js",
"name": "widgets/jquery.mobile.tizen.listdivider",
"depends": [],
"description": "Divider listitem in listview"
},
"widgets/jquery.mobile.tizen.notification": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.notification.js",
"name": "widgets/jquery.mobile.tizen.notification",
"depends": [
"description": "Shows notification popup over header/footer"
},
"widgets/jquery.mobile.tizen.pagelayout": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.pagelayout.js",
"name": "widgets/jquery.mobile.tizen.pagelayout",
"depends": [
"description": "Set a layout of pages"
},
"widgets/collapsibleSet": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/collapsibleSet.js",
"name": "widgets/collapsibleSet",
"depends": [
"description": "For creating grouped collapsible content areas."
},
"widgets/jquery.mobile.tizen.checkbox": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.checkbox.js",
"name": "widgets/jquery.mobile.tizen.checkbox",
"depends": [],
"description": "//>>description: Checkbox widget"
},
"widgets/listview": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/listview.js",
"name": "widgets/listview",
"depends": [
"description": "Applies listview styling of various types (standard, numbered, split button, etc.)"
},
"widgets/jquery.mobile.tizen.splitview": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.splitview.js",
"name": "widgets/jquery.mobile.tizen.splitview",
"depends": [
"description": "Show different HTML contents at the same time on each divided pane."
},
"widgets/listview.autodividers": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/listview.autodividers.js",
"name": "widgets/listview.autodividers",
"depends": [
"description": "Generates dividers for listview items"
},
"widgets/jquery.mobile.tizen.virtualgrid": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.virtualgrid.js",
"name": "widgets/jquery.mobile.tizen.virtualgrid",
"depends": [
"description": "Shows grid swapping its contents automatically"
},
"widgets/popup": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/popup.js",
"name": "widgets/popup",
"depends": [
"description": "Popup windows"
},
"widgets/jquery.mobile.tizen.searchbar": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.searchbar.js",
"name": "widgets/jquery.mobile.tizen.searchbar",
"depends": [
"description": "Shows searchbar, for text search"
},
"widgets/forms/slider": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/forms/slider.js",
"name": "widgets/forms/slider",
"depends": [
"description": "Slider form widget"
},
"widgets/forms/button": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/forms/button.js",
"name": "widgets/forms/button",
"depends": [
"description": "Custom-styled native input/buttons"
},
"widgets/forms/select.custom": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/forms/select.custom.js",
"name": "widgets/forms/select.custom",
"depends": [
"description": "Extension to select menus to support menu styling, placeholder options, and multi-select features."
},
"widgets/forms/checkboxradio": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/forms/checkboxradio.js",
"name": "widgets/forms/checkboxradio",
"depends": [
"description": "Consistent styling for checkboxes/radio buttons."
},
"widgets/forms/select": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/forms/select.js",
"name": "widgets/forms/select",
"depends": [
"description": "Consistent styling for native select menus. Tapping opens a native select menu."
},
"widgets/forms/textinput": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/forms/textinput.js",
"name": "widgets/forms/textinput",
"depends": [
"description": "Enhances and consistently styles text inputs."
},
"widgets/jquery.mobile.tizen.gallery": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.gallery.js",
"name": "widgets/jquery.mobile.tizen.gallery",
"depends": [],
"description": "Shows images one by one, and moves them by flicking"
},
"widgets/jquery.mobile.tizen.circularview": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.circularview.js",
"name": "widgets/jquery.mobile.tizen.circularview",
"depends": [
"description": "Container widget showing children circulary"
},
"widgets/navbar": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/navbar.js",
"name": "widgets/navbar",
"depends": [
"description": "Formats groups of links as horizontal navigation bars."
},
"widgets/components/imageloader": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/components/imageloader.js",
"name": "widgets/components/imageloader",
"depends": [],
- "label": "Image loader",
- "group": "Tizen:Widgets:Components",
- "description": "Tizen image loader component for gallery3d"
+ "label": "//>>label: Image loader",
+ "group": "//>>group: Tizen:Widgets:Components",
+ "description": "//>>description: Tizen image loader component for gallery3d"
},
"widgets/components/motionpath": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/components/motionpath.js",
"name": "widgets/components/motionpath",
"depends": [],
"description": "Tizen motion path component for gallery3d"
},
"widgets/components/webgl": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/components/webgl.js",
"name": "widgets/components/webgl",
"depends": [],
- "label": "WebGL",
- "group": "Tizen:Widgets:Lib",
- "description": "Tizen WebGL component for gallery3d"
+ "label": "//>>label: WebGL",
+ "group": "//>>group: Tizen:Widgets:Lib",
+ "description": "//>>description: Tizen WebGL component for gallery3d"
},
"widgets/jquery.mobile.tizen.popupwindow": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.popupwindow.js",
"name": "widgets/jquery.mobile.tizen.popupwindow",
"depends": [
"description": "Shows popup on the page"
},
"widgets/jquery.mobile.tizen.virtuallistview": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.virtuallistview.js",
"name": "widgets/jquery.mobile.tizen.virtuallistview",
"depends": [
"description": "Shows listview swapping its contents automatically"
},
"widgets/jquery.mobile.tizen.progress": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.progress.js",
"name": "widgets/jquery.mobile.tizen.progress",
"depends": [
"description": "Shows progressbar or progress circle"
},
"widgets/jquery.mobile.tizen.fastscroll": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.fastscroll.js",
"name": "widgets/jquery.mobile.tizen.fastscroll",
"depends": [
"description": "Shows list index and scroll to the index directly"
},
"widgets/jquery.mobile.tizen.widgetex": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.widgetex.js",
"name": "widgets/jquery.mobile.tizen.widgetex",
"depends": [
"description": "Widget class extending functionality of jQueryMobile widget class"
},
"widgets/fixedToolbar": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/fixedToolbar.js",
"name": "widgets/fixedToolbar",
"depends": [
"description": "Behavior for \"fixed\" headers and footers"
},
"widgets/jquery.mobile.tizen.tabbar": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.tabbar.js",
"name": "widgets/jquery.mobile.tizen.tabbar",
"depends": [
"description": "Shows buttons divided automatically on the header"
},
"widgets/jquery.mobile.tizen.triangle": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.triangle.js",
"name": "widgets/jquery.mobile.tizen.triangle",
"depends": [
"description": "Shows triangle, used by context popup"
},
"widgets/jquery.mobile.tizen.tokentextarea": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.tokentextarea.js",
"name": "widgets/jquery.mobile.tizen.tokentextarea",
"depends": [
"description": "Make words to selectable tokens"
},
"widgets/collapsible": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/collapsible.js",
"name": "widgets/collapsible",
"depends": [
"description": "Creates collapsible content blocks."
},
"widgets/page": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/page.js",
"name": "widgets/page",
"depends": [
"description": "Basic page definition and formatting."
},
"widgets/page.sections": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/page.sections.js",
"name": "widgets/page.sections",
"depends": [
"description": "Theming and layout of headers, footers, and content areas"
},
"widgets/jquery.mobile.tizen.progressbar": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.progressbar.js",
"name": "widgets/jquery.mobile.tizen.progressbar",
"depends": [
"description": "Shows progressbar"
},
"widgets/jquery.mobile.tizen.extendablelist": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery.mobile.tizen.extendablelist.js",
"name": "widgets/jquery.mobile.tizen.extendablelist",
"depends": [
"description": "Listview which can be extended more and more"
},
"jquery.mobile.fieldContain": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.fieldContain.js",
"name": "jquery.mobile.fieldContain",
"depends": [
"description": "Styling to responsively position forms and labels based on screen width and add visual separation"
},
"jquery.mobile.controlGroup": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.controlGroup.js",
"name": "jquery.mobile.controlGroup",
"depends": [
"description": "Visually groups sets of buttons, checks, radios, etc."
},
"jquery.mobile": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.js",
"name": "jquery.mobile",
"depends": [
"description": ""
},
"jquery.mobile.navigation.pushstate": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.navigation.pushstate.js",
"name": "jquery.mobile.navigation.pushstate",
"depends": [
"description": "history.pushState support, layered on top of hashchange."
},
"jquery.mobile.support.touch": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.support.touch.js",
"name": "jquery.mobile.support.touch",
"depends": [
"description": "Touch feature test"
},
"jquery.mobile.tizen.loadprototype": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.tizen.loadprototype.js",
"name": "jquery.mobile.tizen.loadprototype",
- "depends": [],
+ "depends": [
+ "util/ensurens"
+ ],
"label": "Widget prototype loader",
"group": "Tizen:Core",
"description": "Loads widget's prototype"
},
"jquery.mobile.tizen.loader": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.tizen.loader.js",
"name": "jquery.mobile.tizen.loader",
"depends": [
"description": "Loader doing theme loading, viewport setting, globalize loading, etc."
},
"jquery.mobile.zoom": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.zoom.js",
"name": "jquery.mobile.zoom",
"depends": [
"description": "Utility methods for enabling and disabling user scaling (pinch zoom)"
},
"jquery.mobile.init": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.init.js",
"name": "jquery.mobile.init",
"depends": [
"description": "Global initialization of the library."
},
"jquery.tag.inserter": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.tag.inserter.js",
"name": "jquery.tag.inserter",
"depends": [],
"description": ""
},
"jquery.mobile.nojs": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.nojs.js",
"name": "jquery.mobile.nojs",
"depends": [
"description": "Adds class to make elements hidden to A grade browsers"
},
"jquery.mobile.widget": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.widget.js",
"name": "jquery.mobile.widget",
"depends": [
"description": "Widget factory extentions for mobile."
},
"jquery.mobile.buttonMarkup": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.buttonMarkup.js",
"name": "jquery.mobile.buttonMarkup",
"depends": [
"description": "Applies button styling to links"
},
"jquery.mobile.label": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.label.js",
"name": "jquery.mobile.label",
"depends": [],
"description": "Add markup for labels"
},
"jquery.hashchange": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.hashchange.js",
"name": "jquery.hashchange",
"depends": [],
"description": ""
},
"jquery": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.js",
"name": "jquery",
"depends": [],
"description": ""
},
"jquery.mobile.grid": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.grid.js",
"name": "jquery.mobile.grid",
"depends": [
"description": "Applies classes for creating grid or column styling."
},
"transitions/pop": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "transitions/pop.js",
"name": "transitions/pop",
"depends": [
"description": "Animation styles and fallback transitions definition for non-3D supporting browsers"
},
"transitions/flip": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "transitions/flip.js",
"name": "transitions/flip",
"depends": [
"description": "Animation styles and fallback transitions definition for non-3D supporting browsers"
},
"transitions/flow": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "transitions/flow.js",
"name": "transitions/flow",
"depends": [
"description": "Animation styles and fallback transitions definition for non-3D supporting browsers"
},
"transitions/slidedown": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "transitions/slidedown.js",
"name": "transitions/slidedown",
"depends": [
"description": "Animation styles and fallback transitions definition for non-3D supporting browsers"
},
"transitions/turn": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "transitions/turn.js",
"name": "transitions/turn",
"depends": [
"description": "Animation styles and fallback transitions definition for non-3D supporting browsers"
},
"transitions/slideup": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "transitions/slideup.js",
"name": "transitions/slideup",
"depends": [
"description": "Animation styles and fallback transitions definition for non-3D supporting browsers"
},
"transitions/slidefade": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "transitions/slidefade.js",
"name": "transitions/slidefade",
"depends": [
"description": "Animation styles and fallback transitions definition for non-3D supporting browsers"
},
"transitions/slide": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "transitions/slide.js",
"name": "transitions/slide",
"depends": [
"description": "Animation styles and fallback transitions definition for non-3D supporting browsers"
},
"jquery.mobile.degradeInputs": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.degradeInputs.js",
"name": "jquery.mobile.degradeInputs",
"depends": [
"description": "Changes input type to another after custom enhancements are made (ex. range > numberic)."
},
"jquery.mobile.media": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.media.js",
"name": "jquery.mobile.media",
"depends": [
"description": "A workaround for browsers without window.matchMedia"
},
"jquery.mobile.transitions": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.transitions.js",
"name": "jquery.mobile.transitions",
"depends": [
"description": "All the stock transitions"
},
"jquery.mobile.vmouse": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.vmouse.js",
"name": "jquery.mobile.vmouse",
"depends": [
"description": "Normalizes touch/mouse events."
},
"jquery.mobile.core": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.core.js",
"name": "jquery.mobile.core",
"depends": [
"description": "Base file for jQuery Mobile"
},
"jquery.mobile.events": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.events.js",
"name": "jquery.mobile.events",
"depends": [
"description": "Custom events and shortcuts."
},
"jquery.mobile.transition": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.mobile.transition.js",
"name": "jquery.mobile.transition",
"depends": [
"description": "Animated page change core logic and sequence handlers"
},
"jquery.ui.widget": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "jquery.ui.widget.js",
"name": "jquery.ui.widget",
"depends": [],
"description": ""
},
"events/jquery": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "events/jquery",
"name": "events/jquery",
"depends": [],
"description": ""
},
"depend!../docs/_assets/js/jqm-docs[jquery]": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "depend!../docs/_assets/js/jqm-docs[jquery]",
"name": "depend!../docs/_assets/js/jqm-docs[jquery]",
"depends": [],
"description": ""
},
"depend!./jquery.hashchange[jquery]": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "depend!./jquery.hashchange[jquery]",
"name": "depend!./jquery.hashchange[jquery]",
"depends": [],
"description": ""
},
"widgets/jquery": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/jquery",
"name": "widgets/jquery",
"depends": [],
"description": ""
},
"widgets/depend!../jquery.hashchange[jquery]": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/depend!../jquery.hashchange[jquery]",
"name": "widgets/depend!../jquery.hashchange[jquery]",
"depends": [],
"description": ""
},
"widgets/forms/jquery": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "widgets/forms/jquery",
"name": "widgets/forms/jquery",
"depends": [],
"description": ""
},
"require": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "require",
"name": "require",
"depends": [],
"description": ""
},
"depend!./jquery.ui.widget[jquery]": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "depend!./jquery.ui.widget[jquery]",
"name": "depend!./jquery.ui.widget[jquery]",
"depends": [],
"description": ""
},
"transitions/jquery": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "transitions/jquery",
"name": "transitions/jquery",
"depends": [],
"description": ""
},
"text!../version.txt": {
- "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/build/tizen-web-ui-fw/0.2/js/src",
+ "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.rsa/build/tizen-web-ui-fw/0.2/js/src",
"path": "text!../version.txt",
"name": "text!../version.txt",
"depends": [],
jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks;
}
});
-/*!\r
- * Sizzle CSS Selector Engine\r
- * Copyright 2012 jQuery Foundation and other contributors\r
- * Released under the MIT license\r
- * http://sizzlejs.com/\r
- */\r
-(function( window, undefined ) {\r
-\r
-var cachedruns,\r
- assertGetIdNotName,\r
- Expr,\r
- getText,\r
- isXML,\r
- contains,\r
- compile,\r
- sortOrder,\r
- hasDuplicate,\r
- outermostContext,\r
-\r
- baseHasDuplicate = true,\r
- strundefined = "undefined",\r
-\r
- expando = ( "sizcache" + Math.random() ).replace( ".", "" ),\r
-\r
- Token = String,\r
- document = window.document,\r
- docElem = document.documentElement,\r
- dirruns = 0,\r
- done = 0,\r
- pop = [].pop,\r
- push = [].push,\r
- slice = [].slice,\r
- // Use a stripped-down indexOf if a native one is unavailable\r
- indexOf = [].indexOf || function( elem ) {\r
- var i = 0,\r
- len = this.length;\r
- for ( ; i < len; i++ ) {\r
- if ( this[i] === elem ) {\r
- return i;\r
- }\r
- }\r
- return -1;\r
- },\r
-\r
- // Augment a function for special use by Sizzle\r
- markFunction = function( fn, value ) {\r
- fn[ expando ] = value == null || value;\r
- return fn;\r
- },\r
-\r
- createCache = function() {\r
- var cache = {},\r
- keys = [];\r
-\r
- return markFunction(function( key, value ) {\r
- // Only keep the most recent entries\r
- if ( keys.push( key ) > Expr.cacheLength ) {\r
- delete cache[ keys.shift() ];\r
- }\r
-\r
- return (cache[ key ] = value);\r
- }, cache );\r
- },\r
-\r
- classCache = createCache(),\r
- tokenCache = createCache(),\r
- compilerCache = createCache(),\r
-\r
- // Regex\r
-\r
- // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace\r
- whitespace = "[\\x20\\t\\r\\n\\f]",\r
- // http://www.w3.org/TR/css3-syntax/#characters\r
- characterEncoding = "(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",\r
-\r
- // Loosely modeled on CSS identifier characters\r
- // An unquoted value should be a CSS identifier (http://www.w3.org/TR/css3-selectors/#attribute-selectors)\r
- // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\r
- identifier = characterEncoding.replace( "w", "w#" ),\r
-\r
- // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors\r
- operators = "([*^$|!~]?=)",\r
- attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace +\r
- "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]",\r
-\r
- // Prefer arguments not in parens/brackets,\r
- // then attribute selectors and non-pseudos (denoted by :),\r
- // then anything else\r
- // These preferences are here to reduce the number of selectors\r
- // needing tokenize in the PSEUDO preFilter\r
- pseudos = ":(" + characterEncoding + ")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:" + attributes + ")|[^:]|\\\\.)*|.*))\\)|)",\r
-\r
- // For matchExpr.POS and matchExpr.needsContext\r
- pos = ":(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace +\r
- "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)",\r
-\r
- // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\r
- rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),\r
-\r
- rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),\r
- rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ),\r
- rpseudo = new RegExp( pseudos ),\r
-\r
- // Easily-parseable/retrievable ID or TAG or CLASS selectors\r
- rquickExpr = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,\r
-\r
- rnot = /^:not/,\r
- rsibling = /[\x20\t\r\n\f]*[+~]/,\r
- rendsWithNot = /:not\($/,\r
-\r
- rheader = /h\d/i,\r
- rinputs = /input|select|textarea|button/i,\r
-\r
- rbackslash = /\\(?!\\)/g,\r
-\r
- matchExpr = {\r
- "ID": new RegExp( "^#(" + characterEncoding + ")" ),\r
- "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),\r
- "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ),\r
- "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ),\r
- "ATTR": new RegExp( "^" + attributes ),\r
- "PSEUDO": new RegExp( "^" + pseudos ),\r
- "POS": new RegExp( pos, "i" ),\r
- "CHILD": new RegExp( "^:(only|nth|first|last)-child(?:\\(" + whitespace +\r
- "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +\r
- "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),\r
- // For use in libraries implementing .is()\r
- "needsContext": new RegExp( "^" + whitespace + "*[>+~]|" + pos, "i" )\r
- },\r
-\r
- // Support\r
-\r
- // Used for testing something on an element\r
- assert = function( fn ) {\r
- var div = document.createElement("div");\r
-\r
- try {\r
- return fn( div );\r
- } catch (e) {\r
- return false;\r
- } finally {\r
- // release memory in IE\r
- div = null;\r
- }\r
- },\r
-\r
- // Check if getElementsByTagName("*") returns only elements\r
- assertTagNameNoComments = assert(function( div ) {\r
- div.appendChild( document.createComment("") );\r
- return !div.getElementsByTagName("*").length;\r
- }),\r
-\r
- // Check if getAttribute returns normalized href attributes\r
- assertHrefNotNormalized = assert(function( div ) {\r
- div.innerHTML = "<a href='#'></a>";\r
- return div.firstChild && typeof div.firstChild.getAttribute !== strundefined &&\r
- div.firstChild.getAttribute("href") === "#";\r
- }),\r
-\r
- // Check if attributes should be retrieved by attribute nodes\r
- assertAttributes = assert(function( div ) {\r
- div.innerHTML = "<select></select>";\r
- var type = typeof div.lastChild.getAttribute("multiple");\r
- // IE8 returns a string for some attributes even when not present\r
- return type !== "boolean" && type !== "string";\r
- }),\r
-\r
- // Check if getElementsByClassName can be trusted\r
- assertUsableClassName = assert(function( div ) {\r
- // Opera can't find a second classname (in 9.6)\r
- div.innerHTML = "<div class='hidden e'></div><div class='hidden'></div>";\r
- if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) {\r
- return false;\r
- }\r
-\r
- // Safari 3.2 caches class attributes and doesn't catch changes\r
- div.lastChild.className = "e";\r
- return div.getElementsByClassName("e").length === 2;\r
- }),\r
-\r
- // Check if getElementById returns elements by name\r
- // Check if getElementsByName privileges form controls or returns elements by ID\r
- assertUsableName = assert(function( div ) {\r
- // Inject content\r
- div.id = expando + 0;\r
- div.innerHTML = "<a name='" + expando + "'></a><div name='" + expando + "'></div>";\r
- docElem.insertBefore( div, docElem.firstChild );\r
-\r
- // Test\r
- var pass = document.getElementsByName &&\r
- // buggy browsers will return fewer than the correct 2\r
- document.getElementsByName( expando ).length === 2 +\r
- // buggy browsers will return more than the correct 0\r
- document.getElementsByName( expando + 0 ).length;\r
- assertGetIdNotName = !document.getElementById( expando );\r
-\r
- // Cleanup\r
- docElem.removeChild( div );\r
-\r
- return pass;\r
- });\r
-\r
-// If slice is not available, provide a backup\r
-try {\r
- slice.call( docElem.childNodes, 0 )[0].nodeType;\r
-} catch ( e ) {\r
- slice = function( i ) {\r
- var elem,\r
- results = [];\r
- for ( ; (elem = this[i]); i++ ) {\r
- results.push( elem );\r
- }\r
- return results;\r
- };\r
-}\r
-\r
-function Sizzle( selector, context, results, seed ) {\r
- results = results || [];\r
- context = context || document;\r
- var match, elem, xml, m,\r
- nodeType = context.nodeType;\r
-\r
- if ( !selector || typeof selector !== "string" ) {\r
- return results;\r
- }\r
-\r
- if ( nodeType !== 1 && nodeType !== 9 ) {\r
- return [];\r
- }\r
-\r
- xml = isXML( context );\r
-\r
- if ( !xml && !seed ) {\r
- if ( (match = rquickExpr.exec( selector )) ) {\r
- // Speed-up: Sizzle("#ID")\r
- if ( (m = match[1]) ) {\r
- if ( nodeType === 9 ) {\r
- elem = context.getElementById( m );\r
- // Check parentNode to catch when Blackberry 4.6 returns\r
- // nodes that are no longer in the document #6963\r
- if ( elem && elem.parentNode ) {\r
- // Handle the case where IE, Opera, and Webkit return items\r
- // by name instead of ID\r
- if ( elem.id === m ) {\r
- results.push( elem );\r
- return results;\r
- }\r
- } else {\r
- return results;\r
- }\r
- } else {\r
- // Context is not a document\r
- if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&\r
- contains( context, elem ) && elem.id === m ) {\r
- results.push( elem );\r
- return results;\r
- }\r
- }\r
-\r
- // Speed-up: Sizzle("TAG")\r
- } else if ( match[2] ) {\r
- push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) );\r
- return results;\r
-\r
- // Speed-up: Sizzle(".CLASS")\r
- } else if ( (m = match[3]) && assertUsableClassName && context.getElementsByClassName ) {\r
- push.apply( results, slice.call(context.getElementsByClassName( m ), 0) );\r
- return results;\r
- }\r
- }\r
- }\r
-\r
- // All others\r
- return select( selector.replace( rtrim, "$1" ), context, results, seed, xml );\r
-}\r
-\r
-Sizzle.matches = function( expr, elements ) {\r
- return Sizzle( expr, null, null, elements );\r
-};\r
-\r
-Sizzle.matchesSelector = function( elem, expr ) {\r
- return Sizzle( expr, null, null, [ elem ] ).length > 0;\r
-};\r
-\r
-// Returns a function to use in pseudos for input types\r
-function createInputPseudo( type ) {\r
- return function( elem ) {\r
- var name = elem.nodeName.toLowerCase();\r
- return name === "input" && elem.type === type;\r
- };\r
-}\r
-\r
-// Returns a function to use in pseudos for buttons\r
-function createButtonPseudo( type ) {\r
- return function( elem ) {\r
- var name = elem.nodeName.toLowerCase();\r
- return (name === "input" || name === "button") && elem.type === type;\r
- };\r
-}\r
-\r
-// Returns a function to use in pseudos for positionals\r
-function createPositionalPseudo( fn ) {\r
- return markFunction(function( argument ) {\r
- argument = +argument;\r
- return markFunction(function( seed, matches ) {\r
- var j,\r
- matchIndexes = fn( [], seed.length, argument ),\r
- i = matchIndexes.length;\r
-\r
- // Match elements found at the specified indexes\r
- while ( i-- ) {\r
- if ( seed[ (j = matchIndexes[i]) ] ) {\r
- seed[j] = !(matches[j] = seed[j]);\r
- }\r
- }\r
- });\r
- });\r
-}\r
-\r
-/**\r
- * Utility function for retrieving the text value of an array of DOM nodes\r
- * @param {Array|Element} elem\r
- */\r
-getText = Sizzle.getText = function( elem ) {\r
- var node,\r
- ret = "",\r
- i = 0,\r
- nodeType = elem.nodeType;\r
-\r
- if ( nodeType ) {\r
- if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\r
- // Use textContent for elements\r
- // innerText usage removed for consistency of new lines (see #11153)\r
- if ( typeof elem.textContent === "string" ) {\r
- return elem.textContent;\r
- } else {\r
- // Traverse its children\r
- for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\r
- ret += getText( elem );\r
- }\r
- }\r
- } else if ( nodeType === 3 || nodeType === 4 ) {\r
- return elem.nodeValue;\r
- }\r
- // Do not include comment or processing instruction nodes\r
- } else {\r
-\r
- // If no nodeType, this is expected to be an array\r
- for ( ; (node = elem[i]); i++ ) {\r
- // Do not traverse comment nodes\r
- ret += getText( node );\r
- }\r
- }\r
- return ret;\r
-};\r
-\r
-isXML = Sizzle.isXML = function( elem ) {\r
- // documentElement is verified for cases where it doesn't yet exist\r
- // (such as loading iframes in IE - #4833)\r
- var documentElement = elem && (elem.ownerDocument || elem).documentElement;\r
- return documentElement ? documentElement.nodeName !== "HTML" : false;\r
-};\r
-\r
-// Element contains another\r
-contains = Sizzle.contains = docElem.contains ?\r
- function( a, b ) {\r
- var adown = a.nodeType === 9 ? a.documentElement : a,\r
- bup = b && b.parentNode;\r
- return a === bup || !!( bup && bup.nodeType === 1 && adown.contains && adown.contains(bup) );\r
- } :\r
- docElem.compareDocumentPosition ?\r
- function( a, b ) {\r
- return b && !!( a.compareDocumentPosition( b ) & 16 );\r
- } :\r
- function( a, b ) {\r
- while ( (b = b.parentNode) ) {\r
- if ( b === a ) {\r
- return true;\r
- }\r
- }\r
- return false;\r
- };\r
-\r
-Sizzle.attr = function( elem, name ) {\r
- var val,\r
- xml = isXML( elem );\r
-\r
- if ( !xml ) {\r
- name = name.toLowerCase();\r
- }\r
- if ( (val = Expr.attrHandle[ name ]) ) {\r
- return val( elem );\r
- }\r
- if ( xml || assertAttributes ) {\r
- return elem.getAttribute( name );\r
- }\r
- val = elem.getAttributeNode( name );\r
- return val ?\r
- typeof elem[ name ] === "boolean" ?\r
- elem[ name ] ? name : null :\r
- val.specified ? val.value : null :\r
- null;\r
-};\r
-\r
-Expr = Sizzle.selectors = {\r
-\r
- // Can be adjusted by the user\r
- cacheLength: 50,\r
-\r
- createPseudo: markFunction,\r
-\r
- match: matchExpr,\r
-\r
- // IE6/7 return a modified href\r
- attrHandle: assertHrefNotNormalized ?\r
- {} :\r
- {\r
- "href": function( elem ) {\r
- return elem.getAttribute( "href", 2 );\r
- },\r
- "type": function( elem ) {\r
- return elem.getAttribute("type");\r
- }\r
- },\r
-\r
- find: {\r
- "ID": assertGetIdNotName ?\r
- function( id, context, xml ) {\r
- if ( typeof context.getElementById !== strundefined && !xml ) {\r
- var m = context.getElementById( id );\r
- // Check parentNode to catch when Blackberry 4.6 returns\r
- // nodes that are no longer in the document #6963\r
- return m && m.parentNode ? [m] : [];\r
- }\r
- } :\r
- function( id, context, xml ) {\r
- if ( typeof context.getElementById !== strundefined && !xml ) {\r
- var m = context.getElementById( id );\r
-\r
- return m ?\r
- m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ?\r
- [m] :\r
- undefined :\r
- [];\r
- }\r
- },\r
-\r
- "TAG": assertTagNameNoComments ?\r
- function( tag, context ) {\r
- if ( typeof context.getElementsByTagName !== strundefined ) {\r
- return context.getElementsByTagName( tag );\r
- }\r
- } :\r
- function( tag, context ) {\r
- var results = context.getElementsByTagName( tag );\r
-\r
- // Filter out possible comments\r
- if ( tag === "*" ) {\r
- var elem,\r
- tmp = [],\r
- i = 0;\r
-\r
- for ( ; (elem = results[i]); i++ ) {\r
- if ( elem.nodeType === 1 ) {\r
- tmp.push( elem );\r
- }\r
- }\r
-\r
- return tmp;\r
- }\r
- return results;\r
- },\r
-\r
- "NAME": assertUsableName && function( tag, context ) {\r
- if ( typeof context.getElementsByName !== strundefined ) {\r
- return context.getElementsByName( name );\r
- }\r
- },\r
-\r
- "CLASS": assertUsableClassName && function( className, context, xml ) {\r
- if ( typeof context.getElementsByClassName !== strundefined && !xml ) {\r
- return context.getElementsByClassName( className );\r
- }\r
- }\r
- },\r
-\r
- relative: {\r
- ">": { dir: "parentNode", first: true },\r
- " ": { dir: "parentNode" },\r
- "+": { dir: "previousSibling", first: true },\r
- "~": { dir: "previousSibling" }\r
- },\r
-\r
- preFilter: {\r
- "ATTR": function( match ) {\r
- match[1] = match[1].replace( rbackslash, "" );\r
-\r
- // Move the given value to match[3] whether quoted or unquoted\r
- match[3] = ( match[4] || match[5] || "" ).replace( rbackslash, "" );\r
-\r
- if ( match[2] === "~=" ) {\r
- match[3] = " " + match[3] + " ";\r
- }\r
-\r
- return match.slice( 0, 4 );\r
- },\r
-\r
- "CHILD": function( match ) {\r
- /* matches from matchExpr["CHILD"]\r
- 1 type (only|nth|...)\r
- 2 argument (even|odd|\d*|\d*n([+-]\d+)?|...)\r
- 3 xn-component of xn+y argument ([+-]?\d*n|)\r
- 4 sign of xn-component\r
- 5 x of xn-component\r
- 6 sign of y-component\r
- 7 y of y-component\r
- */\r
- match[1] = match[1].toLowerCase();\r
-\r
- if ( match[1] === "nth" ) {\r
- // nth-child requires argument\r
- if ( !match[2] ) {\r
- Sizzle.error( match[0] );\r
- }\r
-\r
- // numeric x and y parameters for Expr.filter.CHILD\r
- // remember that false/true cast respectively to 0/1\r
- match[3] = +( match[3] ? match[4] + (match[5] || 1) : 2 * ( match[2] === "even" || match[2] === "odd" ) );\r
- match[4] = +( ( match[6] + match[7] ) || match[2] === "odd" );\r
-\r
- // other types prohibit arguments\r
- } else if ( match[2] ) {\r
- Sizzle.error( match[0] );\r
- }\r
-\r
- return match;\r
- },\r
-\r
- "PSEUDO": function( match ) {\r
- var unquoted, excess;\r
- if ( matchExpr["CHILD"].test( match[0] ) ) {\r
- return null;\r
- }\r
-\r
- if ( match[3] ) {\r
- match[2] = match[3];\r
- } else if ( (unquoted = match[4]) ) {\r
- // Only check arguments that contain a pseudo\r
- if ( rpseudo.test(unquoted) &&\r
- // Get excess from tokenize (recursively)\r
- (excess = tokenize( unquoted, true )) &&\r
- // advance to the next closing parenthesis\r
- (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {\r
-\r
- // excess is a negative index\r
- unquoted = unquoted.slice( 0, excess );\r
- match[0] = match[0].slice( 0, excess );\r
- }\r
- match[2] = unquoted;\r
- }\r
-\r
- // Return only captures needed by the pseudo filter method (type and argument)\r
- return match.slice( 0, 3 );\r
- }\r
- },\r
-\r
- filter: {\r
- "ID": assertGetIdNotName ?\r
- function( id ) {\r
- id = id.replace( rbackslash, "" );\r
- return function( elem ) {\r
- return elem.getAttribute("id") === id;\r
- };\r
- } :\r
- function( id ) {\r
- id = id.replace( rbackslash, "" );\r
- return function( elem ) {\r
- var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id");\r
- return node && node.value === id;\r
- };\r
- },\r
-\r
- "TAG": function( nodeName ) {\r
- if ( nodeName === "*" ) {\r
- return function() { return true; };\r
- }\r
- nodeName = nodeName.replace( rbackslash, "" ).toLowerCase();\r
-\r
- return function( elem ) {\r
- return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\r
- };\r
- },\r
-\r
- "CLASS": function( className ) {\r
- var pattern = classCache[ expando ][ className ];\r
- if ( !pattern ) {\r
- pattern = classCache( className, new RegExp("(^|" + whitespace + ")" + className + "(" + whitespace + "|$)") );\r
- }\r
- return function( elem ) {\r
- return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" );\r
- };\r
- },\r
-\r
- "ATTR": function( name, operator, check ) {\r
- return function( elem, context ) {\r
- var result = Sizzle.attr( elem, name );\r
-\r
- if ( result == null ) {\r
- return operator === "!=";\r
- }\r
- if ( !operator ) {\r
- return true;\r
- }\r
-\r
- result += "";\r
-\r
- return operator === "=" ? result === check :\r
- operator === "!=" ? result !== check :\r
- operator === "^=" ? check && result.indexOf( check ) === 0 :\r
- operator === "*=" ? check && result.indexOf( check ) > -1 :\r
- operator === "$=" ? check && result.substr( result.length - check.length ) === check :\r
- operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 :\r
- operator === "|=" ? result === check || result.substr( 0, check.length + 1 ) === check + "-" :\r
- false;\r
- };\r
- },\r
-\r
- "CHILD": function( type, argument, first, last ) {\r
-\r
- if ( type === "nth" ) {\r
- return function( elem ) {\r
- var node, diff,\r
- parent = elem.parentNode;\r
-\r
- if ( first === 1 && last === 0 ) {\r
- return true;\r
- }\r
-\r
- if ( parent ) {\r
- diff = 0;\r
- for ( node = parent.firstChild; node; node = node.nextSibling ) {\r
- if ( node.nodeType === 1 ) {\r
- diff++;\r
- if ( elem === node ) {\r
- break;\r
- }\r
- }\r
- }\r
- }\r
-\r
- // Incorporate the offset (or cast to NaN), then check against cycle size\r
- diff -= last;\r
- return diff === first || ( diff % first === 0 && diff / first >= 0 );\r
- };\r
- }\r
-\r
- return function( elem ) {\r
- var node = elem;\r
-\r
- switch ( type ) {\r
- case "only":\r
- case "first":\r
- while ( (node = node.previousSibling) ) {\r
- if ( node.nodeType === 1 ) {\r
- return false;\r
- }\r
- }\r
-\r
- if ( type === "first" ) {\r
- return true;\r
- }\r
-\r
- node = elem;\r
-\r
- /* falls through */\r
- case "last":\r
- while ( (node = node.nextSibling) ) {\r
- if ( node.nodeType === 1 ) {\r
- return false;\r
- }\r
- }\r
-\r
- return true;\r
- }\r
- };\r
- },\r
-\r
- "PSEUDO": function( pseudo, argument ) {\r
- // pseudo-class names are case-insensitive\r
- // http://www.w3.org/TR/selectors/#pseudo-classes\r
- // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\r
- // Remember that setFilters inherits from pseudos\r
- var args,\r
- fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\r
- Sizzle.error( "unsupported pseudo: " + pseudo );\r
-\r
- // The user may use createPseudo to indicate that\r
- // arguments are needed to create the filter function\r
- // just as Sizzle does\r
- if ( fn[ expando ] ) {\r
- return fn( argument );\r
- }\r
-\r
- // But maintain support for old signatures\r
- if ( fn.length > 1 ) {\r
- args = [ pseudo, pseudo, "", argument ];\r
- return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\r
- markFunction(function( seed, matches ) {\r
- var idx,\r
- matched = fn( seed, argument ),\r
- i = matched.length;\r
- while ( i-- ) {\r
- idx = indexOf.call( seed, matched[i] );\r
- seed[ idx ] = !( matches[ idx ] = matched[i] );\r
- }\r
- }) :\r
- function( elem ) {\r
- return fn( elem, 0, args );\r
- };\r
- }\r
-\r
- return fn;\r
- }\r
- },\r
-\r
- pseudos: {\r
- "not": markFunction(function( selector ) {\r
- // Trim the selector passed to compile\r
- // to avoid treating leading and trailing\r
- // spaces as combinators\r
- var input = [],\r
- results = [],\r
- matcher = compile( selector.replace( rtrim, "$1" ) );\r
-\r
- return matcher[ expando ] ?\r
- markFunction(function( seed, matches, context, xml ) {\r
- var elem,\r
- unmatched = matcher( seed, null, xml, [] ),\r
- i = seed.length;\r
-\r
- // Match elements unmatched by `matcher`\r
- while ( i-- ) {\r
- if ( (elem = unmatched[i]) ) {\r
- seed[i] = !(matches[i] = elem);\r
- }\r
- }\r
- }) :\r
- function( elem, context, xml ) {\r
- input[0] = elem;\r
- matcher( input, null, xml, results );\r
- return !results.pop();\r
- };\r
- }),\r
-\r
- "has": markFunction(function( selector ) {\r
- return function( elem ) {\r
- return Sizzle( selector, elem ).length > 0;\r
- };\r
- }),\r
-\r
- "contains": markFunction(function( text ) {\r
- return function( elem ) {\r
- return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\r
- };\r
- }),\r
-\r
- "enabled": function( elem ) {\r
- return elem.disabled === false;\r
- },\r
-\r
- "disabled": function( elem ) {\r
- return elem.disabled === true;\r
- },\r
-\r
- "checked": function( elem ) {\r
- // In CSS3, :checked should return both checked and selected elements\r
- // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\r
- var nodeName = elem.nodeName.toLowerCase();\r
- return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);\r
- },\r
-\r
- "selected": function( elem ) {\r
- // Accessing this property makes selected-by-default\r
- // options in Safari work properly\r
- if ( elem.parentNode ) {\r
- elem.parentNode.selectedIndex;\r
- }\r
-\r
- return elem.selected === true;\r
- },\r
-\r
- "parent": function( elem ) {\r
- return !Expr.pseudos["empty"]( elem );\r
- },\r
-\r
- "empty": function( elem ) {\r
- // http://www.w3.org/TR/selectors/#empty-pseudo\r
- // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)),\r
- // not comment, processing instructions, or others\r
- // Thanks to Diego Perini for the nodeName shortcut\r
- // Greater than "@" means alpha characters (specifically not starting with "#" or "?")\r
- var nodeType;\r
- elem = elem.firstChild;\r
- while ( elem ) {\r
- if ( elem.nodeName > "@" || (nodeType = elem.nodeType) === 3 || nodeType === 4 ) {\r
- return false;\r
- }\r
- elem = elem.nextSibling;\r
- }\r
- return true;\r
- },\r
-\r
- "header": function( elem ) {\r
- return rheader.test( elem.nodeName );\r
- },\r
-\r
- "text": function( elem ) {\r
- var type, attr;\r
- // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)\r
- // use getAttribute instead to test this case\r
- return elem.nodeName.toLowerCase() === "input" &&\r
- (type = elem.type) === "text" &&\r
- ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === type );\r
- },\r
-\r
- // Input types\r
- "radio": createInputPseudo("radio"),\r
- "checkbox": createInputPseudo("checkbox"),\r
- "file": createInputPseudo("file"),\r
- "password": createInputPseudo("password"),\r
- "image": createInputPseudo("image"),\r
-\r
- "submit": createButtonPseudo("submit"),\r
- "reset": createButtonPseudo("reset"),\r
-\r
- "button": function( elem ) {\r
- var name = elem.nodeName.toLowerCase();\r
- return name === "input" && elem.type === "button" || name === "button";\r
- },\r
-\r
- "input": function( elem ) {\r
- return rinputs.test( elem.nodeName );\r
- },\r
-\r
- "focus": function( elem ) {\r
- var doc = elem.ownerDocument;\r
- return elem === doc.activeElement && (!doc.hasFocus || doc.hasFocus()) && !!(elem.type || elem.href);\r
- },\r
-\r
- "active": function( elem ) {\r
- return elem === elem.ownerDocument.activeElement;\r
- },\r
-\r
- // Positional types\r
- "first": createPositionalPseudo(function( matchIndexes, length, argument ) {\r
- return [ 0 ];\r
- }),\r
-\r
- "last": createPositionalPseudo(function( matchIndexes, length, argument ) {\r
- return [ length - 1 ];\r
- }),\r
-\r
- "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {\r
- return [ argument < 0 ? argument + length : argument ];\r
- }),\r
-\r
- "even": createPositionalPseudo(function( matchIndexes, length, argument ) {\r
- for ( var i = 0; i < length; i += 2 ) {\r
- matchIndexes.push( i );\r
- }\r
- return matchIndexes;\r
- }),\r
-\r
- "odd": createPositionalPseudo(function( matchIndexes, length, argument ) {\r
- for ( var i = 1; i < length; i += 2 ) {\r
- matchIndexes.push( i );\r
- }\r
- return matchIndexes;\r
- }),\r
-\r
- "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {\r
- for ( var i = argument < 0 ? argument + length : argument; --i >= 0; ) {\r
- matchIndexes.push( i );\r
- }\r
- return matchIndexes;\r
- }),\r
-\r
- "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {\r
- for ( var i = argument < 0 ? argument + length : argument; ++i < length; ) {\r
- matchIndexes.push( i );\r
- }\r
- return matchIndexes;\r
- })\r
- }\r
-};\r
-\r
-function siblingCheck( a, b, ret ) {\r
- if ( a === b ) {\r
- return ret;\r
- }\r
-\r
- var cur = a.nextSibling;\r
-\r
- while ( cur ) {\r
- if ( cur === b ) {\r
- return -1;\r
- }\r
-\r
- cur = cur.nextSibling;\r
- }\r
-\r
- return 1;\r
-}\r
-\r
-sortOrder = docElem.compareDocumentPosition ?\r
- function( a, b ) {\r
- if ( a === b ) {\r
- hasDuplicate = true;\r
- return 0;\r
- }\r
-\r
- return ( !a.compareDocumentPosition || !b.compareDocumentPosition ?\r
- a.compareDocumentPosition :\r
- a.compareDocumentPosition(b) & 4\r
- ) ? -1 : 1;\r
- } :\r
- function( a, b ) {\r
- // The nodes are identical, we can exit early\r
- if ( a === b ) {\r
- hasDuplicate = true;\r
- return 0;\r
-\r
- // Fallback to using sourceIndex (in IE) if it's available on both nodes\r
- } else if ( a.sourceIndex && b.sourceIndex ) {\r
- return a.sourceIndex - b.sourceIndex;\r
- }\r
-\r
- var al, bl,\r
- ap = [],\r
- bp = [],\r
- aup = a.parentNode,\r
- bup = b.parentNode,\r
- cur = aup;\r
-\r
- // If the nodes are siblings (or identical) we can do a quick check\r
- if ( aup === bup ) {\r
- return siblingCheck( a, b );\r
-\r
- // If no parents were found then the nodes are disconnected\r
- } else if ( !aup ) {\r
- return -1;\r
-\r
- } else if ( !bup ) {\r
- return 1;\r
- }\r
-\r
- // Otherwise they're somewhere else in the tree so we need\r
- // to build up a full list of the parentNodes for comparison\r
- while ( cur ) {\r
- ap.unshift( cur );\r
- cur = cur.parentNode;\r
- }\r
-\r
- cur = bup;\r
-\r
- while ( cur ) {\r
- bp.unshift( cur );\r
- cur = cur.parentNode;\r
- }\r
-\r
- al = ap.length;\r
- bl = bp.length;\r
-\r
- // Start walking down the tree looking for a discrepancy\r
- for ( var i = 0; i < al && i < bl; i++ ) {\r
- if ( ap[i] !== bp[i] ) {\r
- return siblingCheck( ap[i], bp[i] );\r
- }\r
- }\r
-\r
- // We ended someplace up the tree so do a sibling check\r
- return i === al ?\r
- siblingCheck( a, bp[i], -1 ) :\r
- siblingCheck( ap[i], b, 1 );\r
- };\r
-\r
-// Always assume the presence of duplicates if sort doesn't\r
-// pass them to our comparison function (as in Google Chrome).\r
-[0, 0].sort( sortOrder );\r
-baseHasDuplicate = !hasDuplicate;\r
-\r
-// Document sorting and removing duplicates\r
-Sizzle.uniqueSort = function( results ) {\r
- var elem,\r
- i = 1;\r
-\r
- hasDuplicate = baseHasDuplicate;\r
- results.sort( sortOrder );\r
-\r
- if ( hasDuplicate ) {\r
- for ( ; (elem = results[i]); i++ ) {\r
- if ( elem === results[ i - 1 ] ) {\r
- results.splice( i--, 1 );\r
- }\r
- }\r
- }\r
-\r
- return results;\r
-};\r
-\r
-Sizzle.error = function( msg ) {\r
- throw new Error( "Syntax error, unrecognized expression: " + msg );\r
-};\r
-\r
-function tokenize( selector, parseOnly ) {\r
- var matched, match, tokens, type, soFar, groups, preFilters,\r
- cached = tokenCache[ expando ][ selector ];\r
-\r
- if ( cached ) {\r
- return parseOnly ? 0 : cached.slice( 0 );\r
- }\r
-\r
- soFar = selector;\r
- groups = [];\r
- preFilters = Expr.preFilter;\r
-\r
- while ( soFar ) {\r
-\r
- // Comma and first run\r
- if ( !matched || (match = rcomma.exec( soFar )) ) {\r
- if ( match ) {\r
- soFar = soFar.slice( match[0].length );\r
- }\r
- groups.push( tokens = [] );\r
- }\r
-\r
- matched = false;\r
-\r
- // Combinators\r
- if ( (match = rcombinators.exec( soFar )) ) {\r
- tokens.push( matched = new Token( match.shift() ) );\r
- soFar = soFar.slice( matched.length );\r
-\r
- // Cast descendant combinators to space\r
- matched.type = match[0].replace( rtrim, " " );\r
- }\r
-\r
- // Filters\r
- for ( type in Expr.filter ) {\r
- if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\r
- // The last two arguments here are (context, xml) for backCompat\r
- (match = preFilters[ type ]( match, document, true ))) ) {\r
-\r
- tokens.push( matched = new Token( match.shift() ) );\r
- soFar = soFar.slice( matched.length );\r
- matched.type = type;\r
- matched.matches = match;\r
- }\r
- }\r
-\r
- if ( !matched ) {\r
- break;\r
- }\r
- }\r
-\r
- // Return the length of the invalid excess\r
- // if we're just parsing\r
- // Otherwise, throw an error or return tokens\r
- return parseOnly ?\r
- soFar.length :\r
- soFar ?\r
- Sizzle.error( selector ) :\r
- // Cache the tokens\r
- tokenCache( selector, groups ).slice( 0 );\r
-}\r
-\r
-function addCombinator( matcher, combinator, base ) {\r
- var dir = combinator.dir,\r
- checkNonElements = base && combinator.dir === "parentNode",\r
- doneName = done++;\r
-\r
- return combinator.first ?\r
- // Check against closest ancestor/preceding element\r
- function( elem, context, xml ) {\r
- while ( (elem = elem[ dir ]) ) {\r
- if ( checkNonElements || elem.nodeType === 1 ) {\r
- return matcher( elem, context, xml );\r
- }\r
- }\r
- } :\r
-\r
- // Check against all ancestor/preceding elements\r
- function( elem, context, xml ) {\r
- // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching\r
- if ( !xml ) {\r
- var cache,\r
- dirkey = dirruns + " " + doneName + " ",\r
- cachedkey = dirkey + cachedruns;\r
- while ( (elem = elem[ dir ]) ) {\r
- if ( checkNonElements || elem.nodeType === 1 ) {\r
- if ( (cache = elem[ expando ]) === cachedkey ) {\r
- return elem.sizset;\r
- } else if ( typeof cache === "string" && cache.indexOf(dirkey) === 0 ) {\r
- if ( elem.sizset ) {\r
- return elem;\r
- }\r
- } else {\r
- elem[ expando ] = cachedkey;\r
- if ( matcher( elem, context, xml ) ) {\r
- elem.sizset = true;\r
- return elem;\r
- }\r
- elem.sizset = false;\r
- }\r
- }\r
- }\r
- } else {\r
- while ( (elem = elem[ dir ]) ) {\r
- if ( checkNonElements || elem.nodeType === 1 ) {\r
- if ( matcher( elem, context, xml ) ) {\r
- return elem;\r
- }\r
- }\r
- }\r
- }\r
- };\r
-}\r
-\r
-function elementMatcher( matchers ) {\r
- return matchers.length > 1 ?\r
- function( elem, context, xml ) {\r
- var i = matchers.length;\r
- while ( i-- ) {\r
- if ( !matchers[i]( elem, context, xml ) ) {\r
- return false;\r
- }\r
- }\r
- return true;\r
- } :\r
- matchers[0];\r
-}\r
-\r
-function condense( unmatched, map, filter, context, xml ) {\r
- var elem,\r
- newUnmatched = [],\r
- i = 0,\r
- len = unmatched.length,\r
- mapped = map != null;\r
-\r
- for ( ; i < len; i++ ) {\r
- if ( (elem = unmatched[i]) ) {\r
- if ( !filter || filter( elem, context, xml ) ) {\r
- newUnmatched.push( elem );\r
- if ( mapped ) {\r
- map.push( i );\r
- }\r
- }\r
- }\r
- }\r
-\r
- return newUnmatched;\r
-}\r
-\r
-function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\r
- if ( postFilter && !postFilter[ expando ] ) {\r
- postFilter = setMatcher( postFilter );\r
- }\r
- if ( postFinder && !postFinder[ expando ] ) {\r
- postFinder = setMatcher( postFinder, postSelector );\r
- }\r
- return markFunction(function( seed, results, context, xml ) {\r
- // Positional selectors apply to seed elements, so it is invalid to follow them with relative ones\r
- if ( seed && postFinder ) {\r
- return;\r
- }\r
-\r
- var i, elem, postFilterIn,\r
- preMap = [],\r
- postMap = [],\r
- preexisting = results.length,\r
-\r
- // Get initial elements from seed or context\r
- elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [], seed ),\r
-\r
- // Prefilter to get matcher input, preserving a map for seed-results synchronization\r
- matcherIn = preFilter && ( seed || !selector ) ?\r
- condense( elems, preMap, preFilter, context, xml ) :\r
- elems,\r
-\r
- matcherOut = matcher ?\r
- // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\r
- postFinder || ( seed ? preFilter : preexisting || postFilter ) ?\r
-\r
- // ...intermediate processing is necessary\r
- [] :\r
-\r
- // ...otherwise use results directly\r
- results :\r
- matcherIn;\r
-\r
- // Find primary matches\r
- if ( matcher ) {\r
- matcher( matcherIn, matcherOut, context, xml );\r
- }\r
-\r
- // Apply postFilter\r
- if ( postFilter ) {\r
- postFilterIn = condense( matcherOut, postMap );\r
- postFilter( postFilterIn, [], context, xml );\r
-\r
- // Un-match failing elements by moving them back to matcherIn\r
- i = postFilterIn.length;\r
- while ( i-- ) {\r
- if ( (elem = postFilterIn[i]) ) {\r
- matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\r
- }\r
- }\r
- }\r
-\r
- // Keep seed and results synchronized\r
- if ( seed ) {\r
- // Ignore postFinder because it can't coexist with seed\r
- i = preFilter && matcherOut.length;\r
- while ( i-- ) {\r
- if ( (elem = matcherOut[i]) ) {\r
- seed[ preMap[i] ] = !(results[ preMap[i] ] = elem);\r
- }\r
- }\r
- } else {\r
- matcherOut = condense(\r
- matcherOut === results ?\r
- matcherOut.splice( preexisting, matcherOut.length ) :\r
- matcherOut\r
- );\r
- if ( postFinder ) {\r
- postFinder( null, results, matcherOut, xml );\r
- } else {\r
- push.apply( results, matcherOut );\r
- }\r
- }\r
- });\r
-}\r
-\r
-function matcherFromTokens( tokens ) {\r
- var checkContext, matcher, j,\r
- len = tokens.length,\r
- leadingRelative = Expr.relative[ tokens[0].type ],\r
- implicitRelative = leadingRelative || Expr.relative[" "],\r
- i = leadingRelative ? 1 : 0,\r
-\r
- // The foundational matcher ensures that elements are reachable from top-level context(s)\r
- matchContext = addCombinator( function( elem ) {\r
- return elem === checkContext;\r
- }, implicitRelative, true ),\r
- matchAnyContext = addCombinator( function( elem ) {\r
- return indexOf.call( checkContext, elem ) > -1;\r
- }, implicitRelative, true ),\r
- matchers = [ function( elem, context, xml ) {\r
- return ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\r
- (checkContext = context).nodeType ?\r
- matchContext( elem, context, xml ) :\r
- matchAnyContext( elem, context, xml ) );\r
- } ];\r
-\r
- for ( ; i < len; i++ ) {\r
- if ( (matcher = Expr.relative[ tokens[i].type ]) ) {\r
- matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\r
- } else {\r
- // The concatenated values are (context, xml) for backCompat\r
- matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\r
-\r
- // Return special upon seeing a positional matcher\r
- if ( matcher[ expando ] ) {\r
- // Find the next relative operator (if any) for proper handling\r
- j = ++i;\r
- for ( ; j < len; j++ ) {\r
- if ( Expr.relative[ tokens[j].type ] ) {\r
- break;\r
- }\r
- }\r
- return setMatcher(\r
- i > 1 && elementMatcher( matchers ),\r
- i > 1 && tokens.slice( 0, i - 1 ).join("").replace( rtrim, "$1" ),\r
- matcher,\r
- i < j && matcherFromTokens( tokens.slice( i, j ) ),\r
- j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\r
- j < len && tokens.join("")\r
- );\r
- }\r
- matchers.push( matcher );\r
- }\r
- }\r
-\r
- return elementMatcher( matchers );\r
-}\r
-\r
-function matcherFromGroupMatchers( elementMatchers, setMatchers ) {\r
- var bySet = setMatchers.length > 0,\r
- byElement = elementMatchers.length > 0,\r
- superMatcher = function( seed, context, xml, results, expandContext ) {\r
- var elem, j, matcher,\r
- setMatched = [],\r
- matchedCount = 0,\r
- i = "0",\r
- unmatched = seed && [],\r
- outermost = expandContext != null,\r
- contextBackup = outermostContext,\r
- // We must always have either seed elements or context\r
- elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ),\r
- // Nested matchers should use non-integer dirruns\r
- dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.E);\r
-\r
- if ( outermost ) {\r
- outermostContext = context !== document && context;\r
- cachedruns = superMatcher.el;\r
- }\r
-\r
- // Add elements passing elementMatchers directly to results\r
- for ( ; (elem = elems[i]) != null; i++ ) {\r
- if ( byElement && elem ) {\r
- for ( j = 0; (matcher = elementMatchers[j]); j++ ) {\r
- if ( matcher( elem, context, xml ) ) {\r
- results.push( elem );\r
- break;\r
- }\r
- }\r
- if ( outermost ) {\r
- dirruns = dirrunsUnique;\r
- cachedruns = ++superMatcher.el;\r
- }\r
- }\r
-\r
- // Track unmatched elements for set filters\r
- if ( bySet ) {\r
- // They will have gone through all possible matchers\r
- if ( (elem = !matcher && elem) ) {\r
- matchedCount--;\r
- }\r
-\r
- // Lengthen the array for every element, matched or not\r
- if ( seed ) {\r
- unmatched.push( elem );\r
- }\r
- }\r
- }\r
-\r
- // Apply set filters to unmatched elements\r
- matchedCount += i;\r
- if ( bySet && i !== matchedCount ) {\r
- for ( j = 0; (matcher = setMatchers[j]); j++ ) {\r
- matcher( unmatched, setMatched, context, xml );\r
- }\r
-\r
- if ( seed ) {\r
- // Reintegrate element matches to eliminate the need for sorting\r
- if ( matchedCount > 0 ) {\r
- while ( i-- ) {\r
- if ( !(unmatched[i] || setMatched[i]) ) {\r
- setMatched[i] = pop.call( results );\r
- }\r
- }\r
- }\r
-\r
- // Discard index placeholder values to get only actual matches\r
- setMatched = condense( setMatched );\r
- }\r
-\r
- // Add matches to results\r
- push.apply( results, setMatched );\r
-\r
- // Seedless set matches succeeding multiple successful matchers stipulate sorting\r
- if ( outermost && !seed && setMatched.length > 0 &&\r
- ( matchedCount + setMatchers.length ) > 1 ) {\r
-\r
- Sizzle.uniqueSort( results );\r
- }\r
- }\r
-\r
- // Override manipulation of globals by nested matchers\r
- if ( outermost ) {\r
- dirruns = dirrunsUnique;\r
- outermostContext = contextBackup;\r
- }\r
-\r
- return unmatched;\r
- };\r
-\r
- superMatcher.el = 0;\r
- return bySet ?\r
- markFunction( superMatcher ) :\r
- superMatcher;\r
-}\r
-\r
-compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) {\r
- var i,\r
- setMatchers = [],\r
- elementMatchers = [],\r
- cached = compilerCache[ expando ][ selector ];\r
-\r
- if ( !cached ) {\r
- // Generate a function of recursive functions that can be used to check each element\r
- if ( !group ) {\r
- group = tokenize( selector );\r
- }\r
- i = group.length;\r
- while ( i-- ) {\r
- cached = matcherFromTokens( group[i] );\r
- if ( cached[ expando ] ) {\r
- setMatchers.push( cached );\r
- } else {\r
- elementMatchers.push( cached );\r
- }\r
- }\r
-\r
- // Cache the compiled function\r
- cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\r
- }\r
- return cached;\r
-};\r
-\r
-function multipleContexts( selector, contexts, results, seed ) {\r
- var i = 0,\r
- len = contexts.length;\r
- for ( ; i < len; i++ ) {\r
- Sizzle( selector, contexts[i], results, seed );\r
- }\r
- return results;\r
-}\r
-\r
-function select( selector, context, results, seed, xml ) {\r
- var i, tokens, token, type, find,\r
- match = tokenize( selector ),\r
- j = match.length;\r
-\r
- if ( !seed ) {\r
- // Try to minimize operations if there is only one group\r
- if ( match.length === 1 ) {\r
-\r
- // Take a shortcut and set the context if the root selector is an ID\r
- tokens = match[0] = match[0].slice( 0 );\r
- if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&\r
- context.nodeType === 9 && !xml &&\r
- Expr.relative[ tokens[1].type ] ) {\r
-\r
- context = Expr.find["ID"]( token.matches[0].replace( rbackslash, "" ), context, xml )[0];\r
- if ( !context ) {\r
- return results;\r
- }\r
-\r
- selector = selector.slice( tokens.shift().length );\r
- }\r
-\r
- // Fetch a seed set for right-to-left matching\r
- for ( i = matchExpr["POS"].test( selector ) ? -1 : tokens.length - 1; i >= 0; i-- ) {\r
- token = tokens[i];\r
-\r
- // Abort if we hit a combinator\r
- if ( Expr.relative[ (type = token.type) ] ) {\r
- break;\r
- }\r
- if ( (find = Expr.find[ type ]) ) {\r
- // Search, expanding context for leading sibling combinators\r
- if ( (seed = find(\r
- token.matches[0].replace( rbackslash, "" ),\r
- rsibling.test( tokens[0].type ) && context.parentNode || context,\r
- xml\r
- )) ) {\r
-\r
- // If seed is empty or no tokens remain, we can return early\r
- tokens.splice( i, 1 );\r
- selector = seed.length && tokens.join("");\r
- if ( !selector ) {\r
- push.apply( results, slice.call( seed, 0 ) );\r
- return results;\r
- }\r
-\r
- break;\r
- }\r
- }\r
- }\r
- }\r
- }\r
-\r
- // Compile and execute a filtering function\r
- // Provide `match` to avoid retokenization if we modified the selector above\r
- compile( selector, match )(\r
- seed,\r
- context,\r
- xml,\r
- results,\r
- rsibling.test( selector )\r
- );\r
- return results;\r
-}\r
-\r
-if ( document.querySelectorAll ) {\r
- (function() {\r
- var disconnectedMatch,\r
- oldSelect = select,\r
- rescape = /'|\\/g,\r
- rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,\r
-\r
- // qSa(:focus) reports false when true (Chrome 21),\r
- // A support test would require too much code (would include document ready)\r
- rbuggyQSA = [":focus"],\r
-\r
- // matchesSelector(:focus) reports false when true (Chrome 21),\r
- // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\r
- // A support test would require too much code (would include document ready)\r
- // just skip matchesSelector for :active\r
- rbuggyMatches = [ ":active", ":focus" ],\r
- matches = docElem.matchesSelector ||\r
- docElem.mozMatchesSelector ||\r
- docElem.webkitMatchesSelector ||\r
- docElem.oMatchesSelector ||\r
- docElem.msMatchesSelector;\r
-\r
- // Build QSA regex\r
- // Regex strategy adopted from Diego Perini\r
- assert(function( div ) {\r
- // Select is set to empty string on purpose\r
- // This is to test IE's treatment of not explictly\r
- // setting a boolean content attribute,\r
- // since its presence should be enough\r
- // http://bugs.jquery.com/ticket/12359\r
- div.innerHTML = "<select><option selected=''></option></select>";\r
-\r
- // IE8 - Some boolean attributes are not treated correctly\r
- if ( !div.querySelectorAll("[selected]").length ) {\r
- rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" );\r
- }\r
-\r
- // Webkit/Opera - :checked should return selected option elements\r
- // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\r
- // IE8 throws error here (do not put tests after this one)\r
- if ( !div.querySelectorAll(":checked").length ) {\r
- rbuggyQSA.push(":checked");\r
- }\r
- });\r
-\r
- assert(function( div ) {\r
-\r
- // Opera 10-12/IE9 - ^= $= *= and empty values\r
- // Should not select anything\r
- div.innerHTML = "<p test=''></p>";\r
- if ( div.querySelectorAll("[test^='']").length ) {\r
- rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" );\r
- }\r
-\r
- // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\r
- // IE8 throws error here (do not put tests after this one)\r
- div.innerHTML = "<input type='hidden'/>";\r
- if ( !div.querySelectorAll(":enabled").length ) {\r
- rbuggyQSA.push(":enabled", ":disabled");\r
- }\r
- });\r
-\r
- // rbuggyQSA always contains :focus, so no need for a length check\r
- rbuggyQSA = /* rbuggyQSA.length && */ new RegExp( rbuggyQSA.join("|") );\r
-\r
- select = function( selector, context, results, seed, xml ) {\r
- // Only use querySelectorAll when not filtering,\r
- // when this is not xml,\r
- // and when no QSA bugs apply\r
- if ( !seed && !xml && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\r
- var groups, i,\r
- old = true,\r
- nid = expando,\r
- newContext = context,\r
- newSelector = context.nodeType === 9 && selector;\r
-\r
- // qSA works strangely on Element-rooted queries\r
- // We can work around this by specifying an extra ID on the root\r
- // and working up from there (Thanks to Andrew Dupont for the technique)\r
- // IE 8 doesn't work on object elements\r
- if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {\r
- groups = tokenize( selector );\r
-\r
- if ( (old = context.getAttribute("id")) ) {\r
- nid = old.replace( rescape, "\\$&" );\r
- } else {\r
- context.setAttribute( "id", nid );\r
- }\r
- nid = "[id='" + nid + "'] ";\r
-\r
- i = groups.length;\r
- while ( i-- ) {\r
- groups[i] = nid + groups[i].join("");\r
- }\r
- newContext = rsibling.test( selector ) && context.parentNode || context;\r
- newSelector = groups.join(",");\r
- }\r
-\r
- if ( newSelector ) {\r
- try {\r
- push.apply( results, slice.call( newContext.querySelectorAll(\r
- newSelector\r
- ), 0 ) );\r
- return results;\r
- } catch(qsaError) {\r
- } finally {\r
- if ( !old ) {\r
- context.removeAttribute("id");\r
- }\r
- }\r
- }\r
- }\r
-\r
- return oldSelect( selector, context, results, seed, xml );\r
- };\r
-\r
- if ( matches ) {\r
- assert(function( div ) {\r
- // Check to see if it's possible to do matchesSelector\r
- // on a disconnected node (IE 9)\r
- disconnectedMatch = matches.call( div, "div" );\r
-\r
- // This should fail with an exception\r
- // Gecko does not error, returns false instead\r
- try {\r
- matches.call( div, "[test!='']:sizzle" );\r
- rbuggyMatches.push( "!=", pseudos );\r
- } catch ( e ) {}\r
- });\r
-\r
- // rbuggyMatches always contains :active and :focus, so no need for a length check\r
- rbuggyMatches = /* rbuggyMatches.length && */ new RegExp( rbuggyMatches.join("|") );\r
-\r
- Sizzle.matchesSelector = function( elem, expr ) {\r
- // Make sure that attribute selectors are quoted\r
- expr = expr.replace( rattributeQuotes, "='$1']" );\r
-\r
- // rbuggyMatches always contains :active, so no need for an existence check\r
- if ( !isXML( elem ) && !rbuggyMatches.test( expr ) && (!rbuggyQSA || !rbuggyQSA.test( expr )) ) {\r
- try {\r
- var ret = matches.call( elem, expr );\r
-\r
- // IE 9's matchesSelector returns false on disconnected nodes\r
- if ( ret || disconnectedMatch ||\r
- // As well, disconnected nodes are said to be in a document\r
- // fragment in IE 9\r
- elem.document && elem.document.nodeType !== 11 ) {\r
- return ret;\r
- }\r
- } catch(e) {}\r
- }\r
-\r
- return Sizzle( expr, null, null, [ elem ] ).length > 0;\r
- };\r
- }\r
- })();\r
-}\r
-\r
-// Deprecated\r
-Expr.pseudos["nth"] = Expr.pseudos["eq"];\r
-\r
-// Back-compat\r
-function setFilters() {}\r
-Expr.filters = setFilters.prototype = Expr.pseudos;\r
-Expr.setFilters = new setFilters();\r
-\r
+/*!
+ * Sizzle CSS Selector Engine
+ * Copyright 2012 jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://sizzlejs.com/
+ */
+(function( window, undefined ) {
+
+var cachedruns,
+ assertGetIdNotName,
+ Expr,
+ getText,
+ isXML,
+ contains,
+ compile,
+ sortOrder,
+ hasDuplicate,
+ outermostContext,
+
+ baseHasDuplicate = true,
+ strundefined = "undefined",
+
+ expando = ( "sizcache" + Math.random() ).replace( ".", "" ),
+
+ Token = String,
+ document = window.document,
+ docElem = document.documentElement,
+ dirruns = 0,
+ done = 0,
+ pop = [].pop,
+ push = [].push,
+ slice = [].slice,
+ // Use a stripped-down indexOf if a native one is unavailable
+ indexOf = [].indexOf || function( elem ) {
+ var i = 0,
+ len = this.length;
+ for ( ; i < len; i++ ) {
+ if ( this[i] === elem ) {
+ return i;
+ }
+ }
+ return -1;
+ },
+
+ // Augment a function for special use by Sizzle
+ markFunction = function( fn, value ) {
+ fn[ expando ] = value == null || value;
+ return fn;
+ },
+
+ createCache = function() {
+ var cache = {},
+ keys = [];
+
+ return markFunction(function( key, value ) {
+ // Only keep the most recent entries
+ if ( keys.push( key ) > Expr.cacheLength ) {
+ delete cache[ keys.shift() ];
+ }
+
+ return (cache[ key ] = value);
+ }, cache );
+ },
+
+ classCache = createCache(),
+ tokenCache = createCache(),
+ compilerCache = createCache(),
+
+ // Regex
+
+ // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace
+ whitespace = "[\\x20\\t\\r\\n\\f]",
+ // http://www.w3.org/TR/css3-syntax/#characters
+ characterEncoding = "(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",
+
+ // Loosely modeled on CSS identifier characters
+ // An unquoted value should be a CSS identifier (http://www.w3.org/TR/css3-selectors/#attribute-selectors)
+ // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+ identifier = characterEncoding.replace( "w", "w#" ),
+
+ // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors
+ operators = "([*^$|!~]?=)",
+ attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace +
+ "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]",
+
+ // Prefer arguments not in parens/brackets,
+ // then attribute selectors and non-pseudos (denoted by :),
+ // then anything else
+ // These preferences are here to reduce the number of selectors
+ // needing tokenize in the PSEUDO preFilter
+ pseudos = ":(" + characterEncoding + ")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:" + attributes + ")|[^:]|\\\\.)*|.*))\\)|)",
+
+ // For matchExpr.POS and matchExpr.needsContext
+ pos = ":(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace +
+ "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)",
+
+ // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+ rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+ rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+ rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ),
+ rpseudo = new RegExp( pseudos ),
+
+ // Easily-parseable/retrievable ID or TAG or CLASS selectors
+ rquickExpr = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,
+
+ rnot = /^:not/,
+ rsibling = /[\x20\t\r\n\f]*[+~]/,
+ rendsWithNot = /:not\($/,
+
+ rheader = /h\d/i,
+ rinputs = /input|select|textarea|button/i,
+
+ rbackslash = /\\(?!\\)/g,
+
+ matchExpr = {
+ "ID": new RegExp( "^#(" + characterEncoding + ")" ),
+ "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),
+ "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ),
+ "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ),
+ "ATTR": new RegExp( "^" + attributes ),
+ "PSEUDO": new RegExp( "^" + pseudos ),
+ "POS": new RegExp( pos, "i" ),
+ "CHILD": new RegExp( "^:(only|nth|first|last)-child(?:\\(" + whitespace +
+ "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+ "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+ // For use in libraries implementing .is()
+ "needsContext": new RegExp( "^" + whitespace + "*[>+~]|" + pos, "i" )
+ },
+
+ // Support
+
+ // Used for testing something on an element
+ assert = function( fn ) {
+ var div = document.createElement("div");
+
+ try {
+ return fn( div );
+ } catch (e) {
+ return false;
+ } finally {
+ // release memory in IE
+ div = null;
+ }
+ },
+
+ // Check if getElementsByTagName("*") returns only elements
+ assertTagNameNoComments = assert(function( div ) {
+ div.appendChild( document.createComment("") );
+ return !div.getElementsByTagName("*").length;
+ }),
+
+ // Check if getAttribute returns normalized href attributes
+ assertHrefNotNormalized = assert(function( div ) {
+ div.innerHTML = "<a href='#'></a>";
+ return div.firstChild && typeof div.firstChild.getAttribute !== strundefined &&
+ div.firstChild.getAttribute("href") === "#";
+ }),
+
+ // Check if attributes should be retrieved by attribute nodes
+ assertAttributes = assert(function( div ) {
+ div.innerHTML = "<select></select>";
+ var type = typeof div.lastChild.getAttribute("multiple");
+ // IE8 returns a string for some attributes even when not present
+ return type !== "boolean" && type !== "string";
+ }),
+
+ // Check if getElementsByClassName can be trusted
+ assertUsableClassName = assert(function( div ) {
+ // Opera can't find a second classname (in 9.6)
+ div.innerHTML = "<div class='hidden e'></div><div class='hidden'></div>";
+ if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) {
+ return false;
+ }
+
+ // Safari 3.2 caches class attributes and doesn't catch changes
+ div.lastChild.className = "e";
+ return div.getElementsByClassName("e").length === 2;
+ }),
+
+ // Check if getElementById returns elements by name
+ // Check if getElementsByName privileges form controls or returns elements by ID
+ assertUsableName = assert(function( div ) {
+ // Inject content
+ div.id = expando + 0;
+ div.innerHTML = "<a name='" + expando + "'></a><div name='" + expando + "'></div>";
+ docElem.insertBefore( div, docElem.firstChild );
+
+ // Test
+ var pass = document.getElementsByName &&
+ // buggy browsers will return fewer than the correct 2
+ document.getElementsByName( expando ).length === 2 +
+ // buggy browsers will return more than the correct 0
+ document.getElementsByName( expando + 0 ).length;
+ assertGetIdNotName = !document.getElementById( expando );
+
+ // Cleanup
+ docElem.removeChild( div );
+
+ return pass;
+ });
+
+// If slice is not available, provide a backup
+try {
+ slice.call( docElem.childNodes, 0 )[0].nodeType;
+} catch ( e ) {
+ slice = function( i ) {
+ var elem,
+ results = [];
+ for ( ; (elem = this[i]); i++ ) {
+ results.push( elem );
+ }
+ return results;
+ };
+}
+
+function Sizzle( selector, context, results, seed ) {
+ results = results || [];
+ context = context || document;
+ var match, elem, xml, m,
+ nodeType = context.nodeType;
+
+ if ( !selector || typeof selector !== "string" ) {
+ return results;
+ }
+
+ if ( nodeType !== 1 && nodeType !== 9 ) {
+ return [];
+ }
+
+ xml = isXML( context );
+
+ if ( !xml && !seed ) {
+ if ( (match = rquickExpr.exec( selector )) ) {
+ // Speed-up: Sizzle("#ID")
+ if ( (m = match[1]) ) {
+ if ( nodeType === 9 ) {
+ elem = context.getElementById( m );
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ if ( elem && elem.parentNode ) {
+ // Handle the case where IE, Opera, and Webkit return items
+ // by name instead of ID
+ if ( elem.id === m ) {
+ results.push( elem );
+ return results;
+ }
+ } else {
+ return results;
+ }
+ } else {
+ // Context is not a document
+ if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
+ contains( context, elem ) && elem.id === m ) {
+ results.push( elem );
+ return results;
+ }
+ }
+
+ // Speed-up: Sizzle("TAG")
+ } else if ( match[2] ) {
+ push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) );
+ return results;
+
+ // Speed-up: Sizzle(".CLASS")
+ } else if ( (m = match[3]) && assertUsableClassName && context.getElementsByClassName ) {
+ push.apply( results, slice.call(context.getElementsByClassName( m ), 0) );
+ return results;
+ }
+ }
+ }
+
+ // All others
+ return select( selector.replace( rtrim, "$1" ), context, results, seed, xml );
+}
+
+Sizzle.matches = function( expr, elements ) {
+ return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+ return Sizzle( expr, null, null, [ elem ] ).length > 0;
+};
+
+// Returns a function to use in pseudos for input types
+function createInputPseudo( type ) {
+ return function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && elem.type === type;
+ };
+}
+
+// Returns a function to use in pseudos for buttons
+function createButtonPseudo( type ) {
+ return function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return (name === "input" || name === "button") && elem.type === type;
+ };
+}
+
+// Returns a function to use in pseudos for positionals
+function createPositionalPseudo( fn ) {
+ return markFunction(function( argument ) {
+ argument = +argument;
+ return markFunction(function( seed, matches ) {
+ var j,
+ matchIndexes = fn( [], seed.length, argument ),
+ i = matchIndexes.length;
+
+ // Match elements found at the specified indexes
+ while ( i-- ) {
+ if ( seed[ (j = matchIndexes[i]) ] ) {
+ seed[j] = !(matches[j] = seed[j]);
+ }
+ }
+ });
+ });
+}
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+ var node,
+ ret = "",
+ i = 0,
+ nodeType = elem.nodeType;
+
+ if ( nodeType ) {
+ if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+ // Use textContent for elements
+ // innerText usage removed for consistency of new lines (see #11153)
+ if ( typeof elem.textContent === "string" ) {
+ return elem.textContent;
+ } else {
+ // Traverse its children
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+ ret += getText( elem );
+ }
+ }
+ } else if ( nodeType === 3 || nodeType === 4 ) {
+ return elem.nodeValue;
+ }
+ // Do not include comment or processing instruction nodes
+ } else {
+
+ // If no nodeType, this is expected to be an array
+ for ( ; (node = elem[i]); i++ ) {
+ // Do not traverse comment nodes
+ ret += getText( node );
+ }
+ }
+ return ret;
+};
+
+isXML = Sizzle.isXML = function( elem ) {
+ // documentElement is verified for cases where it doesn't yet exist
+ // (such as loading iframes in IE - #4833)
+ var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+// Element contains another
+contains = Sizzle.contains = docElem.contains ?
+ function( a, b ) {
+ var adown = a.nodeType === 9 ? a.documentElement : a,
+ bup = b && b.parentNode;
+ return a === bup || !!( bup && bup.nodeType === 1 && adown.contains && adown.contains(bup) );
+ } :
+ docElem.compareDocumentPosition ?
+ function( a, b ) {
+ return b && !!( a.compareDocumentPosition( b ) & 16 );
+ } :
+ function( a, b ) {
+ while ( (b = b.parentNode) ) {
+ if ( b === a ) {
+ return true;
+ }
+ }
+ return false;
+ };
+
+Sizzle.attr = function( elem, name ) {
+ var val,
+ xml = isXML( elem );
+
+ if ( !xml ) {
+ name = name.toLowerCase();
+ }
+ if ( (val = Expr.attrHandle[ name ]) ) {
+ return val( elem );
+ }
+ if ( xml || assertAttributes ) {
+ return elem.getAttribute( name );
+ }
+ val = elem.getAttributeNode( name );
+ return val ?
+ typeof elem[ name ] === "boolean" ?
+ elem[ name ] ? name : null :
+ val.specified ? val.value : null :
+ null;
+};
+
+Expr = Sizzle.selectors = {
+
+ // Can be adjusted by the user
+ cacheLength: 50,
+
+ createPseudo: markFunction,
+
+ match: matchExpr,
+
+ // IE6/7 return a modified href
+ attrHandle: assertHrefNotNormalized ?
+ {} :
+ {
+ "href": function( elem ) {
+ return elem.getAttribute( "href", 2 );
+ },
+ "type": function( elem ) {
+ return elem.getAttribute("type");
+ }
+ },
+
+ find: {
+ "ID": assertGetIdNotName ?
+ function( id, context, xml ) {
+ if ( typeof context.getElementById !== strundefined && !xml ) {
+ var m = context.getElementById( id );
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ return m && m.parentNode ? [m] : [];
+ }
+ } :
+ function( id, context, xml ) {
+ if ( typeof context.getElementById !== strundefined && !xml ) {
+ var m = context.getElementById( id );
+
+ return m ?
+ m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ?
+ [m] :
+ undefined :
+ [];
+ }
+ },
+
+ "TAG": assertTagNameNoComments ?
+ function( tag, context ) {
+ if ( typeof context.getElementsByTagName !== strundefined ) {
+ return context.getElementsByTagName( tag );
+ }
+ } :
+ function( tag, context ) {
+ var results = context.getElementsByTagName( tag );
+
+ // Filter out possible comments
+ if ( tag === "*" ) {
+ var elem,
+ tmp = [],
+ i = 0;
+
+ for ( ; (elem = results[i]); i++ ) {
+ if ( elem.nodeType === 1 ) {
+ tmp.push( elem );
+ }
+ }
+
+ return tmp;
+ }
+ return results;
+ },
+
+ "NAME": assertUsableName && function( tag, context ) {
+ if ( typeof context.getElementsByName !== strundefined ) {
+ return context.getElementsByName( name );
+ }
+ },
+
+ "CLASS": assertUsableClassName && function( className, context, xml ) {
+ if ( typeof context.getElementsByClassName !== strundefined && !xml ) {
+ return context.getElementsByClassName( className );
+ }
+ }
+ },
+
+ relative: {
+ ">": { dir: "parentNode", first: true },
+ " ": { dir: "parentNode" },
+ "+": { dir: "previousSibling", first: true },
+ "~": { dir: "previousSibling" }
+ },
+
+ preFilter: {
+ "ATTR": function( match ) {
+ match[1] = match[1].replace( rbackslash, "" );
+
+ // Move the given value to match[3] whether quoted or unquoted
+ match[3] = ( match[4] || match[5] || "" ).replace( rbackslash, "" );
+
+ if ( match[2] === "~=" ) {
+ match[3] = " " + match[3] + " ";
+ }
+
+ return match.slice( 0, 4 );
+ },
+
+ "CHILD": function( match ) {
+ /* matches from matchExpr["CHILD"]
+ 1 type (only|nth|...)
+ 2 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+ 3 xn-component of xn+y argument ([+-]?\d*n|)
+ 4 sign of xn-component
+ 5 x of xn-component
+ 6 sign of y-component
+ 7 y of y-component
+ */
+ match[1] = match[1].toLowerCase();
+
+ if ( match[1] === "nth" ) {
+ // nth-child requires argument
+ if ( !match[2] ) {
+ Sizzle.error( match[0] );
+ }
+
+ // numeric x and y parameters for Expr.filter.CHILD
+ // remember that false/true cast respectively to 0/1
+ match[3] = +( match[3] ? match[4] + (match[5] || 1) : 2 * ( match[2] === "even" || match[2] === "odd" ) );
+ match[4] = +( ( match[6] + match[7] ) || match[2] === "odd" );
+
+ // other types prohibit arguments
+ } else if ( match[2] ) {
+ Sizzle.error( match[0] );
+ }
+
+ return match;
+ },
+
+ "PSEUDO": function( match ) {
+ var unquoted, excess;
+ if ( matchExpr["CHILD"].test( match[0] ) ) {
+ return null;
+ }
+
+ if ( match[3] ) {
+ match[2] = match[3];
+ } else if ( (unquoted = match[4]) ) {
+ // Only check arguments that contain a pseudo
+ if ( rpseudo.test(unquoted) &&
+ // Get excess from tokenize (recursively)
+ (excess = tokenize( unquoted, true )) &&
+ // advance to the next closing parenthesis
+ (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+ // excess is a negative index
+ unquoted = unquoted.slice( 0, excess );
+ match[0] = match[0].slice( 0, excess );
+ }
+ match[2] = unquoted;
+ }
+
+ // Return only captures needed by the pseudo filter method (type and argument)
+ return match.slice( 0, 3 );
+ }
+ },
+
+ filter: {
+ "ID": assertGetIdNotName ?
+ function( id ) {
+ id = id.replace( rbackslash, "" );
+ return function( elem ) {
+ return elem.getAttribute("id") === id;
+ };
+ } :
+ function( id ) {
+ id = id.replace( rbackslash, "" );
+ return function( elem ) {
+ var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id");
+ return node && node.value === id;
+ };
+ },
+
+ "TAG": function( nodeName ) {
+ if ( nodeName === "*" ) {
+ return function() { return true; };
+ }
+ nodeName = nodeName.replace( rbackslash, "" ).toLowerCase();
+
+ return function( elem ) {
+ return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+ };
+ },
+
+ "CLASS": function( className ) {
+ var pattern = classCache[ expando ][ className ];
+ if ( !pattern ) {
+ pattern = classCache( className, new RegExp("(^|" + whitespace + ")" + className + "(" + whitespace + "|$)") );
+ }
+ return function( elem ) {
+ return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" );
+ };
+ },
+
+ "ATTR": function( name, operator, check ) {
+ return function( elem, context ) {
+ var result = Sizzle.attr( elem, name );
+
+ if ( result == null ) {
+ return operator === "!=";
+ }
+ if ( !operator ) {
+ return true;
+ }
+
+ result += "";
+
+ return operator === "=" ? result === check :
+ operator === "!=" ? result !== check :
+ operator === "^=" ? check && result.indexOf( check ) === 0 :
+ operator === "*=" ? check && result.indexOf( check ) > -1 :
+ operator === "$=" ? check && result.substr( result.length - check.length ) === check :
+ operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 :
+ operator === "|=" ? result === check || result.substr( 0, check.length + 1 ) === check + "-" :
+ false;
+ };
+ },
+
+ "CHILD": function( type, argument, first, last ) {
+
+ if ( type === "nth" ) {
+ return function( elem ) {
+ var node, diff,
+ parent = elem.parentNode;
+
+ if ( first === 1 && last === 0 ) {
+ return true;
+ }
+
+ if ( parent ) {
+ diff = 0;
+ for ( node = parent.firstChild; node; node = node.nextSibling ) {
+ if ( node.nodeType === 1 ) {
+ diff++;
+ if ( elem === node ) {
+ break;
+ }
+ }
+ }
+ }
+
+ // Incorporate the offset (or cast to NaN), then check against cycle size
+ diff -= last;
+ return diff === first || ( diff % first === 0 && diff / first >= 0 );
+ };
+ }
+
+ return function( elem ) {
+ var node = elem;
+
+ switch ( type ) {
+ case "only":
+ case "first":
+ while ( (node = node.previousSibling) ) {
+ if ( node.nodeType === 1 ) {
+ return false;
+ }
+ }
+
+ if ( type === "first" ) {
+ return true;
+ }
+
+ node = elem;
+
+ /* falls through */
+ case "last":
+ while ( (node = node.nextSibling) ) {
+ if ( node.nodeType === 1 ) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+ };
+ },
+
+ "PSEUDO": function( pseudo, argument ) {
+ // pseudo-class names are case-insensitive
+ // http://www.w3.org/TR/selectors/#pseudo-classes
+ // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+ // Remember that setFilters inherits from pseudos
+ var args,
+ fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+ Sizzle.error( "unsupported pseudo: " + pseudo );
+
+ // The user may use createPseudo to indicate that
+ // arguments are needed to create the filter function
+ // just as Sizzle does
+ if ( fn[ expando ] ) {
+ return fn( argument );
+ }
+
+ // But maintain support for old signatures
+ if ( fn.length > 1 ) {
+ args = [ pseudo, pseudo, "", argument ];
+ return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+ markFunction(function( seed, matches ) {
+ var idx,
+ matched = fn( seed, argument ),
+ i = matched.length;
+ while ( i-- ) {
+ idx = indexOf.call( seed, matched[i] );
+ seed[ idx ] = !( matches[ idx ] = matched[i] );
+ }
+ }) :
+ function( elem ) {
+ return fn( elem, 0, args );
+ };
+ }
+
+ return fn;
+ }
+ },
+
+ pseudos: {
+ "not": markFunction(function( selector ) {
+ // Trim the selector passed to compile
+ // to avoid treating leading and trailing
+ // spaces as combinators
+ var input = [],
+ results = [],
+ matcher = compile( selector.replace( rtrim, "$1" ) );
+
+ return matcher[ expando ] ?
+ markFunction(function( seed, matches, context, xml ) {
+ var elem,
+ unmatched = matcher( seed, null, xml, [] ),
+ i = seed.length;
+
+ // Match elements unmatched by `matcher`
+ while ( i-- ) {
+ if ( (elem = unmatched[i]) ) {
+ seed[i] = !(matches[i] = elem);
+ }
+ }
+ }) :
+ function( elem, context, xml ) {
+ input[0] = elem;
+ matcher( input, null, xml, results );
+ return !results.pop();
+ };
+ }),
+
+ "has": markFunction(function( selector ) {
+ return function( elem ) {
+ return Sizzle( selector, elem ).length > 0;
+ };
+ }),
+
+ "contains": markFunction(function( text ) {
+ return function( elem ) {
+ return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+ };
+ }),
+
+ "enabled": function( elem ) {
+ return elem.disabled === false;
+ },
+
+ "disabled": function( elem ) {
+ return elem.disabled === true;
+ },
+
+ "checked": function( elem ) {
+ // In CSS3, :checked should return both checked and selected elements
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ var nodeName = elem.nodeName.toLowerCase();
+ return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+ },
+
+ "selected": function( elem ) {
+ // Accessing this property makes selected-by-default
+ // options in Safari work properly
+ if ( elem.parentNode ) {
+ elem.parentNode.selectedIndex;
+ }
+
+ return elem.selected === true;
+ },
+
+ "parent": function( elem ) {
+ return !Expr.pseudos["empty"]( elem );
+ },
+
+ "empty": function( elem ) {
+ // http://www.w3.org/TR/selectors/#empty-pseudo
+ // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)),
+ // not comment, processing instructions, or others
+ // Thanks to Diego Perini for the nodeName shortcut
+ // Greater than "@" means alpha characters (specifically not starting with "#" or "?")
+ var nodeType;
+ elem = elem.firstChild;
+ while ( elem ) {
+ if ( elem.nodeName > "@" || (nodeType = elem.nodeType) === 3 || nodeType === 4 ) {
+ return false;
+ }
+ elem = elem.nextSibling;
+ }
+ return true;
+ },
+
+ "header": function( elem ) {
+ return rheader.test( elem.nodeName );
+ },
+
+ "text": function( elem ) {
+ var type, attr;
+ // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
+ // use getAttribute instead to test this case
+ return elem.nodeName.toLowerCase() === "input" &&
+ (type = elem.type) === "text" &&
+ ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === type );
+ },
+
+ // Input types
+ "radio": createInputPseudo("radio"),
+ "checkbox": createInputPseudo("checkbox"),
+ "file": createInputPseudo("file"),
+ "password": createInputPseudo("password"),
+ "image": createInputPseudo("image"),
+
+ "submit": createButtonPseudo("submit"),
+ "reset": createButtonPseudo("reset"),
+
+ "button": function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && elem.type === "button" || name === "button";
+ },
+
+ "input": function( elem ) {
+ return rinputs.test( elem.nodeName );
+ },
+
+ "focus": function( elem ) {
+ var doc = elem.ownerDocument;
+ return elem === doc.activeElement && (!doc.hasFocus || doc.hasFocus()) && !!(elem.type || elem.href);
+ },
+
+ "active": function( elem ) {
+ return elem === elem.ownerDocument.activeElement;
+ },
+
+ // Positional types
+ "first": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ return [ 0 ];
+ }),
+
+ "last": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ return [ length - 1 ];
+ }),
+
+ "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ return [ argument < 0 ? argument + length : argument ];
+ }),
+
+ "even": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ for ( var i = 0; i < length; i += 2 ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "odd": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ for ( var i = 1; i < length; i += 2 ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ for ( var i = argument < 0 ? argument + length : argument; --i >= 0; ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ for ( var i = argument < 0 ? argument + length : argument; ++i < length; ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ })
+ }
+};
+
+function siblingCheck( a, b, ret ) {
+ if ( a === b ) {
+ return ret;
+ }
+
+ var cur = a.nextSibling;
+
+ while ( cur ) {
+ if ( cur === b ) {
+ return -1;
+ }
+
+ cur = cur.nextSibling;
+ }
+
+ return 1;
+}
+
+sortOrder = docElem.compareDocumentPosition ?
+ function( a, b ) {
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ return ( !a.compareDocumentPosition || !b.compareDocumentPosition ?
+ a.compareDocumentPosition :
+ a.compareDocumentPosition(b) & 4
+ ) ? -1 : 1;
+ } :
+ function( a, b ) {
+ // The nodes are identical, we can exit early
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+
+ // Fallback to using sourceIndex (in IE) if it's available on both nodes
+ } else if ( a.sourceIndex && b.sourceIndex ) {
+ return a.sourceIndex - b.sourceIndex;
+ }
+
+ var al, bl,
+ ap = [],
+ bp = [],
+ aup = a.parentNode,
+ bup = b.parentNode,
+ cur = aup;
+
+ // If the nodes are siblings (or identical) we can do a quick check
+ if ( aup === bup ) {
+ return siblingCheck( a, b );
+
+ // If no parents were found then the nodes are disconnected
+ } else if ( !aup ) {
+ return -1;
+
+ } else if ( !bup ) {
+ return 1;
+ }
+
+ // Otherwise they're somewhere else in the tree so we need
+ // to build up a full list of the parentNodes for comparison
+ while ( cur ) {
+ ap.unshift( cur );
+ cur = cur.parentNode;
+ }
+
+ cur = bup;
+
+ while ( cur ) {
+ bp.unshift( cur );
+ cur = cur.parentNode;
+ }
+
+ al = ap.length;
+ bl = bp.length;
+
+ // Start walking down the tree looking for a discrepancy
+ for ( var i = 0; i < al && i < bl; i++ ) {
+ if ( ap[i] !== bp[i] ) {
+ return siblingCheck( ap[i], bp[i] );
+ }
+ }
+
+ // We ended someplace up the tree so do a sibling check
+ return i === al ?
+ siblingCheck( a, bp[i], -1 ) :
+ siblingCheck( ap[i], b, 1 );
+ };
+
+// Always assume the presence of duplicates if sort doesn't
+// pass them to our comparison function (as in Google Chrome).
+[0, 0].sort( sortOrder );
+baseHasDuplicate = !hasDuplicate;
+
+// Document sorting and removing duplicates
+Sizzle.uniqueSort = function( results ) {
+ var elem,
+ i = 1;
+
+ hasDuplicate = baseHasDuplicate;
+ results.sort( sortOrder );
+
+ if ( hasDuplicate ) {
+ for ( ; (elem = results[i]); i++ ) {
+ if ( elem === results[ i - 1 ] ) {
+ results.splice( i--, 1 );
+ }
+ }
+ }
+
+ return results;
+};
+
+Sizzle.error = function( msg ) {
+ throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+function tokenize( selector, parseOnly ) {
+ var matched, match, tokens, type, soFar, groups, preFilters,
+ cached = tokenCache[ expando ][ selector ];
+
+ if ( cached ) {
+ return parseOnly ? 0 : cached.slice( 0 );
+ }
+
+ soFar = selector;
+ groups = [];
+ preFilters = Expr.preFilter;
+
+ while ( soFar ) {
+
+ // Comma and first run
+ if ( !matched || (match = rcomma.exec( soFar )) ) {
+ if ( match ) {
+ soFar = soFar.slice( match[0].length );
+ }
+ groups.push( tokens = [] );
+ }
+
+ matched = false;
+
+ // Combinators
+ if ( (match = rcombinators.exec( soFar )) ) {
+ tokens.push( matched = new Token( match.shift() ) );
+ soFar = soFar.slice( matched.length );
+
+ // Cast descendant combinators to space
+ matched.type = match[0].replace( rtrim, " " );
+ }
+
+ // Filters
+ for ( type in Expr.filter ) {
+ if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+ // The last two arguments here are (context, xml) for backCompat
+ (match = preFilters[ type ]( match, document, true ))) ) {
+
+ tokens.push( matched = new Token( match.shift() ) );
+ soFar = soFar.slice( matched.length );
+ matched.type = type;
+ matched.matches = match;
+ }
+ }
+
+ if ( !matched ) {
+ break;
+ }
+ }
+
+ // Return the length of the invalid excess
+ // if we're just parsing
+ // Otherwise, throw an error or return tokens
+ return parseOnly ?
+ soFar.length :
+ soFar ?
+ Sizzle.error( selector ) :
+ // Cache the tokens
+ tokenCache( selector, groups ).slice( 0 );
+}
+
+function addCombinator( matcher, combinator, base ) {
+ var dir = combinator.dir,
+ checkNonElements = base && combinator.dir === "parentNode",
+ doneName = done++;
+
+ return combinator.first ?
+ // Check against closest ancestor/preceding element
+ function( elem, context, xml ) {
+ while ( (elem = elem[ dir ]) ) {
+ if ( checkNonElements || elem.nodeType === 1 ) {
+ return matcher( elem, context, xml );
+ }
+ }
+ } :
+
+ // Check against all ancestor/preceding elements
+ function( elem, context, xml ) {
+ // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching
+ if ( !xml ) {
+ var cache,
+ dirkey = dirruns + " " + doneName + " ",
+ cachedkey = dirkey + cachedruns;
+ while ( (elem = elem[ dir ]) ) {
+ if ( checkNonElements || elem.nodeType === 1 ) {
+ if ( (cache = elem[ expando ]) === cachedkey ) {
+ return elem.sizset;
+ } else if ( typeof cache === "string" && cache.indexOf(dirkey) === 0 ) {
+ if ( elem.sizset ) {
+ return elem;
+ }
+ } else {
+ elem[ expando ] = cachedkey;
+ if ( matcher( elem, context, xml ) ) {
+ elem.sizset = true;
+ return elem;
+ }
+ elem.sizset = false;
+ }
+ }
+ }
+ } else {
+ while ( (elem = elem[ dir ]) ) {
+ if ( checkNonElements || elem.nodeType === 1 ) {
+ if ( matcher( elem, context, xml ) ) {
+ return elem;
+ }
+ }
+ }
+ }
+ };
+}
+
+function elementMatcher( matchers ) {
+ return matchers.length > 1 ?
+ function( elem, context, xml ) {
+ var i = matchers.length;
+ while ( i-- ) {
+ if ( !matchers[i]( elem, context, xml ) ) {
+ return false;
+ }
+ }
+ return true;
+ } :
+ matchers[0];
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+ var elem,
+ newUnmatched = [],
+ i = 0,
+ len = unmatched.length,
+ mapped = map != null;
+
+ for ( ; i < len; i++ ) {
+ if ( (elem = unmatched[i]) ) {
+ if ( !filter || filter( elem, context, xml ) ) {
+ newUnmatched.push( elem );
+ if ( mapped ) {
+ map.push( i );
+ }
+ }
+ }
+ }
+
+ return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+ if ( postFilter && !postFilter[ expando ] ) {
+ postFilter = setMatcher( postFilter );
+ }
+ if ( postFinder && !postFinder[ expando ] ) {
+ postFinder = setMatcher( postFinder, postSelector );
+ }
+ return markFunction(function( seed, results, context, xml ) {
+ // Positional selectors apply to seed elements, so it is invalid to follow them with relative ones
+ if ( seed && postFinder ) {
+ return;
+ }
+
+ var i, elem, postFilterIn,
+ preMap = [],
+ postMap = [],
+ preexisting = results.length,
+
+ // Get initial elements from seed or context
+ elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [], seed ),
+
+ // Prefilter to get matcher input, preserving a map for seed-results synchronization
+ matcherIn = preFilter && ( seed || !selector ) ?
+ condense( elems, preMap, preFilter, context, xml ) :
+ elems,
+
+ matcherOut = matcher ?
+ // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+ postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+ // ...intermediate processing is necessary
+ [] :
+
+ // ...otherwise use results directly
+ results :
+ matcherIn;
+
+ // Find primary matches
+ if ( matcher ) {
+ matcher( matcherIn, matcherOut, context, xml );
+ }
+
+ // Apply postFilter
+ if ( postFilter ) {
+ postFilterIn = condense( matcherOut, postMap );
+ postFilter( postFilterIn, [], context, xml );
+
+ // Un-match failing elements by moving them back to matcherIn
+ i = postFilterIn.length;
+ while ( i-- ) {
+ if ( (elem = postFilterIn[i]) ) {
+ matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+ }
+ }
+ }
+
+ // Keep seed and results synchronized
+ if ( seed ) {
+ // Ignore postFinder because it can't coexist with seed
+ i = preFilter && matcherOut.length;
+ while ( i-- ) {
+ if ( (elem = matcherOut[i]) ) {
+ seed[ preMap[i] ] = !(results[ preMap[i] ] = elem);
+ }
+ }
+ } else {
+ matcherOut = condense(
+ matcherOut === results ?
+ matcherOut.splice( preexisting, matcherOut.length ) :
+ matcherOut
+ );
+ if ( postFinder ) {
+ postFinder( null, results, matcherOut, xml );
+ } else {
+ push.apply( results, matcherOut );
+ }
+ }
+ });
+}
+
+function matcherFromTokens( tokens ) {
+ var checkContext, matcher, j,
+ len = tokens.length,
+ leadingRelative = Expr.relative[ tokens[0].type ],
+ implicitRelative = leadingRelative || Expr.relative[" "],
+ i = leadingRelative ? 1 : 0,
+
+ // The foundational matcher ensures that elements are reachable from top-level context(s)
+ matchContext = addCombinator( function( elem ) {
+ return elem === checkContext;
+ }, implicitRelative, true ),
+ matchAnyContext = addCombinator( function( elem ) {
+ return indexOf.call( checkContext, elem ) > -1;
+ }, implicitRelative, true ),
+ matchers = [ function( elem, context, xml ) {
+ return ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+ (checkContext = context).nodeType ?
+ matchContext( elem, context, xml ) :
+ matchAnyContext( elem, context, xml ) );
+ } ];
+
+ for ( ; i < len; i++ ) {
+ if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+ matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];
+ } else {
+ // The concatenated values are (context, xml) for backCompat
+ matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+ // Return special upon seeing a positional matcher
+ if ( matcher[ expando ] ) {
+ // Find the next relative operator (if any) for proper handling
+ j = ++i;
+ for ( ; j < len; j++ ) {
+ if ( Expr.relative[ tokens[j].type ] ) {
+ break;
+ }
+ }
+ return setMatcher(
+ i > 1 && elementMatcher( matchers ),
+ i > 1 && tokens.slice( 0, i - 1 ).join("").replace( rtrim, "$1" ),
+ matcher,
+ i < j && matcherFromTokens( tokens.slice( i, j ) ),
+ j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+ j < len && tokens.join("")
+ );
+ }
+ matchers.push( matcher );
+ }
+ }
+
+ return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+ var bySet = setMatchers.length > 0,
+ byElement = elementMatchers.length > 0,
+ superMatcher = function( seed, context, xml, results, expandContext ) {
+ var elem, j, matcher,
+ setMatched = [],
+ matchedCount = 0,
+ i = "0",
+ unmatched = seed && [],
+ outermost = expandContext != null,
+ contextBackup = outermostContext,
+ // We must always have either seed elements or context
+ elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ),
+ // Nested matchers should use non-integer dirruns
+ dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.E);
+
+ if ( outermost ) {
+ outermostContext = context !== document && context;
+ cachedruns = superMatcher.el;
+ }
+
+ // Add elements passing elementMatchers directly to results
+ for ( ; (elem = elems[i]) != null; i++ ) {
+ if ( byElement && elem ) {
+ for ( j = 0; (matcher = elementMatchers[j]); j++ ) {
+ if ( matcher( elem, context, xml ) ) {
+ results.push( elem );
+ break;
+ }
+ }
+ if ( outermost ) {
+ dirruns = dirrunsUnique;
+ cachedruns = ++superMatcher.el;
+ }
+ }
+
+ // Track unmatched elements for set filters
+ if ( bySet ) {
+ // They will have gone through all possible matchers
+ if ( (elem = !matcher && elem) ) {
+ matchedCount--;
+ }
+
+ // Lengthen the array for every element, matched or not
+ if ( seed ) {
+ unmatched.push( elem );
+ }
+ }
+ }
+
+ // Apply set filters to unmatched elements
+ matchedCount += i;
+ if ( bySet && i !== matchedCount ) {
+ for ( j = 0; (matcher = setMatchers[j]); j++ ) {
+ matcher( unmatched, setMatched, context, xml );
+ }
+
+ if ( seed ) {
+ // Reintegrate element matches to eliminate the need for sorting
+ if ( matchedCount > 0 ) {
+ while ( i-- ) {
+ if ( !(unmatched[i] || setMatched[i]) ) {
+ setMatched[i] = pop.call( results );
+ }
+ }
+ }
+
+ // Discard index placeholder values to get only actual matches
+ setMatched = condense( setMatched );
+ }
+
+ // Add matches to results
+ push.apply( results, setMatched );
+
+ // Seedless set matches succeeding multiple successful matchers stipulate sorting
+ if ( outermost && !seed && setMatched.length > 0 &&
+ ( matchedCount + setMatchers.length ) > 1 ) {
+
+ Sizzle.uniqueSort( results );
+ }
+ }
+
+ // Override manipulation of globals by nested matchers
+ if ( outermost ) {
+ dirruns = dirrunsUnique;
+ outermostContext = contextBackup;
+ }
+
+ return unmatched;
+ };
+
+ superMatcher.el = 0;
+ return bySet ?
+ markFunction( superMatcher ) :
+ superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) {
+ var i,
+ setMatchers = [],
+ elementMatchers = [],
+ cached = compilerCache[ expando ][ selector ];
+
+ if ( !cached ) {
+ // Generate a function of recursive functions that can be used to check each element
+ if ( !group ) {
+ group = tokenize( selector );
+ }
+ i = group.length;
+ while ( i-- ) {
+ cached = matcherFromTokens( group[i] );
+ if ( cached[ expando ] ) {
+ setMatchers.push( cached );
+ } else {
+ elementMatchers.push( cached );
+ }
+ }
+
+ // Cache the compiled function
+ cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+ }
+ return cached;
+};
+
+function multipleContexts( selector, contexts, results, seed ) {
+ var i = 0,
+ len = contexts.length;
+ for ( ; i < len; i++ ) {
+ Sizzle( selector, contexts[i], results, seed );
+ }
+ return results;
+}
+
+function select( selector, context, results, seed, xml ) {
+ var i, tokens, token, type, find,
+ match = tokenize( selector ),
+ j = match.length;
+
+ if ( !seed ) {
+ // Try to minimize operations if there is only one group
+ if ( match.length === 1 ) {
+
+ // Take a shortcut and set the context if the root selector is an ID
+ tokens = match[0] = match[0].slice( 0 );
+ if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+ context.nodeType === 9 && !xml &&
+ Expr.relative[ tokens[1].type ] ) {
+
+ context = Expr.find["ID"]( token.matches[0].replace( rbackslash, "" ), context, xml )[0];
+ if ( !context ) {
+ return results;
+ }
+
+ selector = selector.slice( tokens.shift().length );
+ }
+
+ // Fetch a seed set for right-to-left matching
+ for ( i = matchExpr["POS"].test( selector ) ? -1 : tokens.length - 1; i >= 0; i-- ) {
+ token = tokens[i];
+
+ // Abort if we hit a combinator
+ if ( Expr.relative[ (type = token.type) ] ) {
+ break;
+ }
+ if ( (find = Expr.find[ type ]) ) {
+ // Search, expanding context for leading sibling combinators
+ if ( (seed = find(
+ token.matches[0].replace( rbackslash, "" ),
+ rsibling.test( tokens[0].type ) && context.parentNode || context,
+ xml
+ )) ) {
+
+ // If seed is empty or no tokens remain, we can return early
+ tokens.splice( i, 1 );
+ selector = seed.length && tokens.join("");
+ if ( !selector ) {
+ push.apply( results, slice.call( seed, 0 ) );
+ return results;
+ }
+
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ // Compile and execute a filtering function
+ // Provide `match` to avoid retokenization if we modified the selector above
+ compile( selector, match )(
+ seed,
+ context,
+ xml,
+ results,
+ rsibling.test( selector )
+ );
+ return results;
+}
+
+if ( document.querySelectorAll ) {
+ (function() {
+ var disconnectedMatch,
+ oldSelect = select,
+ rescape = /'|\\/g,
+ rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,
+
+ // qSa(:focus) reports false when true (Chrome 21),
+ // A support test would require too much code (would include document ready)
+ rbuggyQSA = [":focus"],
+
+ // matchesSelector(:focus) reports false when true (Chrome 21),
+ // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+ // A support test would require too much code (would include document ready)
+ // just skip matchesSelector for :active
+ rbuggyMatches = [ ":active", ":focus" ],
+ matches = docElem.matchesSelector ||
+ docElem.mozMatchesSelector ||
+ docElem.webkitMatchesSelector ||
+ docElem.oMatchesSelector ||
+ docElem.msMatchesSelector;
+
+ // Build QSA regex
+ // Regex strategy adopted from Diego Perini
+ assert(function( div ) {
+ // Select is set to empty string on purpose
+ // This is to test IE's treatment of not explictly
+ // setting a boolean content attribute,
+ // since its presence should be enough
+ // http://bugs.jquery.com/ticket/12359
+ div.innerHTML = "<select><option selected=''></option></select>";
+
+ // IE8 - Some boolean attributes are not treated correctly
+ if ( !div.querySelectorAll("[selected]").length ) {
+ rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" );
+ }
+
+ // Webkit/Opera - :checked should return selected option elements
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ // IE8 throws error here (do not put tests after this one)
+ if ( !div.querySelectorAll(":checked").length ) {
+ rbuggyQSA.push(":checked");
+ }
+ });
+
+ assert(function( div ) {
+
+ // Opera 10-12/IE9 - ^= $= *= and empty values
+ // Should not select anything
+ div.innerHTML = "<p test=''></p>";
+ if ( div.querySelectorAll("[test^='']").length ) {
+ rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" );
+ }
+
+ // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+ // IE8 throws error here (do not put tests after this one)
+ div.innerHTML = "<input type='hidden'/>";
+ if ( !div.querySelectorAll(":enabled").length ) {
+ rbuggyQSA.push(":enabled", ":disabled");
+ }
+ });
+
+ // rbuggyQSA always contains :focus, so no need for a length check
+ rbuggyQSA = /* rbuggyQSA.length && */ new RegExp( rbuggyQSA.join("|") );
+
+ select = function( selector, context, results, seed, xml ) {
+ // Only use querySelectorAll when not filtering,
+ // when this is not xml,
+ // and when no QSA bugs apply
+ if ( !seed && !xml && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+ var groups, i,
+ old = true,
+ nid = expando,
+ newContext = context,
+ newSelector = context.nodeType === 9 && selector;
+
+ // qSA works strangely on Element-rooted queries
+ // We can work around this by specifying an extra ID on the root
+ // and working up from there (Thanks to Andrew Dupont for the technique)
+ // IE 8 doesn't work on object elements
+ if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
+ groups = tokenize( selector );
+
+ if ( (old = context.getAttribute("id")) ) {
+ nid = old.replace( rescape, "\\$&" );
+ } else {
+ context.setAttribute( "id", nid );
+ }
+ nid = "[id='" + nid + "'] ";
+
+ i = groups.length;
+ while ( i-- ) {
+ groups[i] = nid + groups[i].join("");
+ }
+ newContext = rsibling.test( selector ) && context.parentNode || context;
+ newSelector = groups.join(",");
+ }
+
+ if ( newSelector ) {
+ try {
+ push.apply( results, slice.call( newContext.querySelectorAll(
+ newSelector
+ ), 0 ) );
+ return results;
+ } catch(qsaError) {
+ } finally {
+ if ( !old ) {
+ context.removeAttribute("id");
+ }
+ }
+ }
+ }
+
+ return oldSelect( selector, context, results, seed, xml );
+ };
+
+ if ( matches ) {
+ assert(function( div ) {
+ // Check to see if it's possible to do matchesSelector
+ // on a disconnected node (IE 9)
+ disconnectedMatch = matches.call( div, "div" );
+
+ // This should fail with an exception
+ // Gecko does not error, returns false instead
+ try {
+ matches.call( div, "[test!='']:sizzle" );
+ rbuggyMatches.push( "!=", pseudos );
+ } catch ( e ) {}
+ });
+
+ // rbuggyMatches always contains :active and :focus, so no need for a length check
+ rbuggyMatches = /* rbuggyMatches.length && */ new RegExp( rbuggyMatches.join("|") );
+
+ Sizzle.matchesSelector = function( elem, expr ) {
+ // Make sure that attribute selectors are quoted
+ expr = expr.replace( rattributeQuotes, "='$1']" );
+
+ // rbuggyMatches always contains :active, so no need for an existence check
+ if ( !isXML( elem ) && !rbuggyMatches.test( expr ) && (!rbuggyQSA || !rbuggyQSA.test( expr )) ) {
+ try {
+ var ret = matches.call( elem, expr );
+
+ // IE 9's matchesSelector returns false on disconnected nodes
+ if ( ret || disconnectedMatch ||
+ // As well, disconnected nodes are said to be in a document
+ // fragment in IE 9
+ elem.document && elem.document.nodeType !== 11 ) {
+ return ret;
+ }
+ } catch(e) {}
+ }
+
+ return Sizzle( expr, null, null, [ elem ] ).length > 0;
+ };
+ }
+ })();
+}
+
+// Deprecated
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Back-compat
+function setFilters() {}
+Expr.filters = setFilters.prototype = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
// Override sizzle attribute retrieval
Sizzle.attr = jQuery.attr;
jQuery.find = Sizzle;
jQuery.text = Sizzle.getText;
jQuery.isXMLDoc = Sizzle.isXML;
jQuery.contains = Sizzle.contains;
-\r
-\r
-})( window );\r
+
+
+})( window );
var runtil = /Until$/,
rparentsprev = /^(?:parents|prev(?:Until|All))/,
isSimple = /^.[^:#\[\.,]*$/,
-/*! jQuery v1.8.2 jquery.com | jquery.org/license */\r
+/*! jQuery v1.8.2 jquery.com | jquery.org/license */
(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d<e;d++)p.event.add(b,c,h[c][d])}g.data&&(g.data=p.extend({},g.data))}function bE(a,b){var c;if(b.nodeType!==1)return;b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?(b.parentNode&&(b.outerHTML=a.outerHTML),p.support.html5Clone&&a.innerHTML&&!p.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):c==="input"&&bv.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text),b.removeAttribute(p.expando)}function bF(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bG(a){bv.test(a.type)&&(a.defaultChecked=a.checked)}function bY(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=bW.length;while(e--){b=bW[e]+c;if(b in a)return b}return d}function bZ(a,b){return a=b||a,p.css(a,"display")==="none"||!p.contains(a.ownerDocument,a)}function b$(a,b){var c,d,e=[],f=0,g=a.length;for(;f<g;f++){c=a[f];if(!c.style)continue;e[f]=p._data(c,"olddisplay"),b?(!e[f]&&c.style.display==="none"&&(c.style.display=""),c.style.display===""&&bZ(c)&&(e[f]=p._data(c,"olddisplay",cc(c.nodeName)))):(d=bH(c,"display"),!e[f]&&d!=="none"&&p._data(c,"olddisplay",d))}for(f=0;f<g;f++){c=a[f];if(!c.style)continue;if(!b||c.style.display==="none"||c.style.display==="")c.style.display=b?e[f]||"":"none"}return a}function b_(a,b,c){var d=bP.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function ca(a,b,c,d){var e=c===(d?"border":"content")?4:b==="width"?1:0,f=0;for(;e<4;e+=2)c==="margin"&&(f+=p.css(a,c+bV[e],!0)),d?(c==="content"&&(f-=parseFloat(bH(a,"padding"+bV[e]))||0),c!=="margin"&&(f-=parseFloat(bH(a,"border"+bV[e]+"Width"))||0)):(f+=parseFloat(bH(a,"padding"+bV[e]))||0,c!=="padding"&&(f+=parseFloat(bH(a,"border"+bV[e]+"Width"))||0));return f}function cb(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=!0,f=p.support.boxSizing&&p.css(a,"boxSizing")==="border-box";if(d<=0||d==null){d=bH(a,b);if(d<0||d==null)d=a.style[b];if(bQ.test(d))return d;e=f&&(p.support.boxSizingReliable||d===a.style[b]),d=parseFloat(d)||0}return d+ca(a,b,c||(f?"border":"content"),e)+"px"}function cc(a){if(bS[a])return bS[a];var b=p("<"+a+">").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write("<!doctype html><html><body>"),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bS[a]=c,c}function ci(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||ce.test(a)?d(a,e):ci(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ci(a+"["+e+"]",b[e],c,d);else d(a,b)}function cz(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h<i;h++)d=g[h],f=/^\+/.test(d),f&&(d=d.substr(1)||"*"),e=a[d]=a[d]||[],e[f?"unshift":"push"](c)}}function cA(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h,i=a[f],j=0,k=i?i.length:0,l=a===cv;for(;j<k&&(l||!h);j++)h=i[j](c,d,e),typeof h=="string"&&(!l||g[h]?h=b:(c.dataTypes.unshift(h),h=cA(a,c,d,e,h,g)));return(l||!h)&&!g["*"]&&(h=cA(a,c,d,e,"*",g)),h}function cB(a,c){var d,e,f=p.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((f[d]?a:e||(e={}))[d]=c[d]);e&&p.extend(!0,a,e)}function cC(a,c,d){var e,f,g,h,i=a.contents,j=a.dataTypes,k=a.responseFields;for(f in k)f in d&&(c[k[f]]=d[f]);while(j[0]==="*")j.shift(),e===b&&(e=a.mimeType||c.getResponseHeader("content-type"));if(e)for(f in i)if(i[f]&&i[f].test(e)){j.unshift(f);break}if(j[0]in d)g=j[0];else{for(f in d){if(!j[0]||a.converters[f+" "+j[0]]){g=f;break}h||(h=f)}g=g||h}if(g)return g!==j[0]&&j.unshift(g),d[g]}function cD(a,b){var c,d,e,f,g=a.dataTypes.slice(),h=g[0],i={},j=0;a.dataFilter&&(b=a.dataFilter(b,a.dataType));if(g[1])for(c in a.converters)i[c.toLowerCase()]=a.converters[c];for(;e=g[++j];)if(e!=="*"){if(h!=="*"&&h!==e){c=i[h+" "+e]||i["* "+e];if(!c)for(d in i){f=d.split(" ");if(f[1]===e){c=i[h+" "+f[0]]||i["* "+f[0]];if(c){c===!0?c=i[d]:i[d]!==!0&&(e=f[0],g.splice(j--,0,e));break}}}if(c!==!0)if(c&&a["throws"])b=c(b);else try{b=c(b)}catch(k){return{state:"parsererror",error:c?k:"No conversion from "+h+" to "+e}}}h=e}return{state:"success",data:b}}function cL(){try{return new a.XMLHttpRequest}catch(b){}}function cM(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function cU(){return setTimeout(function(){cN=b},0),cN=p.now()}function cV(a,b){p.each(b,function(b,c){var d=(cT[b]||[]).concat(cT["*"]),e=0,f=d.length;for(;e<f;e++)if(d[e].call(a,b,c))return})}function cW(a,b,c){var d,e=0,f=0,g=cS.length,h=p.Deferred().always(function(){delete i.elem}),i=function(){var b=cN||cU(),c=Math.max(0,j.startTime+j.duration-b),d=1-(c/j.duration||0),e=0,f=j.tweens.length;for(;e<f;e++)j.tweens[e].run(d);return h.notifyWith(a,[j,d,c]),d<1&&f?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:p.extend({},b),opts:p.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:cN||cU(),duration:c.duration,tweens:[],createTween:function(b,c,d){var e=p.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(e),e},stop:function(b){var c=0,d=b?j.tweens.length:0;for(;c<d;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;cX(k,j.opts.specialEasing);for(;e<g;e++){d=cS[e].call(j,a,k,j.opts);if(d)return d}return cV(j,k),p.isFunction(j.opts.start)&&j.opts.start.call(a,j),p.fx.timer(p.extend(i,{anim:j,queue:j.opts.queue,elem:a})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function cX(a,b){var c,d,e,f,g;for(c in a){d=p.camelCase(c),e=b[d],f=a[c],p.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=p.cssHooks[d];if(g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}}function cY(a,b,c){var d,e,f,g,h,i,j,k,l=this,m=a.style,n={},o=[],q=a.nodeType&&bZ(a);c.queue||(j=p._queueHooks(a,"fx"),j.unqueued==null&&(j.unqueued=0,k=j.empty.fire,j.empty.fire=function(){j.unqueued||k()}),j.unqueued++,l.always(function(){l.always(function(){j.unqueued--,p.queue(a,"fx").length||j.empty.fire()})})),a.nodeType===1&&("height"in b||"width"in b)&&(c.overflow=[m.overflow,m.overflowX,m.overflowY],p.css(a,"display")==="inline"&&p.css(a,"float")==="none"&&(!p.support.inlineBlockNeedsLayout||cc(a.nodeName)==="inline"?m.display="inline-block":m.zoom=1)),c.overflow&&(m.overflow="hidden",p.support.shrinkWrapBlocks||l.done(function(){m.overflow=c.overflow[0],m.overflowX=c.overflow[1],m.overflowY=c.overflow[2]}));for(d in b){f=b[d];if(cP.exec(f)){delete b[d];if(f===(q?"hide":"show"))continue;o.push(d)}}g=o.length;if(g){h=p._data(a,"fxshow")||p._data(a,"fxshow",{}),q?p(a).show():l.done(function(){p(a).hide()}),l.done(function(){var b;p.removeData(a,"fxshow",!0);for(b in n)p.style(a,b,n[b])});for(d=0;d<g;d++)e=o[d],i=l.createTween(e,q?h[e]:0),n[e]=h[e]||p.style(a,e),e in h||(h[e]=i.start,q&&(i.end=i.start,i.start=e==="width"||e==="height"?1:0))}}function cZ(a,b,c,d,e){return new cZ.prototype.init(a,b,c,d,e)}function c$(a,b){var c,d={height:a},e=0;b=b?1:0;for(;e<4;e+=2-b)c=bV[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function da(a){return p.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}var c,d,e=a.document,f=a.location,g=a.navigator,h=a.jQuery,i=a.$,j=Array.prototype.push,k=Array.prototype.slice,l=Array.prototype.indexOf,m=Object.prototype.toString,n=Object.prototype.hasOwnProperty,o=String.prototype.trim,p=function(a,b){return new p.fn.init(a,b,c)},q=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,r=/\S/,s=/\s+/,t=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,u=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.2",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i<j;i++)if((a=arguments[i])!=null)for(c in a){d=h[c],e=a[c];if(h===e)continue;k&&e&&(p.isPlainObject(e)||(f=p.isArray(e)))?(f?(f=!1,g=d&&p.isArray(d)?d:[]):g=d&&p.isPlainObject(d)?d:{},h[c]=p.extend(k,g,e)):e!==b&&(h[c]=e)}return h},p.extend({noConflict:function(b){return a.$===p&&(a.$=i),b&&a.jQuery===p&&(a.jQuery=h),p},isReady:!1,readyWait:1,holdReady:function(a){a?p.readyWait++:p.ready(!0)},ready:function(a){if(a===!0?--p.readyWait:p.isReady)return;if(!e.body)return setTimeout(p.ready,1);p.isReady=!0;if(a!==!0&&--p.readyWait>0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f<g;)if(c.apply(a[f++],d)===!1)break}else if(h){for(e in a)if(c.call(a[e],e,a[e])===!1)break}else for(;f<g;)if(c.call(a[f],f,a[f++])===!1)break;return a},trim:o&&!o.call(" ")?function(a){return a==null?"":o.call(a)}:function(a){return a==null?"":(a+"").replace(t,"")},makeArray:function(a,b){var c,d=b||[];return a!=null&&(c=p.type(a),a.length==null||c==="string"||c==="function"||c==="regexp"||p.isWindow(a)?j.call(d,a):p.merge(d,a)),d},inArray:function(a,b,c){var d;if(b){if(l)return l.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=c.length,e=a.length,f=0;if(typeof d=="number")for(;f<d;f++)a[e++]=c[f];else while(c[f]!==b)a[e++]=c[f++];return a.length=e,a},grep:function(a,b,c){var d,e=[],f=0,g=a.length;c=!!c;for(;f<g;f++)d=!!b(a[f],f),c!==d&&e.push(a[f]);return e},map:function(a,c,d){var e,f,g=[],h=0,i=a.length,j=a instanceof p||i!==b&&typeof i=="number"&&(i>0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h<i;h++)e=c(a[h],h,d),e!=null&&(g[g.length]=e);else for(f in a)e=c(a[f],f,d),e!=null&&(g[g.length]=e);return g.concat.apply([],g)},guid:1,proxy:function(a,c){var d,e,f;return typeof c=="string"&&(d=a[c],c=a,a=d),p.isFunction(a)?(e=k.call(arguments,2),f=function(){return a.apply(c,e.concat(k.call(arguments)))},f.guid=a.guid=a.guid||p.guid++,f):b},access:function(a,c,d,e,f,g,h){var i,j=d==null,k=0,l=a.length;if(d&&typeof d=="object"){for(k in d)p.access(a,c,k,d[k],1,g,e);f=1}else if(e!==b){i=h===b&&p.isFunction(e),j&&(i?(i=c,c=function(a,b,c){return i.call(p(a),c)}):(c.call(a,e),c=null));if(c)for(;k<l;k++)c(a[k],d,i?e.call(a[k],k,c(a[k],d)):e,h);f=1}return f?a:j?c.call(a):l?c(a[0],d):g},now:function(){return(new Date).getTime()}}),p.ready.promise=function(b){if(!d){d=p.Deferred();if(e.readyState==="complete")setTimeout(p.ready,1);else if(e.addEventListener)e.addEventListener("DOMContentLoaded",D,!1),a.addEventListener("load",p.ready,!1);else{e.attachEvent("onreadystatechange",D),a.attachEvent("onload",p.ready);var c=!1;try{c=a.frameElement==null&&e.documentElement}catch(f){}c&&c.doScroll&&function g(){if(!p.isReady){try{c.doScroll("left")}catch(a){return setTimeout(g,50)}p.ready()}}()}}return d.promise(b)},p.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){E["[object "+b+"]"]=b.toLowerCase()}),c=p(e);var F={};p.Callbacks=function(a){a=typeof a=="string"?F[a]||G(a):p.extend({},a);var c,d,e,f,g,h,i=[],j=!a.once&&[],k=function(b){c=a.memory&&b,d=!0,h=f||0,f=0,g=i.length,e=!0;for(;i&&h<g;h++)if(i[h].apply(b[0],b[1])===!1&&a.stopOnFalse){c=!1;break}e=!1,i&&(j?j.length&&k(j.shift()):c?i=[]:l.disable())},l={add:function(){if(i){var b=i.length;(function d(b){p.each(b,function(b,c){var e=p.type(c);e==="function"&&(!a.unique||!l.has(c))?i.push(c):c&&c.length&&e!=="string"&&d(c)})})(arguments),e?g=i.length:c&&(f=b,k(c))}return this},remove:function(){return i&&p.each(arguments,function(a,b){var c;while((c=p.inArray(b,i,c))>-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return a!=null?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b<d;b++)c[b]&&p.isFunction(c[b].promise)?c[b].promise().done(g(b,j,c)).fail(f.reject).progress(g(b,i,h)):--e}return e||f.resolveWith(j,c),f.promise()}}),p.support=function(){var b,c,d,f,g,h,i,j,k,l,m,n=e.createElement("div");n.setAttribute("className","t"),n.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="<div></div>",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||p.guid++:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e<f;e++)delete d[b[e]];if(!(c?K:p.isEmptyObject)(d))return}}if(!c){delete h[i].data;if(!K(h[i]))return}g?p.cleanData([a],!0):p.support.deleteExpando||h!=h.window?delete h[i]:h[i]=null},_data:function(a,b,c){return p.data(a,b,c,!0)},acceptData:function(a){var b=a.nodeName&&p.noData[a.nodeName.toLowerCase()];return!b||b!==!0&&a.getAttribute("classid")===b}}),p.fn.extend({data:function(a,c){var d,e,f,g,h,i=this[0],j=0,k=null;if(a===b){if(this.length){k=p.data(i);if(i.nodeType===1&&!p._data(i,"parsedAttrs")){f=i.attributes;for(h=f.length;j<h;j++)g=f[j].name,g.indexOf("data-")||(g=p.camelCase(g.substring(5)),J(i,g,k[g]));p._data(i,"parsedAttrs",!0)}}return k}return typeof a=="object"?this.each(function(){p.data(this,a)}):(d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!",p.access(this,function(c){if(c===b)return k=this.triggerHandler("getData"+e,[d[0]]),k===b&&i&&(k=p.data(i,a),k=J(i,a,k)),k===b&&d[1]?this.data(d[0]):k;d[1]=c,this.each(function(){var b=p(this);b.triggerHandler("setData"+e,d),p.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.length,e=c.shift(),f=p._queueHooks(a,b),g=function(){p.dequeue(a,b)};e==="inprogress"&&(e=c.shift(),d--),e&&(b==="fx"&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length<d?p.queue(this[0],a):c===b?this:this.each(function(){var b=p.queue(this,a,c);p._queueHooks(this,a),a==="fx"&&b[0]!=="inprogress"&&p.dequeue(this,a)})},dequeue:function(a){return this.each(function(){p.dequeue(this,a)})},delay:function(a,b){return a=p.fx?p.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){var d,e=1,f=p.Deferred(),g=this,h=this.length,i=function(){--e||f.resolveWith(g,[g])};typeof a!="string"&&(c=a,a=b),a=a||"fx";while(h--)d=p._data(g[h],a+"queueHooks"),d&&d.empty&&(e++,d.empty.add(i));return i(),f.promise(c)}});var L,M,N,O=/[\t\r\n]/g,P=/\r/g,Q=/^(?:button|input)$/i,R=/^(?:button|input|object|select|textarea)$/i,S=/^a(?:rea|)$/i,T=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,U=p.support.getSetAttribute;p.fn.extend({attr:function(a,b){return p.access(this,p.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{f=" "+e.className+" ";for(g=0,h=b.length;g<h;g++)f.indexOf(" "+b[g]+" ")<0&&(f+=b[g]+" ");e.className=p.trim(f)}}}return this},removeClass:function(a){var c,d,e,f,g,h,i;if(p.isFunction(a))return this.each(function(b){p(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(s);for(h=0,i=this.length;h<i;h++){e=this[h];if(e.nodeType===1&&e.className){d=(" "+e.className+" ").replace(O," ");for(f=0,g=c.length;f<g;f++)while(d.indexOf(" "+c[f]+" ")>=0)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(O," ").indexOf(b)>=0)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c<d;c++){e=h[c];if(e.selected&&(p.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!p.nodeName(e.parentNode,"optgroup"))){b=p(e).val();if(i)return b;g.push(b)}}return i&&!g.length&&h.length?p(h[f]).val():g},set:function(a,b){var c=p.makeArray(b);return p(a).find("option").each(function(){this.selected=p.inArray(p(this).val(),c)>=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,d+""),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g<d.length;g++)e=d[g],e&&(c=p.propFix[e]||e,f=T.test(e),f||p.attr(a,e,""),a.removeAttribute(U?e:c),f&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(Q.test(a.nodeName)&&a.parentNode)p.error("type property can't be changed");else if(!p.support.radioValue&&b==="radio"&&p.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}},value:{get:function(a,b){return L&&p.nodeName(a,"button")?L.get(a,b):b in a?a.value:null},set:function(a,b,c){if(L&&p.nodeName(a,"button"))return L.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,f,g,h=a.nodeType;if(!a||h===3||h===8||h===2)return;return g=h!==1||!p.isXMLDoc(a),g&&(c=p.propFix[c]||c,f=p.propHooks[c]),d!==b?f&&"set"in f&&(e=f.set(a,d,c))!==b?e:a[c]=d:f&&"get"in f&&(e=f.get(a,c))!==null?e:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):R.test(a.nodeName)||S.test(a.nodeName)&&a.href?0:b}}}}),M={get:function(a,c){var d,e=p.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;return b===!1?p.removeAttr(a,c):(d=p.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase())),c}},U||(N={name:!0,id:!0,coords:!0},L=p.valHooks.button={get:function(a,c){var d;return d=a.getAttributeNode(c),d&&(N[c]?d.value!=="":d.specified)?d.value:b},set:function(a,b,c){var d=a.getAttributeNode(c);return d||(d=e.createAttribute(c),a.setAttributeNode(d)),d.value=b+""}},p.each(["width","height"],function(a,b){p.attrHooks[b]=p.extend(p.attrHooks[b],{set:function(a,c){if(c==="")return a.setAttribute(b,"auto"),c}})}),p.attrHooks.contenteditable={get:L.get,set:function(a,b,c){b===""&&(b="false"),L.set(a,b,c)}}),p.support.hrefNormalized||p.each(["href","src","width","height"],function(a,c){p.attrHooks[c]=p.extend(p.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),p.support.style||(p.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=b+""}}),p.support.optSelected||(p.propHooks.selected=p.extend(p.propHooks.selected,{get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}})),p.support.enctype||(p.propFix.enctype="encoding"),p.support.checkOn||p.each(["radio","checkbox"],function(){p.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),p.each(["radio","checkbox"],function(){p.valHooks[this]=p.extend(p.valHooks[this],{set:function(a,b){if(p.isArray(b))return a.checked=p.inArray(p(a).val(),b)>=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j<c.length;j++){k=W.exec(c[j])||[],l=k[1],m=(k[2]||"").split(".").sort(),r=p.event.special[l]||{},l=(f?r.delegateType:r.bindType)||l,r=p.event.special[l]||{},n=p.extend({type:l,origType:k[1],data:e,handler:d,guid:d.guid,selector:f,needsContext:f&&p.expr.match.needsContext.test(f),namespace:m.join(".")},o),q=i[l];if(!q){q=i[l]=[],q.delegateCount=0;if(!r.setup||r.setup.call(a,e,m,h)===!1)a.addEventListener?a.addEventListener(l,h,!1):a.attachEvent&&a.attachEvent("on"+l,h)}r.add&&(r.add.call(a,n),n.handler.guid||(n.handler.guid=d.guid)),f?q.splice(q.delegateCount++,0,n):q.push(n),p.event.global[l]=!0}a=null},global:{},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,q,r=p.hasData(a)&&p._data(a);if(!r||!(m=r.events))return;b=p.trim(_(b||"")).split(" ");for(f=0;f<b.length;f++){g=W.exec(b[f])||[],h=i=g[1],j=g[2];if(!h){for(h in m)p.event.remove(a,h+b[f],c,d,!0);continue}n=p.event.special[h]||{},h=(d?n.delegateType:n.bindType)||h,o=m[h]||[],k=o.length,j=j?new RegExp("(^|\\.)"+j.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(l=0;l<o.length;l++)q=o[l],(e||i===q.origType)&&(!c||c.guid===q.guid)&&(!j||j.test(q.namespace))&&(!d||d===q.selector||d==="**"&&q.selector)&&(o.splice(l--,1),q.selector&&o.delegateCount--,n.remove&&n.remove.call(a,q));o.length===0&&k!==o.length&&((!n.teardown||n.teardown.call(a,j,r.handle)===!1)&&p.removeEvent(a,h,r.handle),delete m[h])}p.isEmptyObject(m)&&(delete r.handle,p.removeData(a,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,f,g){if(!f||f.nodeType!==3&&f.nodeType!==8){var h,i,j,k,l,m,n,o,q,r,s=c.type||c,t=[];if($.test(s+p.event.triggered))return;s.indexOf("!")>=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j<q.length&&!c.isPropagationStopped();j++)k=q[j][0],c.type=q[j][1],o=(p._data(k,"events")||{})[c.type]&&p._data(k,"handle"),o&&o.apply(k,d),o=m&&k[m],o&&p.acceptData(k)&&o.apply&&o.apply(k,d)===!1&&c.preventDefault();return c.type=s,!g&&!c.isDefaultPrevented()&&(!n._default||n._default.apply(f.ownerDocument,d)===!1)&&(s!=="click"||!p.nodeName(f,"a"))&&p.acceptData(f)&&m&&f[s]&&(s!=="focus"&&s!=="blur"||c.target.offsetWidth!==0)&&!p.isWindow(f)&&(l=f[m],l&&(f[m]=null),p.event.triggered=s,f[s](),p.event.triggered=b,l&&(f[m]=l)),c.result}return},dispatch:function(c){c=p.event.fix(c||a.event);var d,e,f,g,h,i,j,l,m,n,o=(p._data(this,"events")||{})[c.type]||[],q=o.delegateCount,r=k.call(arguments),s=!c.exclusive&&!c.namespace,t=p.event.special[c.type]||{},u=[];r[0]=c,c.delegateTarget=this;if(t.preDispatch&&t.preDispatch.call(this,c)===!1)return;if(q&&(!c.button||c.type!=="click"))for(f=c.target;f!=this;f=f.parentNode||this)if(f.disabled!==!0||c.type!=="click"){h={},j=[];for(d=0;d<q;d++)l=o[d],m=l.selector,h[m]===b&&(h[m]=l.needsContext?p(m,this).index(f)>=0:p.find(m,this,null,[f]).length),h[m]&&j.push(l);j.length&&u.push({elem:f,matches:j})}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d<u.length&&!c.isPropagationStopped();d++){i=u[d],c.currentTarget=i.elem;for(e=0;e<i.matches.length&&!c.isImmediatePropagationStopped();e++){l=i.matches[e];if(s||!c.namespace&&!l.namespace||c.namespace_re&&c.namespace_re.test(l.namespace))c.data=l.data,c.handleObj=l,g=((p.event.special[l.origType]||{}).handle||l.handler).apply(i.elem,r),g!==b&&(c.result=g,g===!1&&(c.preventDefault(),c.stopPropagation()))}}return t.postDispatch&&t.postDispatch.call(this,c),c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,c){var d,f,g,h=c.button,i=c.fromElement;return a.pageX==null&&c.clientX!=null&&(d=a.target.ownerDocument||e,f=d.documentElement,g=d.body,a.pageX=c.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=c.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?c.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0),a}},fix:function(a){if(a[p.expando])return a;var b,c,d=a,f=p.event.fixHooks[a.type]||{},g=f.props?this.props.concat(f.props):this.props;a=p.Event(d);for(b=g.length;b;)c=g[--b],a[c]=d[c];return a.target||(a.target=d.srcElement||e),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,f.filter?f.filter(a,d):a},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){p.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=p.extend(new p.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?p.event.trigger(e,null,b):p.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},p.event.handle=p.event.dispatch,p.removeEvent=e.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]=="undefined"&&(a[d]=null),a.detachEvent(d,c))},p.Event=function(a,b){if(this instanceof p.Event)a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?bb:ba):this.type=a,b&&p.extend(this,b),this.timeStamp=a&&a.timeStamp||p.now(),this[p.expando]=!0;else return new p.Event(a,b)},p.Event.prototype={preventDefault:function(){this.isDefaultPrevented=bb;var a=this.originalEvent;if(!a)return;a.preventDefault?a.preventDefault():a.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=bb;var a=this.originalEvent;if(!a)return;a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=bb,this.stopPropagation()},isDefaultPrevented:ba,isPropagationStopped:ba,isImmediatePropagationStopped:ba},p.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){p.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj,g=f.selector;if(!e||e!==d&&!p.contains(d,e))a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b;return c}}}),p.support.submitBubbles||(p.event.special.submit={setup:function(){if(p.nodeName(this,"form"))return!1;p.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=p.nodeName(c,"input")||p.nodeName(c,"button")?c.form:b;d&&!p._data(d,"_submit_attached")&&(p.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),p._data(d,"_submit_attached",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&p.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(p.nodeName(this,"form"))return!1;p.event.remove(this,"._submit")}}),p.support.changeBubbles||(p.event.special.change={setup:function(){if(V.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")p.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),p.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),p.event.simulate("change",this,a,!0)});return!1}p.event.add(this,"beforeactivate._change",function(a){var b=a.target;V.test(b.nodeName)&&!p._data(b,"_change_attached")&&(p.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&p.event.simulate("change",this.parentNode,a,!0)}),p._data(b,"_change_attached",!0))})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){return p.event.remove(this,"._change"),!V.test(this.nodeName)}}),p.support.focusinBubbles||p.each({focus:"focusin",blur:"focusout"},function(a,b){var c=0,d=function(a){p.event.simulate(b,a.target,p.event.fix(a),!0)};p.event.special[b]={setup:function(){c++===0&&e.addEventListener(a,d,!0)},teardown:function(){--c===0&&e.removeEventListener(a,d,!0)}}}),p.fn.extend({on:function(a,c,d,e,f){var g,h;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(h in a)this.on(h,c,d,a[h],f);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=ba;else if(!e)return this;return f===1&&(g=e,e=function(a){return p().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=p.guid++)),this.each(function(){p.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){var e,f;if(a&&a.preventDefault&&a.handleObj)return e=a.handleObj,p(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler),this;if(typeof a=="object"){for(f in a)this.off(f,c,a[f]);return this}if(c===!1||typeof c=="function")d=c,c=b;return d===!1&&(d=ba),this.each(function(){p.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){return p(this.context).on(a,this.selector,b,c),this},die:function(a,b){return p(this.context).off(a,this.selector||"**",b),this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length===1?this.off(a,"**"):this.off(b,a||"**",c)},trigger:function(a,b){return this.each(function(){p.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return p.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||p.guid++,d=0,e=function(c){var e=(p._data(this,"lastToggle"+a.guid)||0)%d;return p._data(this,"lastToggle"+a.guid,e+1),c.preventDefault(),b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),p.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){p.fn[b]=function(a,c){return c==null&&(c=a,a=null),arguments.length>0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bc(a,b,c,d){c=c||[],b=b||r;var e,f,i,j,k=b.nodeType;if(!a||typeof a!="string")return c;if(k!==1&&k!==9)return[];i=g(b);if(!i&&!d)if(e=P.exec(a))if(j=e[1]){if(k===9){f=b.getElementById(j);if(!f||!f.parentNode)return c;if(f.id===j)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(j))&&h(b,f)&&f.id===j)return c.push(f),c}else{if(e[2])return w.apply(c,x.call(b.getElementsByTagName(a),0)),c;if((j=e[3])&&_&&b.getElementsByClassName)return w.apply(c,x.call(b.getElementsByClassName(j),0)),c}return bp(a.replace(L,"$1"),b,c,d,i)}function bd(a){return function(b){var c=b.nodeName.toLowerCase();return c==="input"&&b.type===a}}function be(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}}function bf(a){return z(function(b){return b=+b,z(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function bg(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}function bh(a,b){var c,d,f,g,h,i,j,k=C[o][a];if(k)return b?0:k.slice(0);h=a,i=[],j=e.preFilter;while(h){if(!c||(d=M.exec(h)))d&&(h=h.slice(d[0].length)),i.push(f=[]);c=!1;if(d=N.exec(h))f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=d[0].replace(L," ");for(g in e.filter)(d=W[g].exec(h))&&(!j[g]||(d=j[g](d,r,!0)))&&(f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=g,c.matches=d);if(!c)break}return b?h.length:h?bc.error(a):C(a,i).slice(0)}function bi(a,b,d){var e=b.dir,f=d&&b.dir==="parentNode",g=u++;return b.first?function(b,c,d){while(b=b[e])if(f||b.nodeType===1)return a(b,c,d)}:function(b,d,h){if(!h){var i,j=t+" "+g+" ",k=j+c;while(b=b[e])if(f||b.nodeType===1){if((i=b[o])===k)return b.sizset;if(typeof i=="string"&&i.indexOf(j)===0){if(b.sizset)return b}else{b[o]=k;if(a(b,d,h))return b.sizset=!0,b;b.sizset=!1}}}else while(b=b[e])if(f||b.nodeType===1)if(a(b,d,h))return b}}function bj(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function bk(a,b,c,d,e){var f,g=[],h=0,i=a.length,j=b!=null;for(;h<i;h++)if(f=a[h])if(!c||c(f,d,e))g.push(f),j&&b.push(h);return g}function bl(a,b,c,d,e,f){return d&&!d[o]&&(d=bl(d)),e&&!e[o]&&(e=bl(e,f)),z(function(f,g,h,i){if(f&&e)return;var j,k,l,m=[],n=[],o=g.length,p=f||bo(b||"*",h.nodeType?[h]:h,[],f),q=a&&(f||!b)?bk(p,m,a,h,i):p,r=c?e||(f?a:o||d)?[]:g:q;c&&c(q,r,h,i);if(d){l=bk(r,n),d(l,[],h,i),j=l.length;while(j--)if(k=l[j])r[n[j]]=!(q[n[j]]=k)}if(f){j=a&&r.length;while(j--)if(k=r[j])f[m[j]]=!(g[m[j]]=k)}else r=bk(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):w.apply(g,r)})}function bm(a){var b,c,d,f=a.length,g=e.relative[a[0].type],h=g||e.relative[" "],i=g?1:0,j=bi(function(a){return a===b},h,!0),k=bi(function(a){return y.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==l)||((b=c).nodeType?j(a,c,d):k(a,c,d))}];for(;i<f;i++)if(c=e.relative[a[i].type])m=[bi(bj(m),c)];else{c=e.filter[a[i].type].apply(null,a[i].matches);if(c[o]){d=++i;for(;d<f;d++)if(e.relative[a[d].type])break;return bl(i>1&&bj(m),i>1&&a.slice(0,i-1).join("").replace(L,"$1"),c,i<d&&bm(a.slice(i,d)),d<f&&bm(a=a.slice(d)),d<f&&a.join(""))}m.push(c)}return bj(m)}function bn(a,b){var d=b.length>0,f=a.length>0,g=function(h,i,j,k,m){var n,o,p,q=[],s=0,u="0",x=h&&[],y=m!=null,z=l,A=h||f&&e.find.TAG("*",m&&i.parentNode||i),B=t+=z==null?1:Math.E;y&&(l=i!==r&&i,c=g.el);for(;(n=A[u])!=null;u++){if(f&&n){for(o=0;p=a[o];o++)if(p(n,i,j)){k.push(n);break}y&&(t=B,c=++g.el)}d&&((n=!p&&n)&&s--,h&&x.push(n))}s+=u;if(d&&u!==s){for(o=0;p=b[o];o++)p(x,q,i,j);if(h){if(s>0)while(u--)!x[u]&&!q[u]&&(q[u]=v.call(k));q=bk(q)}w.apply(k,q),y&&!h&&q.length>0&&s+b.length>1&&bc.uniqueSort(k)}return y&&(t=B,l=z),x};return g.el=0,d?z(g):g}function bo(a,b,c,d){var e=0,f=b.length;for(;e<f;e++)bc(a,b[e],c,d);return c}function bp(a,b,c,d,f){var g,h,j,k,l,m=bh(a),n=m.length;if(!d&&m.length===1){h=m[0]=m[0].slice(0);if(h.length>2&&(j=h[0]).type==="ID"&&b.nodeType===9&&!f&&e.relative[h[1].type]){b=e.find.ID(j.matches[0].replace(V,""),b,f)[0];if(!b)return c;a=a.slice(h.shift().length)}for(g=W.POS.test(a)?-1:h.length-1;g>=0;g--){j=h[g];if(e.relative[k=j.type])break;if(l=e.find[k])if(d=l(j.matches[0].replace(V,""),R.test(h[0].type)&&b.parentNode||b,f)){h.splice(g,1),a=d.length&&h.join("");if(!a)return w.apply(c,x.call(d,0)),c;break}}}return i(a,m)(d,b,f,c,R.test(a)),c}function bq(){}var c,d,e,f,g,h,i,j,k,l,m=!0,n="undefined",o=("sizcache"+Math.random()).replace(".",""),q=String,r=a.document,s=r.documentElement,t=0,u=0,v=[].pop,w=[].push,x=[].slice,y=[].indexOf||function(a){var b=0,c=this.length;for(;b<c;b++)if(this[b]===a)return b;return-1},z=function(a,b){return a[o]=b==null||b,a},A=function(){var a={},b=[];return z(function(c,d){return b.push(c)>e.cacheLength&&delete a[b.shift()],a[c]=d},a)},B=A(),C=A(),D=A(),E="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",G=F.replace("w","w#"),H="([*^$|!~]?=)",I="\\["+E+"*("+F+")"+E+"*(?:"+H+E+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+G+")|)|)"+E+"*\\]",J=":("+F+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+I+")|[^:]|\\\\.)*|.*))\\)|)",K=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+E+"*((?:-\\d)?\\d*)"+E+"*\\)|)(?=[^-]|$)",L=new RegExp("^"+E+"+|((?:^|[^\\\\])(?:\\\\.)*)"+E+"+$","g"),M=new RegExp("^"+E+"*,"+E+"*"),N=new RegExp("^"+E+"*([\\x20\\t\\r\\n\\f>+~])"+E+"*"),O=new RegExp(J),P=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,Q=/^:not/,R=/[\x20\t\r\n\f]*[+~]/,S=/:not\($/,T=/h\d/i,U=/input|select|textarea|button/i,V=/\\(?!\\)/g,W={ID:new RegExp("^#("+F+")"),CLASS:new RegExp("^\\.("+F+")"),NAME:new RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:new RegExp("^("+F.replace("w","w*")+")"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+J),POS:new RegExp(K,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+E+"*(even|odd|(([+-]|)(\\d*)n|)"+E+"*(?:([+-]|)"+E+"*(\\d+)|))"+E+"*\\)|)","i"),needsContext:new RegExp("^"+E+"*[>+~]|"+K,"i")},X=function(a){var b=r.createElement("div");try{return a(b)}catch(c){return!1}finally{b=null}},Y=X(function(a){return a.appendChild(r.createComment("")),!a.getElementsByTagName("*").length}),Z=X(function(a){return a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!==n&&a.firstChild.getAttribute("href")==="#"}),$=X(function(a){a.innerHTML="<select></select>";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),_=X(function(a){return a.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!a.getElementsByClassName||!a.getElementsByClassName("e").length?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length===2)}),ba=X(function(a){a.id=o+0,a.innerHTML="<a name='"+o+"'></a><div name='"+o+"'></div>",s.insertBefore(a,s.firstChild);var b=r.getElementsByName&&r.getElementsByName(o).length===2+r.getElementsByName(o+0).length;return d=!r.getElementById(o),s.removeChild(a),b});try{x.call(s.childNodes,0)[0].nodeType}catch(bb){x=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}bc.matches=function(a,b){return bc(a,null,null,b)},bc.matchesSelector=function(a,b){return bc(b,null,null,[a]).length>0},f=bc.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=f(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=f(b);return c},g=bc.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},h=bc.contains=s.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b&&b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:s.compareDocumentPosition?function(a,b){return b&&!!(a.compareDocumentPosition(b)&16)}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc.attr=function(a,b){var c,d=g(a);return d||(b=b.toLowerCase()),(c=e.attrHandle[b])?c(a):d||$?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},e=bc.selectors={cacheLength:50,createPseudo:z,match:W,attrHandle:Z?{}:{href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}},find:{ID:d?function(a,b,c){if(typeof b.getElementById!==n&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==n&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==n&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:Y?function(a,b){if(typeof b.getElementsByTagName!==n)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c},NAME:ba&&function(a,b){if(typeof b.getElementsByName!==n)return b.getElementsByName(name)},CLASS:_&&function(a,b,c){if(typeof b.getElementsByClassName!==n&&!c)return b.getElementsByClassName(a)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(V,""),a[3]=(a[4]||a[5]||"").replace(V,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||bc.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&bc.error(a[0]),a},PSEUDO:function(a){var b,c;if(W.CHILD.test(a[0]))return null;if(a[3])a[2]=a[3];else if(b=a[4])O.test(b)&&(c=bh(b,!0))&&(c=b.indexOf(")",b.length-c)-b.length)&&(b=b.slice(0,c),a[0]=a[0].slice(0,c)),a[2]=b;return a.slice(0,3)}},filter:{ID:d?function(a){return a=a.replace(V,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(V,""),function(b){var c=typeof b.getAttributeNode!==n&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(V,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=B[o][a];return b||(b=B(a,new RegExp("(^|"+E+")"+a+"("+E+"|$)"))),function(a){return b.test(a.className||typeof a.getAttribute!==n&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return function(d,e){var f=bc.attr(d,a);return f==null?b==="!=":b?(f+="",b==="="?f===c:b==="!="?f!==c:b==="^="?c&&f.indexOf(c)===0:b==="*="?c&&f.indexOf(c)>-1:b==="$="?c&&f.substr(f.length-c.length)===c:b==="~="?(" "+f+" ").indexOf(c)>-1:b==="|="?f===c||f.substr(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d){return a==="nth"?function(a){var b,e,f=a.parentNode;if(c===1&&d===0)return!0;if(f){e=0;for(b=f.firstChild;b;b=b.nextSibling)if(b.nodeType===1){e++;if(a===b)break}}return e-=d,e===c||e%c===0&&e/c>=0}:function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b){var c,d=e.pseudos[a]||e.setFilters[a.toLowerCase()]||bc.error("unsupported pseudo: "+a);return d[o]?d(b):d.length>1?(c=[a,a,"",b],e.setFilters.hasOwnProperty(a.toLowerCase())?z(function(a,c){var e,f=d(a,b),g=f.length;while(g--)e=y.call(a,f[g]),a[e]=!(c[e]=f[g])}):function(a){return d(a,0,c)}):d}},pseudos:{not:z(function(a){var b=[],c=[],d=i(a.replace(L,"$1"));return d[o]?z(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)if(f=g[h])a[h]=!(b[h]=f)}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:z(function(a){return function(b){return bc(a,b).length>0}}),contains:z(function(a){return function(b){return(b.textContent||b.innerText||f(b)).indexOf(a)>-1}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!e.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},header:function(a){return T.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:bd("radio"),checkbox:bd("checkbox"),file:bd("file"),password:bd("password"),image:bd("image"),submit:be("submit"),reset:be("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return U.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement},first:bf(function(a,b,c){return[0]}),last:bf(function(a,b,c){return[b-1]}),eq:bf(function(a,b,c){return[c<0?c+b:c]}),even:bf(function(a,b,c){for(var d=0;d<b;d+=2)a.push(d);return a}),odd:bf(function(a,b,c){for(var d=1;d<b;d+=2)a.push(d);return a}),lt:bf(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:bf(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},j=s.compareDocumentPosition?function(a,b){return a===b?(k=!0,0):(!a.compareDocumentPosition||!b.compareDocumentPosition?a.compareDocumentPosition:a.compareDocumentPosition(b)&4)?-1:1}:function(a,b){if(a===b)return k=!0,0;if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,h=b.parentNode,i=g;if(g===h)return bg(a,b);if(!g)return-1;if(!h)return 1;while(i)e.unshift(i),i=i.parentNode;i=h;while(i)f.unshift(i),i=i.parentNode;c=e.length,d=f.length;for(var j=0;j<c&&j<d;j++)if(e[j]!==f[j])return bg(e[j],f[j]);return j===c?bg(a,f[j],-1):bg(e[j],b,1)},[0,0].sort(j),m=!k,bc.uniqueSort=function(a){var b,c=1;k=m,a.sort(j);if(k)for(;b=a[c];c++)b===a[c-1]&&a.splice(c--,1);return a},bc.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},i=bc.compile=function(a,b){var c,d=[],e=[],f=D[o][a];if(!f){b||(b=bh(a)),c=b.length;while(c--)f=bm(b[c]),f[o]?d.push(f):e.push(f);f=D(a,bn(e,d))}return f},r.querySelectorAll&&function(){var a,b=bp,c=/'|\\/g,d=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,e=[":focus"],f=[":active",":focus"],h=s.matchesSelector||s.mozMatchesSelector||s.webkitMatchesSelector||s.oMatchesSelector||s.msMatchesSelector;X(function(a){a.innerHTML="<select><option selected=''></option></select>",a.querySelectorAll("[selected]").length||e.push("\\["+E+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),X(function(a){a.innerHTML="<p test=''></p>",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+E+"*(?:\"\"|'')"),a.innerHTML="<input type='hidden'/>",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=new RegExp(e.join("|")),bp=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a))){var i,j,k=!0,l=o,m=d,n=d.nodeType===9&&a;if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){i=bh(a),(k=d.getAttribute("id"))?l=k.replace(c,"\\$&"):d.setAttribute("id",l),l="[id='"+l+"'] ",j=i.length;while(j--)i[j]=l+i[j].join("");m=R.test(a)&&d.parentNode||d,n=i.join(",")}if(n)try{return w.apply(f,x.call(m.querySelectorAll(n),0)),f}catch(p){}finally{k||d.removeAttribute("id")}}return b(a,d,f,g,h)},h&&(X(function(b){a=h.call(b,"div");try{h.call(b,"[test!='']:sizzle"),f.push("!=",J)}catch(c){}}),f=new RegExp(f.join("|")),bc.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!g(b)&&!f.test(c)&&(!e||!e.test(c)))try{var i=h.call(b,c);if(i||a||b.document&&b.document.nodeType!==11)return i}catch(j){}return bc(c,null,null,[b]).length>0})}(),e.pseudos.nth=e.pseudos.eq,e.filters=bq.prototype=e.pseudos,e.setFilters=new bq,bc.attr=p.attr,p.find=bc,p.expr=bc.selectors,p.expr[":"]=p.expr.pseudos,p.unique=bc.uniqueSort,p.text=bc.getText,p.isXMLDoc=bc.isXML,p.contains=bc.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b<c;b++)if(p.contains(h[b],this))return!0});g=this.pushStack("","find",a);for(b=0,c=this.length;b<c;b++){d=g.length,p.find(a,this[b],g);if(b>0)for(e=d;e<g.length;e++)for(f=0;f<d;f++)if(g[f]===g[e]){g.splice(e--,1);break}}return g},has:function(a){var b,c=p(a,this),d=c.length;return this.filter(function(){for(b=0;b<d;b++)if(p.contains(this,c[b]))return!0})},not:function(a){return this.pushStack(bj(this,a,!1),"not",a)},filter:function(a){return this.pushStack(bj(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?bf.test(a)?p(a,this.context).index(this[0])>=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d<e;d++){c=this[d];while(c&&c.ownerDocument&&c!==b&&c.nodeType!==11){if(g?g.index(c)>-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/<tbody/i,br=/<|&#?\w+;/,bs=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,bu=new RegExp("<(?:"+bl+")[\\s/>]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,bz={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X<div>","</div>"]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1></$2>");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),c.innerHTML=a);c=0}catch(f){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){return bh(this[0])?this.length?this.pushStack(p(p.isFunction(a)?a():a),"replaceWith",a):this:p.isFunction(a)?this.each(function(b){var c=p(this),d=c.html();c.replaceWith(a.call(this,b,d))}):(typeof a!="string"&&(a=p(a).detach()),this.each(function(){var b=this.nextSibling,c=this.parentNode;p(this).remove(),b?p(b).before(a):p(c).append(a)}))},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){a=[].concat.apply([],a);var e,f,g,h,i=0,j=a[0],k=[],l=this.length;if(!p.support.checkClone&&l>1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i<l;i++)d.call(c&&p.nodeName(this[i],"table")?bC(this[i],"tbody"):this[i],i===h?g:p.clone(g,!0,!0))}g=f=null,k.length&&p.each(k,function(a,b){b.src?p.ajax?p.ajax({url:b.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):p.error("no ajax"):p.globalEval((b.text||b.textContent||b.innerHTML||"").replace(by,"")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),p.buildFragment=function(a,c,d){var f,g,h,i=a[0];return c=c||e,c=!c.nodeType&&c[0]||c,c=c.ownerDocument||c,a.length===1&&typeof i=="string"&&i.length<512&&c===e&&i.charAt(0)==="<"&&!bt.test(i)&&(p.support.checkClone||!bw.test(i))&&(p.support.html5Clone||!bu.test(i))&&(g=!0,f=p.fragments[i],h=f!==b),f||(f=c.createDocumentFragment(),p.clean(a,c,f,d),g&&(p.fragments[i]=h&&f)),{fragment:f,cacheable:g}},p.fragments={},p.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){p.fn[a]=function(c){var d,e=0,f=[],g=p(c),h=g.length,i=this.length===1&&this[0].parentNode;if((i==null||i&&i.nodeType===11&&i.childNodes.length===1)&&h===1)return g[b](this[0]),this;for(;e<h;e++)d=(e>0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=b===e&&bA,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(f=0;(h=a[f])!=null;f++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{s=s||bk(b),l=b.createElement("div"),s.appendChild(l),h=h.replace(bo,"<$1></$2>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]==="<table>"&&!m?l.childNodes:[];for(g=n.length-1;g>=0;--g)p.nodeName(n[g],"tbody")&&!n[g].childNodes.length&&n[g].parentNode.removeChild(n[g])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l.parentNode.removeChild(l)}h.nodeType?t.push(h):p.merge(t,h)}l&&(h=l=s=null);if(!p.support.appendChecked)for(f=0;(h=t[f])!=null;f++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(f=0;(h=t[f])!=null;f++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[f+1,0].concat(r)),f+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.chrome?b.webkit=!0:b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^(none|table(?!-c[ea]).+)/,bO=/^margin/,bP=new RegExp("^("+q+")(.*)$","i"),bQ=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bR=new RegExp("^([-+])=("+q+")","i"),bS={},bT={position:"absolute",visibility:"hidden",display:"block"},bU={letterSpacing:0,fontWeight:400},bV=["Top","Right","Bottom","Left"],bW=["Webkit","O","Moz","ms"],bX=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return b$(this,!0)},hide:function(){return b$(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bX.apply(this,arguments):this.each(function(){(c?a:bZ(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bY(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bR.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bY(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bU&&(f=bU[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(b,c){var d,e,f,g,h=a.getComputedStyle(b,null),i=b.style;return h&&(d=h[c],d===""&&!p.contains(b.ownerDocument,b)&&(d=p.style(b,c)),bQ.test(d)&&bO.test(c)&&(e=i.width,f=i.minWidth,g=i.maxWidth,i.minWidth=i.maxWidth=i.width=d,d=h.width,i.width=e,i.minWidth=f,i.maxWidth=g)),d}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bQ.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth===0&&bN.test(bH(a,"display"))?p.swap(a,bT,function(){return cb(a,b,d)}):cb(a,b,d)},set:function(a,c,d){return b_(a,c,d?ca(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bQ.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bV[d]+b]=e[d]||e[d-2]||e[0];return f}},bO.test(a)||(p.cssHooks[a+b].set=b_)});var cd=/%20/g,ce=/\[\]$/,cf=/\r?\n/g,cg=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ch=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ch.test(this.nodeName)||cg.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(cf,"\r\n")}}):{name:b.name,value:c.replace(cf,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ci(d,a[d],c,f);return e.join("&").replace(cd,"+")};var cj,ck,cl=/#.*$/,cm=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,co=/^(?:GET|HEAD)$/,cp=/^\/\//,cq=/\?/,cr=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,cs=/([?&])_=[^&]*/,ct=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,cu=p.fn.load,cv={},cw={},cx=["*/"]+["*"];try{ck=f.href}catch(cy){ck=e.createElement("a"),ck.href="",ck=ck.href}cj=ct.exec(ck.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&cu)return cu.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):c&&typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("<div>").append(a.replace(cr,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cB(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cB(a,b),a},ajaxSettings:{url:ck,isLocal:cn.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cx},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cz(cv),ajaxTransport:cz(cw),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cC(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cD(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=(c||y)+"",k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cm.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(cl,"").replace(cp,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=ct.exec(l.url.toLowerCase())||!1,l.crossDomain=i&&i.join(":")+(i[3]?"":i[1]==="http:"?80:443)!==cj.join(":")+(cj[3]?"":cj[1]==="http:"?80:443)),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cA(cv,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!co.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cq.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cs,"$1_="+z);l.url=A+(A===l.url?(cq.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cx+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cA(cw,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cE=[],cF=/\?/,cG=/(=)\?(?=&|$)|\?\?/,cH=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cE.pop()||p.expando+"_"+cH++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cG.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cG.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cG,"$1"+f):m?c.data=i.replace(cG,"$1"+f):k&&(c.url+=(cF.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cE.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cI,cJ=a.ActiveXObject?function(){for(var a in cI)cI[a](0,1)}:!1,cK=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cL()||cM()}:cL,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cJ&&delete cI[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cK,cJ&&(cI||(cI={},p(a).unload(cJ)),cI[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cN,cO,cP=/^(?:toggle|show|hide)$/,cQ=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cR=/queueHooks$/,cS=[cY],cT={"*":[function(a,b){var c,d,e=this.createTween(a,b),f=cQ.exec(b),g=e.cur(),h=+g||0,i=1,j=20;if(f){c=+f[2],d=f[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&h){h=p.css(e.elem,a,!0)||c||1;do i=i||".5",h=h/i,p.style(e.elem,a,h+d);while(i!==(i=e.cur()/g)&&i!==1&&--j)}e.unit=d,e.start=h,e.end=f[1]?h+(f[1]+1)*c:c}return e}]};p.Animation=p.extend(cW,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d<e;d++)c=a[d],cT[c]=cT[c]||[],cT[c].unshift(b)},prefilter:function(a,b){b?cS.unshift(a):cS.push(a)}}),p.Tween=cZ,cZ.prototype={constructor:cZ,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(p.cssNumber[c]?"":"px")},cur:function(){var a=cZ.propHooks[this.prop];return a&&a.get?a.get(this):cZ.propHooks._default.get(this)},run:function(a){var b,c=cZ.propHooks[this.prop];return this.options.duration?this.pos=b=p.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):cZ.propHooks._default.set(this),this}},cZ.prototype.init.prototype=cZ.prototype,cZ.propHooks={_default:{get:function(a){var b;return a.elem[a.prop]==null||!!a.elem.style&&a.elem.style[a.prop]!=null?(b=p.css(a.elem,a.prop,!1,""),!b||b==="auto"?0:b):a.elem[a.prop]},set:function(a){p.fx.step[a.prop]?p.fx.step[a.prop](a):a.elem.style&&(a.elem.style[p.cssProps[a.prop]]!=null||p.cssHooks[a.prop])?p.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},cZ.propHooks.scrollTop=cZ.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},p.each(["toggle","show","hide"],function(a,b){var c=p.fn[b];p.fn[b]=function(d,e,f){return d==null||typeof d=="boolean"||!a&&p.isFunction(d)&&p.isFunction(e)?c.apply(this,arguments):this.animate(c$(b,!0),d,e,f)}}),p.fn.extend({fadeTo:function(a,b,c,d){return this.filter(bZ).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=p.isEmptyObject(a),f=p.speed(b,c,d),g=function(){var b=cW(this,p.extend({},a),f);e&&b.stop(!0)};return e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,c,d){var e=function(a){var b=a.stop;delete a.stop,b(d)};return typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,c=a!=null&&a+"queueHooks",f=p.timers,g=p._data(this);if(c)g[c]&&g[c].stop&&e(g[c]);else for(c in g)g[c]&&g[c].stop&&cR.test(c)&&e(g[c]);for(c=f.length;c--;)f[c].elem===this&&(a==null||f[c].queue===a)&&(f[c].anim.stop(d),b=!1,f.splice(c,1));(b||!d)&&p.dequeue(this,a)})}}),p.each({slideDown:c$("show"),slideUp:c$("hide"),slideToggle:c$("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){p.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),p.speed=function(a,b,c){var d=a&&typeof a=="object"?p.extend({},a):{complete:c||!c&&b||p.isFunction(a)&&a,duration:a,easing:c&&b||b&&!p.isFunction(b)&&b};d.duration=p.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in p.fx.speeds?p.fx.speeds[d.duration]:p.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";return d.old=d.complete,d.complete=function(){p.isFunction(d.old)&&d.old.call(this),d.queue&&p.dequeue(this,d.queue)},d},p.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},p.timers=[],p.fx=cZ.prototype.init,p.fx.tick=function(){var a,b=p.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||p.fx.stop()},p.fx.timer=function(a){a()&&p.timers.push(a)&&!cO&&(cO=setInterval(p.fx.tick,p.fx.interval))},p.fx.interval=13,p.fx.stop=function(){clearInterval(cO),cO=null},p.fx.speeds={slow:600,fast:200,_default:400},p.fx.step={},p.expr&&p.expr.filters&&(p.expr.filters.animated=function(a){return p.grep(p.timers,function(b){return a===b.elem}).length});var c_=/^(?:body|html)$/i;p.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){p.offset.setOffset(this,a,b)});var c,d,e,f,g,h,i,j={top:0,left:0},k=this[0],l=k&&k.ownerDocument;if(!l)return;return(d=l.body)===k?p.offset.bodyOffset(k):(c=l.documentElement,p.contains(c,k)?(typeof k.getBoundingClientRect!="undefined"&&(j=k.getBoundingClientRect()),e=da(l),f=c.clientTop||d.clientTop||0,g=c.clientLeft||d.clientLeft||0,h=e.pageYOffset||c.scrollTop,i=e.pageXOffset||c.scrollLeft,{top:j.top+h-f,left:j.left+i-g}):j)},p.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;return p.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(p.css(a,"marginTop"))||0,c+=parseFloat(p.css(a,"marginLeft"))||0),{top:b,left:c}},setOffset:function(a,b,c){var d=p.css(a,"position");d==="static"&&(a.style.position="relative");var e=p(a),f=e.offset(),g=p.css(a,"top"),h=p.css(a,"left"),i=(d==="absolute"||d==="fixed")&&p.inArray("auto",[g,h])>-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c_.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c_.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=da(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g,null)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window);
\ No newline at end of file
/* ***************************************************************************
- * Copyright (c) 2000 - 2013 Samsung Electronics Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- *
+ Flora License
+
+ Version 1.0, May, 2012
+
+ http://floralicense.org/license/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and
+ all other entities that control, are controlled by, or are
+ under common control with that entity. For the purposes of
+ this definition, "control" means (i) the power, direct or indirect,
+ to cause the direction or management of such entity,
+ whether by contract or otherwise, or (ii) ownership of fifty percent (50%)
+ or more of the outstanding shares, or (iii) beneficial ownership of
+ such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation source,
+ and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or Object form,
+ made available under the License, as indicated by a copyright notice
+ that is included in or attached to the work (an example is provided
+ in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object form,
+ that is based on (or derived from) the Work and for which the editorial
+ revisions, annotations, elaborations, or other modifications represent,
+ as a whole, an original work of authorship. For the purposes of this License,
+ Derivative Works shall not include works that remain separable from,
+ or merely link (or bind by name) to the interfaces of, the Work and
+ Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including the original
+ version of the Work and any modifications or additions to that Work or
+ Derivative Works thereof, that is intentionally submitted to Licensor
+ for inclusion in the Work by the copyright owner or by an individual or
+ Legal Entity authorized to submit on behalf of the copyright owner.
+ For the purposes of this definition, "submitted" means any form of
+ electronic, verbal, or written communication sent to the Licensor or
+ its representatives, including but not limited to communication on
+ electronic mailing lists, source code control systems, and issue
+ tracking systems that are managed by, or on behalf of, the Licensor
+ for the purpose of discussing and improving the Work, but excluding
+ communication that is conspicuously marked or otherwise designated
+ in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ "Tizen Certified Platform" shall mean a software platform that complies
+ with the standards set forth in the Compatibility Definition Document
+ and passes the Compatibility Test Suite as defined from time to time
+ by the Tizen Technical Steering Group and certified by the Tizen
+ Association or its designated agent.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work
+ solely as incorporated into a Tizen Certified Platform, where such
+ license applies only to those patent claims licensable by such
+ Contributor that are necessarily infringed by their Contribution(s)
+ alone or by combination of their Contribution(s) with the Work solely
+ as incorporated into a Tizen Certified Platform to which such
+ Contribution(s) was submitted. If You institute patent litigation
+ against any entity (including a cross-claim or counterclaim
+ in a lawsuit) alleging that the Work or a Contribution incorporated
+ within the Work constitutes direct or contributory patent infringement,
+ then any patent licenses granted to You under this License for that
+ Work shall terminate as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof pursuant to the copyright license
+ above, in any medium, with or without modifications, and in Source or
+ Object form, provided that You meet the following conditions:
+
+ 1. You must give any other recipients of the Work or Derivative Works
+ a copy of this License; and
+ 2. You must cause any modified files to carry prominent notices stating
+ that You changed the files; and
+ 3. You must retain, in the Source form of any Derivative Works that
+ You distribute, all copyright, patent, trademark, and attribution
+ notices from the Source form of the Work, excluding those notices
+ that do not pertain to any part of the Derivative Works; and
+ 4. If the Work includes a "NOTICE" text file as part of its distribution,
+ then any Derivative Works that You distribute must include a readable
+ copy of the attribution notices contained within such NOTICE file,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works, in at least one of the following places:
+ within a NOTICE text file distributed as part of the Derivative Works;
+ within the Source form or documentation, if provided along with the
+ Derivative Works; or, within a display generated by the Derivative Works,
+ if and wherever such third-party notices normally appear.
+ The contents of the NOTICE file are for informational purposes only
+ and do not modify the License.
+
+ You may add Your own attribution notices within Derivative Works
+ that You distribute, alongside or as an addendum to the NOTICE text
+ from the Work, provided that such additional attribution notices
+ cannot be construed as modifying the License. You may add Your own
+ copyright statement to Your modifications and may provide additional or
+ different license terms and conditions for use, reproduction, or
+ distribution of Your modifications, or for any such Derivative Works
+ as a whole, provided Your use, reproduction, and distribution of
+ the Work otherwise complies with the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Flora License to your work
+
+ To apply the Flora License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Flora License, Version 1.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.tizenopensource.org/license
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
* Author: Minkyu Kang <mk7.kang@samsung.com>
*/
// Ensure that the given namespace is defined. If not, define it to be an empty object.
// This is kinda like the mkdir -p command.
-function ensureNS(ns) {
- var nsAr = ns.split("."),
- nsSoFar = "";
-
- for (var Nix in nsAr) {
- nsSoFar = nsSoFar + (Nix > 0 ? "." : "") + nsAr[Nix];
- eval (nsSoFar + " = " + nsSoFar + " || {};");
- }
-}
+var ensureNS = (function () {
+ var internalCache = {};
+ return function ensureNS (ns) { // name just for debugging purposes
+ var nsArr = ns.split(".").reverse(),
+ nsSoFar = "",
+ buffer = "",
+ leaf = "",
+ l = nsArr.length;
+ while(--l >= 0) {
+ leaf = nsArr[l];
+ nsSoFar = nsSoFar + (nsSoFar.length > 0 ? "." : "") + leaf;
+ if (!internalCache[nsSoFar]) {
+ internalCache[nsSoFar] = true;
+ buffer += "!window." + nsSoFar + ' && (window.' + nsSoFar + " = {});\n";
+ }
+ }
+ buffer.length && (new Function(buffer))();
+ };
+})();
-
-/* ***************************************************************************
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- *
- * Authors: Hyunsook Park <hyunsook.park@samsung.com>
- * Wonseop Kim <wonseop.kim@samsung.com>
-*/
-
-( function ( $, window, document, undefined ) {
- var _canvas = document.createElement( 'canvas' ),
- _context = _canvas.getContext( '2d' );
-
- function fileSystemErrorMessage( e ) {
- var FileError = window.FileError,
- msg = '';
- switch ( e.code ) {
- case FileError.QUOTA_EXCEEDED_ERR:
- msg = 'QUOTA_EXCEEDED_ERR';
- break;
- case FileError.NOT_FOUND_ERR:
- msg = 'NOT_FOUND_ERR';
- break;
- case FileError.SECURITY_ERR:
- msg = 'SECURITY_ERR';
- break;
- case FileError.INVALID_MODIFICATION_ERR:
- msg = 'INVALID_MODIFICATION_ERR';
- break;
- case FileError.INVALID_STATE_ERR:
- msg = 'INVALID_STATE_ERR';
- break;
- default:
- msg = 'Unknown Error';
- break;
- }
- return msg;
- }
-
- function getInternalURLFromURL( url ) {
- var internalURL = url.replace( /\//gi, "_" );
- return internalURL;
- }
-
- function resize( imagewidth, imageheight, thumbwidth, thumbheight, fit ) {
- var w = 0, h = 0, x = 0, y = 0,
- widthratio = imagewidth / thumbwidth,
- heightratio = imageheight / thumbheight,
- maxratio = Math.max( widthratio, heightratio );
-
- if ( fit ) {
- w = thumbwidth;
- h = thumbheight;
- } else {
- if ( maxratio > 1 ) {
- w = imagewidth / maxratio;
- h = imageheight / maxratio;
- } else {
- w = imagewidth;
- h = imageheight;
- }
- x = ( thumbwidth - w ) / 2;
- y = ( thumbheight - h ) / 2;
- }
-
- return { w: w, h: h, x: x, y: y };
- }
-
- function getThumbnail( img, thumbwidth, thumbheight, fit ) {
- var dimensions, url;
- _canvas.width = thumbwidth;
- _canvas.height = thumbheight;
- dimensions = resize( img.width, img.height, thumbwidth, thumbheight, fit );
- _context.fillStyle = "#000000";
- _context.fillRect ( 0, 0, thumbwidth, thumbheight );
- _context.drawImage( img, dimensions.x, dimensions.y, dimensions.w, dimensions.h );
- url = _canvas.toDataURL();
- return url;
- }
-
- $.imageloader = {
- _grantedBytes: 1024 * 1024,
- getThumbnail: function ( url, _callback ) {
- var internalURL, canvasDataURI;
- function errorHandler( e ) {
- var msg = fileSystemErrorMessage( e );
- if ( _callback ) {
- _callback( ( msg === "NOT_FOUND_ERR" ) ? msg : null );
- }
- }
-
- internalURL = getInternalURLFromURL( url );
- try {
- canvasDataURI = localStorage.getItem( internalURL );
- if ( _callback ) {
- _callback( ( canvasDataURI === null ) ? "NOT_FOUND_ERR" : canvasDataURI );
- }
- } catch ( e ) {
- if ( _callback ) {
- _callback( ( e.type === "non_object_property_load" ) ? "NOT_FOUND_ERR" : null );
- }
- }
- },
-
- setThumbnail: function ( url, _callback, thumbWidth, thumbHeight, fit ) {
- var image, internalURL, canvasDataURI;
- function errorHandler( e ) {
- var msg = fileSystemErrorMessage( e );
- if ( _callback ) {
- _callback( ( msg === "NOT_FOUND_ERR" ) ? msg : null );
- }
- }
-
- thumbWidth = thumbWidth || 128;
- thumbHeight = thumbHeight || 128;
- fit = fit || true;
- image = new Image();
- image.onload = function () {
- internalURL = getInternalURLFromURL( url );
- canvasDataURI = getThumbnail( this, thumbWidth, thumbHeight, fit );
- try {
- localStorage.setItem( internalURL, canvasDataURI );
- if ( _callback ) {
- _callback( canvasDataURI );
- }
- } catch ( e ) {
- if ( _callback ) {
- _callback( ( e.type === "non_object_property_load" ) ? "NOT_FOUND_ERR" : null );
- }
- }
- };
- image.src = url;
- },
-
- removeThumbnail: function ( url ) {
- var internalURL;
- function errorHandler( e ) {
- fileSystemErrorMessage( e );
- }
-
- internalURL = getInternalURLFromURL( url );
- try {
- localStorage.removeItem( internalURL );
- } catch ( e ) {
- throw e;
- }
- }
- };
-
-} ( jQuery, window, document ) );
-
+\r
+/* ***************************************************************************\r
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.\r
+ *\r
+ * Permission is hereby granted, free of charge, to any person obtaining a\r
+ * copy of this software and associated documentation files (the "Software"),\r
+ * to deal in the Software without restriction, including without limitation\r
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,\r
+ * and/or sell copies of the Software, and to permit persons to whom the\r
+ * Software is furnished to do so, subject to the following conditions:\r
+ *\r
+ * The above copyright notice and this permission notice shall be included in\r
+ * all copies or substantial portions of the Software.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\r
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\r
+ * DEALINGS IN THE SOFTWARE.\r
+ * ***************************************************************************\r
+ *\r
+ * Authors: Hyunsook Park <hyunsook.park@samsung.com>\r
+ * Wonseop Kim <wonseop.kim@samsung.com>\r
+*/\r
+\r
+( function ( $, window, document, undefined ) {\r
+ var _canvas, _context;\r
+\r
+ function initCanvas() {\r
+ if (_context) {\r
+ return;\r
+ }\r
+ _canvas = document.createElement( 'canvas' );\r
+ _context = _canvas.getContext( '2d' );\r
+ }\r
+\r
+ function fileSystemErrorMessage( e ) {\r
+ var FileError = window.FileError,\r
+ msg = '';\r
+ switch ( e.code ) {\r
+ case FileError.QUOTA_EXCEEDED_ERR:\r
+ msg = 'QUOTA_EXCEEDED_ERR';\r
+ break;\r
+ case FileError.NOT_FOUND_ERR:\r
+ msg = 'NOT_FOUND_ERR';\r
+ break;\r
+ case FileError.SECURITY_ERR:\r
+ msg = 'SECURITY_ERR';\r
+ break;\r
+ case FileError.INVALID_MODIFICATION_ERR:\r
+ msg = 'INVALID_MODIFICATION_ERR';\r
+ break;\r
+ case FileError.INVALID_STATE_ERR:\r
+ msg = 'INVALID_STATE_ERR';\r
+ break;\r
+ default:\r
+ msg = 'Unknown Error';\r
+ break;\r
+ }\r
+ return msg;\r
+ }\r
+\r
+ function getInternalURLFromURL( url ) {\r
+ var internalURL = url.replace( /\//gi, "_" );\r
+ return internalURL;\r
+ }\r
+\r
+ function resize( imagewidth, imageheight, thumbwidth, thumbheight, fit ) {\r
+ var w = 0, h = 0, x = 0, y = 0,\r
+ widthratio = imagewidth / thumbwidth,\r
+ heightratio = imageheight / thumbheight,\r
+ maxratio = Math.max( widthratio, heightratio );\r
+\r
+ if ( fit ) {\r
+ w = thumbwidth;\r
+ h = thumbheight;\r
+ } else {\r
+ if ( maxratio > 1 ) {\r
+ w = imagewidth / maxratio;\r
+ h = imageheight / maxratio;\r
+ } else {\r
+ w = imagewidth;\r
+ h = imageheight;\r
+ }\r
+ x = ( thumbwidth - w ) / 2;\r
+ y = ( thumbheight - h ) / 2;\r
+ }\r
+\r
+ return { w: w, h: h, x: x, y: y };\r
+ }\r
+\r
+ function getThumbnail( img, thumbwidth, thumbheight, fit ) {\r
+ var dimensions, url;\r
+ initCanvas();\r
+ _canvas.width = thumbwidth;\r
+ _canvas.height = thumbheight;\r
+ dimensions = resize( img.width, img.height, thumbwidth, thumbheight, fit );\r
+ _context.fillStyle = "#000000";\r
+ _context.fillRect ( 0, 0, thumbwidth, thumbheight );\r
+ _context.drawImage( img, dimensions.x, dimensions.y, dimensions.w, dimensions.h );\r
+ url = _canvas.toDataURL();\r
+ return url;\r
+ }\r
+\r
+ $.imageloader = {\r
+ _grantedBytes: 1024 * 1024,\r
+ getThumbnail: function ( url, _callback ) {\r
+ var internalURL, canvasDataURI;\r
+ function errorHandler( e ) {\r
+ var msg = fileSystemErrorMessage( e );\r
+ if ( _callback ) {\r
+ _callback( ( msg === "NOT_FOUND_ERR" ) ? msg : null );\r
+ }\r
+ }\r
+\r
+ internalURL = getInternalURLFromURL( url );\r
+ try {\r
+ canvasDataURI = localStorage.getItem( internalURL );\r
+ if ( _callback ) {\r
+ _callback( ( canvasDataURI === null ) ? "NOT_FOUND_ERR" : canvasDataURI );\r
+ }\r
+ } catch ( e ) {\r
+ if ( _callback ) {\r
+ _callback( ( e.type === "non_object_property_load" ) ? "NOT_FOUND_ERR" : null );\r
+ }\r
+ }\r
+ },\r
+\r
+ setThumbnail: function ( url, _callback, thumbWidth, thumbHeight, fit ) {\r
+ var image, internalURL, canvasDataURI;\r
+ function errorHandler( e ) {\r
+ var msg = fileSystemErrorMessage( e );\r
+ if ( _callback ) {\r
+ _callback( ( msg === "NOT_FOUND_ERR" ) ? msg : null );\r
+ }\r
+ }\r
+\r
+ thumbWidth = thumbWidth || 128;\r
+ thumbHeight = thumbHeight || 128;\r
+ fit = fit || true;\r
+ image = new Image();\r
+ image.onload = function () {\r
+ internalURL = getInternalURLFromURL( url );\r
+ canvasDataURI = getThumbnail( this, thumbWidth, thumbHeight, fit );\r
+ try {\r
+ localStorage.setItem( internalURL, canvasDataURI );\r
+ if ( _callback ) {\r
+ _callback( canvasDataURI );\r
+ }\r
+ } catch ( e ) {\r
+ if ( _callback ) {\r
+ _callback( ( e.type === "non_object_property_load" ) ? "NOT_FOUND_ERR" : null );\r
+ }\r
+ }\r
+ };\r
+ image.src = url;\r
+ },\r
+\r
+ removeThumbnail: function ( url ) {\r
+ var internalURL;\r
+ function errorHandler( e ) {\r
+ fileSystemErrorMessage( e );\r
+ }\r
+\r
+ internalURL = getInternalURLFromURL( url );\r
+ try {\r
+ localStorage.removeItem( internalURL );\r
+ } catch ( e ) {\r
+ throw e;\r
+ }\r
+ }\r
+ };\r
+\r
+} ( jQuery, window, document ) );\r
+\r
-
-/* ***************************************************************************
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- *
- * Authors: Hyunsook Park <hyunsook.park@samsung.com>
- * Wonseop Kim <wonseop.kim@samsung.com>
-*/
-
-( function ( $, undefined ) {
- $.webgl = {};
-
- $.webgl.shader = {
- _vertexShader: null,
- _fragmentShader: null,
-
- deleteShaders: function ( gl ) {
- gl.deleteShader( this._vertexShader );
- gl.deleteShader( this._fragmentShader );
- },
-
- addShaderProgram : function ( gl, vs, fs, isFile ) {
- var shaderProgram,
- vertexShaderSource = {},
- fragmentShaderSource = {};
-
- if ( isFile ) {
- vertexShaderSource = this.loadShaderFile( vs );
- fragmentShaderSource = this.loadShaderFile( fs );
- } else {
- vertexShaderSource.source = vs;
- fragmentShaderSource.source = fs;
- }
-
- this._vertexShader = this.getShader( gl, gl.VERTEX_SHADER, vertexShaderSource );
- this._fragmentShader = this.getShader( gl, gl.FRAGMENT_SHADER, fragmentShaderSource );
-
- shaderProgram = gl.createProgram();
- gl.attachShader( shaderProgram, this._vertexShader);
- gl.attachShader( shaderProgram, this._fragmentShader);
- gl.linkProgram( shaderProgram );
-
- if ( !gl.getProgramParameter( shaderProgram, gl.LINK_STATUS ) ) {
- window.alert( "Could not initialize Shaders!" );
- }
- return shaderProgram;
- },
-
- loadShaderFile : function ( path ) {
- var cache = null;
- $.ajax({
- async : false,
- url : path,
- success : function ( result ) {
- cache = {
- source: result
- };
- }
- });
- return cache;
- },
-
- getShader: function ( gl, type, script ) {
- var shader;
-
- if ( !gl || !type || !script ) {
- return null;
- }
-
- shader = gl.createShader( type );
-
- gl.shaderSource( shader, script.source );
- gl.compileShader( shader );
-
- if ( !gl.getShaderParameter( shader, gl.COMPILE_STATUS ) ) {
- window.alert( gl.getShaderInfoLog( shader ) );
- gl.deleteShader( shader );
- return null;
- }
- return shader;
- }
- };
-
- $.webgl.buffer = {
- attribBufferData: function ( gl, attribArray ) {
- var attribBuffer = gl.createBuffer();
-
- gl.bindBuffer( gl.ARRAY_BUFFER, attribBuffer );
- gl.bufferData( gl.ARRAY_BUFFER, attribArray, gl.STATIC_DRAW );
- gl.bindBuffer( gl.ARRAY_BUFFER, null );
-
- return attribBuffer;
- }
- };
-
-} ( jQuery ) );
-
+\r
+/* ***************************************************************************\r
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.\r
+ *\r
+ * Permission is hereby granted, free of charge, to any person obtaining a\r
+ * copy of this software and associated documentation files (the "Software"),\r
+ * to deal in the Software without restriction, including without limitation\r
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,\r
+ * and/or sell copies of the Software, and to permit persons to whom the\r
+ * Software is furnished to do so, subject to the following conditions:\r
+ *\r
+ * The above copyright notice and this permission notice shall be included in\r
+ * all copies or substantial portions of the Software.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\r
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\r
+ * DEALINGS IN THE SOFTWARE.\r
+ * ***************************************************************************\r
+ *\r
+ * Authors: Hyunsook Park <hyunsook.park@samsung.com>\r
+ * Wonseop Kim <wonseop.kim@samsung.com>\r
+*/\r
+\r
+( function ( $, undefined ) {\r
+ $.webgl = {};\r
+\r
+ $.webgl.shader = {\r
+ _vertexShader: null,\r
+ _fragmentShader: null,\r
+\r
+ deleteShaders: function ( gl ) {\r
+ gl.deleteShader( this._vertexShader );\r
+ gl.deleteShader( this._fragmentShader );\r
+ },\r
+\r
+ addShaderProgram : function ( gl, vs, fs, isFile ) {\r
+ var shaderProgram,\r
+ vertexShaderSource = {},\r
+ fragmentShaderSource = {};\r
+\r
+ if ( isFile ) {\r
+ vertexShaderSource = this.loadShaderFile( vs );\r
+ fragmentShaderSource = this.loadShaderFile( fs );\r
+ } else {\r
+ vertexShaderSource.source = vs;\r
+ fragmentShaderSource.source = fs;\r
+ }\r
+\r
+ this._vertexShader = this.getShader( gl, gl.VERTEX_SHADER, vertexShaderSource );\r
+ this._fragmentShader = this.getShader( gl, gl.FRAGMENT_SHADER, fragmentShaderSource );\r
+\r
+ shaderProgram = gl.createProgram();\r
+ gl.attachShader( shaderProgram, this._vertexShader);\r
+ gl.attachShader( shaderProgram, this._fragmentShader);\r
+ gl.linkProgram( shaderProgram );\r
+\r
+ if ( !gl.getProgramParameter( shaderProgram, gl.LINK_STATUS ) ) {\r
+ window.alert( "Could not initialize Shaders!" );\r
+ }\r
+ return shaderProgram;\r
+ },\r
+\r
+ loadShaderFile : function ( path ) {\r
+ var cache = null;\r
+ $.ajax({\r
+ async : false,\r
+ url : path,\r
+ success : function ( result ) {\r
+ cache = {\r
+ source: result\r
+ };\r
+ }\r
+ });\r
+ return cache;\r
+ },\r
+\r
+ getShader: function ( gl, type, script ) {\r
+ var shader;\r
+\r
+ if ( !gl || !type || !script ) {\r
+ return null;\r
+ }\r
+\r
+ shader = gl.createShader( type );\r
+\r
+ gl.shaderSource( shader, script.source );\r
+ gl.compileShader( shader );\r
+\r
+ if ( !gl.getShaderParameter( shader, gl.COMPILE_STATUS ) ) {\r
+ window.alert( gl.getShaderInfoLog( shader ) );\r
+ gl.deleteShader( shader );\r
+ return null;\r
+ }\r
+ return shader;\r
+ }\r
+ };\r
+\r
+ $.webgl.buffer = {\r
+ attribBufferData: function ( gl, attribArray ) {\r
+ var attribBuffer = gl.createBuffer();\r
+\r
+ gl.bindBuffer( gl.ARRAY_BUFFER, attribBuffer );\r
+ gl.bufferData( gl.ARRAY_BUFFER, attribArray, gl.STATIC_DRAW );\r
+ gl.bindBuffer( gl.ARRAY_BUFFER, null );\r
+\r
+ return attribBuffer;\r
+ }\r
+ };\r
+\r
+} ( jQuery ) );\r
+\r
initSelector: "input[type='date'], input[type='datetime'], input[type='time'], :jqmData(role='datetimepicker')"
},
+ container : null,
+
_calendar: function () {
return window.Globalize.culture().calendars.standard;
},
this.ui.bind('vclick', function ( e ) {
obj._showDataSelector( obj, this, e.target );
});
- },
+ $.extend( this, {
+ _globalHandlers: [
+ {
+ src: $( window ),
+ handler: {
+ orientationchange: $.proxy( this, "_orientationHandler" )
+ }
+ }
+ ]
+ });
+
+ $.each( this._globalHandlers, function( idx, value ) {
+ value.src.bind( value.handler );
+ });
+ },
+ _orientationHandler: function() {
+ var self = this;
+ if( self._popup_open ) {
+ self._popup_open = false;
+ self.container.popupwindow( 'close' );
+ }
+ return false;
+ },
_populateDataSelector: function ( field, pat ) {
var values,
numItems,
target.offset().left + ( target.width() / 2 ) + newLeft - window.pageXOffset ,
target.offset().top + target.height() - window.pageYOffset );
+ this.container = $ctx;
this._popup_open = true;
$div.bind('popupafterclose', function ( e ) {
_primaryLanguage: null,
_secondLanguage: null,
+ _dividerMap: {},
+ _defaultTime: 500,
+ _defaultDuration: 500,
+ _timer: null,
+ _isFadeOut: false,
_create: function () {
var $el = this.element,
var coords = $.mobile.tizen.targetRelativeCoordsFromEvent( e ),
shortcutsListOffset = self.shortcutsList.offset();
+ if ( self._isFadeOut === true ) {
+ return;
+ }
+
// If the element is a list item, get coordinates relative to the shortcuts list
if ( e.target.tagName.toLowerCase() === "li" ) {
coords.x += $( e.target ).offset().left - shortcutsListOffset.left;
l = listItem.offset().left - shortcutsListOffset.left,
t = listItem.offset().top - shortcutsListOffset.top,
r = l + Math.abs(listItem.outerWidth( true ) ),
- b = t + Math.abs(listItem.outerHeight( true ) );
+ b = t + Math.abs(listItem.outerHeight( true ) ),
+ unit,
+ baseTop,
+ baseBottom,
+ omitSet,
+ i;
if ( coords.x >= l && coords.x <= r && coords.y >= t && coords.y <= b ) {
- self._hitItem( listItem );
+ if ( listItem.text() !== "." ) {
+ self._hitItem( listItem );
+ } else {
+ omitSet = listItem.data( "omitSet" );
+ unit = ( b - t ) / omitSet.length;
+ for ( i = 0; i < omitSet.length; i++ ) {
+ baseTop = t + ( i * unit );
+ baseBottom = baseTop + unit;
+ if ( coords.y >= baseTop && coords.y <= baseBottom ) {
+ self._hitOmitItem( listItem, omitSet.charAt( i ) );
+ }
+ }
+ }
return false;
}
return true;
} );
+ self._setTimer( false );
+
e.preventDefault();
e.stopPropagation();
} )
$( ".ui-fastscroll-hover-first-item" ).removeClass( "ui-fastscroll-hover-first-item" );
$( ".ui-fastscroll-hover-up" ).removeClass( "ui-fastscroll-hover-up" );
$( ".ui-fastscroll-hover-down" ).removeClass( "ui-fastscroll-hover-down" );
+ self._setTimer( true );
} );
if ( page && !( page.is( ':visible' ) ) ) {
$( window ).unbind( ".fastscroll" ).bind( "resize.fastscroll", function ( e ) {
self.refresh();
} );
+
+ self.scrollview.bind( "scrollstart", function ( e ) {
+ self._setTimer( false );
+ }).bind( "scrollstop", function ( e ) {
+ self._setTimer( true );
+ });
},
- _hitItem: function ( listItem ) {
+ _hitOmitItem: function ( listItem, text ) {
var self = this,
- $popup = self.scrollview.find( '.ui-fastscroll-popup' );
+ $popup = self.scrollview.find( '.ui-fastscroll-popup' ),
+ divider = self._dividerMap[ text ];
- if ( typeof listItem.data( 'divider' ) !== "undefined" ) {
- self.jumpToDivider( $( listItem.data( 'divider' ) ) );
+ if ( typeof divider !== "undefined" ) {
+ self.jumpToDivider( $( divider ) );
+ }
+
+ $popup.text( text )
+ .css( { marginLeft: -( $popup.width() / 2 ),
+ marginTop: -( $popup.height() / 2 ),
+ padding: $popup.css( "paddingTop" ) } )
+ .width( $popup.height() )
+ .show();
+
+ $( listItem ).addClass( "ui-fastscroll-hover" );
+ if ( listItem.index() === 0 ) {
+ $( listItem ).addClass( "ui-fastscroll-hover-first-item" );
+ }
+ if ( listItem.index() > 0 ) {
+ $( listItem ).siblings().eq( listItem.index() - 1 ).addClass( "ui-fastscroll-hover-up" );
}
+ $( listItem ).siblings().eq( listItem.index() ).addClass( "ui-fastscroll-hover-down" );
+ },
- if ( listItem.text() !== "." ) {
- $popup.text( listItem.text() )
- .css( { marginLeft: -( $popup.width() / 2 ),
- marginTop: -( $popup.height() / 2 ),
- padding: $popup.css( "paddingTop" ) } )
- .width( $popup.height() )
- .show();
+ _hitItem: function ( listItem ) {
+ var self = this,
+ $popup = self.scrollview.find( '.ui-fastscroll-popup' ),
+ text = listItem.text(),
+ divider;
+
+ if ( text === "#" ) {
+ divider = self._dividerMap.number;
} else {
- $popup.hide();
+ divider = self._dividerMap[ text ];
+ }
+
+ if ( typeof divider !== "undefined" ) {
+ self.jumpToDivider( $( divider ) );
}
+ $popup.text( text )
+ .css( { marginLeft: -( $popup.width() / 2 ),
+ marginTop: -( $popup.height() / 2 ),
+ padding: $popup.css( "paddingTop" ) } )
+ .width( $popup.height() )
+ .show();
+
$( listItem ).addClass( "ui-fastscroll-hover" );
if ( listItem.index() === 0 ) {
$( listItem ).addClass( "ui-fastscroll-hover-first-item" );
$popup = self.scrollview.find( '.ui-fastscroll-popup' );
listItem.focusin( function ( e ) {
+ self.shortcutsList.attr( "aria-hidden", false );
self._hitItem( listItem );
+ self._setTimer( false );
}).focusout( function ( e ) {
+ self.shortcutsList.attr( "aria-hidden", true );
$popup.hide();
$( ".ui-fastscroll-hover" ).removeClass( "ui-fastscroll-hover" );
$( ".ui-fastscroll-hover-first-item" ).removeClass( "ui-fastscroll-hover-first-item" );
$( ".ui-fastscroll-hover-up" ).removeClass( "ui-fastscroll-hover-up" );
$( ".ui-fastscroll-hover-down" ).removeClass( "ui-fastscroll-hover-down" );
+ self._setTimer( true );
});
},
return omitInfo;
},
+ _createDividerMap: function () {
+ var self = this,
+ primaryCharacterSet = self._primaryLanguage ? self._primaryLanguage.replace( /,/g, "" ) : null,
+ secondCharacterSet = self._secondLanguage ? self._secondLanguage.replace( /,/g, "" ) : null,
+ numberSet = "0123456789",
+ dividers = self.element.find( '.ui-li-divider' ),
+ map = {},
+ matchToDivider,
+ makeCharacterSet,
+ indexChar,
+ i;
+
+ matchToDivider = function ( index, divider ) {
+ if ( $( divider ).text() === indexChar ) {
+ map[ indexChar ] = divider;
+ }
+ };
+
+ makeCharacterSet = function ( index, divider ) {
+ primaryCharacterSet += $( divider ).text();
+ };
+
+ if ( primaryCharacterSet === null ) {
+ primaryCharacterSet = "";
+ dividers.each( makeCharacterSet );
+ }
+
+ for ( i = 0; i < primaryCharacterSet.length; i++ ) {
+ indexChar = primaryCharacterSet.charAt( i );
+ dividers.each( matchToDivider );
+ }
+
+ if ( secondCharacterSet !== null ) {
+ for ( i = 0; i < secondCharacterSet.length; i++ ) {
+ indexChar = secondCharacterSet.charAt( i );
+ dividers.each( matchToDivider );
+ }
+ }
+
+ dividers.each( function ( index, divider ) {
+ if ( numberSet.search( $( divider ).text() ) !== -1 ) {
+ map.number = divider;
+ return false;
+ }
+ });
+
+ self._dividerMap = map;
+ },
+
+ _setTimer: function ( start ) {
+ var self = this;
+
+ if ( start === true ) {
+ self._timer = setTimeout( function () {
+ self._isFadeOut = true;
+ self.shortcutsContainer.fadeOut( self._defaultDuration, function () {
+ self._isFadeOut = false;
+ });
+ }, self._defaultTime );
+ } else {
+ if ( self._timer !== null ) {
+ clearTimeout( self._timer );
+ }
+ self.shortcutsContainer.show();
+ }
+ },
+
indexString: function ( indexAlphabet ) {
var self = this,
characterSet = [];
- if ( typeof indexAlphabet === " undefined" ) {
+ if ( typeof indexAlphabet === "undefined" ) {
return self._primaryLanguage + ":" + self._secondLanguage;
}
contentHeight = self._contentHeight(),
shapItem = $( '<li tabindex="0" aria-label="double to move Number list"><span aria-hidden="true">#</span><span aria-label="Number"/></li>' ),
omitIndex = 0,
- matchToDivider,
+ makeCharacterSet,
+ makeOmitSet,
+ itemHandler,
containerHeight,
shortcutsItems,
shortcutItem,
size,
i;
- matchToDivider = function ( index, divider ) {
- if ( $( divider ).text() === indexChar ) {
- shortcutItem.data( 'divider', divider )
- .bind( 'vclick', function ( e ) {
- $( divider ).next().focus();
- } );
+ makeCharacterSet = function ( index, divider ) {
+ primaryCharacterSet += $( divider ).text();
+ };
+
+ makeOmitSet = function ( index, length ) {
+ var count,
+ omitSet = "";
+
+ for ( count = 0; count < length; count++ ) {
+ omitSet += primaryCharacterSet[ index + count ];
}
+
+ return omitSet;
};
+ itemHandler = function ( e ) {
+ var text = $( this ).text(),
+ matchDivider = self._dividerMap[ text ];
+
+ if ( typeof matchDivider !== "undefined" ) {
+ $( matchDivider ).next().focus();
+ }
+ };
+
+ self._createDividerMap();
+
self.shortcutsList.find( 'li' ).remove();
// get all the dividers from the list and turn them into shortcuts
self.shortcutsList.append( shapItem );
self._focusItem( shapItem );
- if ( primaryCharacterSet !== null ) {
- padding = parseInt( shapItem.css( "padding" ), 10 );
- minHeight = shapItem.height() + ( padding * 2 );
- maxNumOfItems = parseInt( ( contentHeight / minHeight ) - 1, 10 );
- numOfItems = primaryCharacterSet.length;
+ if ( primaryCharacterSet === null ) {
+ primaryCharacterSet = "";
+ dividers.each( makeCharacterSet );
+ }
- maxNumOfItems = secondCharacterSet ? maxNumOfItems - 2 : maxNumOfItems;
+ padding = parseInt( shapItem.css( "padding" ), 10 );
+ minHeight = shapItem.height() + ( padding * 2 );
+ maxNumOfItems = parseInt( ( contentHeight / minHeight ) - 1, 10 );
+ numOfItems = primaryCharacterSet.length;
- if ( maxNumOfItems < 3 ) {
- shapItem.remove();
- return;
- }
+ maxNumOfItems = secondCharacterSet ? maxNumOfItems - 2 : maxNumOfItems;
- omitInfo = self._omit( numOfItems, maxNumOfItems );
+ if ( maxNumOfItems < 3 ) {
+ shapItem.remove();
+ return;
+ }
- for ( i = 0; i < primaryCharacterSet.length; i++ ) {
- indexChar = primaryCharacterSet.charAt( i );
- shortcutItem = $( '<li tabindex="0" aria-label="double to move ' + indexChar + ' list">' + indexChar + '</li>' );
+ omitInfo = self._omit( numOfItems, maxNumOfItems );
- self._focusItem( shortcutItem );
- dividers.each( matchToDivider );
+ for ( i = 0; i < primaryCharacterSet.length; i++ ) {
+ indexChar = primaryCharacterSet.charAt( i );
+ shortcutItem = $( '<li tabindex="0" aria-label="double to move ' + indexChar + ' list">' + indexChar + '</li>' );
- if ( typeof omitInfo !== "undefined" && omitInfo[ omitIndex ] > 1 ) {
- shortcutItem = $( '<li>.</li>' );
- i += omitInfo[ omitIndex ] - 1;
- }
+ self._focusItem( shortcutItem );
- shapItem.before( shortcutItem );
- omitIndex++;
+ if ( typeof omitInfo !== "undefined" && omitInfo[ omitIndex ] > 1 ) {
+ shortcutItem = $( '<li>.</li>' );
+ shortcutItem.data( "omitSet", makeOmitSet( i, omitInfo[ omitIndex ] ) );
+ i += omitInfo[ omitIndex ] - 1;
+ } else {
+ shortcutItem.bind( 'vclick', itemHandler );
}
- if ( secondCharacterSet !== null ) {
- lastIndex = secondCharacterSet.length - 1;
- seconds = [];
-
- seconds.push( secondCharacterSet.charAt( 0 ) );
- seconds.push( secondCharacterSet.charAt( lastIndex ) );
+ shapItem.before( shortcutItem );
+ omitIndex++;
+ }
- for ( i = 0; i < seconds.length; i++ ) {
- indexChar = seconds[ i ];
- shortcutItem = $( '<li tabindex="0" aria-label="double to move ' + indexChar + ' list">' + indexChar + '</li>' );
+ if ( secondCharacterSet !== null ) {
+ lastIndex = secondCharacterSet.length - 1;
+ seconds = [];
- self._focusItem( shortcutItem );
- dividers.each( matchToDivider );
+ seconds.push( secondCharacterSet.charAt( 0 ) );
+ seconds.push( secondCharacterSet.charAt( lastIndex ) );
- shapItem.before( shortcutItem );
- }
- }
- } else {
- dividers.each( function ( index, divider ) {
- indexChar = $( divider ).text();
+ for ( i = 0; i < seconds.length; i++ ) {
+ indexChar = seconds[ i ];
shortcutItem = $( '<li tabindex="0" aria-label="double to move ' + indexChar + ' list">' + indexChar + '</li>' );
- shortcutItem.data( 'divider', divider );
self._focusItem( shortcutItem );
+ shortcutItem.bind( 'vclick', itemHandler );
shapItem.before( shortcutItem );
- } );
+ }
}
containerHeight = self.shortcutsContainer.outerHeight();
// make the scrollview clip tall enough to show the whole of the shortcutslist
minClipHeight = shortcutsTop + self.shortcutsContainer.outerHeight() + 'px';
self.scrollview.css( 'min-height', minClipHeight );
+
+ self._setTimer( false );
+ self._setTimer( true );
}
} );
processing = function () {
self._resize( index );
self._align( index, obj );
+
},
loading = function () {
if ( self.images[index] === undefined ) {
}
obj.css( "display", "block" );
+ obj.css( "visibility", "hidden" );
obj.append( this.images[index] );
loading();
},
coord_x = _x - this.org_x;
- this._moveLeft( this.cur_img , coord_x + 'px');
+ this._moveLeft( this.cur_img , coord_x + 'px' );
if ( this.next_img.length ) {
this._moveLeft( this.next_img , coord_x + this.window_width + 'px' );
}
},
_setTranslateposition : function ( $ele, value ) {
var translate,
- cssArray = null;
+ cssArray = null,
+ self = this;
if ( $.support.cssTransform3d ) {
translate = "translate3d(" + value + ", 0px, 0px)";
$ele.css(cssArray);
return $ele;
},
- _moveLeft : function ( $ele , value , duration) {
+ _hidePrevNext : function() {
+ var self = this;
+
+ if( self.next_img ) {
+ self.next_img.css( "visibility", "hidden" );
+ }
+ if( self.prev_img ) {
+ self.prev_img.css( "visibility", "hidden" );
+ }
+
+ },
+ _hideCur : function() {
+ var self = this;
+ if( self.cur_img ) {
+ self.cur_img.css( "visibility", "hidden" );
+ }
+ },
+ _moveLeft : function ( $ele , value , duration ) {
var translate,
transition = "",
- cssArray = null;
+ cssArray = null,
+ self = this;
if ( $.support.cssTransform3d ) {
translate = "translate3d(" + value + ", 0px, 0px)";
"transform": translate};
if( transition !== "" ) {
cssArray["-webkit-transition"] = transition ;
+ if( value == "0px" ) {
+ $ele.one( 'webkitTransitionEnd', self._hidePrevNext );
+ } else {
+ $ele.one( 'webkitTransitionEnd', self._hideCur );
+ }
+ }
+ if( value == "0px" ) {
+ $ele.css( "visibility", "visible" );
}
$ele.css(cssArray);
this._attach( this.index, this.cur_img );
this._attach( this.index + 1, this.next_img );
+ this.cur_img.css( 'visibility', 'visible' );
if ( this.prev_img.length ) {
this._setTranslateposition( this.prev_img, -this.window_width + 'px');
}
// initialise sliders with our own slider
$( document ).bind( "pagecreate create", function ( e ) {
var jqmSliderInitSelector = $.data( window, "jqmSliderInitSelector" );
- $( e.target ).find(jqmSliderInitSelector).not('select').tizenslider();
- $( e.target ).find(jqmSliderInitSelector).filter('select').slider();
+ $( e.target ).find(jqmSliderInitSelector).each(function () {
+ var $this = $( this );
+ if ( $this.is("select") ) {
+ $this.slider();
+ } else {
+ $this.tizenslider();
+ }
+ });
});
}( jQuery, this ));
$view = self.element,
option = self.options,
inputbox = $view.find( ".ui-tokentextarea-input" ),
- moreBlock = $view.find( ".ui-tokentextarea-link-base" ),
- isSeparator = false;
+ moreBlock = $view.find( ".ui-tokentextarea-link-base" );
// delegate a event to HTMLDivElement(each block).
$view.delegate( "div", "click", function ( event ) {
var keyValue = event.keyCode,
valueString = $( inputbox ).val(),
valueStrings = [],
- index;
+ index,
+ isSeparator = false;
if ( keyValue === 8 ) {
if ( valueString.length === 0 ) {
if ( $view.innerWidth() === 0 ) {
return ;
}
- self._modifyInputBoxWidth();
+ self.refresh();
$( inputbox ).removeClass( "ui-tokentextarea-input-invisible" ).addClass( "ui-tokentextarea-input-visible" );
});
refresh : function () {
var self = this,
- $view = this.element;
+ viewWidth = this.element.innerWidth();
- self._viewWidth = $view.innerWidth();
+ if ( viewWidth && self._viewWidth !== viewWidth ) {
+ self._viewWidth = viewWidth;
+ }
self._resizeBlocks();
self._modifyInputBoxWidth();
},
$( o.id ).height( t._numItemData * t._line_h );
},
+ // Resize each listitem's width
_resize: function ( event ) {
- var o,
+ var o, // 'ul'
t = this,
+ li,
padding,
margin;
} else {
o = event;
}
+ li = $( o ).children( o.childSelector )
- t._container_w = $( o.id ).innerWidth();
+ t._container_w = $( o ).width();
- padding = parseInt( $( o.id + o.childSelector ).css( "padding-left" ), 10 )
- + parseInt( $( o.id + o.childSelector ).css( "padding-right" ), 10 );
+ padding = parseInt( li.css( "padding-left" ), 10 )
+ + parseInt( li.css( "padding-right" ), 10 );
- $( o.id + o.childSelector ).each( function (index) {
+ li.each( function ( index, obj ) {
margin = parseInt( $( this ).css( "margin-left" ), 10 )
+ parseInt( $( this ).css( "margin-right" ), 10 );
$( this ).css( "width", t._container_w - padding - margin );
// Bind _scrollmove() at 'scrollstart.virtuallist' event
$( document ).bind( "scrollstart.virtuallist scrollstop.vrituallist", t, t._scrollmove );
- // Bind _resize() at 'resize.virtuallist'
- $( window ).bind( "resize.virtuallist", t._resize );
+ // Bind _resize()
+ $( window ).on( "throttledresize", $( o.id ), t._resize );
// when ul is a childselector, assume that this is also a swipelist,
// and run swipelist constructor
$( document ).unbind( "scrollstop" );
- $( window ).unbind( "resize.virtuallist" );
+ $( window ).off( "throttledresize", this._resize );
$( o.id ).empty();
if ( role === "header") {
// Right,left buttons
- $headeranchors = $this.children( "a, button" );
+ $headeranchors = $this.children( "a, div.naviframe-button, a.naviframe-button, button" );
leftbtn = $headeranchors.hasClass( "ui-btn-left" );
rightbtn = $headeranchors.hasClass( "ui-btn-right" );
}
})( jQuery );
/*
-* jQuery Mobile Framework Git Build: SHA1: 2da2929a17d23b83302498d63c38780321449f44 <> Date: Wed Apr 10 23:44:06 2013 +0900
+* jQuery Mobile Framework Git Build: SHA1: d54e7e91132799352f4353a8a1e960deb631cbfd <> Date: Tue Apr 16 13:45:35 2013 +0900
* http://jquerymobile.com
*
* Copyright 2012 jQuery Foundation and other contributors
if ( role === "header") {
// Right,left buttons
- $headeranchors = $this.children( "a, button" );
+ $headeranchors = $this.children( "a, div.naviframe-button, a.naviframe-button, button" );
leftbtn = $headeranchors.hasClass( "ui-btn-left" );
rightbtn = $headeranchors.hasClass( "ui-btn-right" );
* http://jquery.org/license
*/(function(a,b){function m(b,c,d,e){var h={data:e||e===0||e===!1?e:c?c.data:{},_wrap:c?c._wrap:null,tmpl:null,parent:c||null,nodes:[],calls:u,nest:v,wrap:w,html:x,update:y};return b&&a.extend(h,b,{nodes:[],parent:c}),d&&(h.tmpl=d,h._ctnt=h._ctnt||h.tmpl(a,h),h.key=++j,(l.length?g:f)[j]=h),h}function n(b,c,e){var f,g=e?a.map(e,function(a){return typeof a=="string"?b.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+b.key+'" $2'):a:n(a,b,a._ctnt)}):b;return c?g:(g=g.join(""),g.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(b,c,d,e){f=a(d).get(),t(f),c&&(f=o(c).concat(f)),e&&(f=f.concat(o(e)))}),f?f:o(g))}function o(b){var c=document.createElement("div");return c.innerHTML=b,a.makeArray(c.childNodes)}function p(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(b,c,d,e,f,g,h){var i=a.tmpl.tag[d],j,k,l;if(!i)throw"Unknown template tag: "+d;return j=i._default||[],g&&!/\w$/.test(f)&&(f+=g,g=""),f?(f=r(f),h=h?","+r(h)+")":g?")":"",k=g?f.indexOf(".")>-1?f+r(g):"("+f+").call($item"+h:f,l=g?k:"(typeof("+f+")==='function'?("+f+").call($item):("+f+"))"):l=k=j.$1||"null",e=r(e),"');"+i[c?"close":"open"].split("$notnull_1").join(f?"typeof("+f+")!=='undefined' && ("+f+")!=null":"true").split("$1a").join(l).split("$1").join(k).split("$2").join(e||j.$2||"")+"__.push('"})+"');}return __;")}function q(b,c){b._wrap=n(b,!0,a.isArray(c)?c:[e.test(c)?c:a(c).html()]).join("")}function r(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(a){var b=document.createElement("div");return b.appendChild(a.cloneNode(!0)),b.innerHTML}function t(b){function p(b){function p(a){a+=c,n=i[a]=i[a]||m(n,f[n.parent.key+c]||n.parent)}var e,h=b,l,n,o;if(o=b.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(e=h.getAttribute(d)));e!==o&&(h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0,(n=f[o])||(n=g[o],n=m(n,f[h]||g[h]),n.key=++j,f[j]=n),k&&p(o)),b.removeAttribute(d)}else k&&(n=a.data(b,"tmplItem"))&&(p(n.key),f[n.key]=n,h=a.data(b.parentNode,"tmplItem"),h=h?h.key:0);if(n){l=n;while(l&&l.key!=h)l.nodes.push(b),l=l.parent;delete n._ctnt,delete n._wrap,a.data(b,"tmplItem",n)}}var c="_"+k,e,h,i={},l,n,o;for(l=0,n=b.length;l<n;l++){if((e=b[l]).nodeType!==1)continue;h=e.getElementsByTagName("*");for(o=h.length-1;o>=0;o--)p(h[o]);p(e)}}function u(a,b,c,d){if(!a)return l.pop();l.push({_:a,tmpl:b,item:this,data:c,options:d})}function v(b,c,d){return a.tmpl(a.template(b),c,d,this)}function w(b,c){var d=b.options||{};return d.wrapped=c,a.tmpl(a.template(b.tmpl),b.data,d,b.item)}function x(b,c){var d=this._wrap;return a.map(a(a.isArray(d)?d.join(""):d).filter(b||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function y(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]),a(b).remove()}var c=a.fn.domManip,d="_tmplitem",e=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,f={},g={},h,i={key:0,data:{}},j=0,k=0,l=[];a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(b,c){a.fn[b]=function(d){var e=[],g=a(d),i,j,l,m,n=this.length===1&&this[0].parentNode;h=f||{};if(n&&n.nodeType===11&&n.childNodes.length===1&&g.length===1)g[c](this[0]),e=this;else{for(j=0,l=g.length;j<l;j++)k=j,i=(j>0?this.clone(!0):this).get(),a(g[j])[c](i),e=e.concat(i);k=0,e=this.pushStack(e,b,g.selector)}return m=h,h=null,a.tmpl.complete(m),e}}),a.fn.extend({tmpl:function(b,c,d){return a.tmpl(this[0],b,c,d)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(b,d,e,g){if(b[0]&&a.isArray(b[0])){var i=a.makeArray(arguments),j=b[0],l=j.length,m=0,n;while(m<l&&!(n=a.data(j[m++],"tmplItem")));n&&k&&(i[2]=function(b){a.tmpl.afterManip(this,b,e)}),c.apply(this,i)}else c.apply(this,arguments);return k=0,h||a.tmpl.complete(f),this}}),a.extend({tmpl:function(b,c,d,e){var h,j=!e;if(j)e=i,b=a.template[b]||a.template(null,b),g={};else if(!b)return b=e.tmpl,f[e.key]=e,e.nodes=[],e.wrapped&&q(e,e.wrapped),a(n(e,null,e.tmpl(a,e)));return b?(typeof c=="function"&&(c=c.call(e||{})),d&&d.wrapped&&q(d,d.wrapped),h=a.isArray(c)?a.map(c,function(a){return a?m(d,e,b,a):null}):[m(d,e,b,c)],j?a(n(e,null,h)):h):[]},tmplItem:function(b){var c;b instanceof a&&(b=b[0]);while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||i},template:function(b,c){return c?(typeof c=="string"?c=p(c):c instanceof a&&(c=c[0]||{}),c.nodeType&&(c=a.data(c,"tmpl")||a.data(c,"tmpl",p(c.innerHTML))),typeof b=="string"?a.template[b]=c:c):b?typeof b!="string"?a.template(null,b):a.template[b]||a.template(null,e.test(b)?b:a(b)):null},encode:function(a){return(""+a).split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}}),a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(a){f={}},afterManip:function(c,d,e){var f=d.nodeType===11?a.makeArray(d.childNodes):d.nodeType===1?[d]:[];e.call(c,d),t(f),k++}})})(jQuery);
/*
-* jQuery Mobile Framework Git Build: SHA1: 2da2929a17d23b83302498d63c38780321449f44 <> Date: Wed Apr 10 23:44:06 2013 +0900
+* jQuery Mobile Framework Git Build: SHA1: d54e7e91132799352f4353a8a1e960deb631cbfd <> Date: Tue Apr 16 13:45:35 2013 +0900
* http://jquerymobile.com
*
* Copyright 2012 jQuery Foundation and other contributors
* http://jquery.org/license
*
*/(function(a,b,c){typeof define=="function"&&define.amd?define(["jquery"],function(d){return c(d,a,b),d.mobile}):c(a.jQuery,a,b)})(this,document,function(a,b,c,d){(function(a,b,d){var e={};a.mobile=a.extend({},{version:"1.2.0",ns:"",subPageUrlKey:"ui-page",activePageClass:"ui-page-active",activeBtnClass:"ui-btn-active",focusClass:"ui-focus",ajaxEnabled:!0,hashListeningEnabled:!0,linkBindingEnabled:!0,defaultPageTransition:"fade",maxTransitionWidth:!1,minScrollBack:250,touchOverflowEnabled:!1,defaultDialogTransition:"pop",pageLoadErrorMessage:"Error Loading Page",pageLoadErrorMessageTheme:"e",phonegapNavigationEnabled:!1,autoInitializePage:!0,pushStateEnabled:!0,ignoreContentEnabled:!1,orientationChangeEnabled:!0,buttonMarkup:{hoverDelay:200},$window:a(b),$document:a(c),getAttrFixed:function(a,b){var c=a.getAttribute(b);return c==="true"?!0:c==="false"?!1:c===null?d:c},keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91},silentScroll:function(c){a.type(c)!=="number"&&(c=a.mobile.defaultHomeScroll),a.event.special.scrollstart.enabled=!1,setTimeout(function(){b.scrollTo(0,c),a.mobile.$document.trigger("silentscroll",{x:0,y:c})},20),setTimeout(function(){a.event.special.scrollstart.enabled=!0},150)},nsNormalizeDict:e,nsNormalize:function(b){if(!b)return;return e[b]||(e[b]=a.camelCase(a.mobile.ns+b))},getInheritedTheme:function(a,b){var c=a[0],d="",e=/ui-(bar|body|overlay)-([a-z])\b/,f,g;while(c){f=c.className||"";if(f&&(g=e.exec(f))&&(d=g[2]))break;c=c.parentNode}return d||b||"a"},closestPageData:function(a){return a.closest(':jqmData(role="page"), :jqmData(role="dialog")').data("page")},enhanceable:function(a){return this.haveParents(a,"enhance")},hijackable:function(a){return this.haveParents(a,"ajax")},haveParents:function(b,c){if(!a.mobile.ignoreContentEnabled)return b;var d=b.length,e=a(),f,g,h;for(var i=0;i<d;i++){g=b.eq(i),h=!1,f=b[i];while(f){var j=f.getAttribute?f.getAttribute("data-"+a.mobile.ns+c):"";if(j==="false"){h=!0;break}f=f.parentNode}h||(e=e.add(g))}return e},getScreenHeight:function(){return b.innerHeight||a.mobile.$window.height()}},a.mobile),a.fn.jqmData=function(b,c){var e;return typeof b!="undefined"&&(b&&(b=a.mobile.nsNormalize(b)),arguments.length<2||c===d?e=this.data(b):e=this.data(b,c)),e},a.jqmData=function(b,c,d){var e;return typeof c!="undefined"&&(e=a.data(b,c?a.mobile.nsNormalize(c):c,d)),e},a.fn.jqmRemoveData=function(b){return this.removeData(a.mobile.nsNormalize(b))},a.jqmRemoveData=function(b,c){return a.removeData(b,a.mobile.nsNormalize(c))},a.fn.removeWithDependents=function(){a.removeWithDependents(this)},a.removeWithDependents=function(b){var c=a(b);(c.jqmData("dependents")||a()).remove(),c.remove()},a.fn.addDependents=function(b){a.addDependents(a(this),b)},a.addDependents=function(b,c){var d=a(b).jqmData("dependents")||a();a(b).jqmData("dependents",a.merge(d,c))},a.fn.getEncodedText=function(){return a("<div/>").text(a(this).text()).html()},a.fn.jqmEnhanceable=function(){return a.mobile.enhanceable(this)},a.fn.jqmHijackable=function(){return a.mobile.hijackable(this)};var f=a.find,g=/:jqmData\(([^)]*)\)/g;a.find=function(b,c,d,e){return b=b.replace(g,"[data-"+(a.mobile.ns||"")+"$1]"),f.call(this,b,c,d,e)},a.extend(a.find,f),a.find.matches=function(b,c){return a.find(b,null,null,c)},a.find.matchesSelector=function(b,c){return a.find(c,null,null,[b]).length>0},a.extend({creatorDict:{},delegateSelfInitWithSingleSelector:function(b,c){if(typeof b!="function")return!1;var d=b.prototype.options.initSelector,e=/:jqmData\(role='[A-z\-]+'\)$/;if(e.test(d)){var f=d.indexOf("'")+1,g=d.lastIndexOf("'"),h=d.substring(f,g);if(!a.creatorDict.hasOwnProperty(h))return a.creatorDict[h]={},a.creatorDict[h].target=b,c===!0&&(a.creatorDict[h].useKeepNative=c),!0}return!1}}),a(c).bind("pagecreate create",function(b){var c="*[data-"+a.mobile.ns+"role]";a(c,b.target).each(function(){dataRoleValue=this.getAttribute("data-role"),matchedObj=a.creatorDict[dataRoleValue],matchedObj&&matchedObj.target.prototype.enhance(this,matchedObj.useKeepNative)})})})(a,this),function(a,b){var c=0,d=Array.prototype.slice,e=a.cleanData;a.cleanData=function(b){for(var c=0,d;(d=b[c])!=null;c++)try{a(d).triggerHandler("remove")}catch(f){}e(b)},a.widget=function(b,c,d){var e,f,g,h,i=b.split(".")[0];b=b.split(".")[1],e=i+"-"+b,d||(d=c,c=a.Widget),a.expr[":"][e]=function(b){return!!a.data(b,e)},a[i]=a[i]||{},f=a[i][b],g=a[i][b]=function(a,b){if(!this._createWidget)return new g(a,b);arguments.length&&this._createWidget(a,b)},a.extend(g,f,{version:d.version,_proto:a.extend({},d),_childConstructors:[]}),h=new c,h.options=a.widget.extend({},h.options),a.each(d,function(b,e){a.isFunction(e)&&(d[b]=function(){var a=function(){return c.prototype[b].apply(this,arguments)},d=function(a){return c.prototype[b].apply(this,a)};return function(){var b=this._super,c=this._superApply,f;return this._super=a,this._superApply=d,f=e.apply(this,arguments),this._super=b,this._superApply=c,f}}())}),g.prototype=a.widget.extend(h,{widgetEventPrefix:b},d,{constructor:g,namespace:i,widgetName:b,widgetBaseClass:e,widgetFullName:e}),f?(a.each(f._childConstructors,function(b,c){var d=c.prototype;a.widget(d.namespace+"."+d.widgetName,g,c._proto)}),delete f._childConstructors):c._childConstructors.push(g),a.widget.bridge(b,g)},a.widget.extend=function(c){var e=d.call(arguments,1),f=0,g=e.length,h,i;for(;f<g;f++)for(h in e[f])i=e[f][h],e[f].hasOwnProperty(h)&&i!==b&&(c[h]=a.isPlainObject(i)?a.widget.extend({},c[h],i):i);return c},a.widget.bridge=function(c,e){var f=e.prototype.widgetFullName;a.fn[c]=function(g){var h=typeof g=="string",i=d.call(arguments,1),j=this;return g=!h&&i.length?a.widget.extend.apply(null,[g].concat(i)):g,h?this.each(function(){var d,e=a.data(this,f);if(!e)return a.error("cannot call methods on "+c+" prior to initialization; "+"attempted to call method '"+g+"'");if(!a.isFunction(e[g])||g.charAt(0)==="_")return a.error("no such method '"+g+"' for "+c+" widget instance");d=e[g].apply(e,i);if(d!==e&&d!==b)return j=d&&d.jquery?j.pushStack(d.get()):d,!1}):this.each(function(){var b=a.data(this,f);b?b.option(g||{})._init():new e(g,this)}),j}},a.Widget=function(a,b){},a.Widget._childConstructors=[],a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(b,d){d=a(d||this.defaultElement||this)[0],this.element=a(d),this.uuid=c++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=a.widget.extend({},this.options,this._getCreateOptions(),b),this.bindings=a(),this.hoverable=a(),this.focusable=a(),d!==this&&(a.data(d,this.widgetName,this),a.data(d,this.widgetFullName,this),this._on({remove:"destroy"}),this.document=a(d.style?d.ownerDocument:d.document||d),this.window=a(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:a.noop,_getCreateEventData:a.noop,_create:a.noop,_init:a.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(a.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:a.noop,widget:function(){return this.element},option:function(c,d){var e=c,f,g,h;if(arguments.length===0)return a.widget.extend({},this.options);if(typeof c=="string"){e={},f=c.split("."),c=f.shift();if(f.length){g=e[c]=a.widget.extend({},this.options[c]);for(h=0;h<f.length-1;h++)g[f[h]]=g[f[h]]||{},g=g[f[h]];c=f.pop();if(d===b)return g[c]===b?null:g[c];g[c]=d}else{if(d===b)return this.options[c]===b?null:this.options[c];e[c]=d}}return this._setOptions(e),this},_setOptions:function(a){var b;for(b in a)this._setOption(b,a[b]);return this},_setOption:function(a,b){return this.options[a]=b,a==="disabled"&&(this.widget().toggleClass(this.widgetFullName+"-disabled ui-state-disabled",!!b).attr("aria-disabled",b),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_on:function(b,c){c?(b=a(b),this.bindings=this.bindings.add(b)):(c=b,b=this.element);var d=this;a.each(c,function(c,e){function f(){if(d.options.disabled===!0||a(this).hasClass("ui-state-disabled"))return;return(typeof e=="string"?d[e]:e).apply(d,arguments)}typeof e!="string"&&(f.guid=e.guid=e.guid||f.guid||a.guid++);var g=c.match(/^(\w+)\s*(.*)$/),h=g[1]+d.eventNamespace,i=g[2];i?d.widget().delegate(i,h,f):b.bind(h,f)})},_off:function(a,b){b=(b||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,a.unbind(b).undelegate(b)},_delay:function(a,b){function c(){return(typeof a=="string"?d[a]:a).apply(d,arguments)}var d=this;return setTimeout(c,b||0)},_hoverable:function(b){this.hoverable=this.hoverable.add(b),this._on(b,{mouseenter:function(b){a(b.currentTarget).addClass("ui-state-hover")},mouseleave:function(b){a(b.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(b){this.focusable=this.focusable.add(b),this._on(b,{focusin:function(b){a(b.currentTarget).addClass("ui-state-focus")},focusout:function(b){a(b.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(b,c,d){var e,f,g=this.options[b];d=d||{},c=a.Event(c),c.type=(b===this.widgetEventPrefix?b:this.widgetEventPrefix+b).toLowerCase(),c.target=this.element[0],f=c.originalEvent;if(f)for(e in f)e in c||(c[e]=f[e]);return this.element.trigger(c,d),!(a.isFunction(g)&&g.apply(this.element[0],[c].concat(d))===!1||c.isDefaultPrevented())}},a.each({show:"fadeIn",hide:"fadeOut"},function(b,c){a.Widget.prototype["_"+b]=function(d,e,f){typeof e=="string"&&(e={effect:e});var g,h=e?e===!0||typeof e=="number"?c:e.effect||c:b;e=e||{},typeof e=="number"&&(e={duration:e}),g=!a.isEmptyObject(e),e.complete=f,e.delay&&d.delay(e.delay),g&&a.effects&&(a.effects.effect[h]||a.uiBackCompat!==!1&&a.effects[h])?d[b](e):h!==b&&d[h]?d[h](e.duration,e.easing,f):d.queue(function(c){a(this)[b](),f&&f.call(d[0]),c()})}}),a.uiBackCompat!==!1&&(a.Widget.prototype._getCreateOptions=function(){return a.metadata&&a.metadata.get(this.element[0])[this.widgetName]})}(a),function(a,b){a.widget("mobile.widget",{_createWidget:function(){a.Widget.prototype._createWidget.apply(this,arguments),this._trigger("init")},_getCreateOptions:function(){var c=this.element,d={};return a.each(this.options,function(a){var e=c.jqmData(a.replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()}));e!==b&&(d[a]=e)}),d},enhanceWithin:function(b,c){this.enhance(a(this.options.initSelector,a(b)),c)},enhance:function(b,c){var d,e,f=a(b),g=this;f=a.mobile.enhanceable(f),c&&f.length&&(d=a.mobile.closestPageData(f),e=d&&d.keepNativeSelector()||"",f=f.not(e)),f[this.widgetName]()},raise:function(a){throw"Widget ["+this.widgetName+"]: "+a}})}(a),function(a,b){a.extend(a.mobile,{loadingMessageTextVisible:d,loadingMessageTheme:d,loadingMessage:d,showPageLoadingMsg:function(b,c,d){a.mobile.loading("show",b,c,d)},hidePageLoadingMsg:function(){a.mobile.loading("hide")},loading:function(){this.loaderWidget.loader.apply(this.loaderWidget,arguments)}});var c="ui-loader",e=a("html"),f=a.mobile.$window;a.widget("mobile.loader",{options:{theme:"a",textVisible:!1,html:"",text:"loading"},defaultHtml:"<div class='"+c+"'>"+"<span class='ui-icon ui-icon-loading'></span>"+"<h1></h1>"+"</div>",fakeFixLoader:function(){var b=a("."+a.mobile.activeBtnClass).first();this.element.css({top:a.support.scrollTop&&f.scrollTop()+f.height()/2||b.length&&b.offset().top||100})},checkLoaderPosition:function(){var b=this.element.offset(),c=f.scrollTop(),d=a.mobile.getScreenHeight();if(b.top<c||b.top-c>d)this.element.addClass("ui-loader-fakefix"),this.fakeFixLoader(),f.unbind("scroll",this.checkLoaderPosition).bind("scroll",this.fakeFixLoader)},resetHtml:function(){this.element.html(a(this.defaultHtml).html())},show:function(b,g,h){var i,j,k,l;this.resetHtml(),a.type(b)==="object"?(l=a.extend({},this.options,b),b=l.theme||a.mobile.loadingMessageTheme):(l=this.options,b=b||a.mobile.loadingMessageTheme||l.theme),j=g||a.mobile.loadingMessage||l.text,e.addClass("ui-loading");if(a.mobile.loadingMessage!==!1||l.html)a.mobile.loadingMessageTextVisible!==d?i=a.mobile.loadingMessageTextVisible:i=l.textVisible,this.element.attr("class",c+" ui-corner-all ui-body-"+b+" ui-loader-"+(i||g||b.text?"verbose":"default")+(l.textonly||h?" ui-loader-textonly":"")),l.html?this.element.html(l.html):this.element.find("h1").text(j),this.element.appendTo(a.mobile.pageContainer),this.checkLoaderPosition(),f.bind("scroll",a.proxy(this.checkLoaderPosition,this))},hide:function(){e.removeClass("ui-loading"),a.mobile.loadingMessage&&this.element.removeClass("ui-loader-fakefix"),a.mobile.$window.unbind("scroll",a.proxy(this.fakeFixLoader,this)),a.mobile.$window.unbind("scroll",a.proxy(this.checkLoaderPosition,this))}}),f.bind("pagecontainercreate",function(){a.mobile.loaderWidget=a.mobile.loaderWidget||a(a.mobile.loader.prototype.defaultHtml).loader()})}(a,this),function(a,b,c,d){function x(a){while(a&&typeof a.originalEvent!="undefined")a=a.originalEvent;return a}function y(b,c){var e=b.type,f,g,i,k,l,m,n,o,p;b=a.Event(b),b.type=c,f=b.originalEvent,g=a.event.props,e.search(/^(mouse|click)/)>-1&&(g=j);if(f)for(n=g.length,k;n;)k=g[--n],b[k]=f[k];e.search(/mouse(down|up)|click/)>-1&&!b.which&&(b.which=1);if(e.search(/^touch/)!==-1){i=x(f),e=i.touches,l=i.changedTouches,m=e&&e.length?e[0]:l&&l.length?l[0]:d;if(m)for(o=0,p=h.length;o<p;o++)k=h[o],b[k]=m[k]}return b}function z(b){var c={},d,f;while(b){d=a.data(b,e);for(f in d)d[f]&&(c[f]=c.hasVirtualBinding=!0);b=b.parentNode}return c}function A(b,c){var d;while(b){d=a.data(b,e);if(d&&(!c||d[c]))return b;b=b.parentNode}return null}function B(){r=!1}function C(){r=!0}function D(){v=0,p.length=0,q=!1,C()}function E(){B()}function F(){G(),l=setTimeout(function(){l=0,D()},a.vmouse.resetTimerDuration)}function G(){l&&(clearTimeout(l),l=0)}function H(b,c,d){var e;if(d&&d[b]||!d&&A(c.target,b))e=y(c,b),a(c.target).trigger(e);return e}function I(b){var c=a.data(b.target,f);if(a.support.touch===!0&&c===d)return;if(!q&&(!v||v!==c)){var e=H("v"+b.type,b);e&&(e.isDefaultPrevented()&&b.preventDefault(),e.isPropagationStopped()&&b.stopPropagation(),e.isImmediatePropagationStopped()&&b.stopImmediatePropagation())}}function J(b){var c=x(b).touches,d,e;if(c&&c.length===1){d=b.target,e=z(d);if(e.hasVirtualBinding){v=u++,a.data(d,f,v),G(),E(),o=!1;var g=x(b).touches[0];m=g.pageX,n=g.pageY,H("vmouseover",b,e),H("vmousedown",b,e)}}}function K(a){if(r)return;o||H("vmousecancel",a,z(a.target)),o=!0,F()}function L(b){if(r)return;var c=x(b).touches[0],d=o,e=a.vmouse.moveDistanceThreshold,f=z(b.target);o=o||Math.abs(c.pageX-m)>e||Math.abs(c.pageY-n)>e,o&&!d&&H("vmousecancel",b,f),H("vmousemove",b,f),F()}function M(a){if(r)return;C();var b=z(a.target),c;H("vmouseup",a,b);if(!o){var d=H("vclick",a,b);d&&d.isDefaultPrevented()&&(c=x(a).changedTouches[0],p.push({touchID:v,target:a.target,x:c.clientX,y:c.clientY}),q=!0)}H("vmouseout",a,b),o=!1,F()}function N(b){var c=a.data(b,e),d;if(c)for(d in c)if(c[d])return!0;return!1}function O(){}function P(b){var c=b.substr(1);return{setup:function(d,f){N(this)||a.data(this,e,{});var g=a.data(this,e);g[b]=!0,k[b]=(k[b]||0)+1,k[b]===1&&t.bind(c,I),a(this).bind(c,O),s&&(k.touchstart=(k.touchstart||0)+1,k.touchstart===1&&t.bind("touchstart",J).bind("touchend",M).bind("touchmove",L).bind("scroll",K))},teardown:function(d,f){--k[b],k[b]||t.unbind(c,I),s&&(--k.touchstart,k.touchstart||t.unbind("touchstart",J).unbind("touchmove",L).unbind("touchend",M).unbind("scroll",K));var g=a(this),h=a.data(this,e);h&&(h[b]=!1),g.unbind(c,O),N(this)||g.removeData(e)}}}var e="virtualMouseBindings",f="virtualTouchID",g="vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel".split(" "),h="clientX clientY pageX pageY screenX screenY".split(" "),i=a.event.mouseHooks?a.event.mouseHooks.props:[],j=a.event.props.concat(i),k={},l=0,m=0,n=0,o=!1,p=[],q=!1,r=!1,s="addEventListener"in c,t=a.mobile.$document,u=1,v=0,w;a.vmouse={moveDistanceThreshold:10,clickDistanceThreshold:10,resetTimerDuration:1500};for(var Q=0;Q<g.length;Q++)a.event.special[g[Q]]=P(g[Q]);s&&c.addEventListener("click",function(b){var c=p.length,d=b.target,e,g,h,i,j,k;if(c){e=b.clientX,g=b.clientY,w=a.vmouse.clickDistanceThreshold,h=d;while(h){for(i=0;i<c;i++){j=p[i],k=0;if(h===d&&d===j.target&&Math.abs(j.x-e)<w&&Math.abs(j.y-g)<w||a.data(h,f)===j.touchID){b.preventDefault(),b.stopPropagation();return}}h=h.parentNode}}},!0)}(a,b,c),function(a,b){var d={touch:"ontouchend"in c};a.mobile=a.mobile||{},a.mobile.support=a.mobile.support||{},a.extend(a.support,d),a.extend(a.mobile.support,d)}(a),function(a,b,c){function i(b,d,e){var f=e.type;e.type=d,e.liveFired=c,a.event.handle.call(b,e),e.type=f}a.each("touchstart touchmove touchend tap taphold swipe swipeleft swiperight scrollstart scrollstop".split(" "),function(b,c){a.fn[c]=function(a){return a?this.bind(c,a):this.trigger(c)},a.attrFn&&(a.attrFn[c]=!0)});var d=a.mobile.support.touch,e="touchmove scroll",f=d?"touchstart":"mousedown",g=d?"touchend":"mouseup",h=d?"touchmove":"mousemove";a.event.special.scrollstart={enabled:!0,setup:function(){function g(a,c){d=c,i(b,d?"scrollstart":"scrollstop",a)}var b=this,c=a(b),d,f;c.bind(e,function(b){if(!a.event.special.scrollstart.enabled)return;d||g(b,!0),clearTimeout(f),f=setTimeout(function(){g(b,!1)},50)})}},a.event.special.tap={tapholdThreshold:750,setup:function(){var b=this,c=a(b);c.bind("vmousedown",function(d){function h(){clearTimeout(g)}function j(){h(),c.unbind("vclick",k).unbind("vmouseup",h),a.mobile.$document.unbind("vmousecancel",j)}function k(a){j(),e===a.target&&i(b,"tap",a)}if(d.which&&d.which!==1)return!1;var e=d.target,f=d.originalEvent,g;c.bind("vmouseup",h).bind("vclick",k),a.mobile.$document.bind("vmousecancel",j),g=setTimeout(function(){i(b,"taphold",a.Event("taphold",{target:e}))},a.event.special.tap.tapholdThreshold)})}},a.event.special.swipe={scrollSupressionThreshold:30,durationThreshold:1e3,horizontalDistanceThreshold:30,verticalDistanceThreshold:75,setup:function(){var b=this,d=a(b);d.bind(f,function(b){function j(b){if(!f)return;var c=b.originalEvent.touches?b.originalEvent.touches[0]:b;i={time:(new Date).getTime(),coords:[c.pageX,c.pageY]},Math.abs(f.coords[0]-i.coords[0])>a.event.special.swipe.scrollSupressionThreshold&&b.preventDefault()}var e=b.originalEvent.touches?b.originalEvent.touches[0]:b,f={time:(new Date).getTime(),coords:[e.pageX,e.pageY],origin:a(b.target)},i;d.bind(h,j).one(g,function(b){d.unbind(h,j),f&&i&&i.time-f.time<a.event.special.swipe.durationThreshold&&Math.abs(f.coords[0]-i.coords[0])>a.event.special.swipe.horizontalDistanceThreshold&&Math.abs(f.coords[1]-i.coords[1])<a.event.special.swipe.verticalDistanceThreshold&&f.origin.trigger("swipe").trigger(f.coords[0]>i.coords[0]?"swipeleft":"swiperight"),f=i=c})})}},a.each({scrollstop:"scrollstart",taphold:"tap",swipeleft:"swipe",swiperight:"swipe"},function(b,c){a.event.special[b]={setup:function(){a(this).bind(c,a.noop)}}})}(a,this),function(a,c){a.extend(a.support,{orientation:"orientation"in b&&"onorientationchange"in b})}(a),function(a){a.event.special.throttledresize={setup:function(){a(this).bind("resize",c)},teardown:function(){a(this).unbind("resize",c)}};var b=250,c=function(){f=(new Date).getTime(),g=f-d,g>=b?(d=f,a(this).trigger("throttledresize")):(e&&clearTimeout(e),e=setTimeout(c,b-g))},d=0,e,f,g}(a),function(a,b){function o(){var a=g();a!==h&&(h=a,d.trigger(e))}var d=a.mobile.$window,e="orientationchange",f,g,h,i,j,k={0:!0,180:!0};if(a.support.orientation){var l=b.innerWidth||a.mobile.$window.width(),m=b.innerHeight||a.mobile.$window.height(),n=50;i=l>m&&l-m>n,j=k[b.orientation];if(i&&j||!i&&!j)k={"-90":!0,90:!0}}a.event.special.orientationchange=a.extend({},a.event.special.orientationchange,{setup:function(){if(a.support.orientation&&a.event.special.orientationchange.disabled===!1)return!1;h=g(),d.bind("throttledresize",o)},teardown:function(){if(a.support.orientation&&!a.event.special.orientationchange.disabled)return!1;d.unbind("throttledresize",o)},add:function(a){var b=a.handler;a.handler=function(a){return a.orientation=g(),b.apply(this,arguments)}}}),a.event.special.orientationchange.orientation=g=function(){var d=!0,e=c.documentElement;return a.support.orientation?d=k[b.orientation]:d=e&&e.clientWidth/e.clientHeight<1.1,d?"portrait":"landscape"},a.fn[e]=function(a){return a?this.bind(e,a):this.trigger(e)},a.attrFn&&(a.attrFn[e]=!0)}(a,this),function(a,b){var d=a.mobile.$window,e=a("html");a.mobile.media=function(){var b={},d=a("<div id='jquery-mediatest'></div>"),f=a("<body>").append(d);return function(a){if(!(a in b)){var g=c.createElement("style"),h="@media "+a+" { #jquery-mediatest { position:absolute; } }";g.type="text/css",g.styleSheet?g.styleSheet.cssText=h:g.appendChild(c.createTextNode(h)),e.prepend(f).prepend(g),b[a]=d.css("position")==="absolute",f.add(g).remove()}return b[a]}}()}(a),function(a,d){function e(a){var b=a.charAt(0).toUpperCase()+a.substr(1),c=(a+" "+h.join(b+" ")+b).split(" ");for(var e in c)if(g[c[e]]!==d)return!0}function m(a,b,d){var e=c.createElement("div"),f=function(a){return a.charAt(0).toUpperCase()+a.substr(1)},g=function(a){return"-"+a.charAt(0).toLowerCase()+a.substr(1)+"-"},i=function(c){var d=g(c)+a+": "+b+";",h=f(c),i=h+f(a);e.setAttribute("style",d),!e.style[i]||(k=!0)},j=d?[d]:h,k;for(var l=0;l<j.length;l++)i(j[l]);return!!k}function n(){var b="transform-3d";return m("perspective","10px","moz")||a.mobile.media("(-"+h.join("-"+b+"),(-")+"-"+b+"),("+b+")")}function o(){var b=location.protocol+"//"+location.host+location.pathname+"ui-dir/",c=a("head base"),d=null,e="",g,h;return c.length?e=c.attr("href"):c=d=a("<base>",{href:b}).appendTo("head"),g=a("<a href='testurl' />").prependTo(f),h=g[0].href,c[0].href=e||location.pathname,d&&d.remove(),h.indexOf(b)===0}function p(){var a=c.createElement("x"),d=c.documentElement,e=b.getComputedStyle,f;return"pointerEvents"in a.style?(a.style.pointerEvents="auto",a.style.pointerEvents="x",d.appendChild(a),f=e&&e(a,"").pointerEvents==="auto",d.removeChild(a),!!f):!1}function q(){var a=c.createElement("div");return typeof a.getBoundingClientRect!="undefined"}var f=a("<body>").prependTo("html"),g=f[0].style,h=["Webkit","Moz","O"],i="palmGetResource"in b,j=b.opera,k=b.operamini&&{}.toString.call(b.operamini)==="[object OperaMini]",l=b.blackberry&&!e("-webkit-transform");a.extend(a.mobile,{browser:{}}),a.mobile.browser.ie=function(){var a=3,b=c.createElement("div"),d=b.all||[];do b.innerHTML="<!--[if gt IE "+ ++a+"]><br><![endif]-->";while(d[0]);return a>4?a:!a}(),a.extend(a.support,{cssTransitions:"WebKitTransitionEvent"in b||m("transition","height 100ms linear")&&!j,pushState:"pushState"in history&&"replaceState"in history,mediaquery:a.mobile.media("only all"),cssPseudoElement:!!e("content"),touchOverflow:!!e("overflowScrolling"),cssTransform3d:n(),boxShadow:!!e("boxShadow")&&!l,scrollTop:("pageXOffset"in b||"scrollTop"in c.documentElement||"scrollTop"in f[0])&&!i&&!k,dynamicBaseTag:o(),cssPointerEvents:p(),boundingRect:q()}),f.remove();var r=function(){var a=b.navigator.userAgent;return a.indexOf("Nokia")>-1&&(a.indexOf("Symbian/3")>-1||a.indexOf("Series60/5")>-1)&&a.indexOf("AppleWebKit")>-1&&a.match(/(BrowserNG|NokiaBrowser)\/7\.[0-3]/)}();a.mobile.gradeA=function(){return(a.support.mediaquery||a.mobile.browser.ie&&a.mobile.browser.ie>=7)&&(a.support.boundingRect||a.fn.jquery.match(/1\.[0-7+]\.[0-9+]?/)!==null)},a.mobile.ajaxBlacklist=b.blackberry&&!b.WebKitPoint||k||r,r&&a(function(){a("head link[rel='stylesheet']").attr("rel","alternate stylesheet").attr("rel","stylesheet")}),a.support.boxShadow||a("html").addClass("ui-mobile-nosupport-boxshadow")}(a),function(a,b){a.widget("mobile.page",a.mobile.widget,{options:{theme:"c",domCache:!1,keepNativeDefault:":jqmData(role='none'), :jqmData(role='nojs')"},_create:function(){var a=this;if(a._trigger("beforecreate")===!1)return!1;a.element.addClass("ui-page ui-body-"+a.options.theme).bind("pagebeforehide",function(){a.removeContainerBackground()}).bind("pagebeforeshow",function(){a.setContainerBackground()})},refresh:function(){a(this.element).children(".ui-content").trigger("updatelayout",["external"])},setToolbar:function(){a(this.element).trigger("pagebeforeshow")},removeContainerBackground:function(){a.mobile.pageContainer.removeClass("ui-overlay-"+a.mobile.getInheritedTheme(this.element.parent()))},setContainerBackground:function(b){this.options.theme&&a.mobile.pageContainer.addClass("ui-overlay-"+(b||this.options.theme))},addBackBtn:function(b){var c=a(".ui-page-active .ui-footer");b=="header"&&(c=a(".ui-page-active .ui-header")),backBtn=a("<a href='#' class='ui-btn-back' data-"+a.mobile.ns+"rel='back'></a>").buttonMarkup({icon:"header-back-btn",theme:"s"}),c.find(".ui-btn-back").length||backBtn.prependTo(c)},keepNativeSelector:function(){var b=this.options,c=b.keepNative&&a.trim(b.keepNative);return c&&b.keepNative!==b.keepNativeDefault?[b.keepNative,b.keepNativeDefault].join(", "):b.keepNativeDefault}})}(a),function(a,b,d){function k(a){return a=a||location.href,"#"+a.replace(/^[^#]*#?(.*)$/,"$1")}var e="hashchange",f=c,g,h=a.event.special,i=f.documentMode,j="on"+e in b&&(i===d||i>7);a.fn[e]=function(a){return a?this.bind(e,a):this.trigger(e)},a.fn[e].delay=50,h[e]=a.extend(h[e],{setup:function(){if(j)return!1;a(g.start)},teardown:function(){if(j)return!1;a(g.stop)}}),g=function(){function n(){var c=k(),d=m(h);c!==h?(l(h=c,d),a(b).trigger(e)):d!==h&&(location.href=location.href.replace(/#.*/,"")+d),g=setTimeout(n,a.fn[e].delay)}var c={},g,h=k(),i=function(a){return a},l=i,m=i;return c.start=function(){g||n()},c.stop=function(){g&&clearTimeout(g),g=d},a.browser.msie&&!j&&function(){var b,d;c.start=function(){b||(d=a.fn[e].src,d=d&&d+k(),b=a('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){d||l(k()),n()}).attr("src",d||"javascript:0").insertAfter("body")[0].contentWindow,f.onpropertychange=function(){try{event.propertyName==="title"&&(b.document.title=f.title)}catch(a){}})},c.stop=i,m=function(){return k(b.location.href)},l=function(c,d){var g=b.document,h=a.fn[e].domain;c!==d&&(g.title=f.title,g.open(),h&&g.write('<script>document.domain="'+h+'"</script>'),g.close(),b.location.hash=c)}}(),c}()}(a,this),function(a,b,c){var d=function(d){return d===c&&(d=!0),function(c,e,f,g){var h=new a.Deferred,i=e?" reverse":"",j=a.mobile.urlHistory.getActive(),k=j.lastScroll||a.mobile.defaultHomeScroll,l=a.mobile.getScreenHeight(),m=a.mobile.maxTransitionWidth!==!1&&a.mobile.$window.width()>a.mobile.maxTransitionWidth,n=!a.support.cssTransitions||m||!c||c==="none"||Math.max(a.mobile.$window.scrollTop(),k)>a.mobile.getMaxScrollForTransition(),o=" ui-page-pre-in",p=function(){a.mobile.pageContainer.toggleClass("ui-mobile-viewport-transitioning viewport-"+c)},q=function(){var c=a.mobile.$window.scrollTop();if(c===k||a.mobile.defaultHomeScroll===k&&c==0)return;a.event.special.scrollstart.enabled=!1,b.scrollTo(0,k),setTimeout(function(){a.event.special.scrollstart.enabled=!0},150)},r=function(){g.removeClass(a.mobile.activePageClass+" out in reverse "+c).height("")},s=function(){d?g.animationComplete(t):t(),g.height(l+a.mobile.$window.scrollTop()).addClass(c+" out"+i)},t=function(){g&&d&&r(),u()},u=function(){f.css("z-index",-10),f.addClass(a.mobile.activePageClass+o),a.mobile.focusPage(f),f.height(l+k),q(),f.css("z-index",""),n||f.animationComplete(v),f.removeClass(o).addClass(c+" in"+i),n&&setTimeout(v,0)},v=function(){d||g&&r(),f.removeClass("out in reverse "+c).height(""),p(),a.mobile.$window.scrollTop()!==k&&q(),h.resolve(c,e,f,g,!0)};return p(),g&&!n?s():t(),h.promise()}},e=d(),f=d(!1),g=function(){return a.mobile.getScreenHeight()*3};a.mobile.defaultTransitionHandler=e,a.mobile.transitionHandlers={"default":a.mobile.defaultTransitionHandler,sequential:e,simultaneous:f},a.mobile.transitionFallbacks={},a.mobile._maybeDegradeTransition=function(b){return b&&!a.support.cssTransform3d&&a.mobile.transitionFallbacks[b]&&(b=a.mobile.transitionFallbacks[b]),b},a.mobile.getMaxScrollForTransition=a.mobile.getMaxScrollForTransition||g}(a,this),function(a,d){function u(b){!!i&&(!i.closest("."+a.mobile.activePageClass).length||b)&&i.removeClass(a.mobile.activeBtnClass),i=null}function v(){m=!1,l.length>0&&a.mobile.changePage.apply(null,l.pop())}function z(b,c,d,e){c&&c.data("page")._trigger("beforehide",null,{nextPage:b}),b.data("page")._trigger("beforeshow",null,{prevPage:c||a("")}),a.mobile.hidePageLoadingMsg(),d=a.mobile._maybeDegradeTransition(d);var f=a.mobile.transitionHandlers[d||"default"]||a.mobile.defaultTransitionHandler,g=f(d,e,b,c);return g.done(function(){c&&c.data("page")._trigger("hide",null,{nextPage:b}),b.data("page")._trigger("show",null,{prevPage:c||a("")}),setTimeout(function(){a.mobile.removeEventBlocker()},0)}),g}function A(b,c){c&&b.attr("data-"+a.mobile.ns+"role",c),b.page()}function B(a){while(a){if(typeof a.nodeName=="string"&&a.nodeName.toLowerCase()==="a")break;a=a.parentNode}return a}function C(b){var c=a(b).closest(".ui-page").jqmData("url"),d=q.hrefNoHash;if(!c||!h.isPath(c))c=d;return h.makeUrlAbsolute(c,d)}var e=a.mobile.$window,f=a("html"),g=a("head"),h={urlParseRE:/^(((([^:\/#\?]+:)?(?:(\/\/)((?:(([^:@\/#\?]+)(?:\:([^:@\/#\?]+))?)@)?(([^:\/#\?\]\[]+|\[[^\/\]@#?]+\])(?:\:([0-9]+))?))?)?)?((\/?(?:[^\/\?#]+\/+)*)([^\?#]*)))?(\?[^#]+)?)(#.*)?/,getLocation:function(a){var b=a?this.parseUrl(a):location,c=this.parseUrl(a||location.href).hash;return c=c==="#"?"":c,b.protocol+"//"+b.host+b.pathname+b.search+c},parseLocation:function(){return this.parseUrl(this.getLocation())},parseUrl:function(b){if(a.type(b)==="object")return b;var c=h.urlParseRE.exec(b||"")||[];return{href:c[0]||"",hrefNoHash:c[1]||"",hrefNoSearch:c[2]||"",domain:c[3]||"",protocol:c[4]||"",doubleSlash:c[5]||"",authority:c[6]||"",username:c[8]||"",password:c[9]||"",host:c[10]||"",hostname:c[11]||"",port:c[12]||"",pathname:c[13]||"",directory:c[14]||"",filename:c[15]||"",search:c[16]||"",hash:c[17]||""}},makePathAbsolute:function(a,b){if(a&&a.charAt(0)==="/")return a;a=a||"",b=b?b.replace(/^\/|(\/[^\/]*|[^\/]+)$/g,""):"";var c=b?b.split("/"):[],d=a.split("/");for(var e=0;e<d.length;e++){var f=d[e];switch(f){case".":break;case"..":c.length&&c.pop();break;default:c.push(f)}}return"/"+c.join("/")},isSameDomain:function(a,b){return h.parseUrl(a).domain===h.parseUrl(b).domain},isRelativeUrl:function(a){return h.parseUrl(a).protocol===""},isAbsoluteUrl:function(a){return h.parseUrl(a).protocol!==""},makeUrlAbsolute:function(a,b){if(!h.isRelativeUrl(a))return a;b===d&&(b=q);var c=h.parseUrl(a),e=h.parseUrl(b),f=c.protocol||e.protocol,g=c.protocol?c.doubleSlash:c.doubleSlash||e.doubleSlash,i=c.authority||e.authority,j=c.pathname!=="",k=h.makePathAbsolute(c.pathname||e.filename,e.pathname),l=c.search||!j&&e.search||"",m=c.hash;return f+g+i+k+l+m},addSearchParams:function(b,c){var d=h.parseUrl(b),e=typeof c=="object"?a.param(c):c,f=d.search||"?";return d.hrefNoSearch+f+(f.charAt(f.length-1)!=="?"?"&":"")+e+(d.hash||"")},convertUrlToDataUrl:function(a){var c=h.parseUrl(a);return h.isEmbeddedPage(c)?c.hash.split(n)[0].replace(/^#/,""):h.isSameDomain(c,q)?c.hrefNoHash.replace(q.domain,"").split(n)[0]:b.decodeURIComponent(a)},get:function(a){return a===d&&(a=h.parseLocation().hash),h.stripHash(a).replace(/[^\/]*\.[^\/*]+$/,"")},getFilePath:function(b){var c="&"+a.mobile.subPageUrlKey;return b&&b.split(c)[0].split(n)[0]},set:function(a){location.hash=a},isPath:function(a){return/\//.test(a)},clean:function(a){return a.replace(q.domain,"")},stripHash:function(a){return a.replace(/^#/,"")},cleanHash:function(a){return h.stripHash(a.replace(/\?.*$/,"").replace(n,""))},isHashValid:function(a){return/^#[^#]+$/.test(a)},isExternal:function(a){var b=h.parseUrl(a);return b
-.protocol&&b.domain!==p.domain?!0:!1},hasProtocol:function(a){return/^(:?\w+:)/.test(a)},isFirstPageUrl:function(b){var c=h.parseUrl(h.makeUrlAbsolute(b,q)),e=c.hrefNoHash===p.hrefNoHash||r&&c.hrefNoHash===q.hrefNoHash,f=a.mobile.firstPage,g=f&&f[0]?f[0].id:d;return e&&(!c.hash||c.hash==="#"||g&&c.hash.replace(/^#/,"")===g)},isEmbeddedPage:function(a){var b=h.parseUrl(a);return b.protocol!==""?b.hash&&(b.hrefNoHash===p.hrefNoHash||r&&b.hrefNoHash===q.hrefNoHash):/^#/.test(b.href)},isPermittedCrossDomainRequest:function(b,c){return a.mobile.allowCrossDomainPages&&b.protocol==="file:"&&c.search(/^https?:/)!==-1}},i=null,j={stack:[],activeIndex:0,getActive:function(){return j.stack[j.activeIndex]},getPrev:function(){return j.stack[j.activeIndex-1]},getNext:function(){return j.stack[j.activeIndex+1]},addNew:function(a,b,c,d,e){j.getNext()&&j.clearForward(),j.stack.push({url:a,transition:b,title:c,pageUrl:d,role:e}),j.activeIndex=j.stack.length-1},clearForward:function(){j.stack=j.stack.slice(0,j.activeIndex+1)},directHashChange:function(b){var c,e,f,g=this.getActive();a.each(j.stack,function(a,d){decodeURIComponent(b.currentUrl)===decodeURIComponent(d.url)&&(c=a<j.activeIndex,e=!c,f=a)}),this.activeIndex=f!==d?f:this.activeIndex,c?(b.either||b.isBack)(!0):e&&(b.either||b.isForward)(!1)},ignoreNextHashChange:!1},k="[tabindex],a,button:visible,select:visible,input",l=[],m=!1,n="&ui-state=dialog",o=g.children("base"),p=h.parseLocation(),q=o.length?h.parseUrl(h.makeUrlAbsolute(o.attr("href"),p.href)):p,r=p.hrefNoHash!==q.hrefNoHash,s=a.mobile.getScreenHeight,t=a.support.dynamicBaseTag?{element:o.length?o:a("<base>",{href:q.hrefNoHash}).prependTo(g),set:function(a){t.element.attr("href",h.makeUrlAbsolute(a,q))},reset:function(){t.element.attr("href",q.hrefNoHash)}}:d;a.mobile.back=function(){var a=b.navigator;this.phonegapNavigationEnabled&&a&&a.app&&a.app.backHistory?a.app.backHistory():b.history.back()},a.mobile.focusPage=function(a){var b=a.find("[autofocus]"),c=a.find(".ui-title:eq(0)");if(b.length){b.focus();return}c.length?c.focus():a.focus()};var w=!0,x,y;x=function(){if(!w)return;var b=a.mobile.urlHistory.getActive();if(b){var c=e.scrollTop();b.lastScroll=c<a.mobile.minScrollBack?a.mobile.defaultHomeScroll:c}},y=function(){setTimeout(x,100)},e.bind(a.support.pushState?"popstate":"hashchange",function(){w=!1}),e.one(a.support.pushState?"popstate":"hashchange",function(){w=!0}),e.one("pagecontainercreate",function(){a.mobile.pageContainer.bind("pagechange",function(){w=!0,e.unbind("scrollstop",y),e.bind("scrollstop",y)})}),e.bind("scrollstop",y),a.mobile._maybeDegradeTransition=a.mobile._maybeDegradeTransition||function(a){return a},a.fn.animationComplete=function(b){return a.support.cssTransitions?a(this).one("webkitAnimationEnd animationend",b):(setTimeout(b,0),a(this))},a.mobile.path=h,a.mobile.base=t,a.mobile.urlHistory=j,a.mobile.dialogHashKey=n,a.mobile.allowCrossDomainPages=!1,a.mobile.getDocumentUrl=function(b){return b?a.extend({},p):p.href},a.mobile.getDocumentBase=function(b){return b?a.extend({},q):q.href},a.mobile._bindPageRemove=function(){var b=a(this);!b.data("page").options.domCache&&b.is(":jqmData(external-page='true')")&&b.bind("pagehide.remove",function(){var b=a(this),c=new a.Event("pageremove");b.trigger(c),c.isDefaultPrevented()||b.removeWithDependents()})},a.mobile.loadPage=function(b,c){var e=a.Deferred(),f=a.extend({},a.mobile.loadPage.defaults,c),g=null,i=null,j=function(){var b=a.mobile.activePage&&C(a.mobile.activePage);return b||q.hrefNoHash},k=h.makeUrlAbsolute(b,j());f.data&&f.type==="get"&&(k=h.addSearchParams(k,f.data),f.data=d),f.data&&f.type==="post"&&(f.reloadPage=!0);var l=h.getFilePath(k),m=h.convertUrlToDataUrl(k);f.pageContainer=f.pageContainer||a.mobile.pageContainer,g=f.pageContainer.children("[data-"+a.mobile.ns+"url='"+m+"']"),g.length===0&&m&&!h.isPath(m)&&(g=f.pageContainer.children("#"+m).attr("data-"+a.mobile.ns+"url",m).jqmData("url",m));if(g.length===0)if(a.mobile.firstPage&&h.isFirstPageUrl(l))a.mobile.firstPage.parent().length&&(g=a(a.mobile.firstPage));else if(h.isEmbeddedPage(l))return e.reject(k,c),e.promise();if(g.length){if(!f.reloadPage)return A(g,f.role),e.resolve(k,c,g),t&&!c.prefetch&&t.set(b),e.promise();i=g}var n=f.pageContainer,o=new a.Event("pagebeforeload"),r={url:b,absUrl:k,dataUrl:m,deferred:e,options:f};n.trigger(o,r);if(o.isDefaultPrevented())return e.promise();if(f.showLoadMsg)var s=setTimeout(function(){a.mobile.showPageLoadingMsg()},f.loadMsgDelay),u=function(){clearTimeout(s),a.mobile.hidePageLoadingMsg()};return t&&typeof c.prefetch=="undefined"&&t.reset(),!a.mobile.allowCrossDomainPages&&!h.isSameDomain(p,k)?e.reject(k,c):a.ajax({url:l,type:f.type,data:f.data,dataType:"html",success:function(d,j,n){var o=a("<div></div>"),p=d.match(/<title[^>]*>([^<]*)/)&&RegExp.$1,q=new RegExp("(<[^>]+\\bdata-"+a.mobile.ns+"role=[\"']?page[\"']?[^>]*>)"),s=new RegExp("\\bdata-"+a.mobile.ns+"url=[\"']?([^\"'>]*)[\"']?");q.test(d)&&RegExp.$1&&s.test(RegExp.$1)&&RegExp.$1&&(b=l=h.getFilePath(a("<div>"+RegExp.$1+"</div>").text())),t&&typeof c.prefetch=="undefined"&&t.set(l),o.get(0).innerHTML=d,g=o.find(":jqmData(role='page'), :jqmData(role='dialog')").first(),g.length||(g=a("<div data-"+a.mobile.ns+"role='page'>"+d.split(/<\/?body[^>]*>/gmi)[1]+"</div>")),p&&!g.jqmData("title")&&(~p.indexOf("&")&&(p=a("<div>"+p+"</div>").text()),g.jqmData("title",p));if(!a.support.dynamicBaseTag){var v=h.get(l);g.find("[src], link[href], a[rel='external'], :jqmData(ajax='false'), a[target]").each(function(){var b=a(this).is("[href]")?"href":a(this).is("[src]")?"src":"action",c=a(this).attr(b);c=c.replace(location.protocol+"//"+location.host+location.pathname,""),/^(\w+:|#|\/)/.test(c)||a(this).attr(b,v+c)})}g.attr("data-"+a.mobile.ns+"url",h.convertUrlToDataUrl(l)).attr("data-"+a.mobile.ns+"external-page",!0).appendTo(f.pageContainer),g.one("pagecreate",a.mobile._bindPageRemove),A(g,f.role),k.indexOf("&"+a.mobile.subPageUrlKey)>-1&&(g=f.pageContainer.children("[data-"+a.mobile.ns+"url='"+m+"']")),f.showLoadMsg&&u(),r.xhr=n,r.textStatus=j,r.page=g,f.pageContainer.trigger("pageload",r),e.resolve(k,c,g,i)},error:function(b,d,g){t&&t.set(h.get()),r.xhr=b,r.textStatus=d,r.errorThrown=g;var i=new a.Event("pageloadfailed");f.pageContainer.trigger(i,r);if(i.isDefaultPrevented())return;f.showLoadMsg&&(u(),a.mobile.showPageLoadingMsg(a.mobile.pageLoadErrorMessageTheme,a.mobile.pageLoadErrorMessage,!0),setTimeout(a.mobile.hidePageLoadingMsg,1500)),e.reject(k,c)}}),e.promise()},a.mobile.loadPage.defaults={type:"get",data:d,reloadPage:!1,role:d,showLoadMsg:!1,pageContainer:d,loadMsgDelay:50},a.mobile.changePage=function(b,e){if(m){l.unshift(arguments);return}var f=a.extend({},a.mobile.changePage.defaults,e);f.pageContainer=f.pageContainer||a.mobile.pageContainer,f.fromPage=f.fromPage||a.mobile.activePage;var g=f.pageContainer,i=new a.Event("pagebeforechange"),k={toPage:b,options:f};g.trigger(i,k);if(i.isDefaultPrevented())return;b=k.toPage,m=!0;if(typeof b=="string"){a.mobile.loadPage(b,f).done(function(b,c,d,e){m=!1,c.duplicateCachedPage=e,a.mobile.changePage(d,c)}).fail(function(a,b){m=!1,u(!0),v(),f.pageContainer.trigger("pagechangefailed",k)});return}b[0]===a.mobile.firstPage[0]&&!f.dataUrl&&(f.dataUrl=p.hrefNoHash);var o=f.fromPage,q=f.dataUrl&&h.convertUrlToDataUrl(f.dataUrl)||b.jqmData("url"),r=q,s=h.getFilePath(q),t=j.getActive(),w=j.activeIndex===0,x=0,y=c.title,B=f.role==="dialog"||a.mobile.getAttrFixed(b[0],"data-"+a.mobile.ns+"role")==="dialog";if(o&&o[0]===b[0]&&!f.allowSamePageTransition){m=!1,g.trigger("pagechange",k),f.fromHashChange&&j.directHashChange({currentUrl:q,isBack:function(){},isForward:function(){}});return}A(b,f.role),f.fromHashChange&&j.directHashChange({currentUrl:q,isBack:function(){x=-1},isForward:function(){x=1}});try{c.activeElement&&c.activeElement.nodeName.toLowerCase()!=="body"?a(c.activeElement).blur():a("input:focus, textarea:focus, select:focus").blur()}catch(C){}var D=!1;B&&t&&(t.url.indexOf(n)>-1&&!a.mobile.activePage.is(".ui-dialog")&&(f.changeHash=!1,D=!0),q=(t.url||"")+(D?"":n),j.activeIndex===0&&q===j.initialDst&&(q+=n)),f.changeHash!==!1&&q&&(j.ignoreNextHashChange=!0,h.set(q));var E=t?b.jqmData("title")||b.children(":jqmData(role='header')").find(".ui-title").getEncodedText():y;!!E&&y===c.title&&(y=E),b.jqmData("title")||b.jqmData("title",y),f.transition=f.transition||(x&&!w?t.transition:d)||(B?a.mobile.defaultDialogTransition:a.mobile.defaultPageTransition),x||(D&&(j.activeIndex=Math.max(0,j.activeIndex-1)),j.addNew(q,f.transition,y,r,f.role)),c.title=j.getActive().title,a.mobile.activePage=b,f.reverse=f.reverse||x<0,z(b,o,f.transition,f.reverse).done(function(c,d,e,h,i){u(),f.duplicateCachedPage&&f.duplicateCachedPage.remove(),i||a.mobile.focusPage(b),v(),g.trigger("pagechange",k)})},a.mobile.changePage.defaults={transition:d,reverse:!1,changeHash:!0,fromHashChange:!1,role:d,duplicateCachedPage:d,pageContainer:d,showLoadMsg:!0,dataUrl:d,fromPage:d,allowSamePageTransition:!1},a.mobile.navreadyDeferred=a.Deferred(),a.mobile.navreadyDeferred.done(function(){a.mobile.$document.delegate("form","submit",function(b){var c=a(this);if(!a.mobile.ajaxEnabled||c.is(":jqmData(ajax='false')")||!c.jqmHijackable().length)return;var d=c.attr("method"),e=c.attr("target"),f=c.attr("action");f||(f=C(c),f===q.hrefNoHash&&(f=p.hrefNoSearch)),f=h.makeUrlAbsolute(f,C(c));if(h.isExternal(f)&&!h.isPermittedCrossDomainRequest(p,f)||e)return;a.mobile.changePage(f,{type:d&&d.length&&d.toLowerCase()||"get",data:c.serialize(),transition:a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"transition"),reverse:a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"direction")==="reverse",reloadPage:!0}),b.preventDefault()}),a.mobile.$document.bind("vclick",function(b){if(b.which>1||!a.mobile.linkBindingEnabled)return;var c=B(b.target);if(!a(c).jqmHijackable().length)return;c&&h.parseUrl(c.getAttribute("href")||"#").hash!=="#"&&(u(!0),i=a(c).closest(".ui-btn").not(".ui-disabled"),i.addClass(a.mobile.activeBtnClass))}),a.mobile.$document.bind("click",function(c){if(!a.mobile.linkBindingEnabled)return;var e=B(c.target),f=a(e),g;if(!e||c.which>1||!f.jqmHijackable().length)return;g=function(){b.setTimeout(function(){u(!0)},200)};if(f.is(":jqmData(rel='back')"))return a.mobile.back(),!1;var i=C(f),j=h.makeUrlAbsolute(f.attr("href")||"#",i);if(!a.mobile.ajaxEnabled&&!h.isEmbeddedPage(j)){g();return}if(j.search("#")!==-1){j=j.replace(/[^#]*#/,"");if(!j){c.preventDefault();return}h.isPath(j)?j=h.makeUrlAbsolute(j,i):j=h.makeUrlAbsolute("#"+j,p.hrefNoHash)}var k=f.is("[rel='external']")||f.is(":jqmData(ajax='false')")||f.is("[target]"),l=k||h.isExternal(j)&&!h.isPermittedCrossDomainRequest(p,j);if(l){g();return}var m=a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"transition"),n=a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"direction")==="reverse"||a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"back"),o=f.attr("data-"+a.mobile.ns+"rel")||d;a.mobile.changePage(j,{transition:m,reverse:n,role:o,link:f}),c.preventDefault()}),a.mobile.$document.delegate(".ui-page","pageshow.prefetch",function(){var b=[];a(this).find("a:jqmData(prefetch)").each(function(){var c=a(this),d=c.attr("href");d&&a.inArray(d,b)===-1&&(b.push(d),a.mobile.loadPage(d,{role:c.attr("data-"+a.mobile.ns+"rel"),prefetch:!0}))})}),a.mobile._handleHashChange=function(c){var e=h.stripHash(c),f=a.mobile.urlHistory.stack.length===0?"none":d,g=new a.Event("navigate"),i={transition:f,changeHash:!1,fromHashChange:!0};0===j.stack.length&&(j.initialDst=e),a.mobile.pageContainer.trigger(g);if(g.isDefaultPrevented())return;if(!a.mobile.hashListeningEnabled||j.ignoreNextHashChange){j.ignoreNextHashChange=!1;return}if(j.stack.length>1&&e.indexOf(n)>-1&&j.initialDst!==e){if(!a.mobile.activePage.is(".ui-dialog")){j.directHashChange({currentUrl:e,isBack:function(){a.mobile.back()},isForward:function(){b.history.forward()}});return}j.directHashChange({currentUrl:e,either:function(b){var c=a.mobile.urlHistory.getActive();e=c.pageUrl,a.extend(i,{role:c.role,transition:c.transition,reverse:b})}})}e?(e=typeof e=="string"&&!h.isPath(e)?h.makeUrlAbsolute("#"+e,q):e,e===h.makeUrlAbsolute("#"+j.initialDst,q)&&j.stack.length&&j.stack[0].url!==j.initialDst.replace(n,"")&&(e=a.mobile.firstPage),a.mobile.changePage(e,i)):a.mobile.changePage(a.mobile.firstPage,i)},e.bind("hashchange",function(b,c){a.mobile._handleHashChange(h.parseLocation().hash)})})}(a),function(a,b){var e={},f=e,g=a.mobile.$window,h=a.mobile.path.parseLocation(),i=a.Deferred(),j=a.Deferred();a.mobile.$document.ready(a.proxy(j,"resolve")),a.mobile.$document.one("mobileinit",a.proxy(i,"resolve")),a.extend(e,{initialFilePath:function(){return h.pathname+h.search}(),hashChangeTimeout:200,hashChangeEnableTimer:d,initialHref:h.hrefNoHash,state:function(){return{hash:a.mobile.path.parseLocation().hash||"#"+f.initialFilePath,title:c.title,initialHref:f.initialHref}},resetUIKeys:function(b){var c=a.mobile.dialogHashKey,d="&"+a.mobile.subPageUrlKey,e=b.indexOf(c);return e>-1?b=b.slice(0,e)+"#"+b.slice(e):b.indexOf(d)>-1&&(b=b.split(d).join("#"+d)),b},nextHashChangePrevented:function(b){a.mobile.urlHistory.ignoreNextHashChange=b,f.onHashChangeDisabled=b},onHashChange:function(b){if(f.onHashChangeDisabled)return;var d,e,g=a.mobile.path.parseLocation().hash,h=a.mobile.path.isPath(g),i=h?a.mobile.path.getLocation():a.mobile.getDocumentUrl();g=h?g.replace("#",""):g,e=f.state(),d=a.mobile.path.makeUrlAbsolute(g,i),h&&(d=f.resetUIKeys(d)),history.replaceState(e,c.title,d)},onPopState:function(b){var c=b.originalEvent.state,d,e,g;c&&(clearTimeout(f.hashChangeEnableTimer),f.nextHashChangePrevented(!1),a.mobile._handleHashChange(c.hash),f.nextHashChangePrevented(!0),f.hashChangeEnableTimer=setTimeout(function(){f.nextHashChangePrevented(!1)},f.hashChangeTimeout))},init:function(){g.bind("hashchange",f.onHashChange),g.bind("popstate",f.onPopState),location.hash===""&&history.replaceState(f.state(),c.title,a.mobile.path.getLocation())}}),a.when(j,i,a.mobile.navreadyDeferred).done(function(){a.mobile.pushStateEnabled&&a.support.pushState&&e.init()})}(a,this),function(a,b,c){a.mobile.transitionFallbacks.flip="fade"}(a,this),function(a,b,c){a.mobile.transitionFallbacks.flow="fade"}(a,this),function(a,b,c){a.mobile.transitionFallbacks.pop="fade"}(a,this),function(a,b,c){a.mobile.transitionHandlers.slide=a.mobile.transitionHandlers.simultaneous,a.mobile.transitionFallbacks.slide="fade"}(a,this),function(a,b,c){a.mobile.transitionFallbacks.slidedown="fade"}(a,this),function(a,b,c){a.mobile.transitionFallbacks.slidefade="fade"}(a,this),function(a,b,c){a.mobile.transitionFallbacks.slideup="fade"}(a,this),function(a,b,c){a.mobile.transitionFallbacks.turn="fade"}(a,this),function(a,b){a.mobile.page.prototype.options.degradeInputs={color:!1,date:!1,datetime:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:"number",search:"text",tel:!1,time:!1,url:!1,week:!1},a.mobile.$document.bind("pagecreate create",function(b){var c=a.mobile.closestPageData(a(b.target)),d;if(!c)return;d=c.options,a(b.target).find("input").not(c.keepNativeSelector()).each(function(){var b=a(this),c=this.getAttribute("type"),e=d.degradeInputs[c]||"text";if(d.degradeInputs[c]){var f=a("<div>").html(b.clone()).html(),g=f.indexOf(" type=")>-1,h=g?/\s+type=["']?\w+['"]?/:/\/?>/,i=' type="'+e+'" data-'+a.mobile.ns+'type="'+c+'"'+(g?"":">");b.replaceWith(f.replace(h,i))}})})}(a),function(a,b,c){a.widget("mobile.dialog",a.mobile.widget,{options:{closeBtnText:"Close",overlayTheme:"a",initSelector:":jqmData(role='dialog')"},_create:function(){var b=this,c=this.element,d=a("<a href='#' data-"+a.mobile.ns+"icon='delete' data-"+a.mobile.ns+"iconpos='notext'>"+this.options.closeBtnText+"</a>"),e=a("<div/>",{role:"dialog","class":"ui-dialog-contain ui-corner-all ui-overlay-shadow"});c.addClass("ui-dialog ui-overlay-"+this.options.overlayTheme),c.wrapInner(e).children().find(":jqmData(role='header')").prepend(d).end().children(":first-child").addClass("ui-corner-top").end().children(":last-child").addClass("ui-corner-bottom"),d.bind("click",function(){b.close()}),c.bind("vclick submit",function(b){var c=a(b.target).closest(b.type==="vclick"?"a":"form"),d;c.length&&!a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"transition")&&(d=a.mobile.urlHistory.getActive()||{},c.attr("data-"+a.mobile.ns+"transition",d.transition||a.mobile.defaultDialogTransition).attr("data-"+a.mobile.ns+"direction","reverse"))}).bind("pagehide",function(b,c){a(this).find("."+a.mobile.activeBtnClass).not(".ui-slider-bg").removeClass(a.mobile.activeBtnClass)}).bind("pagebeforeshow",function(){b._isCloseable=!0,b.options.overlayTheme&&b.element.page("removeContainerBackground").page("setContainerBackground",b.options.overlayTheme)})},close:function(){var b;this._isCloseable&&(this._isCloseable=!1,a.mobile.hashListeningEnabled?a.mobile.back():(b=a.mobile.urlHistory.getPrev().url,a.mobile.path.isPath(b)||(b=a.mobile.path.makeUrlAbsolute("#"+b)),a.mobile.changePage(b,{changeHash:!1,fromHashChange:!0})))}}),a.mobile.$document.delegate(a.mobile.dialog.prototype.options.initSelector,"pagecreate",function(){a.mobile.dialog.prototype.enhance(this)})}(a,this),function(a,b){a.mobile.page.prototype.options.backBtnText="Back",a.mobile.page.prototype.options.addBackBtn=!1,a.mobile.page.prototype.options.backBtnTheme=null,a.mobile.page.prototype.options.headerTheme="a",a.mobile.page.prototype.options.footerTheme="a",a.mobile.page.prototype.options.contentTheme=null,a.mobile.$document.bind("pagecreate",function(c){var d=a(c.target),e=d.data("page").options,f="data-"+a.mobile.ns,g=d[0].getAttribute(f+"role")||b,h=e.theme;a(":jqmData(role='header'), :jqmData(role='footer'), :jqmData(role='content')",d).jqmEnhanceable().each(function(){var c=a(this),i=c[0].getAttribute(f+"role")||b,j=c[0].getAttribute(f+"theme")||b,k=j||e.contentTheme||g==="dialog"&&h,l,m,n,p=d.find(".ui-footer"),q;c.addClass("ui-"+i);if(i==="header"||i==="footer"){var r=j||(i==="header"?e.headerTheme:e.footerTheme)||h;c.addClass("ui-bar-"+r).attr("role",i==="header"?"banner":"contentinfo"),i==="header"&&(l=c.children("a, button"),m=l.hasClass("ui-btn-left"),n=l.hasClass("ui-btn-right"),m=m||l.eq(0).not(".ui-btn-right").addClass("ui-btn-left").length,n=n||l.eq(1).addClass("ui-btn-right").length,a(l.get().reverse()).each(function(b){a(this).addClass("ui-btn-right-"+b)})),e.addBackBtn&&(i==="footer"||i==="header")&&d[0].getAttribute(f+"url")!==a.mobile.path.stripHash(location.hash)&&!m&&(e.addBackBtn=="header"?p=d.find(".ui-header"):p=d.find(".ui-footer"),p.find(".ui-btn-back").length||(q=a("<a href='javascript:void(0);' class='ui-btn-back' data-"+a.mobile.ns+"rel='back'></a>").buttonMarkup({icon:"header-back-btn",theme:e.backBtnTheme||r}),q.find(".ui-btn-text").text(e.backBtnText),q.appendTo(p))),c.children("h1, h2, h3, h4, h5, h6").addClass("ui-title").attr({role:"heading","aria-level":"1","aria-label":"title",tabindex:"0"}),a(".ui-title-text-sub").attr({tabindex:"0","aria-label":"subtitle"})}else i==="content"&&(k&&c.addClass("ui-body-"+k),c.attr("role","main"))})})}(a),function(a,b){a.fn.fieldcontain=function(a){return this.addClass("ui-field-contain ui-body ui-br").contents().filter(function(){return this.nodeType===3&&!/\S/.test(this.nodeValue)}).remove()},a.mobile.$document.bind("pagecreate create",function(b){a(":jqmData(role='fieldcontain')",b.target).jqmEnhanceable().fieldcontain()})}(a),function(a,b){a.fn.grid=function(b){return this.each(function(){var c=a(this),d=a.extend({grid:null},b),e=c.children(),f={solo:1,a:2,b:3,c:4,d:5},g=d.grid,h;if(!g)if(e.length<=5)for(var i in f)f[i]===e.length&&(g=i);else g="a",c.addClass("ui-grid-duo");h=f[g],c.addClass("ui-grid-"+g),e.filter(":nth-child("+h+"n+1)").addClass("ui-block-a"),h>1&&e.filter(":nth-child("+h+"n+2)").addClass("ui-block-b"),h>2&&e.filter(":nth-child("+h+"n+3)").addClass("ui-block-c"),h>3&&e.filter(":nth-child("+h+"n+4)").addClass("ui-block-d"),h>4&&e.filter(":nth-child("+h+"n+5)").addClass("ui-block-e")})}}(a),function(a,b){a.mobile.$document.bind("pagecreate create",function(b){a(":jqmData(role='nojs')",b.target).addClass("ui-nojs")})}(a),function(a,b){function d(a){var b;while(a){b=typeof a.className=="string"&&a.className+" ";if(b&&b.indexOf("ui-btn ")>-1&&b.indexOf("ui-disabled ")<0)break;a=a.parentNode}return a}a.fn.buttonMarkup=function(d){var f=this,g="data-"+a.mobile.ns,h=function(b,c){k.setAttribute("data-"+a.mobile.ns+b,c),j.jqmData(b,c)};d=d&&a.type(d)==="object"?d:{};for(var i=0;i<f.length;i++){var j=f.eq(i),k=j[0],l=a.extend({},a.fn.buttonMarkup.defaults,{icon:d.icon!==b?d.icon:a.mobile.getAttrFixed(k,g+"icon"),iconpos:d.iconpos!==b?d.iconpos:a.mobile.getAttrFixed(k,g+"iconpos"),theme:d.theme!==b?d.theme:a.mobile.getAttrFixed(k,g+"theme")||a.mobile.getInheritedTheme(j,a.fn.buttonMarkup.defaults.theme),inline:d.inline!==b?d.inline:a.mobile.getAttrFixed(k,g+"inline"),shadow:d.shadow!==b?d.shadow:a.mobile.getAttrFixed(k,g+"shadow"),corners:d.corners!==b?d.corners:a.mobile.getAttrFixed(k,g+"corners"),iconshadow:d.iconshadow!==b?d.iconshadow:a.mobile.getAttrFixed(k,g+"iconshadow"),mini:d.mini!==b?d.mini:a.mobile.getAttrFixed(k,g+"mini")},d),m="ui-btn-inner",n="ui-btn-text",o,p,q,r,s,t;for(key in l)k.setAttribute(g+key,l[key]);a.mobile.getAttrFixed(k,g+"rel")==="popup"&&j.attr("href")&&(k.setAttribute("aria-haspopup",!0),k.setAttribute("aria-owns",k.getAttribute("href"))),k.tagName!=="LI"&&k.tagName!=="LABEL"&&(k.setAttribute("role","button"),k.setAttribute("tabindex","0")),t=a.data(k.tagName==="INPUT"||k.tagName==="BUTTON"?k.parentNode:k,"buttonElements"),t?(k=t.outer,j=a(k),q=t.inner,r=t.text,a(t.icon).remove(),t.icon=null):(q=c.createElement(l.wrapperEls),r=c.createElement(l.wrapperEls)),s=l.icon?c.createElement("span"):null,e&&!t&&e(),l.theme||(l.theme=a.mobile.getInheritedTheme(j,"c")),o="ui-btn ui-btn-up-"+l.theme,o+=l.shadow?" ui-shadow":"",o+=l.corners?" ui-btn-corner-all":"";if(a.mobile.getAttrFixed(k,g+"role")=="button"||k.tagName=="BUTTON"||k.tagName=="DIV")o+=" ui-btn-box-"+l.theme;buttonStyle=a.mobile.getAttrFixed(k,g+"style");if(buttonStyle!="circle"||a(j).text().length>0){if(buttonStyle=="nobg")o+=" ui-btn-icon-nobg",o+=" ui-btn-icon_only";else if(buttonStyle=="edit")o+=" ui-btn-edit";else if(buttonStyle=="round"||buttonStyle=="circle"&&a(j).text().length>0)o+=" ui-btn-round"}else o+=" ui-btn-corner-circle",o+=" ui-btn-icon_only";if(l.icon)if(a(j).text().length>0){switch(l.iconpos){case"right":case"left":case"top":case"bottom":n+=" ui-btn-text-padding-"+l.iconpos;break;default:n+=" ui-btn-text-padding-left"}m+=" ui-btn-hastxt"}else buttonStyle=="circle"?m+=" ui-btn-corner-circle":buttonStyle=="nobg"&&(m+=" ui-btn-icon-nobg"),o+=" ui-btn-icon_only",m+=" ui-btn-icon-only",k.tagName!=="LABEL"&&a(j).text(l.icon.replace("naviframe-",""));else a(j).text().length>0?m+=" ui-btn-hastxt":buttonStyle=="circle"&&(o+=" ui-btn-round");l.mini!==b&&(o+=l.mini===!0?" ui-mini":" ui-fullsize"),l.inline!==b&&(o+=l.inline===!0?" ui-btn-inline":" ui-btn-block"),l.icon&&(l.icon="ui-icon-"+l.icon,l.iconpos=l.iconpos||"left",p="ui-icon "+l.icon,l.iconshadow&&(p+=" ui-icon-shadow")),l.iconpos&&(o+=" ui-btn-icon-"+l.iconpos,l.iconpos==="notext"&&!j.attr("title")&&j.attr("title",j.getEncodedText())),m+=l.corners?" ui-btn-corner-all":"",l.iconpos&&l.iconpos==="notext"&&!j.attr("title")&&j.attr("title",j.getEncodedText()),t&&j.removeClass(t.bcls||""),j.removeClass("ui-link").addClass(o),q.className=m,r.className=n,t||q.appendChild(r);if(s){s.className=p;if(!t||!t.icon)s.innerHTML=" ",q.appendChild(s)}while(k.firstChild&&!t)r.appendChild(k.firstChild);t||k.appendChild(q),t={bcls:o,outer:k,inner:q,text:r,icon:s},a.data(k,"buttonElements",t),a.data(q,"buttonElements",t),a.data(r,"buttonElements",t),s&&a.data(s,"buttonElements",t)}return this},a.fn.buttonMarkup.defaults={theme:"c",corners:!0,shadow:!0,iconshadow:!0,wrapperEls:"span"};var e=function(){var b=a.mobile.buttonMarkup.hoverDelay,c,f;a.mobile.$document.bind({"vmousedown vmousecancel vmouseup vmouseover vmouseout focus blur scrollstart touchend touchcancel":function(e){var g,h=a(d(e.target)),i=e.originalEvent&&/^touch/.test(e.originalEvent.type),j=e.type;if(h.length){g=h.attr("data-"+a.mobile.ns+"theme");if(j==="vmousedown")i?c=setTimeout(function(){h.removeClass("ui-btn-up-"+g).addClass("ui-btn-down-"+g)},b):h.removeClass("ui-btn-up-"+g).addClass("ui-btn-down-"+g);else if(j==="vmousecancel"||j==="vmouseup"||j==="touchend"||j==="touchcancel")h.removeClass("ui-btn-down-"+g).addClass("ui-btn-up-"+g);else if(j==="vmouseover"||j==="focus")i?f=setTimeout(function(){h.removeClass("ui-btn-up-"+g).addClass("ui-btn-hover-"+g)},b):h.removeClass("ui-btn-up-"+g).addClass("ui-btn-hover-"+g);else if(j==="vmouseout"||j==="blur"||j==="scrollstart")h.removeClass("ui-btn-hover-"+g+" ui-btn-down-"+g).addClass("ui-btn-up-"+g),c&&clearTimeout(c),f&&clearTimeout(f)}},"focusin focus":function(b){a(d(b.target)).addClass(a.mobile.focusClass)},"focusout blur":function(b){a(d(b.target)).removeClass(a.mobile.focusClass)}}),e=null};a.mobile.$document.bind("pagecreate create",function(b){a(":jqmData(role='button'), .ui-bar > a, .ui-header > a, .ui-footer > a, .ui-bar > :jqmData(role='controlgroup') > a",b.target).jqmEnhanceable().not("button, input, .ui-btn, :jqmData(role='none'), :jqmData(role='nojs')").buttonMarkup()})}(a),function(a,b){a.widget("mobile.collapsible",a.mobile.widget,{options:{expandCueText:" Expandable list, tap to open list",collapseCueText:" Expandable list, tap to close list",collapsed:!0,heading:"h1,h2,h3,h4,h5,h6,legend",theme:null,contentTheme:null,inset:!0,mini:!1,initSelector:":jqmData(role='collapsible')"},_create:function(){var c=this.element,d=this.options,e=c.addClass("ui-collapsible"),f=c.children(d.heading).first(),g=a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"collapsed-icon")||d.collapsedIcon,h=a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"expanded-icon")||d.expandedIcon,i=e.wrapInner("<div class='ui-collapsible-content'></div>").children(".ui-collapsible-content"),j=c.closest(":jqmData(role='collapsible-set')").addClass("ui-collapsible-set");f.is("legend")&&(f=a("<div role='heading'>"+f.html()+"</div>").insertBefore(f),f.next().remove()),j.length?(d.theme||(d.theme=a.mobile.getAttrFixed(j[0],"data-"+a.mobile.ns+"theme")||a.mobile.getInheritedTheme(j,"c")),d.contentTheme||(d.contentTheme=a.mobile.getAttrFixed(j[0],"data-"+a.mobile.ns+"content-theme")),d.collapsedIcon||(d.collapsedIcon=a.mobile.getAttrFixed(j[0],"data-"+a.mobile.ns+"collapsed-icon")),d.expandedIcon||(d.expandedIcon=a.mobile.getAttrFixed(j[0],"data-"+a.mobile.ns+"expanded-icon")),d.iconPos||(d.iconPos=a.mobile.getAttrFixed(j[0],"data-"+a.mobile.ns+"iconpos")),a.mobile.getAttrFixed(j[0],"data-"+a.mobile.ns+"inset")!==b?d.inset=a.mobile.getAttrFixed(j[0],"data-"+a.mobile.ns+"inset"):d.inset=!0,d.mini||(d.mini=a.mobile.getAttrFixed(j[0],"data-"+a.mobile.ns+"mini"))):d.theme||(d.theme=a.mobile.getInheritedTheme(c,"c")),!d.inset||e.addClass("ui-collapsible-inset"),i.addClass(d.contentTheme?"ui-body-"+d.contentTheme:""),g=a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"collapsed-icon")||d.collapsedIcon||"plus",h=a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"expanded-icon")||d.expandedIcon||"minus",f.insertBefore(i).addClass("ui-collapsible-heading").append("<span class='ui-collapsible-heading-status'></span>").wrapInner("<a href='#' class='ui-collapsible-heading-toggle'></a>").find("a").first().buttonMarkup({shadow:!1,corners:!1,iconpos:a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"iconpos")||d.iconPos||"left",icon:g,mini:d.mini,theme:d.theme}).attr("role",""),!d.inset||f.find("a").first().add(".ui-btn-inner",c).addClass("ui-corner-top ui-corner-bottom"),e.bind("expand collapse",function(b){if(!b.isDefaultPrevented()){var c=a(this),k=b.type==="collapse",l=d.contentTheme;b.preventDefault(),d.customEventHandler&&d.customEventHandler.call(this,k),f.toggleClass("ui-collapsible-heading-collapsed",k).find(".ui-collapsible-heading-status").text(k?d.expandCueText:d.collapseCueText).end().find(".ui-icon").toggleClass("ui-icon-"+h,!k).toggleClass("ui-icon-"+g,k||h===g).end().find("a").first().removeClass(a.mobile.activeBtnClass),c.toggleClass("ui-collapsible-collapsed",k),i.toggleClass("ui-collapsible-content-collapsed",k).attr("aria-hidden",k),i.children("li").not("ui-collapsible-content").attr("tabindex",k?"":"0"),l&&!!d.inset&&(!j.length||e.jqmData("collapsible-last"))&&(f.find("a").first().add(f.find(".ui-btn-inner")).toggleClass("ui-corner-bottom",k),i.toggleClass("ui-corner-bottom",!k)),i.trigger("updatelayout")}}).trigger(d.collapsed?"collapse":"expand"),f.bind("tap",function(b){f.find("a").first().addClass(a.mobile.activeBtnClass)}).bind("click",function(a){var b=f.is(".ui-collapsible-heading-collapsed")?"expand":"collapse";e.trigger(b),a.preventDefault(),a.stopPropagation()})}}),a.delegateSelfInitWithSingleSelector(a.mobile.collapsible)}(a),function(a,b){a.widget("mobile.collapsibleset",a.mobile.widget,{options:{initSelector:":jqmData(role='collapsible-set')"},_create:function(){var c=this.element.addClass("ui-collapsible-set"),d=this.options;d.theme||(d.theme=a.mobile.getInheritedTheme(c,"c")),d.contentTheme||(d.contentTheme=a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"content-theme")),a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"inset")!==b&&(d.inset=a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"inset")),d.inset=d.inset!==b?d.inset:!0,c.jqmData("collapsiblebound")||c.jqmData("collapsiblebound",!0).bind("expand collapse",function(b){var c=b.type==="collapse",e=a(b.target).closest(".ui-collapsible"),f=e.data("collapsible");e.jqmData("collapsible-last")&&!!d.inset&&(e.find(".ui-collapsible-heading").first().find("a").first().toggleClass("ui-corner-bottom",c).find(".ui-btn-inner").toggleClass("ui-corner-bottom",c),e.find(".ui-collapsible-content").toggleClass("ui-corner-bottom",!c))}).bind("expand",function(b){var c=a(b.target).closest(".ui-collapsible");c.parent().is(":jqmData(role='collapsible-set')")&&c.siblings(".ui-collapsible").trigger("collapse")})},_init:function(){var a=this.element,b=a.children(":jqmData(role='collapsible')"),c=b.filter(":jqmData(collapsed='false')");this.refresh(),c.trigger("expand")},refresh:function(){var b=this.element,c=this.options,d=b.children(":jqmData(role='collapsible')");a.mobile.collapsible.prototype.enhance(d.not(".ui-collapsible")),!c.inset||(d.each(function(){a(this).jqmRemoveData("collapsible-last").find(".ui-collapsible-heading").find("a").first().removeClass("ui-corner-top ui-corner-bottom").find(".ui-btn-inner").removeClass("ui-corner-top ui-corner-bottom")}),d.first().find("a").first().addClass("ui-corner-top").find(".ui-btn-inner").addClass("ui-corner-top"),d.last().jqmData("collapsible-last",!0).find("a").first().addClass("ui-corner-bottom").find(".ui-btn-inner").addClass("ui-corner-bottom"))}}),a.delegateSelfInitWithSingleSelector(a.mobile.collapsibleset)}(a),function(a,b){a.widget("mobile.navbar",a.mobile.widget,{options:{iconpos:"top",grid:null,initSelector:":jqmData(role='navbar')"},_create:function(){var c=this.element,d=c.find("a"),e=d.filter(":jqmData(icon)").length?this.options.iconpos:b;c.addClass("ui-navbar ui-mini").attr("role","navigation").find("ul").jqmEnhanceable().grid({grid:this.options.grid}),d.buttonMarkup({corners:!1,shadow:!1,inline:!0,iconpos:e}),c.delegate("a","vclick",function(b){a(b.target).hasClass("ui-disabled")||(d.removeClass(a.mobile.activeBtnClass),a(this).addClass(a.mobile.activeBtnClass))}),c.closest(".ui-page").bind("pagebeforeshow",function(){d.filter(".ui-state-persist").addClass(a.mobile.activeBtnClass)})}}),a.delegateSelfInitWithSingleSelector(a.mobile.navbar)}(a),function(a,b){var d={};a.widget("mobile.listview",a.mobile.widget,{options:{theme:null,countTheme:"c",headerTheme:"b",dividerTheme:"b",splitIcon:"arrow-r",splitTheme:"b",inset:!1,initSelector:":jqmData(role='listview')"},_create:function(){var a=this,b="";b+=a.options.inset?" ui-listview-inset ui-corner-all ui-shadow ":"",a.element.addClass(function(a,c){return c+" ui-listview "+b}),a.refresh(!0)},_removeCorners:function(a,b){var c="ui-corner-top ui-corner-tr ui-corner-tl",d="ui-corner-bottom ui-corner-br ui-corner-bl";a=a.add(a.find(".ui-btn-inner, .ui-li-link-alt, .ui-li-thumb")),b==="top"?a.removeClass(c):b==="bottom"?a.removeClass(d):a.removeClass(c+" "+d)},_refreshCorners:function(a){var b,c,d,e;b=this.element.children("li"),c=a||b.filter(":visible").length===0?b.not(".ui-screen-hidden"):b.filter(":visible"),b.filter(".ui-li-last").removeClass("ui-li-last"),this.options.inset?(this._removeCorners(b),d=c.first().addClass("ui-corner-top"),d.add(d.find(".ui-btn-inner").not(".ui-li-link-alt span:first-child")).addClass("ui-corner-top"
-).end().find(".ui-li-link-alt, .ui-li-link-alt span:first-child").addClass("ui-corner-tr").end().find(".ui-li-thumb").not(".ui-li-icon").addClass("ui-corner-tl"),e=c.last().addClass("ui-corner-bottom ui-li-last"),e.add(e.find(".ui-btn-inner")).find(".ui-li-link-alt").addClass("ui-corner-br").end().find(".ui-li-thumb").not(".ui-li-icon").addClass("ui-corner-bl")):c.last().addClass("ui-li-last"),a||this.element.trigger("updatelayout")},_findFirstElementByTagName:function(a,b,c,d){var e={};e[c]=e[d]=!0;while(a){if(e[a.nodeName])return a;a=a[b]}return null},_getChildrenByTagName:function(b,c,d){var e=[],f={};f[c]=f[d]=!0,b=b.firstChild;while(b)f[b.nodeName]&&e.push(b),b=b.nextSibling;return a(e)},_addThumbClasses:function(b){var c,d,e=b.length;for(c=0;c<e;c++)d=a(this._findFirstElementByTagName(b[c].firstChild,"nextSibling","img","IMG")),d.length&&(d.addClass("ui-li-thumb").attr({role:"","aria-label":"icon"}),a(this._findFirstElementByTagName(d[0].parentNode,"parentNode","li","LI")).addClass(d.is(".ui-li-icon")?"ui-li-has-icon":"ui-li-has-thumb"))},_addCheckboxRadioClasses:function(b){var c,d,e=b.length;for(c=0;c<e;c++)d=a(b[c]).find("input"),d.attr("type")=="checkbox"?a(b[c]).addClass("ui-li-has-checkbox"):d.attr("type")=="radio"&&a(b[c]).addClass("ui-li-has-radio")},_addRightBtnClasses:function(b){var c,d,e=b.length;for(c=0;c<e;c++)d=a(b[c]).find(":jqmData(role='button'),input[type='button'],select:jqmData(role='slider')"),d.length&&(d.jqmData("style")=="circle"?a(b[c]).addClass("ui-li-has-right-circle-btn"):a(b[c]).addClass("ui-li-has-right-btn"))},refresh:function(d){this.parentPage=this.element.closest(".ui-page"),this._createSubPages();var e=this.options,f=this.element,g=this,h=a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"dividertheme")||e.dividerTheme,i=a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"splittheme"),j=a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"spliticon"),k=this._getChildrenByTagName(f[0],"li","LI"),l=!!a.nodeName(f[0],"ol"),m=!a.support.cssPseudoElement,n=f.attr("start"),o={},p,q,r,s,t,u,v,w,x,y,z,A,B,C;l&&m&&f.find(".ui-li-dec").remove(),l&&(n||n===0?m?v=parseFloat(n):(w=parseFloat(n)-1,f.css("counter-reset","listnumbering "+w)):m&&(v=1)),e.theme||(e.theme=a.mobile.getInheritedTheme(this.element,"c"));for(var D=0,E=k.length;D<E;D++){p=k.eq(D),q="ui-li";if(d||!p.hasClass("ui-li")){r=a.mobile.getAttrFixed(p[0],"data-"+a.mobile.ns+"theme")||e.theme,s=this._getChildrenByTagName(p[0],"a","A").attr({role:"",tabindex:"0"});var F=a.mobile.getAttrFixed(p[0],"data-"+a.mobile.ns+"role")==="list-divider";(p.hasClass("ui-li-has-checkbox")||p.hasClass("ui-li-has-radio"))&&p.on("vclick",function(b){var c=a(b.target),d=c.find(".ui-checkbox");d.length||(d=c.find(".ui-radio")),d.length&&d.children("label").trigger("vclick")}),s.length&&!F?(z=a.mobile.getAttrFixed(p[0],"data-"+a.mobile.ns+"icon"),z===b&&(z=!1),p.buttonMarkup({wrapperEls:"div",shadow:!1,corners:!1,iconpos:"right",icon:s.length>1||z===!1?!1:z||"arrow-r",theme:r}),z!==!1&&s.length===1&&p.addClass("ui-li-has-arrow"),s.first().removeClass("ui-link").addClass("ui-link-inherit"),s.length>1&&(q+=" ui-li-has-alt",t=s.last(),u=i||a.mobile.getAttrFixed(t[0],"data-"+a.mobile.ns+"theme")||e.splitTheme,C=a.mobile.getAttrFixed(t[0],"data-"+a.mobile.ns+"icon"),t.appendTo(p).attr("title",t.getEncodedText()).addClass("ui-li-link-alt").empty().buttonMarkup({shadow:!1,corners:!1,theme:r,icon:!1,iconpos:"notext"}).find(".ui-btn-inner").append(a(c.createElement("span")).buttonMarkup({shadow:!0,corners:!0,theme:u,iconpos:"notext",icon:C||z||j||e.splitIcon})))):F?(q+=" ui-li-divider ui-bar-"+h,p.attr({role:"heading",tabindex:"0"}),l&&(n||n===0?m?v=parseFloat(n):(x=parseFloat(n)-1,p.css("counter-reset","listnumbering "+x)):m&&(v=1))):(q+=" ui-li-static ui-btn-up-"+r,p.attr("tabindex","0"))}l&&m&&q.indexOf("ui-li-divider")<0&&(y=q.indexOf("ui-li-static")>0?p:p.find(".ui-link-inherit"),y.addClass("ui-li-jsnumbering").prepend("<span class='ui-li-dec'>"+v++ +". </span>")),o[q]||(o[q]=[]),o[q].push(p[0])}for(q in o)a(o[q]).addClass(q).children(".ui-btn-inner").addClass(q);f.find("h1, h2, h3, h4, h5, h6").addClass("ui-li-heading").end().find("p, dl").addClass("ui-li-desc").end().find(".ui-li-aside").each(function(){var b=a(this);b.prependTo(b.parent())}).end().find(".ui-li-count").each(function(){a(this).closest("li").addClass("ui-li-has-count")}).addClass("ui-btn-up-"+(a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"counttheme")||this.options.countTheme)+" ui-btn-corner-all"),this._addThumbClasses(k),this._addThumbClasses(f.find(".ui-link-inherit")),this._addCheckboxRadioClasses(k),this._addCheckboxRadioClasses(f.find(".ui-link-inherit")),this._addRightBtnClasses(k),this._addRightBtnClasses(f.find(".ui-link-inherit")),this._refreshCorners(d),this._trigger("afterrefresh")},_idStringEscape:function(a){return a.replace(/[^a-zA-Z0-9]/g,"-")},_createSubPages:function(){var b=this.element,c=b.closest(".ui-page"),e=c.jqmData("url"),f=e||c[0][a.expando],g=b.attr("id"),h=this.options,i="data-"+a.mobile.ns,j=this,k=c.find(":jqmData(role='footer')").jqmData("id"),l;typeof d[f]=="undefined"&&(d[f]=-1),g=g||++d[f],a(b.find("li>ul, li>ol").toArray().reverse()).each(function(c){var d=this,f=a(this),j=f.attr("id")||g+"-"+c,m=f.parent(),n=a(f.prevAll().toArray().reverse()),p=n.length?n:a("<span>"+a.trim(m.contents()[0].nodeValue)+"</span>"),q=p.first().getEncodedText(),r=(e||"")+"&"+a.mobile.subPageUrlKey+"="+j,s=a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"theme")||h.theme,t=a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"counttheme")||a.mobile.getAttrFixed(b[0],"data-"+a.mobile.ns+"counttheme")||h.countTheme,u,v;l=!0,u=f.detach().wrap("<div "+i+"role='page' "+i+"url='"+r+"' "+i+"theme='"+s+"' "+i+"count-theme='"+t+"'><div "+i+"role='content'></div></div>").parent().before("<div "+i+"role='header' "+i+"theme='"+h.headerTheme+"'><div class='ui-title'>"+q+"</div></div>").after(k?a("<div "+i+"role='footer' "+i+"id='"+k+"'>"):"").parent().appendTo(a.mobile.pageContainer),u.page(),v=m.find("a:first"),v.length||(v=a("<a/>").html(p||q).prependTo(m.empty())),v.attr("href","#"+r)}).listview();if(l&&c.is(":jqmData(external-page='true')")&&c.data("page").options.domCache===!1){var m=function(b,d){var f=d.nextPage,g,h=new a.Event("pageremove");d.nextPage&&(g=f.jqmData("url"),g.indexOf(e+"&"+a.mobile.subPageUrlKey)!==0&&(j.childPages().remove(),c.trigger(h),h.isDefaultPrevented()||c.removeWithDependents()))};c.unbind("pagehide.remove").bind("pagehide.remove",m)}},addItem:function(b,c){var d=a(b),e,f=this;e=f.element.children("li"),d.css({opacity:0,display:"none"}),e.length==0||e.length<=c?a(f.element).append(d):a(e.get(c)).before(d),a(f.element).trigger("create").listview("refresh"),d.css("min-height","0px"),d.slideDown("fast",function(){d.addClass("addli"),d.css({opacity:1})})},removeItem:function(b){var c,d,e=this;d=e.element.children("li");if(d.length<=0||d.length<b)return;c=a(d.get(b)),c.addClass("removeli"),c.slideUp("normal",function(){a(this).remove()})},childPages:function(){var b=this.parentPage.jqmData("url");return a(":jqmData(url^='"+b+"&"+a.mobile.subPageUrlKey+"')")}}),a.delegateSelfInitWithSingleSelector(a.mobile.listview)}(a),function(a,b){a.mobile.listview.prototype.options.autodividers=!1,a.mobile.listview.prototype.options.autodividersSelector=function(a){var b=a.text()||null;return b?(b=b.trim().slice(0,1).toUpperCase(),b):null},a.mobile.$document.delegate("ul,ol","listviewcreate",function(){var b=a(this),d=b.data("listview");if(!d||!d.options.autodividers)return;var e=function(){b.find("li:jqmData(role='list-divider')").remove();var e=b.find("li"),f=null,g,h;for(var i=0;i<e.length;i++){g=e[i],h=d.options.autodividersSelector(a(g));if(h&&f!==h){var j=c.createElement("li");j.appendChild(c.createTextNode(h)),j.setAttribute("data-"+a.mobile.ns+"role","list-divider"),g.parentNode.insertBefore(j,g)}f=h}},f=function(){b.unbind("listviewafterrefresh",f),e(),d.refresh(),b.bind("listviewafterrefresh",f)};f()})}(a),function(a,b){a.widget("mobile.checkboxradio",a.mobile.widget,{options:{theme:null,initSelector:"input[type='checkbox'],input[type='radio']"},_create:function(){var d=this,e=this.element,f=function(a,b){return a.jqmData(b)||a.closest("form, fieldset").jqmData(b)},g=a(e).closest("label"),h=g.length?g:e[0].id?a(e).closest("form, fieldset, :jqmData(role='page'), :jqmData(role='dialog')").find("label").filter("[for='"+e[0].id+"']"):[],i=e[0].type,j=f(e,"mini"),k=i+"-on",l=i+"-off",m=e.parents(":jqmData(type='horizontal')").length?b:l,n=f(e,"iconpos"),o=m?"":" "+a.mobile.activeBtnClass,p="ui-"+k+o,q="ui-"+l,r="ui-icon-"+k,s="ui-icon-"+l,t="";if(i!=="checkbox"&&i!=="radio")return;t=i==="checkbox"?"aria-checked":"aria-selected",h.length==0&&(h=a("<label for='"+e[0].id+"'></label>")),a.extend(this,{label:h,inputtype:i,checkedClass:p,uncheckedClass:q,checkedicon:r,uncheckedicon:s,ariaCheckedAttr:t}),this.options.theme||(this.options.theme=a.mobile.getInheritedTheme(this.element,"c")),h.buttonMarkup({theme:this.options.theme,icon:m,shadow:!1,mini:j,iconpos:n});var u=c.createElement("div");u.className="ui-"+i,u.setAttribute("role",i),e.hasClass("favorite")&&(u.className+=" favorite"),e.add(h).wrapAll(u),h.bind({vmouseover:function(b){a(this).parent().is(".ui-disabled")&&b.stopPropagation()},vclick:function(a){if(e.is(":disabled")){a.preventDefault();return}return d._cacheVals(),e.prop("checked",i==="radio"&&!0||!e.prop("checked")),e.triggerHandler("click"),d._getInputSet().not(e).prop("checked",!1),d._updateAll(),!1}}),e.bind({vmousedown:function(){d._cacheVals()},vclick:function(){var b=a(this);b.is(":checked")?(b.prop("checked",!0),d._getInputSet().not(b).prop("checked",!1)):b.prop("checked",!1),d._updateAll()},focus:function(){h.addClass(a.mobile.focusClass)},blur:function(){h.removeClass(a.mobile.focusClass)}}),this.refresh()},_cacheVals:function(){this._getInputSet().each(function(){a(this).jqmData("cacheVal",this.checked)})},_getInputSet:function(){return this.inputtype==="checkbox"?this.element:this.element.closest("form, fieldset, :jqmData(role='page'), :jqmData(role='dialog')").find("input[name='"+this.element[0].name+"'][type='"+this.inputtype+"']")},_updateAll:function(){var b=this;this._getInputSet().each(function(){var c=a(this);(this.checked||b.inputtype==="checkbox")&&c.trigger("change"),c.focus()}).checkboxradio("refresh")},refresh:function(){var a=this.element[0],b=this.label,c=a.parentNode,d=b.find(".ui-icon");a.checked?(b.addClass(this.checkedClass).removeClass(this.uncheckedClass),d.addClass(this.checkedicon).removeClass(this.uncheckedicon),c.setAttribute(this.ariaCheckedAttr,!0)):(b.removeClass(this.checkedClass).addClass(this.uncheckedClass),d.removeClass(this.checkedicon).addClass(this.uncheckedicon),c.setAttribute(this.ariaCheckedAttr,!1)),a.disabled?this.disable():this.enable()},disable:function(){this.element.prop("disabled",!0).parent().addClass("ui-disabled")},enable:function(){this.element.prop("disabled",!1).parent().removeClass("ui-disabled")}}),a.mobile.$document.bind("pagecreate create",function(b){a.mobile.checkboxradio.prototype.enhanceWithin(b.target,!0)})}(a),function(a,b){a.widget("mobile.button",a.mobile.widget,{options:{theme:null,icon:null,iconpos:null,corners:!0,shadow:!0,iconshadow:!0,initSelector:"button, [type='button'], [type='submit'], [type='reset']"},_create:function(){var c=this.element,d,e=this.options,f,g,h=e.inline||a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"inline"),i=e.mini||a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"mini"),j="",k;if(c[0].tagName==="A"){c.hasClass("ui-btn")||c.buttonMarkup();return}this.options.theme||(this.options.theme=a.mobile.getInheritedTheme(this.element,"c")),!~c[0].className.indexOf("ui-btn-left")||(j="ui-btn-left"),!~c[0].className.indexOf("ui-btn-right")||(j="ui-btn-right");if(c.attr("type")==="submit"||c.attr("type")==="reset")j?j+=" ui-submit":j="ui-submit";a("label[for='"+c.attr("id")+"']").addClass("ui-submit"),this.button=a("<div></div>")[c.html()?"html":"text"](c.html()||c.val()).insertBefore(c).buttonMarkup({theme:e.theme,icon:e.icon,iconpos:e.iconpos,inline:h,corners:e.corners,shadow:e.shadow,iconshadow:e.iconshadow,mini:i}).addClass(j).append(c.addClass("ui-btn-hidden")),d=this.button,f=c.attr("type"),g=c.attr("name"),f!=="button"&&f!=="reset"&&g&&c.bind("vclick",function(){k===b&&(k=a("<input>",{type:"hidden",name:c.attr("name"),value:c.attr("value")}).insertBefore(c),a.mobile.$document.one("submit",function(){k.remove(),k=b}))}),c.bind({focus:function(){d.addClass(a.mobile.focusClass)},blur:function(){d.removeClass(a.mobile.focusClass)}}),this.refresh()},enable:function(){return this.element.attr("disabled",!1),this.button.removeClass("ui-disabled").attr("aria-disabled",!1),this._setOption("disabled",!1)},disable:function(){return this.element.attr("disabled",!0),this.button.addClass("ui-disabled").attr("aria-disabled",!0),this._setOption("disabled",!0)},refresh:function(){var b=this.element;b.prop("disabled")?this.disable():this.enable(),a(this.button.data("buttonElements").text)[b.html()?"html":"text"](b.html()||b.val())}}),a.mobile.$document.bind("pagecreate create",function(b){a.mobile.button.prototype.enhanceWithin(b.target,!0)})}(a),function(a,b){a.fn.controlgroup=function(b){function c(a,b){a.removeClass("ui-btn-corner-all ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-controlgroup-last ui-shadow").eq(0).addClass(b[0]).end().last().addClass(b[1]).addClass("ui-controlgroup-last")}return this.each(function(){var d=a(this),e=a.extend({direction:a.mobile.getAttrFixed(d[0],"data-"+a.mobile.ns+"type")||"vertical",shadow:!1,excludeInvisible:!0,mini:a.mobile.getAttrFixed(d[0],"data-"+a.mobile.ns+"mini")},b),f=d.children("legend"),g=d.children(".ui-controlgroup-label"),h=d.children(".ui-controlgroup-controls"),i=e.direction==="horizontal"?["ui-corner-left","ui-corner-right"]:["ui-corner-top","ui-corner-bottom"],j=d.find("input").first().attr("type");h.length&&h.contents().unwrap(),d.wrapInner("<div class='ui-controlgroup-controls'></div>"),f.length?(a("<div role='heading' class='ui-controlgroup-label'>"+f.html()+"</div>").insertBefore(d.children(0)),f.remove()):g.length&&d.prepend(g),d.addClass("ui-corner-all ui-controlgroup ui-controlgroup-"+e.direction),c(d.find(".ui-btn"+(e.excludeInvisible?":visible":"")).not(".ui-slider-handle"),i),c(d.find(".ui-btn-inner"),i),e.shadow&&d.addClass("ui-shadow"),e.mini&&d.addClass("ui-mini")})}}(a),function(a,b){a.mobile.$document.bind("pagecreate create",function(b){a(b.target).find("a").jqmEnhanceable().not(".ui-btn, .ui-link-inherit, :jqmData(role='none'), :jqmData(role='nojs')").addClass("ui-link")})}(a),function(a,d){function e(a,b,c,d){var e=d;return a<b?e=c+(a-b)/2:e=Math.min(Math.max(c,d-b/2),c+a-b),e}function f(){var c=a.mobile.$window;return{x:c.scrollLeft(),y:c.scrollTop(),cx:b.innerWidth||c.width(),cy:b.innerHeight||c.height()}}a.widget("mobile.popup",a.mobile.widget,{options:{theme:null,overlayTheme:null,shadow:!0,corners:!0,transition:"pop",positionTo:"origin",tolerance:null,initSelector:":jqmData(role='popup')",closeLinkSelector:"a:jqmData(rel='back')",closeLinkEvents:"click.popup",navigateEvents:"navigate.popup",closeEvents:"navigate.popup pagebeforechange.popup",history:!1},_eatEventAndClose:function(a){return a.preventDefault(),a.stopImmediatePropagation(),this.close(),!1},_resizeScreen:function(){var a=this._ui.container.outerHeight(!0);this._ui.screen.removeAttr("style"),a>this._ui.screen.height()&&this._ui.screen.height(a)},_handleWindowKeyUp:function(b){if(this._isOpen&&b.keyCode===a.mobile.keyCode.ESCAPE)return this._eatEventAndClose(b)},_maybeRefreshTimeout:function(){var b=f();if(this._resizeData){if(b.x===this._resizeData.winCoords.x&&b.y===this._resizeData.winCoords.y&&b.cx===this._resizeData.winCoords.cx&&b.cy===this._resizeData.winCoords.cy)return!1;clearTimeout(this._resizeData.timeoutId)}return this._resizeData={timeoutId:setTimeout(a.proxy(this,"_resizeTimeout"),200),winCoords:b},!0},_resizeTimeout:function(){!this._maybeRefreshTimeout()&&this.positionTo==="window"&&(this._trigger("beforeposition"),this._ui.container.removeClass("ui-selectmenu-hidden").offset(this._placementCoords(this._desiredCoords(d,d,"window"))),this._resizeScreen(),this._resizeData=null,this._orientationchangeInProgress=!1)},_handleWindowResize:function(a){if(this._isOpen){if(this.positionTo!=="window")return this.close(),!1;this._maybeRefreshTimeout()}},_handleWindowOrientationchange:function(a){this._orientationchangeInProgress||(this._ui.container.addClass("ui-selectmenu-hidden").removeAttr("style"),this._orientationchangeInProgress=!0)},_create:function(){var b={screen:a("<div class='ui-screen-hidden ui-popup-screen'></div>"),placeholder:a("<div style='display: none;'><!-- placeholder --></div>"),container:a("<div class='ui-popup-container ui-selectmenu-hidden'></div>"),arrow:a("<div class='ui-arrow'></div>")},c=this.element.closest(".ui-page"),e=this.element.attr("id"),f=this;this.options.history=this.options.history&&a.mobile.ajaxEnabled&&a.mobile.hashListeningEnabled,c.length===0&&(c=a("body")),this.options.container=this.options.container||a.mobile.pageContainer,c.append(b.screen),b.container.insertAfter(b.screen),b.placeholder.insertAfter(this.element),e&&(b.screen.attr("id",e+"-screen"),b.container.attr("id",e+"-popup"),b.placeholder.html("<!-- placeholder for "+e+" -->")),b.container.append(this.element),b.container.append(b.arrow),this.element.addClass("ui-popup"),a.extend(this,{_page:c,_ui:b,_fallbackTransition:"",_currentTransition:!1,_prereqs:null,_isOpen:!1,_tolerance:null,_resizeData:null,_orientationchangeInProgress:!1,_globalHandlers:[{src:a.mobile.$window,handler:{orientationchange:a.proxy(this,"_handleWindowOrientationchange"),resize:a.proxy(this,"_handleWindowResize"),keyup:a.proxy(this,"_handleWindowKeyUp")}}]}),a.each(this.options,function(a,b){f.options[a]=d,f._setOption(a,b,!0)}),b.screen.bind("vclick",a.proxy(this,"_eatEventAndClose")),a.each(this._globalHandlers,function(a,b){b.src.bind(b.handler)})},_applyTheme:function(a,b,c){var d=(a.attr("class")||"").split(" "),e=!0,f=null,g,h=String(b);while(d.length>0){f=d.pop(),g=(new RegExp("^ui-"+c+"-([a-z])$")).exec(f);if(g&&g.length>1){f=g[1];break}f=null}b!==f&&(a.removeClass("ui-"+c+"-"+f),b!==null&&b!=="none"&&a.addClass("ui-"+c+"-"+h))},_setTheme:function(a){this._applyTheme(this.element,a,"body")},_setOverlayTheme:function(a){this._applyTheme(this._ui.screen,a,"overlay"),this._isOpen&&this._ui.screen.addClass("in")},_setShadow:function(a){this.element.toggleClass("ui-overlay-shadow",a)},_setCorners:function(a){this.element.toggleClass("ui-corner-all",a)},_applyTransition:function(b){this._ui.container.removeClass(this._fallbackTransition),b&&b!=="none"&&(this._fallbackTransition=a.mobile._maybeDegradeTransition(b),this._ui.container.addClass(this._fallbackTransition))},_setTransition:function(a){this._currentTransition||this._applyTransition(a)},_setTolerance:function(b){var c={t:5,r:5,b:5,l:5};if(b){var d=String(b).split(",");a.each(d,function(a,b){d[a]=parseInt(b,10)});switch(d.length){case 1:isNaN(d[0])||(c.t=c.r=c.b=c.l=d[0]);break;case 2:isNaN(d[0])||(c.t=c.b=d[0]),isNaN(d[1])||(c.l=c.r=d[1]);break;case 4:isNaN(d[0])||(c.t=d[0]),isNaN(d[1])||(c.r=d[1]),isNaN(d[2])||(c.b=d[2]),isNaN(d[3])||(c.l=d[3]);break;default:}}this._tolerance=c},_setOption:function(b,c){var e,f="_set"+b.charAt(0).toUpperCase()+b.slice(1);this[f]!==d&&this[f](c),e=["initSelector","closeLinkSelector","closeLinkEvents","navigateEvents","closeEvents","history","container"],a.mobile.widget.prototype._setOption.apply(this,arguments),a.inArray(b,e)===-1&&this.element.attr("data-"+(a.mobile.ns||"")+b.replace(/([A-Z])/,"-$1").toLowerCase(),c)},_placementCoords:function(d){var g=f(),h={x:this._tolerance.l,y:g.y+this._tolerance.t,cx:g.cx-this._tolerance.l-this._tolerance.r,cy:g.cy-this._tolerance.t-this._tolerance.b},i,j,k=a(this.link).offset(),l=[],m=[0,0],n;this._ui.container.css("max-width",h.cx),i={cx:this._ui.container.outerWidth(!0),cy:this._ui.container.outerHeight(!0)},j={x:e(h.cx,i.cx,h.x,d.x),y:e(h.cy,i.cy,h.y,d.y)},j.y=Math.max(0,j.y);var o=c.documentElement,p=c.body,q=Math.max(o.clientHeight,p.scrollHeight,p.offsetHeight,o.scrollHeight,o.offsetHeight);j.y-=Math.min(j.y,Math.max(0,j.y+i.cy-q));if(this.positionTo!=="origin")return{left:j.x,top:j.y,arrowleft:0,arrowtop:0};l=[k.left,k.top,o.clientHeight-(k.top+a(this.link).height()),o.clientWidth-(k.left+a(this.link).width())],n=l.indexOf(Math.max.apply(b,l));switch(n){case 0:m=[-a(this.link).width(),0],arrowtop=k.top-j.y+a(this.link).height()/2-parseInt(a(this._ui.arrow).css("border-width")),arrowleft=i.cx,a(this._ui.arrow).attr("class","").addClass("ui-arrow left");break;case 1:m=[0,-(j.y+i.cy-k.top)],arrowtop=i.cy-2,arrowleft=k.left-j.x+m[0]+a(this.link).width()/2-parseInt(a(this._ui.arrow).css("border-width"))/2,a(this._ui.arrow).attr("class","").addClass("ui-arrow bottom");break;case 2:m=[0,k.top+a(this.link).height()-j.y],arrowtop=-parseInt(a(this._ui.arrow).css("border-width"))*2+1,arrowleft=k.left-j.x+m[0]+a(this.link).width()/2-parseInt(a(this._ui.arrow).css("border-width"))/2,a(this._ui.arrow).attr("class","").addClass("ui-arrow top");break;case 3:m=[i.cx<a(this.link).width()?a(this.link).width()/2+i.cx/2:a(this.link).width(),0],arrowtop=k.top-j.y+a(this.link).height()/2-parseInt(a(this._ui.arrow).css("border-width")),arrowleft=-parseInt(a(this._ui.arrow).css("border-width"))*2,a(this._ui.arrow).attr("class","").addClass("ui-arrow right")}return{left:j.x+m[0],top:j.y+m[1],arrowleft:arrowleft,arrowtop:arrowtop}},_createPrereqs:function(b,c,d){var e=this,f;f={screen:a.Deferred(),container:a.Deferred()},f.screen.then(function(){f===e._prereqs&&b()}),f.container.then(function(){f===e._prereqs&&c()}),a.when(f.screen,f.container).done(function(){f===e._prereqs&&(e._prereqs=null,d())}),e._prereqs=f},_animate:function(b){this._ui.screen.removeClass(b.classToRemove).addClass(b.screenClassToAdd),b.prereqs.screen.resolve(),b.transition&&b.transition!=="none"?(b.applyTransition&&this._applyTransition(b.transition),this._ui.container.animationComplete(a.proxy(b.prereqs.container,"resolve")).addClass(b.containerClassToAdd).removeClass(b.classToRemove)):b.prereqs.container.resolve()},_desiredCoords:function(b,c,d){var e=null,g,h=f();if(d&&d!=="origin")if(d==="window")b=h.cx/2+h.x,c=h.cy/2+h.y;else{try{e=a(d)}catch(i){e=null}e&&(e.filter(":visible"),e.length===0&&(e=null))}e&&(g=e.offset(),b=g.left+e.outerWidth()/2,c=g.top+e.outerHeight()/2);if(a.type(b)!=="number"||isNaN(b))b=h.cx/2+h.x;if(a.type(c)!=="number"||isNaN(c))c=h.cy/2+h.y;return{x:b,y:c}},_openPrereqsComplete:function(){var a=this;a._ui.container.addClass("ui-popup-active"),a._isOpen=!0,a._resizeScreen(),setTimeout(function(){a._ui.container.attr("tabindex","0").focus(),a._trigger("afteropen")})},_open:function(c){var d,e,f=function(){var a=b,c=navigator.userAgent,d=c.match(/AppleWebKit\/([0-9\.]+)/),e=!!d&&d[1],f=c.match(/Android (\d+(?:\.\d+))/),g=!!f&&f[1],h=c.indexOf("Chrome")>-1;return f!==null&&g==="4.0"&&e&&e>534.13&&!h?!0:!1}();c=c||{},e=c.transition||this.options.transition,this._trigger("beforeposition"),d=this._placementCoords(this._desiredCoords(c.x,c.y,c.positionTo||this.options.positionTo||"origin")),this._createPrereqs(a.noop,a.noop,a.proxy(this,"_openPrereqsComplete")),e?(this._currentTransition=e,this._applyTransition(e)):e=this.options.transition,this.options.theme||this._setTheme(this._page.jqmData("theme")||a.mobile.getInheritedTheme(this._page,"c")),this._ui.screen.removeClass("ui-screen-hidden"),this._ui.container.removeClass("ui-selectmenu-hidden").offset(d),this._ui.arrow.css({top:d.arrowtop,left:d.arrowleft}),this.options.overlayTheme&&f&&this.element.closest(".ui-page").addClass("ui-popup-open"),this._animate({additionalCondition:!0,transition:e,classToRemove:"",screenClassToAdd:"in",containerClassToAdd:"in",applyTransition:!1,prereqs:this._prereqs})},_closePrereqScreen:function(){this._ui.screen.removeClass("out").addClass("ui-screen-hidden")},_closePrereqContainer:function(){this._ui.container.removeClass("reverse out").addClass("ui-selectmenu-hidden").removeAttr("style")},_closePrereqsDone:function(){var b=this,c=b.options;b._ui.container.removeAttr("tabindex"),c.container.unbind(c.closeEvents),b.element.undelegate(c.closeLinkSelector,c.closeLinkEvents),a.mobile.popup.active=d,b._trigger("afterclose")},_close:function(){this._ui.container.removeClass("ui-popup-active"),this._page.removeClass("ui-popup-open"),this._isOpen=!1,this.element.find("input").blur(),this._createPrereqs(a.proxy(this,"_closePrereqScreen"),a.proxy(this,"_closePrereqContainer"),a.proxy(this,"_closePrereqsDone")),this._animate({additionalCondition:this._ui.screen.hasClass("in"),transition:this._currentTransition||this.options.transition,classToRemove:"in",screenClassToAdd:"out",containerClassToAdd:"reverse out",applyTransition:!0,prereqs:this._prereqs})},_destroy:function(){var b=this;b._close(),b._setTheme("none"),b.element.insertAfter(b._ui.placeholder).removeClass("ui-popup ui-overlay-shadow ui-corner-all"),b._ui.screen.remove(),b._ui.container.remove(),b._ui.placeholder.remove(),a.each(b._globalHandlers,function(b,c){a.each(c.handler,function(a,b){c.src.unbind(a,b)})})},_bindContainerClose:function(){var b=this;b.options.container.one(b.options.closeEvents,a.proxy(b._close,b))},open:function(b){var c=this,e=this.options,f,g,h,i,j,k;if(a.mobile.popup.active)return;a.mobile.popup.active=this,b||(b=[]),b.link?c.link=b.link:event?c.link=a(event.target).closest("a")[0]||a(event.target).closest("div")[0]:c.positionTo="window",event&&(c.positionTo=b!=null&&b.positionTo!=null?b.positionTo:"origin"),a(c.link).jqmData("position-to")!=="window"&&c.positionTo!=="window"?(a(c.element).addClass("ui-ctxpopup"),a(c._ui.container).removeClass("ui-popup-container").addClass("ui-ctxpopup-container"),c.positionTo!=="origin"?a(c._ui.arrow).hide():a(c._ui.arrow).show()):(a(c._ui.arrow).hide(),this._setOverlayTheme("dim")),!b.x&&c.positionTo==="origin"&&(b.x=a(c.link).offset().left+a(c.link).outerWidth()/2),!b.y&&c.positionTo==="origin"&&(b.y=a(c.link).offset().top+a(c.link).outerHeight()/2);if(!e.history){c._open(b),c._bindContainerClose(),c.element.delegate(e.closeLinkSelector,e.closeLinkEvents,function(a){return c._close(),!1});return}g=a.mobile.dialogHashKey,h=a.mobile.activePage,i=h.is(".ui-dialog"),f=a.mobile.urlHistory.getActive().url,j=f.indexOf(g)>-1&&!i,k=a.mobile.urlHistory;if(j){c._open(b),c._bindContainerClose();return}f.indexOf(g)===-1&&!i?f+=g:f=a.mobile.path.parseLocation().hash+g,k.activeIndex===0&&f===k.initialDst&&(f+=g),e.container.one(e.navigateEvents,function(a){a.preventDefault(),c._open(b),c._bindContainerClose()}),k.ignoreNextHashChange=i,k.addNew(f,d,d,d,"dialog"),a.mobile.path.set(f)},close:function(){if(!a.mobile.popup.active)return;this.options.history?a.mobile.back():this._close()}}),a.mobile.popup.handleLink=function(b){var c=b.closest(":jqmData(role='page')"),d=c.length===0?a("body"):c,e=a(a.mobile.path.parseUrl(b.attr("href")).hash,d[0]),f;e.data("popup")&&(f=b.offset(),e.popup("open",{x:f.left+b.outerWidth()/2,y:f.top+b.outerHeight()/2,transition:a.mobile.getAttrFixed(b[0],"data-"+a.mobile.ns+"transition"),positionTo:a.mobile.getAttrFixed(b[0],"data-"+a.mobile.ns+"position-to"),link:b})),setTimeout(function(){b.removeClass(a.mobile.activeBtnClass)},300)},a.mobile.$document.bind("pagebeforechange",function(b,c){c.options.role==="popup"&&(a.mobile.popup.handleLink(c.options.link),b.preventDefault())}),a.mobile.$document.bind("pagecreate create",function(b){a.mobile.popup.prototype.enhanceWithin(b.target,!0)})}(a),function(a){var b=a("meta[name=viewport]"),c=b.attr("content"),d=c+",maximum-scale=1, user-scalable=no",e=c+",maximum-scale=10, user-scalable=yes",f=/(user-scalable[\s]*=[\s]*no)|(maximum-scale[\s]*=[\s]*1)[$,\s]/.test(c);a.mobile.zoom=a.extend({},{enabled:!f,locked:!1,disable:function(c){!f&&!a.mobile.zoom.locked&&(b.attr("content",d),a.mobile.zoom.enabled=!1,a.mobile.zoom.locked=c||!1)},enable:function(c){!f&&(!a.mobile.zoom.locked||c===!0)&&(b.attr("content",e),a.mobile.zoom.enabled=!0,a.mobile.zoom.locked=!1)},restore:function(){f||(b.attr("content",c),a.mobile.zoom.enabled=!0)}})}(a),function(a,c){a.widget("mobile.textinput",a.mobile.widget,{options:{theme:null,preventFocusZoom:/iPhone|iPad|iPod/.test(navigator.platform)&&navigator.userAgent.indexOf("AppleWebKit")>-1,initSelector:"input[type='text'], 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])",disabled:!1},_create:function(){function l(){setTimeout(function(){k.toggleClass("ui-input-clear-hidden",!d.val())},0)}var c=this,d=this.element,e=this.options,f=e.theme||a.mobile.getInheritedTheme(this.element,"c"),g=" ui-body-"+f,h=a.mobile.getAttrFixed(d[0],"data-"+a.mobile.ns+"mini")===!0,i=h?" ui-mini":"",j,k;a("label[for='"+d.attr("id")+"']").addClass("ui-input-text"),j=d.addClass("ui-input-text ui-body-"+f);switch(d.attr("type")){case"text":case"password":case"number":case"email":case"url":case"tel":d.attr({role:"textbox","aria-label":"Keyboard opened"});break;default:d.prop("tagName").toLowerCase()==="textarea"&&d.attr({role:"textbox","aria-label":"Keyboard opened"})}typeof d[0].autocorrect!="undefined"&&!a.support.touchOverflow&&(d[0].setAttribute("autocorrect","off"),d[0].setAttribute("autocomplete","off")),d.focus(function(){j.addClass(a.mobile.focusClass)}).blur(function(){j.removeClass(a.mobile.focusClass)}).bind("focus",function(){e.preventFocusZoom&&a.mobile.zoom.disable(!0)}).bind("blur",function(){e.preventFocusZoom&&a.mobile.zoom.enable(!0)});if(d.is("textarea")){var m=15,n=100,o;this._keyup=function(){var a=d[0].scrollHeight,c=d[0].clientHeight;c<a&&b.innerHeight/2>a&&d.height(a+m)},d.keyup(function(){clearTimeout(o),o=setTimeout(c._keyup,n)}),this._on(a.mobile.$document,{pagechange:"_keyup"}),a.trim(d.val())&&this._on(a.mobile.$window,{load:"_keyup"})}d.attr("disabled")&&this.disable()},disable:function(){var a;if(!this.element.attr("disabled",!0))return;return a=this.element,a.addClass("ui-disabled"),this._setOption("disabled",!0)},enable:function(){var a;if(!this.element.attr("disabled",!1))return;return a=this.element,a.removeClass("ui-disabled"),this._setOption("disabled",!1)}}),a.mobile.$document.bind("pagecreate create",function(b){a.mobile.textinput.prototype.enhanceWithin(b.target,!0)})}(a),function(a,b){a.mobile.listview.prototype.options.filter=!1,a.mobile.listview.prototype.options.filterPlaceholder="",a.mobile.listview.prototype.options.filterTheme="c";var c=function(a,b,c){return a.toString().toLowerCase().indexOf(b)===-1};a.mobile.listview.prototype.options.filterCallback=c,a.mobile.$document.delegate(":jqmData(role='listview')","listviewcreate",function(){var b=a(this),d=b.data("listview");if(!d.options.filter)return;var e=a("<form>",{"class":"ui-listview-filter ui-bar-"+d.options.filterTheme,role:"search"}),f=a("<input>",{placeholder:d.options.filterPlaceholder}).attr("data-"+a.mobile.ns+"type","search").jqmData("lastval","").bind("keyup change",function(){var e=a(this),f=this.value.toLowerCase(),g=null,h=e.jqmData("lastval")+"",i=!1,j="",k,l=d.options.filterCallback!==c;d._trigger("beforefilter","beforefilter",{input:this}),e.jqmData("lastval",f),l||f.length<h.length||f.indexOf(h)!==0?g=b.children():g=b.children(":not(.ui-screen-hidden)");if(f){for(var m=g.length-1;m>=0;m--)k=a(g[m]),j=a.mobile.getAttrFixed(k[0],"data-"+a.mobile.ns+"filtertext")||k.text(),k.is("li:jqmData(role=list-divider)")?(k.toggleClass("ui-filter-hidequeue",!i),i=!1):d.options.filterCallback(j,f,k)?k.toggleClass("ui-filter-hidequeue",!0):i=!0;g.filter(":not(.ui-filter-hidequeue)").toggleClass("ui-screen-hidden",!1),g.filter(".ui-filter-hidequeue").toggleClass("ui-screen-hidden",!0).toggleClass("ui-filter-hidequeue",!1)}else g.toggleClass("ui-screen-hidden",!1);d._refreshCorners()}).appendTo(e).textinput();d.options.inset&&e.addClass("ui-listview-filter-inset"),e.bind("submit",function(){return!1}).insertBefore(b)})}(a),function(a,d){a.widget("mobile.slider",a.mobile.widget,{widgetEventPrefix:"slide",options:{theme:null,trackTheme:null,disabled:!1,initSelector:"input[type='range'], :jqmData(type='range'), :jqmData(role='slider')",mini:!1},_create:function(){var e=this,f=this.element,g=a.mobile.getInheritedTheme(f,"c"),h=this.options.theme||g,i=this.options.trackTheme||g,j=f[0].nodeName.toLowerCase(),k=j==="select"?"ui-slider-switch":"",l=f.attr("id"),m=
-a("[for='"+l+"']"),n=m.attr("id")||l+"-label",o=m.attr("id",n),p=function(){return j==="input"?parseFloat(f.val()):f[0].selectedIndex},q=j==="input"?parseFloat(f.attr("min")):0,r=j==="input"?parseFloat(f.attr("max")):f.find("option").length-1,s=b.parseFloat(f.attr("step")||1),t=this.options.inline||a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"inline")===!0?" ui-slider-inline":"",u=this.options.mini||a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"min")?" ui-slider-mini":"",v=c.createElement("a"),w=a(v),x=c.createElement("div"),y=a(x),z=a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"highlight")!==!1&&j!=="select"?function(){var b=c.createElement("div");return b.className="ui-slider-bg "+a.mobile.activeBtnClass+" ui-btn-corner-all",a(b).prependTo(y)}():!1,A;this._type=j,v.setAttribute("href","#"),x.setAttribute("role","application"),x.className=["ui-slider ",k," ui-btn-down-",i," ui-btn-corner-all",t,u].join(""),v.className="ui-slider-handle",x.appendChild(v),a(f).find("option").length&&a(f).find("option").text()===""&&a(x).addClass("ui-toggle-switch"),w.buttonMarkup({corners:!0,theme:h,shadow:!0}).attr({role:"slider","aria-valuemin":q,"aria-valuemax":r,"aria-valuenow":p(),"aria-valuetext":p(),title:p(),"aria-labelledby":n}),a.extend(this,{slider:y,handle:w,valuebg:z,dragging:!1,beforeStart:null,userModified:!1,mouseMoved:!1});if(j==="select"){var B=c.createElement("div");B.className="ui-slider-inneroffset";for(var C=0,D=x.childNodes.length;C<D;C++)B.appendChild(x.childNodes[C]);x.appendChild(B),w.addClass("ui-slider-handle-snapping"),A=f.find("option");for(var E=0,F=A.length;E<F;E++){var G=E?"a":"b",H=E?" "+a.mobile.activeBtnClass:" ui-btn-down-"+i,I=c.createElement("div"),J=c.createElement("span");J.className=["ui-slider-label ui-slider-label-",G,H," ui-btn-corner-all"].join(""),J.setAttribute("role","img"),J.appendChild(c.createTextNode(A[E].innerHTML)),a(J).html()?a(J).html(a(J).text()):a(J).html(),a(J).prependTo(y)}e._labels=a(".ui-slider-label",y)}o.addClass("ui-slider"),f.addClass(j==="input"?"ui-slider-input":"ui-slider-switch").change(function(){e.mouseMoved||e.refresh(p(),!0)}).keyup(function(){e.refresh(p(),!0,!0)}).blur(function(){e.refresh(p(),!0)}),this._preventDocumentDrag=function(a){if(e.dragging&&!e.options.disabled)return e.mouseMoved=!0,j==="select"&&w.removeClass("ui-slider-handle-snapping"),e.refresh(a),e.userModified=e.beforeStart!==f[0].selectedIndex,!1},this._on(a.mobile.$document,{vmousemove:this._preventDocumentDrag}),f.bind("vmouseup",a.proxy(e._checkedRefresh,e)),y.bind("vmousedown",function(a){return e.options.disabled?!1:(e.dragging=!0,e.userModified=!1,e.mouseMoved=!1,j==="select"&&(e.beforeStart=f[0].selectedIndex),e.refresh(a),e._trigger("start"),!1)}).bind("vclick",!1),this._sliderMouseUp=function(){if(e.dragging)return e.dragging=!1,j==="select"&&(w.addClass("ui-slider-handle-snapping"),e.mouseMoved?e.userModified?e.refresh(e.beforeStart===0?1:0):e.refresh(e.beforeStart):e.refresh(e.beforeStart===0?1:0)),e.mouseMoved=!1,e._trigger("stop"),!1},this._on(y.add(c),{vmouseup:this._sliderMouseUp}),y.insertAfter(f),j==="select"&&this.handle.bind({focus:function(){y.addClass(a.mobile.focusClass)},blur:function(){y.removeClass(a.mobile.focusClass)}}),this.handle.bind({vmousedown:function(){a(this).focus()},vclick:!1,keydown:function(b){var c=p();if(e.options.disabled)return;switch(b.keyCode){case a.mobile.keyCode.HOME:case a.mobile.keyCode.END:case a.mobile.keyCode.PAGE_UP:case a.mobile.keyCode.PAGE_DOWN:case a.mobile.keyCode.UP:case a.mobile.keyCode.RIGHT:case a.mobile.keyCode.DOWN:case a.mobile.keyCode.LEFT:b.preventDefault(),e._keySliding||(e._keySliding=!0,a(this).addClass("ui-state-active"))}switch(b.keyCode){case a.mobile.keyCode.HOME:e.refresh(q);break;case a.mobile.keyCode.END:e.refresh(r);break;case a.mobile.keyCode.PAGE_UP:case a.mobile.keyCode.UP:case a.mobile.keyCode.RIGHT:e.refresh(c+s);break;case a.mobile.keyCode.PAGE_DOWN:case a.mobile.keyCode.DOWN:case a.mobile.keyCode.LEFT:e.refresh(c-s)}},keyup:function(b){e._keySliding&&(e._keySliding=!1,a(this).removeClass("ui-state-active"))}}),this.refresh(d,d,!0)},_checkedRefresh:function(){this.value!=this._value()&&this.refresh(this._value())},_value:function(){return this._type==="input"?parseFloat(this.element.val()):this.element[0].selectedIndex},refresh:function(b,c,d){var e=!1,f;a(this.handle).parents().is(".ui-toggle-switch")&&(e=!0),(this.options.disabled||this.element.attr("disabled"))&&this.disable(),this.value=this._value();var g=this.element,h,i=g[0].nodeName.toLowerCase(),j=i==="input"?parseFloat(g.attr("min")):0,k=i==="input"?parseFloat(g.attr("max")):g.find("option").length-1,l=i==="input"&&parseFloat(g.attr("step"))>0?parseFloat(g.attr("step")):1;if(typeof b=="object"){var m=b,n=8;if(!this.dragging||m.pageX<this.slider.offset().left-n||m.pageX>this.slider.offset().left+this.slider.width()+n)return;h=Math.round((m.pageX-this.slider.offset().left)/this.slider.width()*100)}else b==null&&(b=i==="input"?parseFloat(g.val()||0):g[0].selectedIndex),h=(parseFloat(b)-j)/(k-j)*100;if(isNaN(h))return;h<0&&(h=0),h>100&&(h=100);var o=h/100*(k-j)+j,p=(o-j)%l,q=o-p;Math.abs(p)*2>=l&&(q+=p>0?l:-l),o=parseFloat(q.toFixed(5)),o<j&&(o=j),o>k&&(o=k),this.handle.css("left",h+"%"),this.handle.attr({"aria-valuenow":i==="input"?o:g.find("option").eq(o).attr("value"),"aria-valuetext":i==="input"?o:g.find("option").eq(o).getEncodedText(),title:i==="input"?o:g.find("option").eq(o).getEncodedText()}),e||this.valuebg&&this.valuebg.css("width",h+"%");if(e)f=a(this.handle).parents(".ui-slider"),a(this.handle).attr("aria-valuenow")==="on"?(f.children("span.ui-slider-label-a").show(),f.children("span.ui-slider-label-b").hide()):(f.children("span.ui-slider-label-b").show(),f.children("span.ui-slider-label-a").hide());else if(this._labels){var r=this.handle.width()/this.slider.width()*100,s=h&&r+(100-r)*h/100,t=h===100?0:Math.min(r+100-s,100);this._labels.each(function(){var b=a(this).is(".ui-slider-label-a");a(this).width((b?s:t)+"%")})}if(!d){var u=!1;i==="input"?(u=g.val()!==o,g.val(o)):(u=g[0].selectedIndex!==o,g[0].selectedIndex=o),!c&&u&&g.trigger("change")}},enable:function(){return this.element.attr("disabled",!1),this.slider.removeClass("ui-disabled").attr("aria-disabled",!1),this._setOption("disabled",!1)},disable:function(){return this.element.attr("disabled",!0),this.slider.addClass("ui-disabled").attr("aria-disabled",!0),this._setOption("disabled",!0)}}),a.mobile.$document.bind("pagecreate create",function(b){a.mobile.slider.prototype.enhanceWithin(b.target,!0)})}(a),function(a,d){a.widget("mobile.selectmenu",a.mobile.widget,{options:{theme:null,disabled:!1,icon:"arrow-d",iconpos:"right",inline:!1,corners:!0,shadow:!0,iconshadow:!0,overlayTheme:"a",hidePlaceholderMenuItems:!0,closeText:"Close",nativeMenu:!0,preventFocusZoom:/iPhone|iPad|iPod/.test(navigator.platform)&&navigator.userAgent.indexOf("AppleWebKit")>-1,initSelector:"select:not( :jqmData(role='slider') )",mini:!1},_button:function(){return a("<div/>")},_setDisabled:function(a){return this.element.attr("disabled",a),this.button.attr("aria-disabled",a),this._setOption("disabled",a)},_focusButton:function(){var a=this;setTimeout(function(){a.button.focus()},40)},_selectOptions:function(){return this.select.find("option")},_preExtension:function(){var b="";!~this.element[0].className.indexOf("ui-btn-left")||(b=" ui-btn-left"),!~this.element[0].className.indexOf("ui-btn-right")||(b=" ui-btn-right"),this.select=this.element.wrap("<div class='ui-select"+b+"'>"),this.selectID=this.select.attr("id"),this.label=a("label[for='"+this.selectID+"']").addClass("ui-select"),this.isMultiple=this.select[0].multiple,this.options.theme||(this.options.theme=a.mobile.getInheritedTheme(this.select,"c"))},_create:function(){this._preExtension(),this._trigger("beforeCreate"),this.button=this._button();var c=this,d=this.options,e=d.inline||a.mobile.getAttrFixed(this.select[0],"data-"+a.mobile.ns+"inline"),f=d.mini||a.mobile.getAttrFixed(this.select[0],"data-"+a.mobile.ns+"mini"),g=d.icon?d.iconpos||a.mobile.getAttrFixed(this.select[0],"data-"+a.mobile.ns+"iconpos"):!1,h=this.select[0].selectedIndex===-1?0:this.select[0].selectedIndex,i=this.button.insertBefore(this.select).buttonMarkup({theme:d.theme,icon:d.icon,iconpos:g,inline:e,corners:d.corners,shadow:d.shadow,iconshadow:d.iconshadow,mini:f});this.setButtonText(),i.children(".ui-btn-inner").removeClass("ui-btn-icon-only"),d.nativeMenu&&b.opera&&b.opera.version&&i.addClass("ui-select-nativeonly"),this.isMultiple&&(this.buttonCount=a("<span>").addClass("ui-li-count ui-btn-up-c ui-btn-corner-all").hide().appendTo(i.addClass("ui-li-has-count"))),(d.disabled||this.element.attr("disabled"))&&this.disable(),this.select.change(function(){c.refresh()}),this.build()},build:function(){var b=this;this.select.appendTo(b.button).bind("vmousedown",function(){b.button.addClass(a.mobile.activeBtnClass)}).bind("focus",function(){b.button.addClass(a.mobile.focusClass)}).bind("blur",function(){b.button.removeClass(a.mobile.focusClass)}).bind("focus vmouseover",function(){b.button.trigger("vmouseover")}).bind("vmousemove",function(){b.button.removeClass(a.mobile.activeBtnClass)}).bind("change blur vmouseout",function(){b.button.trigger("vmouseout").removeClass(a.mobile.activeBtnClass)}).bind("change blur",function(){b.button.removeClass("ui-btn-down-"+b.options.theme)}),b.button.bind("vmousedown",function(){b.options.preventFocusZoom&&a.mobile.zoom.disable(!0)}).bind("mouseup",function(){b.options.preventFocusZoom&&setTimeout(function(){a.mobile.zoom.enable(!0)},0)})},selected:function(){return this._selectOptions().filter(":selected")},selectedIndices:function(){var a=this;return this.selected().map(function(){return a._selectOptions().index(this)}).get()},setButtonText:function(){var b=this,d=this.selected(),e=this.placeholder,f=a(c.createElement("span"));this.button.find(".ui-btn-text").html(function(){return d.length?e=d.map(function(){return a(this).text()}).get().join(", "):e=b.placeholder,f.text(e).addClass(b.select.attr("class")).addClass(d.attr("class"))})},setButtonCount:function(){var a=this.selected();this.isMultiple&&this.buttonCount[a.length>1?"show":"hide"]().text(a.length)},refresh:function(){this.setButtonText(),this.setButtonCount()},open:a.noop,close:a.noop,disable:function(){this._setDisabled(!0),this.button.addClass("ui-disabled")},enable:function(){this._setDisabled(!1),this.button.removeClass("ui-disabled")}}),a.mobile.$document.bind("pagecreate create",function(b){a.mobile.selectmenu.prototype.enhanceWithin(b.target,!0)})}(a),function(a,b){var d=function(b){var d=b.select,e=b.selectID,f=b.label,g=b.select.closest(".ui-page"),h=b._selectOptions(),i=b.isMultiple=b.select[0].multiple,j=e+"-button",k=e+"-menu",l=a("<div data-"+a.mobile.ns+"role='dialog' data-"+a.mobile.ns+"theme='"+b.options.theme+"' data-"+a.mobile.ns+"overlay-theme='"+b.options.overlayTheme+"'>"+"<div data-"+a.mobile.ns+"role='header'>"+"<div class='ui-title'>"+f.getEncodedText()+"</div>"+"</div>"+"<div data-"+a.mobile.ns+"role='content'></div>"+"</div>"),m=a("<div>",{"class":"ui-selectmenu"}).insertAfter(b.select).popup({theme:"a"}),n=a("<ul>",{"class":"ui-selectmenu-list",id:k,role:"listbox","aria-labelledby":j}).attr("data-"+a.mobile.ns+"theme",b.options.theme).appendTo(m),o=a("<div>",{"class":"ui-header ui-bar-"+b.options.theme}).prependTo(m),p=a("<h1>",{"class":"ui-title"}).appendTo(o),q,r,s;b.isMultiple&&(s=a("<a>",{text:b.options.closeText,href:"#","class":"ui-btn-left"}).attr("data-"+a.mobile.ns+"iconpos","notext").attr("data-"+a.mobile.ns+"icon","delete").appendTo(o).buttonMarkup()),a.extend(b,{select:b.select,selectID:e,buttonId:j,menuId:k,thisPage:g,menuPage:l,label:f,selectOptions:h,isMultiple:i,theme:b.options.theme,listbox:m,list:n,header:o,headerTitle:p,headerClose:s,menuPageContent:q,menuPageClose:r,placeholder:"",build:function(){var c=this;c.refresh(),c.select.attr("tabindex","-1").focus(function(){a(this).blur(),c.button.focus()}),c.button.bind("vclick keydown",function(b){if(b.type==="vclick"||b.keyCode&&(b.keyCode===a.mobile.keyCode.ENTER||b.keyCode===a.mobile.keyCode.SPACE))c.open(),b.preventDefault()}),c.list.attr("role","listbox").bind("focusin",function(b){a(b.target).attr("tabindex","0").trigger("vmouseover")}).bind("focusout",function(b){a(b.target).attr("tabindex","-1").trigger("vmouseout")}).delegate("li:not(.ui-disabled, .ui-li-divider)","click",function(d){var e=c.select[0].selectedIndex,f=c.list.find("li:not(.ui-li-divider)").index(this),g=c._selectOptions().eq(f)[0];g.selected=c.isMultiple?!g.selected:!0,c.isMultiple&&a(this).find(".ui-icon").toggleClass("ui-icon-checkbox-on",g.selected).toggleClass("ui-icon-checkbox-off",!g.selected),(c.isMultiple||e!==f)&&c.select.trigger("change"),c.isMultiple?c.list.find("li:not(.ui-li-divider)").eq(f).addClass("ui-btn-down-"+b.options.theme).find("a").first().focus():c.close(),d.preventDefault()}).keydown(function(c){var d=a(c.target),e=d.closest("li"),f,g;switch(c.keyCode){case 38:return f=e.prev().not(".ui-selectmenu-placeholder"),f.is(".ui-li-divider")&&(f=f.prev()),f.length&&(d.blur().attr("tabindex","-1"),f.addClass("ui-btn-down-"+b.options.theme).find("a").first().focus()),!1;case 40:return g=e.next(),g.is(".ui-li-divider")&&(g=g.next()),g.length&&(d.blur().attr("tabindex","-1"),g.addClass("ui-btn-down-"+b.options.theme).find("a").first().focus()),!1;case 13:case 32:return d.trigger("click"),!1}}),c.menuPage.bind("pagehide",function(){c.list.appendTo(c.listbox),c._focusButton(),a.mobile._bindPageRemove.call(c.thisPage)}),c.listbox.bind("popupafterclose",function(a){c.close()}),c.isMultiple&&c.headerClose.click(function(){if(c.menuType==="overlay")return c.close(),!1}),c.thisPage.addDependents(this.menuPage)},_isRebuildRequired:function(){var a=this.list.find("li"),b=this._selectOptions();return b.text()!==a.text()},selected:function(){return this._selectOptions().filter(":selected:not( :jqmData(placeholder='true') )")},refresh:function(b,c){var d=this,e=this.element,f=this.isMultiple,g;(b||this._isRebuildRequired())&&d._buildList(),g=this.selectedIndices(),d.setButtonText(),d.setButtonCount(),d.list.find("li:not(.ui-li-divider)").removeClass(a.mobile.activeBtnClass).attr("aria-selected",!1).each(function(b){if(a.inArray(b,g)>-1){var c=a(this);c.attr("aria-selected",!0),d.isMultiple?c.find(".ui-icon").removeClass("ui-icon-checkbox-off").addClass("ui-icon-checkbox-on"):c.is(".ui-selectmenu-placeholder")?c.next().addClass(a.mobile.activeBtnClass):c.addClass(a.mobile.activeBtnClass)}})},close:function(){if(this.options.disabled||!this.isOpen)return;var b=this;b.menuType==="page"?a.mobile.back():(b.listbox.popup("close"),b.list.appendTo(b.listbox),b._focusButton()),b.isOpen=!1},open:function(){function n(){var d=c.list.find("."+a.mobile.activeBtnClass+" a");d.length===0&&(d=c.list.find("li.ui-btn:not( :jqmData(placeholder='true') ) a")),d.first().focus().closest("li").addClass("ui-btn-down-"+b.options.theme)}if(this.options.disabled)return;var c=this,d=a.mobile.$window,e=c.list.parent(),f=e.outerHeight(),g=e.outerWidth(),h=a("."+a.mobile.activePageClass),i=d.scrollTop(),j=c.button.offset().top,k=d.height(),m=d.width();c.button.addClass(a.mobile.activeBtnClass),setTimeout(function(){c.button.removeClass(a.mobile.activeBtnClass)},300),f>k-80||!a.support.scrollTop?(c.menuPage.appendTo(a.mobile.pageContainer).page(),c.menuPageContent=l.find(".ui-content"),c.menuPageClose=l.find(".ui-header a"),c.thisPage.unbind("pagehide.remove"),i===0&&j>k&&c.thisPage.one("pagehide",function(){a(this).jqmData("lastScroll",j)}),c.menuPage.one("pageshow",function(){n(),c.isOpen=!0}),c.menuType="page",c.menuPageContent.append(c.list),c.menuPage.find("div .ui-title").text(c.label.text()),a.mobile.changePage(c.menuPage,{transition:a.mobile.defaultDialogTransition})):(c.menuType="overlay",c.listbox.one("popupafteropen",n).popup("open",{x:c.button.offset().left+c.button.outerWidth()/2,y:c.button.offset().top+c.button.outerHeight()/2}),c.isOpen=!0)},_buildList:function(){var b=this,d=this.options,e=this.placeholder,f=!0,g=[],h=[],i=b.isMultiple?"checkbox-off":"false";b.list.empty().filter(".ui-listview").listview("destroy");var j=b.select.find("option"),k=j.length,l=this.select[0],m="data-"+a.mobile.ns,n=m+"option-index",o=m+"icon",p=m+"role",q=m+"placeholder",r=c.createDocumentFragment(),s=!1,t;for(var u=0;u<k;u++,s=!1){var v=j[u],w=a(v),x=v.parentNode,y=w.text(),z=c.createElement("a"),A=[];z.setAttribute("href","#"),z.appendChild(c.createTextNode(y));if(x!==l&&x.nodeName.toLowerCase()==="optgroup"){var B=x.getAttribute("label");if(B!==t){var C=c.createElement("li");C.setAttribute(p,"list-divider"),C.setAttribute("role","option"),C.setAttribute("tabindex","-1"),C.appendChild(c.createTextNode(B)),r.appendChild(C),t=B}}f&&(!v.getAttribute("value")||y.length===0||w.jqmData("placeholder"))&&(f=!1,s=!0,v.setAttribute(q,!0),d.hidePlaceholderMenuItems&&A.push("ui-selectmenu-placeholder"),e||(e=b.placeholder=y));var D=c.createElement("li");v.disabled&&(A.push("ui-disabled"),D.setAttribute("aria-disabled",!0)),D.setAttribute(n,u),D.setAttribute(o,i),s&&D.setAttribute(q,!0),D.className=A.join(" "),D.setAttribute("role","option"),z.setAttribute("tabindex","-1"),D.appendChild(z),r.appendChild(D)}b.list[0].appendChild(r),!this.isMultiple&&!e.length?this.header.hide():this.headerTitle.text(this.placeholder),b.list.listview()},_button:function(){return a("<a>",{href:"#",role:"button",id:this.buttonId,"aria-haspopup":"true","aria-owns":this.menuId})}})};a.mobile.$document.bind("selectmenubeforecreate",function(b){var c=a(b.target).data("selectmenu");!c.options.nativeMenu&&c.element.parents(":jqmData(role='popup')").length===0&&d(c)})}(a),function(a,c){a.widget("mobile.fixedtoolbar",a.mobile.widget,{options:{visibleOnPageShow:!0,disablePageZoom:!0,transition:"slide",fullscreen:!1,tapToggle:!0,tapToggleBlacklist:"a, button, input, select, textarea, .ui-header-fixed, .ui-footer-fixed, .ui-popup",hideDuringFocus:"input, textarea, select",updatePagePadding:!0,trackPersistentToolbars:!0,supportBlacklist:function(){var a=b,c=navigator.userAgent,d=navigator.platform,e=c.match(/AppleWebKit\/([0-9]+)/),f=!!e&&e[1],g=c.match(/Fennec\/([0-9]+)/),h=!!g&&g[1],i=c.match(/Opera Mobi\/([0-9]+)/),j=!!i&&i[1];return(d.indexOf("iPhone")>-1||d.indexOf("iPad")>-1||d.indexOf("iPod")>-1)&&f&&f<534||a.operamini&&{}.toString.call(a.operamini)==="[object OperaMini]"||i&&j<7458||c.indexOf("Android")>-1&&f&&f<533||h&&h<6||"palmGetResource"in b&&f&&f<534||c.indexOf("MeeGo")>-1&&c.indexOf("NokiaBrowser/8.5.0")>-1?!0:!1},initSelector:":jqmData(position='dummy')"},_create:function(){var a=this,b=a.options,c=a.element,d=c.is(":jqmData(role='header')")?"header":"footer",e=c.closest(".ui-page");if(b.supportBlacklist()){a.destroy();return}c.addClass("ui-"+d+"-fixed"),b.fullscreen?(c.addClass("ui-"+d+"-fullscreen"),e.addClass("ui-page-"+d+"-fullscreen")):e.addClass("ui-page-"+d+"-fixed"),a._addTransitionClass(),a._bindPageEvents(),a._bindToggleHandlers()},_addTransitionClass:function(){var a=this.options.transition;a&&a!=="none"&&(a==="slide"&&(a=this.element.is(".ui-header")?"slidedown":"slideup"),this.element.addClass(a))},_bindPageEvents:function(){var b=this,c=b.options,d=b.element;d.closest(".ui-page").bind("pagebeforeshow",function(){c.disablePageZoom&&a.mobile.zoom.disable(!0),c.visibleOnPageShow||b.hide(!0)}).bind("webkitAnimationStart animationstart updatelayout",function(){var a=this;c.updatePagePadding&&b.updatePagePadding(a)}).bind("pageshow",function(){var d=this;b.updatePagePadding(d),c.updatePagePadding&&a.mobile.$window.bind("throttledresize."+b.widgetName,function(){b.updatePagePadding(d)})}).bind("pagebeforehide",function(d,e){c.disablePageZoom&&a.mobile.zoom.enable(!0),c.updatePagePadding&&a.mobile.$window.unbind("throttledresize."+b.widgetName);if(c.trackPersistentToolbars){var f=a(".ui-footer-fixed:jqmData(id)",this),g=a(".ui-header-fixed:jqmData(id)",this),h=f.length&&e.nextPage&&a(".ui-footer-fixed:jqmData(id='"+f.jqmData("id")+"')",e.nextPage)||a(),i=g.length&&e.nextPage&&a(".ui-header-fixed:jqmData(id='"+g.jqmData("id")+"')",e.nextPage)||a();if(h.length||i.length)h.add(i).appendTo(a.mobile.pageContainer),e.nextPage.one("pageshow",function(){h.add(i).appendTo(this)})}})},_visible:!0,updatePagePadding:function(b){var c=this.element,d=c.is(".ui-header");if(this.options.fullscreen)return;b=b||c.closest(".ui-page"),a(b).css("padding-"+(d?"top":"bottom"),c.outerHeight())},_useTransition:function(b){var c=a.mobile.$window,d=this.element,e=c.scrollTop(),f=d.height(),g=d.closest(".ui-page").height(),h=a.mobile.getScreenHeight(),i=d.is(":jqmData(role='header')")?"header":"footer";return!b&&(this.options.transition&&this.options.transition!=="none"&&(i==="header"&&!this.options.fullscreen&&e>f||i==="footer"&&!this.options.fullscreen&&e+h<g-f)||this.options.fullscreen)},show:function(a){var b="ui-fixed-hidden",c=this.element;this._useTransition(a)?c.removeClass("out "+b).addClass("in"):c.removeClass(b),this._visible=!0},hide:function(a){var b="ui-fixed-hidden",c=this.element,d="out"+(this.options.transition==="slide"?" reverse":"");this._useTransition(a)?c.addClass(d).removeClass("in").animationComplete(function(){c.addClass(b).removeClass(d)}):c.addClass(b).removeClass(d),this._visible=!1},toggle:function(){this[this._visible?"hide":"show"]()},_bindToggleHandlers:function(){var b=this,c=b.options,d=b.element;d.closest(".ui-page").bind("vclick",function(d){c.tapToggle&&!a(d.target).closest(c.tapToggleBlacklist).length&&b.toggle()}).bind("focusin focusout",function(d){screen.width<500&&a(d.target).is(c.hideDuringFocus)&&!a(d.target).closest(".ui-header-fixed, .ui-footer-fixed").length&&b[d.type==="focusin"&&b._visible?"hide":"show"]()})},destroy:function(){this.element.removeClass("ui-header-fixed ui-footer-fixed ui-header-fullscreen ui-footer-fullscreen in out fade slidedown slideup ui-fixed-hidden"),this.element.closest(".ui-page").removeClass("ui-page-header-fixed ui-page-footer-fixed ui-page-header-fullscreen ui-page-footer-fullscreen")}}),a.mobile.$document.bind("pagecreate create",function(b){a(b.target).jqmData("fullscreen")&&a(a.mobile.fixedtoolbar.prototype.options.initSelector,b.target).not(":jqmData(fullscreen)").jqmData("fullscreen",!0),a.mobile.fixedtoolbar.prototype.enhanceWithin(b.target)})}(a),function(a,b){function i(a){d=a.originalEvent,h=d.accelerationIncludingGravity,e=Math.abs(h.x),f=Math.abs(h.y),g=Math.abs(h.z),!b.orientation&&(e>7||(g>6&&f<8||g<8&&f>6)&&e>5)?c.enabled&&c.disable():c.enabled||c.enable()}if(!(/iPhone|iPad|iPod/.test(navigator.platform)&&navigator.userAgent.indexOf("AppleWebKit")>-1))return;var c=a.mobile.zoom,d,e,f,g,h;a.mobile.$window.bind("orientationchange.iosorientationfix",c.enable).bind("devicemotion.iosorientationfix",i)}(a,this),function(a,b,d){function h(){e.removeClass("ui-mobile-rendering")}var e=a("html"),f=a("head"),g=a.mobile.$window;a(b.document).trigger("mobileinit");if(!a.mobile.gradeA())return;a.mobile.ajaxBlacklist&&(a.mobile.ajaxEnabled=!1),e.addClass("ui-mobile ui-mobile-rendering"),setTimeout(h,5e3),a.extend(a.mobile,{addEventBlocker:function(){e.addClass("ui-blocker"),e.bind("touchstart touchend vclick mousedown mouseup click",function(){return!1})},removeEventBlocker:function(){e.removeClass("ui-blocker"),e.unbind("touchstart touchend vclick mousedown mouseup click")},initializePage:function(){var b=a(":jqmData(role='page'), :jqmData(role='dialog')"),d=a.mobile.path.parseLocation().hash.replace("#",""),e=c.getElementById(d);b.length||(b=a("body").wrapInner("<div data-"+a.mobile.ns+"role='page'></div>").children(0)),b.each(function(){var b=a(this);b[0].getAttribute("data-"+a.mobile.ns+"url")||b.attr("data-"+a.mobile.ns+"url",b.attr("id")||location.pathname+location.search)}),a.mobile.firstPage=b.first(),a.mobile.pageContainer=a.mobile.firstPage.parent().addClass("ui-mobile-viewport"),g.trigger("pagecontainercreate"),a.mobile.showPageLoadingMsg(),a.mobile.addEventBlocker(),h(),!a.mobile.hashListeningEnabled||!a.mobile.path.isHashValid(location.hash)||!a(e).is(':jqmData(role="page")')&&!a.mobile.path.isPath(d)&&d!==a.mobile.dialogHashKey?(a.mobile.path.isHashValid(location.hash)&&(a.mobile.urlHistory.initialDst=d.replace("#","")),a.mobile.changePage(a.mobile.firstPage,{transition:"none",reverse:!0,changeHash:!1,fromHashChange:!0})):g.trigger("hashchange",[!0])}}),a.mobile.navreadyDeferred.resolve(),a(function(){b.scrollTo(0,1),a.mobile.defaultHomeScroll=!a.support.scrollTop||a.mobile.$window.scrollTop()===1?0:1,a.fn.controlgroup&&a.mobile.$document.bind("pagecreate create",function(b){a(":jqmData(role='controlgroup')",b.target).jqmEnhanceable().controlgroup({excludeInvisible:!1})}),a.mobile.autoInitializePage&&a.mobile.initializePage(),g.load(a.mobile.silentScroll),a.support.cssPointerEvents||a.mobile.$document.delegate(".ui-disabled","vclick",function(a){a.preventDefault(),a.stopImmediatePropagation()})})}(a,this)});
+.protocol&&b.domain!==p.domain?!0:!1},hasProtocol:function(a){return/^(:?\w+:)/.test(a)},isFirstPageUrl:function(b){var c=h.parseUrl(h.makeUrlAbsolute(b,q)),e=c.hrefNoHash===p.hrefNoHash||r&&c.hrefNoHash===q.hrefNoHash,f=a.mobile.firstPage,g=f&&f[0]?f[0].id:d;return e&&(!c.hash||c.hash==="#"||g&&c.hash.replace(/^#/,"")===g)},isEmbeddedPage:function(a){var b=h.parseUrl(a);return b.protocol!==""?b.hash&&(b.hrefNoHash===p.hrefNoHash||r&&b.hrefNoHash===q.hrefNoHash):/^#/.test(b.href)},isPermittedCrossDomainRequest:function(b,c){return a.mobile.allowCrossDomainPages&&b.protocol==="file:"&&c.search(/^https?:/)!==-1}},i=null,j={stack:[],activeIndex:0,getActive:function(){return j.stack[j.activeIndex]},getPrev:function(){return j.stack[j.activeIndex-1]},getNext:function(){return j.stack[j.activeIndex+1]},addNew:function(a,b,c,d,e){j.getNext()&&j.clearForward(),j.stack.push({url:a,transition:b,title:c,pageUrl:d,role:e}),j.activeIndex=j.stack.length-1},clearForward:function(){j.stack=j.stack.slice(0,j.activeIndex+1)},directHashChange:function(b){var c,e,f,g=this.getActive();a.each(j.stack,function(a,d){decodeURIComponent(b.currentUrl)===decodeURIComponent(d.url)&&(c=a<j.activeIndex,e=!c,f=a)}),this.activeIndex=f!==d?f:this.activeIndex,c?(b.either||b.isBack)(!0):e&&(b.either||b.isForward)(!1)},ignoreNextHashChange:!1},k="[tabindex],a,button:visible,select:visible,input",l=[],m=!1,n="&ui-state=dialog",o=g.children("base"),p=h.parseLocation(),q=o.length?h.parseUrl(h.makeUrlAbsolute(o.attr("href"),p.href)):p,r=p.hrefNoHash!==q.hrefNoHash,s=a.mobile.getScreenHeight,t=a.support.dynamicBaseTag?{element:o.length?o:a("<base>",{href:q.hrefNoHash}).prependTo(g),set:function(a){t.element.attr("href",h.makeUrlAbsolute(a,q))},reset:function(){t.element.attr("href",q.hrefNoHash)}}:d;a.mobile.back=function(){var a=b.navigator;this.phonegapNavigationEnabled&&a&&a.app&&a.app.backHistory?a.app.backHistory():b.history.back()},a.mobile.focusPage=function(a){var b=a.find("[autofocus]"),c=a.find(".ui-title:eq(0)");if(b.length){b.focus();return}c.length?c.focus():a.focus()};var w=!0,x,y;x=function(){if(!w)return;var b=a.mobile.urlHistory.getActive();if(b){var c=e.scrollTop();b.lastScroll=c<a.mobile.minScrollBack?a.mobile.defaultHomeScroll:c}},y=function(){setTimeout(x,100)},e.bind(a.support.pushState?"popstate":"hashchange",function(){w=!1}),e.one(a.support.pushState?"popstate":"hashchange",function(){w=!0}),e.one("pagecontainercreate",function(){a.mobile.pageContainer.bind("pagechange",function(){w=!0,e.unbind("scrollstop",y),e.bind("scrollstop",y)})}),e.bind("scrollstop",y),a.mobile._maybeDegradeTransition=a.mobile._maybeDegradeTransition||function(a){return a},a.fn.animationComplete=function(b){return a.support.cssTransitions?a(this).one("webkitAnimationEnd animationend",b):(setTimeout(b,0),a(this))},a.mobile.path=h,a.mobile.base=t,a.mobile.urlHistory=j,a.mobile.dialogHashKey=n,a.mobile.allowCrossDomainPages=!1,a.mobile.getDocumentUrl=function(b){return b?a.extend({},p):p.href},a.mobile.getDocumentBase=function(b){return b?a.extend({},q):q.href},a.mobile._bindPageRemove=function(){var b=a(this);!b.data("page").options.domCache&&b.is(":jqmData(external-page='true')")&&b.bind("pagehide.remove",function(){var b=a(this),c=new a.Event("pageremove");b.trigger(c),c.isDefaultPrevented()||b.removeWithDependents()})},a.mobile.loadPage=function(b,c){var e=a.Deferred(),f=a.extend({},a.mobile.loadPage.defaults,c),g=null,i=null,j=function(){var b=a.mobile.activePage&&C(a.mobile.activePage);return b||q.hrefNoHash},k=h.makeUrlAbsolute(b,j());f.data&&f.type==="get"&&(k=h.addSearchParams(k,f.data),f.data=d),f.data&&f.type==="post"&&(f.reloadPage=!0);var l=h.getFilePath(k),m=h.convertUrlToDataUrl(k);f.pageContainer=f.pageContainer||a.mobile.pageContainer,g=f.pageContainer.children("[data-"+a.mobile.ns+"url='"+m+"']"),g.length===0&&m&&!h.isPath(m)&&(g=f.pageContainer.children("#"+m).attr("data-"+a.mobile.ns+"url",m).jqmData("url",m));if(g.length===0)if(a.mobile.firstPage&&h.isFirstPageUrl(l))a.mobile.firstPage.parent().length&&(g=a(a.mobile.firstPage));else if(h.isEmbeddedPage(l))return e.reject(k,c),e.promise();if(g.length){if(!f.reloadPage)return A(g,f.role),e.resolve(k,c,g),t&&!c.prefetch&&t.set(b),e.promise();i=g}var n=f.pageContainer,o=new a.Event("pagebeforeload"),r={url:b,absUrl:k,dataUrl:m,deferred:e,options:f};n.trigger(o,r);if(o.isDefaultPrevented())return e.promise();if(f.showLoadMsg)var s=setTimeout(function(){a.mobile.showPageLoadingMsg()},f.loadMsgDelay),u=function(){clearTimeout(s),a.mobile.hidePageLoadingMsg()};return t&&typeof c.prefetch=="undefined"&&t.reset(),!a.mobile.allowCrossDomainPages&&!h.isSameDomain(p,k)?e.reject(k,c):a.ajax({url:l,type:f.type,data:f.data,dataType:"html",success:function(d,j,n){var o=a("<div></div>"),p=d.match(/<title[^>]*>([^<]*)/)&&RegExp.$1,q=new RegExp("(<[^>]+\\bdata-"+a.mobile.ns+"role=[\"']?page[\"']?[^>]*>)"),s=new RegExp("\\bdata-"+a.mobile.ns+"url=[\"']?([^\"'>]*)[\"']?");q.test(d)&&RegExp.$1&&s.test(RegExp.$1)&&RegExp.$1&&(b=l=h.getFilePath(a("<div>"+RegExp.$1+"</div>").text())),t&&typeof c.prefetch=="undefined"&&t.set(l),o.get(0).innerHTML=d,g=o.find(":jqmData(role='page'), :jqmData(role='dialog')").first(),g.length||(g=a("<div data-"+a.mobile.ns+"role='page'>"+d.split(/<\/?body[^>]*>/gmi)[1]+"</div>")),p&&!g.jqmData("title")&&(~p.indexOf("&")&&(p=a("<div>"+p+"</div>").text()),g.jqmData("title",p));if(!a.support.dynamicBaseTag){var v=h.get(l);g.find("[src], link[href], a[rel='external'], :jqmData(ajax='false'), a[target]").each(function(){var b=a(this).is("[href]")?"href":a(this).is("[src]")?"src":"action",c=a(this).attr(b);c=c.replace(location.protocol+"//"+location.host+location.pathname,""),/^(\w+:|#|\/)/.test(c)||a(this).attr(b,v+c)})}g.attr("data-"+a.mobile.ns+"url",h.convertUrlToDataUrl(l)).attr("data-"+a.mobile.ns+"external-page",!0).appendTo(f.pageContainer),g.one("pagecreate",a.mobile._bindPageRemove),A(g,f.role),k.indexOf("&"+a.mobile.subPageUrlKey)>-1&&(g=f.pageContainer.children("[data-"+a.mobile.ns+"url='"+m+"']")),f.showLoadMsg&&u(),r.xhr=n,r.textStatus=j,r.page=g,f.pageContainer.trigger("pageload",r),e.resolve(k,c,g,i)},error:function(b,d,g){t&&t.set(h.get()),r.xhr=b,r.textStatus=d,r.errorThrown=g;var i=new a.Event("pageloadfailed");f.pageContainer.trigger(i,r);if(i.isDefaultPrevented())return;f.showLoadMsg&&(u(),a.mobile.showPageLoadingMsg(a.mobile.pageLoadErrorMessageTheme,a.mobile.pageLoadErrorMessage,!0),setTimeout(a.mobile.hidePageLoadingMsg,1500)),e.reject(k,c)}}),e.promise()},a.mobile.loadPage.defaults={type:"get",data:d,reloadPage:!1,role:d,showLoadMsg:!1,pageContainer:d,loadMsgDelay:50},a.mobile.changePage=function(b,e){if(m){l.unshift(arguments);return}var f=a.extend({},a.mobile.changePage.defaults,e);f.pageContainer=f.pageContainer||a.mobile.pageContainer,f.fromPage=f.fromPage||a.mobile.activePage;var g=f.pageContainer,i=new a.Event("pagebeforechange"),k={toPage:b,options:f};g.trigger(i,k);if(i.isDefaultPrevented())return;b=k.toPage,m=!0;if(typeof b=="string"){a.mobile.loadPage(b,f).done(function(b,c,d,e){m=!1,c.duplicateCachedPage=e,a.mobile.changePage(d,c)}).fail(function(a,b){m=!1,u(!0),v(),f.pageContainer.trigger("pagechangefailed",k)});return}b[0]===a.mobile.firstPage[0]&&!f.dataUrl&&(f.dataUrl=p.hrefNoHash);var o=f.fromPage,q=f.dataUrl&&h.convertUrlToDataUrl(f.dataUrl)||b.jqmData("url"),r=q,s=h.getFilePath(q),t=j.getActive(),w=j.activeIndex===0,x=0,y=c.title,B=f.role==="dialog"||a.mobile.getAttrFixed(b[0],"data-"+a.mobile.ns+"role")==="dialog";if(o&&o[0]===b[0]&&!f.allowSamePageTransition){m=!1,g.trigger("pagechange",k),f.fromHashChange&&j.directHashChange({currentUrl:q,isBack:function(){},isForward:function(){}});return}A(b,f.role),f.fromHashChange&&j.directHashChange({currentUrl:q,isBack:function(){x=-1},isForward:function(){x=1}});try{c.activeElement&&c.activeElement.nodeName.toLowerCase()!=="body"?a(c.activeElement).blur():a("input:focus, textarea:focus, select:focus").blur()}catch(C){}var D=!1;B&&t&&(t.url.indexOf(n)>-1&&!a.mobile.activePage.is(".ui-dialog")&&(f.changeHash=!1,D=!0),q=(t.url||"")+(D?"":n),j.activeIndex===0&&q===j.initialDst&&(q+=n)),f.changeHash!==!1&&q&&(j.ignoreNextHashChange=!0,h.set(q));var E=t?b.jqmData("title")||b.children(":jqmData(role='header')").find(".ui-title").getEncodedText():y;!!E&&y===c.title&&(y=E),b.jqmData("title")||b.jqmData("title",y),f.transition=f.transition||(x&&!w?t.transition:d)||(B?a.mobile.defaultDialogTransition:a.mobile.defaultPageTransition),x||(D&&(j.activeIndex=Math.max(0,j.activeIndex-1)),j.addNew(q,f.transition,y,r,f.role)),c.title=j.getActive().title,a.mobile.activePage=b,f.reverse=f.reverse||x<0,z(b,o,f.transition,f.reverse).done(function(c,d,e,h,i){u(),f.duplicateCachedPage&&f.duplicateCachedPage.remove(),i||a.mobile.focusPage(b),v(),g.trigger("pagechange",k)})},a.mobile.changePage.defaults={transition:d,reverse:!1,changeHash:!0,fromHashChange:!1,role:d,duplicateCachedPage:d,pageContainer:d,showLoadMsg:!0,dataUrl:d,fromPage:d,allowSamePageTransition:!1},a.mobile.navreadyDeferred=a.Deferred(),a.mobile.navreadyDeferred.done(function(){a.mobile.$document.delegate("form","submit",function(b){var c=a(this);if(!a.mobile.ajaxEnabled||c.is(":jqmData(ajax='false')")||!c.jqmHijackable().length)return;var d=c.attr("method"),e=c.attr("target"),f=c.attr("action");f||(f=C(c),f===q.hrefNoHash&&(f=p.hrefNoSearch)),f=h.makeUrlAbsolute(f,C(c));if(h.isExternal(f)&&!h.isPermittedCrossDomainRequest(p,f)||e)return;a.mobile.changePage(f,{type:d&&d.length&&d.toLowerCase()||"get",data:c.serialize(),transition:a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"transition"),reverse:a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"direction")==="reverse",reloadPage:!0}),b.preventDefault()}),a.mobile.$document.bind("vclick",function(b){if(b.which>1||!a.mobile.linkBindingEnabled)return;var c=B(b.target);if(!a(c).jqmHijackable().length)return;c&&h.parseUrl(c.getAttribute("href")||"#").hash!=="#"&&(u(!0),i=a(c).closest(".ui-btn").not(".ui-disabled"),i.addClass(a.mobile.activeBtnClass))}),a.mobile.$document.bind("click",function(c){if(!a.mobile.linkBindingEnabled)return;var e=B(c.target),f=a(e),g;if(!e||c.which>1||!f.jqmHijackable().length)return;g=function(){b.setTimeout(function(){u(!0)},200)};if(f.is(":jqmData(rel='back')"))return a.mobile.back(),!1;var i=C(f),j=h.makeUrlAbsolute(f.attr("href")||"#",i);if(!a.mobile.ajaxEnabled&&!h.isEmbeddedPage(j)){g();return}if(j.search("#")!==-1){j=j.replace(/[^#]*#/,"");if(!j){c.preventDefault();return}h.isPath(j)?j=h.makeUrlAbsolute(j,i):j=h.makeUrlAbsolute("#"+j,p.hrefNoHash)}var k=f.is("[rel='external']")||f.is(":jqmData(ajax='false')")||f.is("[target]"),l=k||h.isExternal(j)&&!h.isPermittedCrossDomainRequest(p,j);if(l){g();return}var m=a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"transition"),n=a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"direction")==="reverse"||a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"back"),o=f.attr("data-"+a.mobile.ns+"rel")||d;a.mobile.changePage(j,{transition:m,reverse:n,role:o,link:f}),c.preventDefault()}),a.mobile.$document.delegate(".ui-page","pageshow.prefetch",function(){var b=[];a(this).find("a:jqmData(prefetch)").each(function(){var c=a(this),d=c.attr("href");d&&a.inArray(d,b)===-1&&(b.push(d),a.mobile.loadPage(d,{role:c.attr("data-"+a.mobile.ns+"rel"),prefetch:!0}))})}),a.mobile._handleHashChange=function(c){var e=h.stripHash(c),f=a.mobile.urlHistory.stack.length===0?"none":d,g=new a.Event("navigate"),i={transition:f,changeHash:!1,fromHashChange:!0};0===j.stack.length&&(j.initialDst=e),a.mobile.pageContainer.trigger(g);if(g.isDefaultPrevented())return;if(!a.mobile.hashListeningEnabled||j.ignoreNextHashChange){j.ignoreNextHashChange=!1;return}if(j.stack.length>1&&e.indexOf(n)>-1&&j.initialDst!==e){if(!a.mobile.activePage.is(".ui-dialog")){j.directHashChange({currentUrl:e,isBack:function(){a.mobile.back()},isForward:function(){b.history.forward()}});return}j.directHashChange({currentUrl:e,either:function(b){var c=a.mobile.urlHistory.getActive();e=c.pageUrl,a.extend(i,{role:c.role,transition:c.transition,reverse:b})}})}e?(e=typeof e=="string"&&!h.isPath(e)?h.makeUrlAbsolute("#"+e,q):e,e===h.makeUrlAbsolute("#"+j.initialDst,q)&&j.stack.length&&j.stack[0].url!==j.initialDst.replace(n,"")&&(e=a.mobile.firstPage),a.mobile.changePage(e,i)):a.mobile.changePage(a.mobile.firstPage,i)},e.bind("hashchange",function(b,c){a.mobile._handleHashChange(h.parseLocation().hash)})})}(a),function(a,b){var e={},f=e,g=a.mobile.$window,h=a.mobile.path.parseLocation(),i=a.Deferred(),j=a.Deferred();a.mobile.$document.ready(a.proxy(j,"resolve")),a.mobile.$document.one("mobileinit",a.proxy(i,"resolve")),a.extend(e,{initialFilePath:function(){return h.pathname+h.search}(),hashChangeTimeout:200,hashChangeEnableTimer:d,initialHref:h.hrefNoHash,state:function(){return{hash:a.mobile.path.parseLocation().hash||"#"+f.initialFilePath,title:c.title,initialHref:f.initialHref}},resetUIKeys:function(b){var c=a.mobile.dialogHashKey,d="&"+a.mobile.subPageUrlKey,e=b.indexOf(c);return e>-1?b=b.slice(0,e)+"#"+b.slice(e):b.indexOf(d)>-1&&(b=b.split(d).join("#"+d)),b},nextHashChangePrevented:function(b){a.mobile.urlHistory.ignoreNextHashChange=b,f.onHashChangeDisabled=b},onHashChange:function(b){if(f.onHashChangeDisabled)return;var d,e,g=a.mobile.path.parseLocation().hash,h=a.mobile.path.isPath(g),i=h?a.mobile.path.getLocation():a.mobile.getDocumentUrl();g=h?g.replace("#",""):g,e=f.state(),d=a.mobile.path.makeUrlAbsolute(g,i),h&&(d=f.resetUIKeys(d)),history.replaceState(e,c.title,d)},onPopState:function(b){var c=b.originalEvent.state,d,e,g;c&&(clearTimeout(f.hashChangeEnableTimer),f.nextHashChangePrevented(!1),a.mobile._handleHashChange(c.hash),f.nextHashChangePrevented(!0),f.hashChangeEnableTimer=setTimeout(function(){f.nextHashChangePrevented(!1)},f.hashChangeTimeout))},init:function(){g.bind("hashchange",f.onHashChange),g.bind("popstate",f.onPopState),location.hash===""&&history.replaceState(f.state(),c.title,a.mobile.path.getLocation())}}),a.when(j,i,a.mobile.navreadyDeferred).done(function(){a.mobile.pushStateEnabled&&a.support.pushState&&e.init()})}(a,this),function(a,b,c){a.mobile.transitionFallbacks.flip="fade"}(a,this),function(a,b,c){a.mobile.transitionFallbacks.flow="fade"}(a,this),function(a,b,c){a.mobile.transitionFallbacks.pop="fade"}(a,this),function(a,b,c){a.mobile.transitionHandlers.slide=a.mobile.transitionHandlers.simultaneous,a.mobile.transitionFallbacks.slide="fade"}(a,this),function(a,b,c){a.mobile.transitionFallbacks.slidedown="fade"}(a,this),function(a,b,c){a.mobile.transitionFallbacks.slidefade="fade"}(a,this),function(a,b,c){a.mobile.transitionFallbacks.slideup="fade"}(a,this),function(a,b,c){a.mobile.transitionFallbacks.turn="fade"}(a,this),function(a,b){a.mobile.page.prototype.options.degradeInputs={color:!1,date:!1,datetime:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:"number",search:"text",tel:!1,time:!1,url:!1,week:!1},a.mobile.$document.bind("pagecreate create",function(b){var c=a.mobile.closestPageData(a(b.target)),d;if(!c)return;d=c.options,a(b.target).find("input").not(c.keepNativeSelector()).each(function(){var b=a(this),c=this.getAttribute("type"),e=d.degradeInputs[c]||"text";if(d.degradeInputs[c]){var f=a("<div>").html(b.clone()).html(),g=f.indexOf(" type=")>-1,h=g?/\s+type=["']?\w+['"]?/:/\/?>/,i=' type="'+e+'" data-'+a.mobile.ns+'type="'+c+'"'+(g?"":">");b.replaceWith(f.replace(h,i))}})})}(a),function(a,b,c){a.widget("mobile.dialog",a.mobile.widget,{options:{closeBtnText:"Close",overlayTheme:"a",initSelector:":jqmData(role='dialog')"},_create:function(){var b=this,c=this.element,d=a("<a href='#' data-"+a.mobile.ns+"icon='delete' data-"+a.mobile.ns+"iconpos='notext'>"+this.options.closeBtnText+"</a>"),e=a("<div/>",{role:"dialog","class":"ui-dialog-contain ui-corner-all ui-overlay-shadow"});c.addClass("ui-dialog ui-overlay-"+this.options.overlayTheme),c.wrapInner(e).children().find(":jqmData(role='header')").prepend(d).end().children(":first-child").addClass("ui-corner-top").end().children(":last-child").addClass("ui-corner-bottom"),d.bind("click",function(){b.close()}),c.bind("vclick submit",function(b){var c=a(b.target).closest(b.type==="vclick"?"a":"form"),d;c.length&&!a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"transition")&&(d=a.mobile.urlHistory.getActive()||{},c.attr("data-"+a.mobile.ns+"transition",d.transition||a.mobile.defaultDialogTransition).attr("data-"+a.mobile.ns+"direction","reverse"))}).bind("pagehide",function(b,c){a(this).find("."+a.mobile.activeBtnClass).not(".ui-slider-bg").removeClass(a.mobile.activeBtnClass)}).bind("pagebeforeshow",function(){b._isCloseable=!0,b.options.overlayTheme&&b.element.page("removeContainerBackground").page("setContainerBackground",b.options.overlayTheme)})},close:function(){var b;this._isCloseable&&(this._isCloseable=!1,a.mobile.hashListeningEnabled?a.mobile.back():(b=a.mobile.urlHistory.getPrev().url,a.mobile.path.isPath(b)||(b=a.mobile.path.makeUrlAbsolute("#"+b)),a.mobile.changePage(b,{changeHash:!1,fromHashChange:!0})))}}),a.mobile.$document.delegate(a.mobile.dialog.prototype.options.initSelector,"pagecreate",function(){a.mobile.dialog.prototype.enhance(this)})}(a,this),function(a,b){a.mobile.page.prototype.options.backBtnText="Back",a.mobile.page.prototype.options.addBackBtn=!1,a.mobile.page.prototype.options.backBtnTheme=null,a.mobile.page.prototype.options.headerTheme="a",a.mobile.page.prototype.options.footerTheme="a",a.mobile.page.prototype.options.contentTheme=null,a.mobile.$document.bind("pagecreate",function(c){var d=a(c.target),e=d.data("page").options,f="data-"+a.mobile.ns,g=d[0].getAttribute(f+"role")||b,h=e.theme;a(":jqmData(role='header'), :jqmData(role='footer'), :jqmData(role='content')",d).jqmEnhanceable().each(function(){var c=a(this),i=c[0].getAttribute(f+"role")||b,j=c[0].getAttribute(f+"theme")||b,k=j||e.contentTheme||g==="dialog"&&h,l,m,n,p=d.find(".ui-footer"),q;c.addClass("ui-"+i);if(i==="header"||i==="footer"){var r=j||(i==="header"?e.headerTheme:e.footerTheme)||h;c.addClass("ui-bar-"+r).attr("role",i==="header"?"banner":"contentinfo"),i==="header"&&(l=c.children("a, div.naviframe-button, a.naviframe-button, button"),m=l.hasClass("ui-btn-left"),n=l.hasClass("ui-btn-right"),m=m||l.eq(0).not(".ui-btn-right").addClass("ui-btn-left").length,n=n||l.eq(1).addClass("ui-btn-right").length,a(l.get().reverse()).each(function(b){a(this).addClass("ui-btn-right-"+b)})),e.addBackBtn&&(i==="footer"||i==="header")&&d[0].getAttribute(f+"url")!==a.mobile.path.stripHash(location.hash)&&!m&&(e.addBackBtn=="header"?p=d.find(".ui-header"):p=d.find(".ui-footer"),p.find(".ui-btn-back").length||(q=a("<a href='javascript:void(0);' class='ui-btn-back' data-"+a.mobile.ns+"rel='back'></a>").buttonMarkup({icon:"header-back-btn",theme:e.backBtnTheme||r}),q.find(".ui-btn-text").text(e.backBtnText),q.appendTo(p))),c.children("h1, h2, h3, h4, h5, h6").addClass("ui-title").attr({role:"heading","aria-level":"1","aria-label":"title",tabindex:"0"}),a(".ui-title-text-sub").attr({tabindex:"0","aria-label":"subtitle"})}else i==="content"&&(k&&c.addClass("ui-body-"+k),c.attr("role","main"))})})}(a),function(a,b){a.fn.fieldcontain=function(a){return this.addClass("ui-field-contain ui-body ui-br").contents().filter(function(){return this.nodeType===3&&!/\S/.test(this.nodeValue)}).remove()},a.mobile.$document.bind("pagecreate create",function(b){a(":jqmData(role='fieldcontain')",b.target).jqmEnhanceable().fieldcontain()})}(a),function(a,b){a.fn.grid=function(b){return this.each(function(){var c=a(this),d=a.extend({grid:null},b),e=c.children(),f={solo:1,a:2,b:3,c:4,d:5},g=d.grid,h;if(!g)if(e.length<=5)for(var i in f)f[i]===e.length&&(g=i);else g="a",c.addClass("ui-grid-duo");h=f[g],c.addClass("ui-grid-"+g),e.filter(":nth-child("+h+"n+1)").addClass("ui-block-a"),h>1&&e.filter(":nth-child("+h+"n+2)").addClass("ui-block-b"),h>2&&e.filter(":nth-child("+h+"n+3)").addClass("ui-block-c"),h>3&&e.filter(":nth-child("+h+"n+4)").addClass("ui-block-d"),h>4&&e.filter(":nth-child("+h+"n+5)").addClass("ui-block-e")})}}(a),function(a,b){a.mobile.$document.bind("pagecreate create",function(b){a(":jqmData(role='nojs')",b.target).addClass("ui-nojs")})}(a),function(a,b){function d(a){var b;while(a){b=typeof a.className=="string"&&a.className+" ";if(b&&b.indexOf("ui-btn ")>-1&&b.indexOf("ui-disabled ")<0)break;a=a.parentNode}return a}a.fn.buttonMarkup=function(d){var f=this,g="data-"+a.mobile.ns,h=function(b,c){k.setAttribute("data-"+a.mobile.ns+b,c),j.jqmData(b,c)};d=d&&a.type(d)==="object"?d:{};for(var i=0;i<f.length;i++){var j=f.eq(i),k=j[0],l=a.extend({},a.fn.buttonMarkup.defaults,{icon:d.icon!==b?d.icon:a.mobile.getAttrFixed(k,g+"icon"),iconpos:d.iconpos!==b?d.iconpos:a.mobile.getAttrFixed(k,g+"iconpos"),theme:d.theme!==b?d.theme:a.mobile.getAttrFixed(k,g+"theme")||a.mobile.getInheritedTheme(j,a.fn.buttonMarkup.defaults.theme),inline:d.inline!==b?d.inline:a.mobile.getAttrFixed(k,g+"inline"),shadow:d.shadow!==b?d.shadow:a.mobile.getAttrFixed(k,g+"shadow"),corners:d.corners!==b?d.corners:a.mobile.getAttrFixed(k,g+"corners"),iconshadow:d.iconshadow!==b?d.iconshadow:a.mobile.getAttrFixed(k,g+"iconshadow"),mini:d.mini!==b?d.mini:a.mobile.getAttrFixed(k,g+"mini")},d),m="ui-btn-inner",n="ui-btn-text",o,p,q,r,s,t;for(key in l)k.setAttribute(g+key,l[key]);a.mobile.getAttrFixed(k,g+"rel")==="popup"&&j.attr("href")&&(k.setAttribute("aria-haspopup",!0),k.setAttribute("aria-owns",k.getAttribute("href"))),k.tagName!=="LI"&&k.tagName!=="LABEL"&&(k.setAttribute("role","button"),k.setAttribute("tabindex","0")),t=a.data(k.tagName==="INPUT"||k.tagName==="BUTTON"?k.parentNode:k,"buttonElements"),t?(k=t.outer,j=a(k),q=t.inner,r=t.text,a(t.icon).remove(),t.icon=null):(q=c.createElement(l.wrapperEls),r=c.createElement(l.wrapperEls)),s=l.icon?c.createElement("span"):null,e&&!t&&e(),l.theme||(l.theme=a.mobile.getInheritedTheme(j,"c")),o="ui-btn ui-btn-up-"+l.theme,o+=l.shadow?" ui-shadow":"",o+=l.corners?" ui-btn-corner-all":"";if(a.mobile.getAttrFixed(k,g+"role")=="button"||k.tagName=="BUTTON"||k.tagName=="DIV")o+=" ui-btn-box-"+l.theme;buttonStyle=a.mobile.getAttrFixed(k,g+"style");if(buttonStyle!="circle"||a(j).text().length>0){if(buttonStyle=="nobg")o+=" ui-btn-icon-nobg",o+=" ui-btn-icon_only";else if(buttonStyle=="edit")o+=" ui-btn-edit";else if(buttonStyle=="round"||buttonStyle=="circle"&&a(j).text().length>0)o+=" ui-btn-round"}else o+=" ui-btn-corner-circle",o+=" ui-btn-icon_only";if(l.icon)if(a(j).text().length>0){switch(l.iconpos){case"right":case"left":case"top":case"bottom":n+=" ui-btn-text-padding-"+l.iconpos;break;default:n+=" ui-btn-text-padding-left"}m+=" ui-btn-hastxt"}else buttonStyle=="circle"?m+=" ui-btn-corner-circle":buttonStyle=="nobg"&&(m+=" ui-btn-icon-nobg"),o+=" ui-btn-icon_only",m+=" ui-btn-icon-only",k.tagName!=="LABEL"&&a(j).text(l.icon.replace("naviframe-",""));else a(j).text().length>0?m+=" ui-btn-hastxt":buttonStyle=="circle"&&(o+=" ui-btn-round");l.mini!==b&&(o+=l.mini===!0?" ui-mini":" ui-fullsize"),l.inline!==b&&(o+=l.inline===!0?" ui-btn-inline":" ui-btn-block"),l.icon&&(l.icon="ui-icon-"+l.icon,l.iconpos=l.iconpos||"left",p="ui-icon "+l.icon,l.iconshadow&&(p+=" ui-icon-shadow")),l.iconpos&&(o+=" ui-btn-icon-"+l.iconpos,l.iconpos==="notext"&&!j.attr("title")&&j.attr("title",j.getEncodedText())),m+=l.corners?" ui-btn-corner-all":"",l.iconpos&&l.iconpos==="notext"&&!j.attr("title")&&j.attr("title",j.getEncodedText()),t&&j.removeClass(t.bcls||""),j.removeClass("ui-link").addClass(o),q.className=m,r.className=n,t||q.appendChild(r);if(s){s.className=p;if(!t||!t.icon)s.innerHTML=" ",q.appendChild(s)}while(k.firstChild&&!t)r.appendChild(k.firstChild);t||k.appendChild(q),t={bcls:o,outer:k,inner:q,text:r,icon:s},a.data(k,"buttonElements",t),a.data(q,"buttonElements",t),a.data(r,"buttonElements",t),s&&a.data(s,"buttonElements",t)}return this},a.fn.buttonMarkup.defaults={theme:"c",corners:!0,shadow:!0,iconshadow:!0,wrapperEls:"span"};var e=function(){var b=a.mobile.buttonMarkup.hoverDelay,c,f;a.mobile.$document.bind({"vmousedown vmousecancel vmouseup vmouseover vmouseout focus blur scrollstart touchend touchcancel":function(e){var g,h=a(d(e.target)),i=e.originalEvent&&/^touch/.test(e.originalEvent.type),j=e.type;if(h.length){g=h.attr("data-"+a.mobile.ns+"theme");if(j==="vmousedown")i?c=setTimeout(function(){h.removeClass("ui-btn-up-"+g).addClass("ui-btn-down-"+g)},b):h.removeClass("ui-btn-up-"+g).addClass("ui-btn-down-"+g);else if(j==="vmousecancel"||j==="vmouseup"||j==="touchend"||j==="touchcancel")h.removeClass("ui-btn-down-"+g).addClass("ui-btn-up-"+g);else if(j==="vmouseover"||j==="focus")i?f=setTimeout(function(){h.removeClass("ui-btn-up-"+g).addClass("ui-btn-hover-"+g)},b):h.removeClass("ui-btn-up-"+g).addClass("ui-btn-hover-"+g);else if(j==="vmouseout"||j==="blur"||j==="scrollstart")h.removeClass("ui-btn-hover-"+g+" ui-btn-down-"+g).addClass("ui-btn-up-"+g),c&&clearTimeout(c),f&&clearTimeout(f)}},"focusin focus":function(b){a(d(b.target)).addClass(a.mobile.focusClass)},"focusout blur":function(b){a(d(b.target)).removeClass(a.mobile.focusClass)}}),e=null};a.mobile.$document.bind("pagecreate create",function(b){a(":jqmData(role='button'), .ui-bar > a, .ui-header > a, .ui-footer > a, .ui-bar > :jqmData(role='controlgroup') > a",b.target).jqmEnhanceable().not("button, input, .ui-btn, :jqmData(role='none'), :jqmData(role='nojs')").buttonMarkup()})}(a),function(a,b){a.widget("mobile.collapsible",a.mobile.widget,{options:{expandCueText:" Expandable list, tap to open list",collapseCueText:" Expandable list, tap to close list",collapsed:!0,heading:"h1,h2,h3,h4,h5,h6,legend",theme:null,contentTheme:null,inset:!0,mini:!1,initSelector:":jqmData(role='collapsible')"},_create:function(){var c=this.element,d=this.options,e=c.addClass("ui-collapsible"),f=c.children(d.heading).first(),g=a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"collapsed-icon")||d.collapsedIcon,h=a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"expanded-icon")||d.expandedIcon,i=e.wrapInner("<div class='ui-collapsible-content'></div>").children(".ui-collapsible-content"),j=c.closest(":jqmData(role='collapsible-set')").addClass("ui-collapsible-set");f.is("legend")&&(f=a("<div role='heading'>"+f.html()+"</div>").insertBefore(f),f.next().remove()),j.length?(d.theme||(d.theme=a.mobile.getAttrFixed(j[0],"data-"+a.mobile.ns+"theme")||a.mobile.getInheritedTheme(j,"c")),d.contentTheme||(d.contentTheme=a.mobile.getAttrFixed(j[0],"data-"+a.mobile.ns+"content-theme")),d.collapsedIcon||(d.collapsedIcon=a.mobile.getAttrFixed(j[0],"data-"+a.mobile.ns+"collapsed-icon")),d.expandedIcon||(d.expandedIcon=a.mobile.getAttrFixed(j[0],"data-"+a.mobile.ns+"expanded-icon")),d.iconPos||(d.iconPos=a.mobile.getAttrFixed(j[0],"data-"+a.mobile.ns+"iconpos")),a.mobile.getAttrFixed(j[0],"data-"+a.mobile.ns+"inset")!==b?d.inset=a.mobile.getAttrFixed(j[0],"data-"+a.mobile.ns+"inset"):d.inset=!0,d.mini||(d.mini=a.mobile.getAttrFixed(j[0],"data-"+a.mobile.ns+"mini"))):d.theme||(d.theme=a.mobile.getInheritedTheme(c,"c")),!d.inset||e.addClass("ui-collapsible-inset"),i.addClass(d.contentTheme?"ui-body-"+d.contentTheme:""),g=a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"collapsed-icon")||d.collapsedIcon||"plus",h=a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"expanded-icon")||d.expandedIcon||"minus",f.insertBefore(i).addClass("ui-collapsible-heading").append("<span class='ui-collapsible-heading-status'></span>").wrapInner("<a href='#' class='ui-collapsible-heading-toggle'></a>").find("a").first().buttonMarkup({shadow:!1,corners:!1,iconpos:a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"iconpos")||d.iconPos||"left",icon:g,mini:d.mini,theme:d.theme}).attr("role",""),!d.inset||f.find("a").first().add(".ui-btn-inner",c).addClass("ui-corner-top ui-corner-bottom"),e.bind("expand collapse",function(b){if(!b.isDefaultPrevented()){var c=a(this),k=b.type==="collapse",l=d.contentTheme;b.preventDefault(),d.customEventHandler&&d.customEventHandler.call(this,k),f.toggleClass("ui-collapsible-heading-collapsed",k).find(".ui-collapsible-heading-status").text(k?d.expandCueText:d.collapseCueText).end().find(".ui-icon").toggleClass("ui-icon-"+h,!k).toggleClass("ui-icon-"+g,k||h===g).end().find("a").first().removeClass(a.mobile.activeBtnClass),c.toggleClass("ui-collapsible-collapsed",k),i.toggleClass("ui-collapsible-content-collapsed",k).attr("aria-hidden",k),i.children("li").not("ui-collapsible-content").attr("tabindex",k?"":"0"),l&&!!d.inset&&(!j.length||e.jqmData("collapsible-last"))&&(f.find("a").first().add(f.find(".ui-btn-inner")).toggleClass("ui-corner-bottom",k),i.toggleClass("ui-corner-bottom",!k)),i.trigger("updatelayout")}}).trigger(d.collapsed?"collapse":"expand"),f.bind("tap",function(b){f.find("a").first().addClass(a.mobile.activeBtnClass)}).bind("click",function(a){var b=f.is(".ui-collapsible-heading-collapsed")?"expand":"collapse";e.trigger(b),a.preventDefault(),a.stopPropagation()})}}),a.delegateSelfInitWithSingleSelector(a.mobile.collapsible)}(a),function(a,b){a.widget("mobile.collapsibleset",a.mobile.widget,{options:{initSelector:":jqmData(role='collapsible-set')"},_create:function(){var c=this.element.addClass("ui-collapsible-set"),d=this.options;d.theme||(d.theme=a.mobile.getInheritedTheme(c,"c")),d.contentTheme||(d.contentTheme=a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"content-theme")),a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"inset")!==b&&(d.inset=a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"inset")),d.inset=d.inset!==b?d.inset:!0,c.jqmData("collapsiblebound")||c.jqmData("collapsiblebound",!0).bind("expand collapse",function(b){var c=b.type==="collapse",e=a(b.target).closest(".ui-collapsible"),f=e.data("collapsible");e.jqmData("collapsible-last")&&!!d.inset&&(e.find(".ui-collapsible-heading").first().find("a").first().toggleClass("ui-corner-bottom",c).find(".ui-btn-inner").toggleClass("ui-corner-bottom",c),e.find(".ui-collapsible-content").toggleClass("ui-corner-bottom",!c))}).bind("expand",function(b){var c=a(b.target).closest(".ui-collapsible");c.parent().is(":jqmData(role='collapsible-set')")&&c.siblings(".ui-collapsible").trigger("collapse")})},_init:function(){var a=this.element,b=a.children(":jqmData(role='collapsible')"),c=b.filter(":jqmData(collapsed='false')");this.refresh(),c.trigger("expand")},refresh:function(){var b=this.element,c=this.options,d=b.children(":jqmData(role='collapsible')");a.mobile.collapsible.prototype.enhance(d.not(".ui-collapsible")),!c.inset||(d.each(function(){a(this).jqmRemoveData("collapsible-last").find(".ui-collapsible-heading").find("a").first().removeClass("ui-corner-top ui-corner-bottom").find(".ui-btn-inner").removeClass("ui-corner-top ui-corner-bottom")}),d.first().find("a").first().addClass("ui-corner-top").find(".ui-btn-inner").addClass("ui-corner-top"),d.last().jqmData("collapsible-last",!0).find("a").first().addClass("ui-corner-bottom").find(".ui-btn-inner").addClass("ui-corner-bottom"))}}),a.delegateSelfInitWithSingleSelector(a.mobile.collapsibleset)}(a),function(a,b){a.widget("mobile.navbar",a.mobile.widget,{options:{iconpos:"top",grid:null,initSelector:":jqmData(role='navbar')"},_create:function(){var c=this.element,d=c.find("a"),e=d.filter(":jqmData(icon)").length?this.options.iconpos:b;c.addClass("ui-navbar ui-mini").attr("role","navigation").find("ul").jqmEnhanceable().grid({grid:this.options.grid}),d.buttonMarkup({corners:!1,shadow:!1,inline:!0,iconpos:e}),c.delegate("a","vclick",function(b){a(b.target).hasClass("ui-disabled")||(d.removeClass(a.mobile.activeBtnClass),a(this).addClass(a.mobile.activeBtnClass))}),c.closest(".ui-page").bind("pagebeforeshow",function(){d.filter(".ui-state-persist").addClass(a.mobile.activeBtnClass)})}}),a.delegateSelfInitWithSingleSelector(a.mobile.navbar)}(a),function(a,b){var d={};a.widget("mobile.listview",a.mobile.widget,{options:{theme:null,countTheme:"c",headerTheme:"b",dividerTheme:"b",splitIcon:"arrow-r",splitTheme:"b",inset:!1,initSelector:":jqmData(role='listview')"},_create:function(){var a=this,b="";b+=a.options.inset?" ui-listview-inset ui-corner-all ui-shadow ":"",a.element.addClass(function(a,c){return c+" ui-listview "+b}),a.refresh(!0)},_removeCorners:function(a,b){var c="ui-corner-top ui-corner-tr ui-corner-tl",d="ui-corner-bottom ui-corner-br ui-corner-bl";a=a.add(a.find(".ui-btn-inner, .ui-li-link-alt, .ui-li-thumb")),b==="top"?a.removeClass(c):b==="bottom"?a.removeClass(d):a.removeClass(c+" "+d)},_refreshCorners:function(a){var b,c,d,e;b=this.element.children("li"),c=a||b.filter(":visible").length===0?b.not(".ui-screen-hidden"):b.filter(":visible"),b.filter(".ui-li-last").removeClass("ui-li-last"),this.options.inset?(this._removeCorners(b),d=c.first().addClass("ui-corner-top"),d.add(d.find(".ui-btn-inner").not(".ui-li-link-alt span:first-child"
+)).addClass("ui-corner-top").end().find(".ui-li-link-alt, .ui-li-link-alt span:first-child").addClass("ui-corner-tr").end().find(".ui-li-thumb").not(".ui-li-icon").addClass("ui-corner-tl"),e=c.last().addClass("ui-corner-bottom ui-li-last"),e.add(e.find(".ui-btn-inner")).find(".ui-li-link-alt").addClass("ui-corner-br").end().find(".ui-li-thumb").not(".ui-li-icon").addClass("ui-corner-bl")):c.last().addClass("ui-li-last"),a||this.element.trigger("updatelayout")},_findFirstElementByTagName:function(a,b,c,d){var e={};e[c]=e[d]=!0;while(a){if(e[a.nodeName])return a;a=a[b]}return null},_getChildrenByTagName:function(b,c,d){var e=[],f={};f[c]=f[d]=!0,b=b.firstChild;while(b)f[b.nodeName]&&e.push(b),b=b.nextSibling;return a(e)},_addThumbClasses:function(b){var c,d,e=b.length;for(c=0;c<e;c++)d=a(this._findFirstElementByTagName(b[c].firstChild,"nextSibling","img","IMG")),d.length&&(d.addClass("ui-li-thumb").attr({role:"","aria-label":"icon"}),a(this._findFirstElementByTagName(d[0].parentNode,"parentNode","li","LI")).addClass(d.is(".ui-li-icon")?"ui-li-has-icon":"ui-li-has-thumb"))},_addCheckboxRadioClasses:function(b){var c,d,e=b.length;for(c=0;c<e;c++)d=a(b[c]).find("input"),d.attr("type")=="checkbox"?a(b[c]).addClass("ui-li-has-checkbox"):d.attr("type")=="radio"&&a(b[c]).addClass("ui-li-has-radio")},_addRightBtnClasses:function(b){var c,d,e=b.length;for(c=0;c<e;c++)d=a(b[c]).find(":jqmData(role='button'),input[type='button'],select:jqmData(role='slider')"),d.length&&(d.jqmData("style")=="circle"?a(b[c]).addClass("ui-li-has-right-circle-btn"):a(b[c]).addClass("ui-li-has-right-btn"))},refresh:function(d){this.parentPage=this.element.closest(".ui-page"),this._createSubPages();var e=this.options,f=this.element,g=this,h=a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"dividertheme")||e.dividerTheme,i=a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"splittheme"),j=a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"spliticon"),k=this._getChildrenByTagName(f[0],"li","LI"),l=!!a.nodeName(f[0],"ol"),m=!a.support.cssPseudoElement,n=f.attr("start"),o={},p,q,r,s,t,u,v,w,x,y,z,A,B,C;l&&m&&f.find(".ui-li-dec").remove(),l&&(n||n===0?m?v=parseFloat(n):(w=parseFloat(n)-1,f.css("counter-reset","listnumbering "+w)):m&&(v=1)),e.theme||(e.theme=a.mobile.getInheritedTheme(this.element,"c"));for(var D=0,E=k.length;D<E;D++){p=k.eq(D),q="ui-li";if(d||!p.hasClass("ui-li")){r=a.mobile.getAttrFixed(p[0],"data-"+a.mobile.ns+"theme")||e.theme,s=this._getChildrenByTagName(p[0],"a","A").attr({role:"",tabindex:"0"});var F=a.mobile.getAttrFixed(p[0],"data-"+a.mobile.ns+"role")==="list-divider";(p.hasClass("ui-li-has-checkbox")||p.hasClass("ui-li-has-radio"))&&p.on("vclick",function(b){var c=a(b.target),d=c.find(".ui-checkbox");d.length||(d=c.find(".ui-radio")),d.length&&d.children("label").trigger("vclick")}),s.length&&!F?(z=a.mobile.getAttrFixed(p[0],"data-"+a.mobile.ns+"icon"),z===b&&(z=!1),p.buttonMarkup({wrapperEls:"div",shadow:!1,corners:!1,iconpos:"right",icon:s.length>1||z===!1?!1:z||"arrow-r",theme:r}),z!==!1&&s.length===1&&p.addClass("ui-li-has-arrow"),s.first().removeClass("ui-link").addClass("ui-link-inherit"),s.length>1&&(q+=" ui-li-has-alt",t=s.last(),u=i||a.mobile.getAttrFixed(t[0],"data-"+a.mobile.ns+"theme")||e.splitTheme,C=a.mobile.getAttrFixed(t[0],"data-"+a.mobile.ns+"icon"),t.appendTo(p).attr("title",t.getEncodedText()).addClass("ui-li-link-alt").empty().buttonMarkup({shadow:!1,corners:!1,theme:r,icon:!1,iconpos:"notext"}).find(".ui-btn-inner").append(a(c.createElement("span")).buttonMarkup({shadow:!0,corners:!0,theme:u,iconpos:"notext",icon:C||z||j||e.splitIcon})))):F?(q+=" ui-li-divider ui-bar-"+h,p.attr({role:"heading",tabindex:"0"}),l&&(n||n===0?m?v=parseFloat(n):(x=parseFloat(n)-1,p.css("counter-reset","listnumbering "+x)):m&&(v=1))):(q+=" ui-li-static ui-btn-up-"+r,p.attr("tabindex","0"))}l&&m&&q.indexOf("ui-li-divider")<0&&(y=q.indexOf("ui-li-static")>0?p:p.find(".ui-link-inherit"),y.addClass("ui-li-jsnumbering").prepend("<span class='ui-li-dec'>"+v++ +". </span>")),o[q]||(o[q]=[]),o[q].push(p[0])}for(q in o)a(o[q]).addClass(q).children(".ui-btn-inner").addClass(q);f.find("h1, h2, h3, h4, h5, h6").addClass("ui-li-heading").end().find("p, dl").addClass("ui-li-desc").end().find(".ui-li-aside").each(function(){var b=a(this);b.prependTo(b.parent())}).end().find(".ui-li-count").each(function(){a(this).closest("li").addClass("ui-li-has-count")}).addClass("ui-btn-up-"+(a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"counttheme")||this.options.countTheme)+" ui-btn-corner-all"),this._addThumbClasses(k),this._addThumbClasses(f.find(".ui-link-inherit")),this._addCheckboxRadioClasses(k),this._addCheckboxRadioClasses(f.find(".ui-link-inherit")),this._addRightBtnClasses(k),this._addRightBtnClasses(f.find(".ui-link-inherit")),this._refreshCorners(d),this._trigger("afterrefresh")},_idStringEscape:function(a){return a.replace(/[^a-zA-Z0-9]/g,"-")},_createSubPages:function(){var b=this.element,c=b.closest(".ui-page"),e=c.jqmData("url"),f=e||c[0][a.expando],g=b.attr("id"),h=this.options,i="data-"+a.mobile.ns,j=this,k=c.find(":jqmData(role='footer')").jqmData("id"),l;typeof d[f]=="undefined"&&(d[f]=-1),g=g||++d[f],a(b.find("li>ul, li>ol").toArray().reverse()).each(function(c){var d=this,f=a(this),j=f.attr("id")||g+"-"+c,m=f.parent(),n=a(f.prevAll().toArray().reverse()),p=n.length?n:a("<span>"+a.trim(m.contents()[0].nodeValue)+"</span>"),q=p.first().getEncodedText(),r=(e||"")+"&"+a.mobile.subPageUrlKey+"="+j,s=a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"theme")||h.theme,t=a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"counttheme")||a.mobile.getAttrFixed(b[0],"data-"+a.mobile.ns+"counttheme")||h.countTheme,u,v;l=!0,u=f.detach().wrap("<div "+i+"role='page' "+i+"url='"+r+"' "+i+"theme='"+s+"' "+i+"count-theme='"+t+"'><div "+i+"role='content'></div></div>").parent().before("<div "+i+"role='header' "+i+"theme='"+h.headerTheme+"'><div class='ui-title'>"+q+"</div></div>").after(k?a("<div "+i+"role='footer' "+i+"id='"+k+"'>"):"").parent().appendTo(a.mobile.pageContainer),u.page(),v=m.find("a:first"),v.length||(v=a("<a/>").html(p||q).prependTo(m.empty())),v.attr("href","#"+r)}).listview();if(l&&c.is(":jqmData(external-page='true')")&&c.data("page").options.domCache===!1){var m=function(b,d){var f=d.nextPage,g,h=new a.Event("pageremove");d.nextPage&&(g=f.jqmData("url"),g.indexOf(e+"&"+a.mobile.subPageUrlKey)!==0&&(j.childPages().remove(),c.trigger(h),h.isDefaultPrevented()||c.removeWithDependents()))};c.unbind("pagehide.remove").bind("pagehide.remove",m)}},addItem:function(b,c){var d=a(b),e,f=this;e=f.element.children("li"),d.css({opacity:0,display:"none"}),e.length==0||e.length<=c?a(f.element).append(d):a(e.get(c)).before(d),a(f.element).trigger("create").listview("refresh"),d.css("min-height","0px"),d.slideDown("fast",function(){d.addClass("addli"),d.css({opacity:1})})},removeItem:function(b){var c,d,e=this;d=e.element.children("li");if(d.length<=0||d.length<b)return;c=a(d.get(b)),c.addClass("removeli"),c.slideUp("normal",function(){a(this).remove()})},childPages:function(){var b=this.parentPage.jqmData("url");return a(":jqmData(url^='"+b+"&"+a.mobile.subPageUrlKey+"')")}}),a.delegateSelfInitWithSingleSelector(a.mobile.listview)}(a),function(a,b){a.mobile.listview.prototype.options.autodividers=!1,a.mobile.listview.prototype.options.autodividersSelector=function(a){var b=a.text()||null;return b?(b=b.trim().slice(0,1).toUpperCase(),b):null},a.mobile.$document.delegate("ul,ol","listviewcreate",function(){var b=a(this),d=b.data("listview");if(!d||!d.options.autodividers)return;var e=function(){b.find("li:jqmData(role='list-divider')").remove();var e=b.find("li"),f=null,g,h;for(var i=0;i<e.length;i++){g=e[i],h=d.options.autodividersSelector(a(g));if(h&&f!==h){var j=c.createElement("li");j.appendChild(c.createTextNode(h)),j.setAttribute("data-"+a.mobile.ns+"role","list-divider"),g.parentNode.insertBefore(j,g)}f=h}},f=function(){b.unbind("listviewafterrefresh",f),e(),d.refresh(),b.bind("listviewafterrefresh",f)};f()})}(a),function(a,b){a.widget("mobile.checkboxradio",a.mobile.widget,{options:{theme:null,initSelector:"input[type='checkbox'],input[type='radio']"},_create:function(){var d=this,e=this.element,f=function(a,b){return a.jqmData(b)||a.closest("form, fieldset").jqmData(b)},g=a(e).closest("label"),h=g.length?g:e[0].id?a(e).closest("form, fieldset, :jqmData(role='page'), :jqmData(role='dialog')").find("label").filter("[for='"+e[0].id+"']"):[],i=e[0].type,j=f(e,"mini"),k=i+"-on",l=i+"-off",m=e.parents(":jqmData(type='horizontal')").length?b:l,n=f(e,"iconpos"),o=m?"":" "+a.mobile.activeBtnClass,p="ui-"+k+o,q="ui-"+l,r="ui-icon-"+k,s="ui-icon-"+l,t="";if(i!=="checkbox"&&i!=="radio")return;t=i==="checkbox"?"aria-checked":"aria-selected",h.length==0&&(h=a("<label for='"+e[0].id+"'></label>")),a.extend(this,{label:h,inputtype:i,checkedClass:p,uncheckedClass:q,checkedicon:r,uncheckedicon:s,ariaCheckedAttr:t}),this.options.theme||(this.options.theme=a.mobile.getInheritedTheme(this.element,"c")),h.buttonMarkup({theme:this.options.theme,icon:m,shadow:!1,mini:j,iconpos:n});var u=c.createElement("div");u.className="ui-"+i,u.setAttribute("role",i),e.hasClass("favorite")&&(u.className+=" favorite"),e.add(h).wrapAll(u),h.bind({vmouseover:function(b){a(this).parent().is(".ui-disabled")&&b.stopPropagation()},vclick:function(a){if(e.is(":disabled")){a.preventDefault();return}return d._cacheVals(),e.prop("checked",i==="radio"&&!0||!e.prop("checked")),e.triggerHandler("click"),d._getInputSet().not(e).prop("checked",!1),d._updateAll(),!1}}),e.bind({vmousedown:function(){d._cacheVals()},vclick:function(){var b=a(this);b.is(":checked")?(b.prop("checked",!0),d._getInputSet().not(b).prop("checked",!1)):b.prop("checked",!1),d._updateAll()},focus:function(){h.addClass(a.mobile.focusClass)},blur:function(){h.removeClass(a.mobile.focusClass)}}),this.refresh()},_cacheVals:function(){this._getInputSet().each(function(){a(this).jqmData("cacheVal",this.checked)})},_getInputSet:function(){return this.inputtype==="checkbox"?this.element:this.element.closest("form, fieldset, :jqmData(role='page'), :jqmData(role='dialog')").find("input[name='"+this.element[0].name+"'][type='"+this.inputtype+"']")},_updateAll:function(){var b=this;this._getInputSet().each(function(){var c=a(this);(this.checked||b.inputtype==="checkbox")&&c.trigger("change"),c.focus()}).checkboxradio("refresh")},refresh:function(){var a=this.element[0],b=this.label,c=a.parentNode,d=b.find(".ui-icon");a.checked?(b.addClass(this.checkedClass).removeClass(this.uncheckedClass),d.addClass(this.checkedicon).removeClass(this.uncheckedicon),c.setAttribute(this.ariaCheckedAttr,!0)):(b.removeClass(this.checkedClass).addClass(this.uncheckedClass),d.removeClass(this.checkedicon).addClass(this.uncheckedicon),c.setAttribute(this.ariaCheckedAttr,!1)),a.disabled?this.disable():this.enable()},disable:function(){this.element.prop("disabled",!0).parent().addClass("ui-disabled")},enable:function(){this.element.prop("disabled",!1).parent().removeClass("ui-disabled")}}),a.mobile.$document.bind("pagecreate create",function(b){a.mobile.checkboxradio.prototype.enhanceWithin(b.target,!0)})}(a),function(a,b){a.widget("mobile.button",a.mobile.widget,{options:{theme:null,icon:null,iconpos:null,corners:!0,shadow:!0,iconshadow:!0,initSelector:"button, [type='button'], [type='submit'], [type='reset']"},_create:function(){var c=this.element,d,e=this.options,f,g,h=e.inline||a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"inline"),i=e.mini||a.mobile.getAttrFixed(c[0],"data-"+a.mobile.ns+"mini"),j="",k;if(c[0].tagName==="A"){c.hasClass("ui-btn")||c.buttonMarkup();return}this.options.theme||(this.options.theme=a.mobile.getInheritedTheme(this.element,"c")),!~c[0].className.indexOf("ui-btn-left")||(j="ui-btn-left"),!~c[0].className.indexOf("ui-btn-right")||(j="ui-btn-right");if(c.attr("type")==="submit"||c.attr("type")==="reset")j?j+=" ui-submit":j="ui-submit";a("label[for='"+c.attr("id")+"']").addClass("ui-submit"),this.button=a("<div></div>")[c.html()?"html":"text"](c.html()||c.val()).insertBefore(c).buttonMarkup({theme:e.theme,icon:e.icon,iconpos:e.iconpos,inline:h,corners:e.corners,shadow:e.shadow,iconshadow:e.iconshadow,mini:i}).addClass(j).append(c.addClass("ui-btn-hidden")),d=this.button,f=c.attr("type"),g=c.attr("name"),f!=="button"&&f!=="reset"&&g&&c.bind("vclick",function(){k===b&&(k=a("<input>",{type:"hidden",name:c.attr("name"),value:c.attr("value")}).insertBefore(c),a.mobile.$document.one("submit",function(){k.remove(),k=b}))}),c.bind({focus:function(){d.addClass(a.mobile.focusClass)},blur:function(){d.removeClass(a.mobile.focusClass)}}),this.refresh()},enable:function(){return this.element.attr("disabled",!1),this.button.removeClass("ui-disabled").attr("aria-disabled",!1),this._setOption("disabled",!1)},disable:function(){return this.element.attr("disabled",!0),this.button.addClass("ui-disabled").attr("aria-disabled",!0),this._setOption("disabled",!0)},refresh:function(){var b=this.element;b.prop("disabled")?this.disable():this.enable(),a(this.button.data("buttonElements").text)[b.html()?"html":"text"](b.html()||b.val())}}),a.mobile.$document.bind("pagecreate create",function(b){a.mobile.button.prototype.enhanceWithin(b.target,!0)})}(a),function(a,b){a.fn.controlgroup=function(b){function c(a,b){a.removeClass("ui-btn-corner-all ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-controlgroup-last ui-shadow").eq(0).addClass(b[0]).end().last().addClass(b[1]).addClass("ui-controlgroup-last")}return this.each(function(){var d=a(this),e=a.extend({direction:a.mobile.getAttrFixed(d[0],"data-"+a.mobile.ns+"type")||"vertical",shadow:!1,excludeInvisible:!0,mini:a.mobile.getAttrFixed(d[0],"data-"+a.mobile.ns+"mini")},b),f=d.children("legend"),g=d.children(".ui-controlgroup-label"),h=d.children(".ui-controlgroup-controls"),i=e.direction==="horizontal"?["ui-corner-left","ui-corner-right"]:["ui-corner-top","ui-corner-bottom"],j=d.find("input").first().attr("type");h.length&&h.contents().unwrap(),d.wrapInner("<div class='ui-controlgroup-controls'></div>"),f.length?(a("<div role='heading' class='ui-controlgroup-label'>"+f.html()+"</div>").insertBefore(d.children(0)),f.remove()):g.length&&d.prepend(g),d.addClass("ui-corner-all ui-controlgroup ui-controlgroup-"+e.direction),c(d.find(".ui-btn"+(e.excludeInvisible?":visible":"")).not(".ui-slider-handle"),i),c(d.find(".ui-btn-inner"),i),e.shadow&&d.addClass("ui-shadow"),e.mini&&d.addClass("ui-mini")})}}(a),function(a,b){a.mobile.$document.bind("pagecreate create",function(b){a(b.target).find("a").jqmEnhanceable().not(".ui-btn, .ui-link-inherit, :jqmData(role='none'), :jqmData(role='nojs')").addClass("ui-link")})}(a),function(a,d){function e(a,b,c,d){var e=d;return a<b?e=c+(a-b)/2:e=Math.min(Math.max(c,d-b/2),c+a-b),e}function f(){var c=a.mobile.$window;return{x:c.scrollLeft(),y:c.scrollTop(),cx:b.innerWidth||c.width(),cy:b.innerHeight||c.height()}}a.widget("mobile.popup",a.mobile.widget,{options:{theme:null,overlayTheme:null,shadow:!0,corners:!0,transition:"pop",positionTo:"origin",tolerance:null,initSelector:":jqmData(role='popup')",closeLinkSelector:"a:jqmData(rel='back')",closeLinkEvents:"click.popup",navigateEvents:"navigate.popup",closeEvents:"navigate.popup pagebeforechange.popup",history:!1},_eatEventAndClose:function(a){return a.preventDefault(),a.stopImmediatePropagation(),this.close(),!1},_resizeScreen:function(){var a=this._ui.container.outerHeight(!0);this._ui.screen.removeAttr("style"),a>this._ui.screen.height()&&this._ui.screen.height(a)},_handleWindowKeyUp:function(b){if(this._isOpen&&b.keyCode===a.mobile.keyCode.ESCAPE)return this._eatEventAndClose(b)},_maybeRefreshTimeout:function(){var b=f();if(this._resizeData){if(b.x===this._resizeData.winCoords.x&&b.y===this._resizeData.winCoords.y&&b.cx===this._resizeData.winCoords.cx&&b.cy===this._resizeData.winCoords.cy)return!1;clearTimeout(this._resizeData.timeoutId)}return this._resizeData={timeoutId:setTimeout(a.proxy(this,"_resizeTimeout"),200),winCoords:b},!0},_resizeTimeout:function(){!this._maybeRefreshTimeout()&&this.positionTo==="window"&&(this._trigger("beforeposition"),this._ui.container.removeClass("ui-selectmenu-hidden").offset(this._placementCoords(this._desiredCoords(d,d,"window"))),this._resizeScreen(),this._resizeData=null,this._orientationchangeInProgress=!1)},_handleWindowResize:function(a){if(this._isOpen){if(this.positionTo!=="window")return this.close(),!1;this._maybeRefreshTimeout()}},_handleWindowOrientationchange:function(a){this._orientationchangeInProgress||(this._ui.container.addClass("ui-selectmenu-hidden").removeAttr("style"),this._orientationchangeInProgress=!0)},_create:function(){var b={screen:a("<div class='ui-screen-hidden ui-popup-screen'></div>"),placeholder:a("<div style='display: none;'><!-- placeholder --></div>"),container:a("<div class='ui-popup-container ui-selectmenu-hidden'></div>"),arrow:a("<div class='ui-arrow'></div>")},c=this.element.closest(".ui-page"),e=this.element.attr("id"),f=this;this.options.history=this.options.history&&a.mobile.ajaxEnabled&&a.mobile.hashListeningEnabled,c.length===0&&(c=a("body")),this.options.container=this.options.container||a.mobile.pageContainer,c.append(b.screen),b.container.insertAfter(b.screen),b.placeholder.insertAfter(this.element),e&&(b.screen.attr("id",e+"-screen"),b.container.attr("id",e+"-popup"),b.placeholder.html("<!-- placeholder for "+e+" -->")),b.container.append(this.element),b.container.append(b.arrow),this.element.addClass("ui-popup"),a.extend(this,{_page:c,_ui:b,_fallbackTransition:"",_currentTransition:!1,_prereqs:null,_isOpen:!1,_tolerance:null,_resizeData:null,_orientationchangeInProgress:!1,_globalHandlers:[{src:a.mobile.$window,handler:{orientationchange:a.proxy(this,"_handleWindowOrientationchange"),resize:a.proxy(this,"_handleWindowResize"),keyup:a.proxy(this,"_handleWindowKeyUp")}}]}),a.each(this.options,function(a,b){f.options[a]=d,f._setOption(a,b,!0)}),b.screen.bind("vclick",a.proxy(this,"_eatEventAndClose")),a.each(this._globalHandlers,function(a,b){b.src.bind(b.handler)})},_applyTheme:function(a,b,c){var d=(a.attr("class")||"").split(" "),e=!0,f=null,g,h=String(b);while(d.length>0){f=d.pop(),g=(new RegExp("^ui-"+c+"-([a-z])$")).exec(f);if(g&&g.length>1){f=g[1];break}f=null}b!==f&&(a.removeClass("ui-"+c+"-"+f),b!==null&&b!=="none"&&a.addClass("ui-"+c+"-"+h))},_setTheme:function(a){this._applyTheme(this.element,a,"body")},_setOverlayTheme:function(a){this._applyTheme(this._ui.screen,a,"overlay"),this._isOpen&&this._ui.screen.addClass("in")},_setShadow:function(a){this.element.toggleClass("ui-overlay-shadow",a)},_setCorners:function(a){this.element.toggleClass("ui-corner-all",a)},_applyTransition:function(b){this._ui.container.removeClass(this._fallbackTransition),b&&b!=="none"&&(this._fallbackTransition=a.mobile._maybeDegradeTransition(b),this._ui.container.addClass(this._fallbackTransition))},_setTransition:function(a){this._currentTransition||this._applyTransition(a)},_setTolerance:function(b){var c={t:5,r:5,b:5,l:5};if(b){var d=String(b).split(",");a.each(d,function(a,b){d[a]=parseInt(b,10)});switch(d.length){case 1:isNaN(d[0])||(c.t=c.r=c.b=c.l=d[0]);break;case 2:isNaN(d[0])||(c.t=c.b=d[0]),isNaN(d[1])||(c.l=c.r=d[1]);break;case 4:isNaN(d[0])||(c.t=d[0]),isNaN(d[1])||(c.r=d[1]),isNaN(d[2])||(c.b=d[2]),isNaN(d[3])||(c.l=d[3]);break;default:}}this._tolerance=c},_setOption:function(b,c){var e,f="_set"+b.charAt(0).toUpperCase()+b.slice(1);this[f]!==d&&this[f](c),e=["initSelector","closeLinkSelector","closeLinkEvents","navigateEvents","closeEvents","history","container"],a.mobile.widget.prototype._setOption.apply(this,arguments),a.inArray(b,e)===-1&&this.element.attr("data-"+(a.mobile.ns||"")+b.replace(/([A-Z])/,"-$1").toLowerCase(),c)},_placementCoords:function(d){var g=f(),h={x:this._tolerance.l,y:g.y+this._tolerance.t,cx:g.cx-this._tolerance.l-this._tolerance.r,cy:g.cy-this._tolerance.t-this._tolerance.b},i,j,k=a(this.link).offset(),l=[],m=[0,0],n;this._ui.container.css("max-width",h.cx),i={cx:this._ui.container.outerWidth(!0),cy:this._ui.container.outerHeight(!0)},j={x:e(h.cx,i.cx,h.x,d.x),y:e(h.cy,i.cy,h.y,d.y)},j.y=Math.max(0,j.y);var o=c.documentElement,p=c.body,q=Math.max(o.clientHeight,p.scrollHeight,p.offsetHeight,o.scrollHeight,o.offsetHeight);j.y-=Math.min(j.y,Math.max(0,j.y+i.cy-q));if(this.positionTo!=="origin")return{left:j.x,top:j.y,arrowleft:0,arrowtop:0};l=[k.left,k.top,o.clientHeight-(k.top+a(this.link).height()),o.clientWidth-(k.left+a(this.link).width())],n=l.indexOf(Math.max.apply(b,l));switch(n){case 0:m=[-a(this.link).width(),0],arrowtop=k.top-j.y+a(this.link).height()/2-parseInt(a(this._ui.arrow).css("border-width")),arrowleft=i.cx,a(this._ui.arrow).attr("class","").addClass("ui-arrow left");break;case 1:m=[0,-(j.y+i.cy-k.top)],arrowtop=i.cy-2,arrowleft=k.left-j.x+m[0]+a(this.link).width()/2-parseInt(a(this._ui.arrow).css("border-width"))/2,a(this._ui.arrow).attr("class","").addClass("ui-arrow bottom");break;case 2:m=[0,k.top+a(this.link).height()-j.y],arrowtop=-parseInt(a(this._ui.arrow).css("border-width"))*2+1,arrowleft=k.left-j.x+m[0]+a(this.link).width()/2-parseInt(a(this._ui.arrow).css("border-width"))/2,a(this._ui.arrow).attr("class","").addClass("ui-arrow top");break;case 3:m=[i.cx<a(this.link).width()?a(this.link).width()/2+i.cx/2:a(this.link).width(),0],arrowtop=k.top-j.y+a(this.link).height()/2-parseInt(a(this._ui.arrow).css("border-width")),arrowleft=-parseInt(a(this._ui.arrow).css("border-width"))*2,a(this._ui.arrow).attr("class","").addClass("ui-arrow right")}return{left:j.x+m[0],top:j.y+m[1],arrowleft:arrowleft,arrowtop:arrowtop}},_createPrereqs:function(b,c,d){var e=this,f;f={screen:a.Deferred(),container:a.Deferred()},f.screen.then(function(){f===e._prereqs&&b()}),f.container.then(function(){f===e._prereqs&&c()}),a.when(f.screen,f.container).done(function(){f===e._prereqs&&(e._prereqs=null,d())}),e._prereqs=f},_animate:function(b){this._ui.screen.removeClass(b.classToRemove).addClass(b.screenClassToAdd),b.prereqs.screen.resolve(),b.transition&&b.transition!=="none"?(b.applyTransition&&this._applyTransition(b.transition),this._ui.container.animationComplete(a.proxy(b.prereqs.container,"resolve")).addClass(b.containerClassToAdd).removeClass(b.classToRemove)):b.prereqs.container.resolve()},_desiredCoords:function(b,c,d){var e=null,g,h=f();if(d&&d!=="origin")if(d==="window")b=h.cx/2+h.x,c=h.cy/2+h.y;else{try{e=a(d)}catch(i){e=null}e&&(e.filter(":visible"),e.length===0&&(e=null))}e&&(g=e.offset(),b=g.left+e.outerWidth()/2,c=g.top+e.outerHeight()/2);if(a.type(b)!=="number"||isNaN(b))b=h.cx/2+h.x;if(a.type(c)!=="number"||isNaN(c))c=h.cy/2+h.y;return{x:b,y:c}},_openPrereqsComplete:function(){var a=this;a._ui.container.addClass("ui-popup-active"),a._isOpen=!0,a._resizeScreen(),setTimeout(function(){a._ui.container.attr("tabindex","0").focus(),a._trigger("afteropen")})},_open:function(c){var d,e,f=function(){var a=b,c=navigator.userAgent,d=c.match(/AppleWebKit\/([0-9\.]+)/),e=!!d&&d[1],f=c.match(/Android (\d+(?:\.\d+))/),g=!!f&&f[1],h=c.indexOf("Chrome")>-1;return f!==null&&g==="4.0"&&e&&e>534.13&&!h?!0:!1}();c=c||{},e=c.transition||this.options.transition,this._trigger("beforeposition"),d=this._placementCoords(this._desiredCoords(c.x,c.y,c.positionTo||this.options.positionTo||"origin")),this._createPrereqs(a.noop,a.noop,a.proxy(this,"_openPrereqsComplete")),e?(this._currentTransition=e,this._applyTransition(e)):e=this.options.transition,this.options.theme||this._setTheme(this._page.jqmData("theme")||a.mobile.getInheritedTheme(this._page,"c")),this._ui.screen.removeClass("ui-screen-hidden"),this._ui.container.removeClass("ui-selectmenu-hidden").offset(d),this._ui.arrow.css({top:d.arrowtop,left:d.arrowleft}),this.options.overlayTheme&&f&&this.element.closest(".ui-page").addClass("ui-popup-open"),this._animate({additionalCondition:!0,transition:e,classToRemove:"",screenClassToAdd:"in",containerClassToAdd:"in",applyTransition:!1,prereqs:this._prereqs})},_closePrereqScreen:function(){this._ui.screen.removeClass("out").addClass("ui-screen-hidden")},_closePrereqContainer:function(){this._ui.container.removeClass("reverse out").addClass("ui-selectmenu-hidden").removeAttr("style")},_closePrereqsDone:function(){var b=this,c=b.options;b._ui.container.removeAttr("tabindex"),c.container.unbind(c.closeEvents),b.element.undelegate(c.closeLinkSelector,c.closeLinkEvents),a.mobile.popup.active=d,b._trigger("afterclose")},_close:function(){this._ui.container.removeClass("ui-popup-active"),this._page.removeClass("ui-popup-open"),this._isOpen=!1,this.element.find("input").blur(),this._createPrereqs(a.proxy(this,"_closePrereqScreen"),a.proxy(this,"_closePrereqContainer"),a.proxy(this,"_closePrereqsDone")),this._animate({additionalCondition:this._ui.screen.hasClass("in"),transition:this._currentTransition||this.options.transition,classToRemove:"in",screenClassToAdd:"out",containerClassToAdd:"reverse out",applyTransition:!0,prereqs:this._prereqs})},_destroy:function(){var b=this;b._close(),b._setTheme("none"),b.element.insertAfter(b._ui.placeholder).removeClass("ui-popup ui-overlay-shadow ui-corner-all"),b._ui.screen.remove(),b._ui.container.remove(),b._ui.placeholder.remove(),a.each(b._globalHandlers,function(b,c){a.each(c.handler,function(a,b){c.src.unbind(a,b)})})},_bindContainerClose:function(){var b=this;b.options.container.one(b.options.closeEvents,a.proxy(b._close,b))},open:function(b){var c=this,e=this.options,f,g,h,i,j,k;if(a.mobile.popup.active)return;a.mobile.popup.active=this,b||(b=[]),b.link?c.link=b.link:event?c.link=a(event.target).closest("a")[0]||a(event.target).closest("div")[0]:c.positionTo="window",event&&(c.positionTo=b!=null&&b.positionTo!=null?b.positionTo:"origin"),a(c.link).jqmData("position-to")!=="window"&&c.positionTo!=="window"?(a(c.element).addClass("ui-ctxpopup"),a(c._ui.container).removeClass("ui-popup-container").addClass("ui-ctxpopup-container"),c.positionTo!=="origin"?a(c._ui.arrow).hide():a(c._ui.arrow).show()):(a(c._ui.arrow).hide(),this._setOverlayTheme("dim")),!b.x&&c.positionTo==="origin"&&(b.x=a(c.link).offset().left+a(c.link).outerWidth()/2),!b.y&&c.positionTo==="origin"&&(b.y=a(c.link).offset().top+a(c.link).outerHeight()/2);if(!e.history){c._open(b),c._bindContainerClose(),c.element.delegate(e.closeLinkSelector,e.closeLinkEvents,function(a){return c._close(),!1});return}g=a.mobile.dialogHashKey,h=a.mobile.activePage,i=h.is(".ui-dialog"),f=a.mobile.urlHistory.getActive().url,j=f.indexOf(g)>-1&&!i,k=a.mobile.urlHistory;if(j){c._open(b),c._bindContainerClose();return}f.indexOf(g)===-1&&!i?f+=g:f=a.mobile.path.parseLocation().hash+g,k.activeIndex===0&&f===k.initialDst&&(f+=g),e.container.one(e.navigateEvents,function(a){a.preventDefault(),c._open(b),c._bindContainerClose()}),k.ignoreNextHashChange=i,k.addNew(f,d,d,d,"dialog"),a.mobile.path.set(f)},close:function(){if(!a.mobile.popup.active)return;this.options.history?a.mobile.back():this._close()}}),a.mobile.popup.handleLink=function(b){var c=b.closest(":jqmData(role='page')"),d=c.length===0?a("body"):c,e=a(a.mobile.path.parseUrl(b.attr("href")).hash,d[0]),f;e.data("popup")&&(f=b.offset(),e.popup("open",{x:f.left+b.outerWidth()/2,y:f.top+b.outerHeight()/2,transition:a.mobile.getAttrFixed(b[0],"data-"+a.mobile.ns+"transition"),positionTo:a.mobile.getAttrFixed(b[0],"data-"+a.mobile.ns+"position-to"),link:b})),setTimeout(function(){b.removeClass(a.mobile.activeBtnClass)},300)},a.mobile.$document.bind("pagebeforechange",function(b,c){c.options.role==="popup"&&(a.mobile.popup.handleLink(c.options.link),b.preventDefault())}),a.mobile.$document.bind("pagecreate create",function(b){a.mobile.popup.prototype.enhanceWithin(b.target,!0)})}(a),function(a){var b=a("meta[name=viewport]"),c=b.attr("content"),d=c+",maximum-scale=1, user-scalable=no",e=c+",maximum-scale=10, user-scalable=yes",f=/(user-scalable[\s]*=[\s]*no)|(maximum-scale[\s]*=[\s]*1)[$,\s]/.test(c);a.mobile.zoom=a.extend({},{enabled:!f,locked:!1,disable:function(c){!f&&!a.mobile.zoom.locked&&(b.attr("content",d),a.mobile.zoom.enabled=!1,a.mobile.zoom.locked=c||!1)},enable:function(c){!f&&(!a.mobile.zoom.locked||c===!0)&&(b.attr("content",e),a.mobile.zoom.enabled=!0,a.mobile.zoom.locked=!1)},restore:function(){f||(b.attr("content",c),a.mobile.zoom.enabled=!0)}})}(a),function(a,c){a.widget("mobile.textinput",a.mobile.widget,{options:{theme:null,preventFocusZoom:/iPhone|iPad|iPod/.test(navigator.platform)&&navigator.userAgent.indexOf("AppleWebKit")>-1,initSelector:"input[type='text'], 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])",disabled:!1},_create:function(){function l(){setTimeout(function(){k.toggleClass("ui-input-clear-hidden",!d.val())},0)}var c=this,d=this.element,e=this.options,f=e.theme||a.mobile.getInheritedTheme(this.element,"c"),g=" ui-body-"+f,h=a.mobile.getAttrFixed(d[0],"data-"+a.mobile.ns+"mini")===!0,i=h?" ui-mini":"",j,k;a("label[for='"+d.attr("id")+"']").addClass("ui-input-text"),j=d.addClass("ui-input-text ui-body-"+f);switch(d.attr("type")){case"text":case"password":case"number":case"email":case"url":case"tel":d.attr({role:"textbox","aria-label":"Keyboard opened"});break;default:d.prop("tagName").toLowerCase()==="textarea"&&d.attr({role:"textbox","aria-label":"Keyboard opened"})}typeof d[0].autocorrect!="undefined"&&!a.support.touchOverflow&&(d[0].setAttribute("autocorrect","off"),d[0].setAttribute("autocomplete","off")),d.focus(function(){j.addClass(a.mobile.focusClass)}).blur(function(){j.removeClass(a.mobile.focusClass)}).bind("focus",function(){e.preventFocusZoom&&a.mobile.zoom.disable(!0)}).bind("blur",function(){e.preventFocusZoom&&a.mobile.zoom.enable(!0)});if(d.is("textarea")){var m=15,n=100,o;this._keyup=function(){var a=d[0].scrollHeight,c=d[0].clientHeight;c<a&&b.innerHeight/2>a&&d.height(a+m)},d.keyup(function(){clearTimeout(o),o=setTimeout(c._keyup,n)}),this._on(a.mobile.$document,{pagechange:"_keyup"}),a.trim(d.val())&&this._on(a.mobile.$window,{load:"_keyup"})}d.attr("disabled")&&this.disable()},disable:function(){var a;if(!this.element.attr("disabled",!0))return;return a=this.element,a.addClass("ui-disabled"),this._setOption("disabled",!0)},enable:function(){var a;if(!this.element.attr("disabled",!1))return;return a=this.element,a.removeClass("ui-disabled"),this._setOption("disabled",!1)}}),a.mobile.$document.bind("pagecreate create",function(b){a.mobile.textinput.prototype.enhanceWithin(b.target,!0)})}(a),function(a,b){a.mobile.listview.prototype.options.filter=!1,a.mobile.listview.prototype.options.filterPlaceholder="",a.mobile.listview.prototype.options.filterTheme="c";var c=function(a,b,c){return a.toString().toLowerCase().indexOf(b)===-1};a.mobile.listview.prototype.options.filterCallback=c,a.mobile.$document.delegate(":jqmData(role='listview')","listviewcreate",function(){var b=a(this),d=b.data("listview");if(!d.options.filter)return;var e=a("<form>",{"class":"ui-listview-filter ui-bar-"+d.options.filterTheme,role:"search"}),f=a("<input>",{placeholder:d.options.filterPlaceholder}).attr("data-"+a.mobile.ns+"type","search").jqmData("lastval","").bind("keyup change",function(){var e=a(this),f=this.value.toLowerCase(),g=null,h=e.jqmData("lastval")+"",i=!1,j="",k,l=d.options.filterCallback!==c;d._trigger("beforefilter","beforefilter",{input:this}),e.jqmData("lastval",f),l||f.length<h.length||f.indexOf(h)!==0?g=b.children():g=b.children(":not(.ui-screen-hidden)");if(f){for(var m=g.length-1;m>=0;m--)k=a(g[m]),j=a.mobile.getAttrFixed(k[0],"data-"+a.mobile.ns+"filtertext")||k.text(),k.is("li:jqmData(role=list-divider)")?(k.toggleClass("ui-filter-hidequeue",!i),i=!1):d.options.filterCallback(j,f,k)?k.toggleClass("ui-filter-hidequeue",!0):i=!0;g.filter(":not(.ui-filter-hidequeue)").toggleClass("ui-screen-hidden",!1),g.filter(".ui-filter-hidequeue").toggleClass("ui-screen-hidden",!0).toggleClass("ui-filter-hidequeue",!1)}else g.toggleClass("ui-screen-hidden",!1);d._refreshCorners()}).appendTo(e).textinput();d.options.inset&&e.addClass("ui-listview-filter-inset"),e.bind("submit",function(){return!1}).insertBefore(b)})}(a),function(a,d){a.widget("mobile.slider",a.mobile.widget,{widgetEventPrefix:"slide",options:{theme:null,trackTheme:null,disabled:!1,initSelector:"input[type='range'], :jqmData(type='range'), :jqmData(role='slider')",mini:!1},_create:function(){var e=this,f=this.element,g=a.mobile.getInheritedTheme(f,"c"),h=this.options.theme||g,i=this.options.trackTheme||g,j=f[0].nodeName.toLowerCase(),k=j==="select"?"ui-slider-switch"
+:"",l=f.attr("id"),m=a("[for='"+l+"']"),n=m.attr("id")||l+"-label",o=m.attr("id",n),p=function(){return j==="input"?parseFloat(f.val()):f[0].selectedIndex},q=j==="input"?parseFloat(f.attr("min")):0,r=j==="input"?parseFloat(f.attr("max")):f.find("option").length-1,s=b.parseFloat(f.attr("step")||1),t=this.options.inline||a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"inline")===!0?" ui-slider-inline":"",u=this.options.mini||a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"min")?" ui-slider-mini":"",v=c.createElement("a"),w=a(v),x=c.createElement("div"),y=a(x),z=a.mobile.getAttrFixed(f[0],"data-"+a.mobile.ns+"highlight")!==!1&&j!=="select"?function(){var b=c.createElement("div");return b.className="ui-slider-bg "+a.mobile.activeBtnClass+" ui-btn-corner-all",a(b).prependTo(y)}():!1,A;this._type=j,v.setAttribute("href","#"),x.setAttribute("role","application"),x.className=["ui-slider ",k," ui-btn-down-",i," ui-btn-corner-all",t,u].join(""),v.className="ui-slider-handle",x.appendChild(v),a(f).find("option").length&&a(f).find("option").text()===""&&a(x).addClass("ui-toggle-switch"),w.buttonMarkup({corners:!0,theme:h,shadow:!0}).attr({role:"slider","aria-valuemin":q,"aria-valuemax":r,"aria-valuenow":p(),"aria-valuetext":p(),title:p(),"aria-labelledby":n}),a.extend(this,{slider:y,handle:w,valuebg:z,dragging:!1,beforeStart:null,userModified:!1,mouseMoved:!1});if(j==="select"){var B=c.createElement("div");B.className="ui-slider-inneroffset";for(var C=0,D=x.childNodes.length;C<D;C++)B.appendChild(x.childNodes[C]);x.appendChild(B),w.addClass("ui-slider-handle-snapping"),A=f.find("option");for(var E=0,F=A.length;E<F;E++){var G=E?"a":"b",H=E?" "+a.mobile.activeBtnClass:" ui-btn-down-"+i,I=c.createElement("div"),J=c.createElement("span");J.className=["ui-slider-label ui-slider-label-",G,H," ui-btn-corner-all"].join(""),J.setAttribute("role","img"),J.appendChild(c.createTextNode(A[E].innerHTML)),a(J).html()?a(J).html(a(J).text()):a(J).html(),a(J).prependTo(y)}e._labels=a(".ui-slider-label",y)}o.addClass("ui-slider"),f.addClass(j==="input"?"ui-slider-input":"ui-slider-switch").change(function(){e.mouseMoved||e.refresh(p(),!0)}).keyup(function(){e.refresh(p(),!0,!0)}).blur(function(){e.refresh(p(),!0)}),this._preventDocumentDrag=function(a){if(e.dragging&&!e.options.disabled)return e.mouseMoved=!0,j==="select"&&w.removeClass("ui-slider-handle-snapping"),e.refresh(a),e.userModified=e.beforeStart!==f[0].selectedIndex,!1},this._on(a.mobile.$document,{vmousemove:this._preventDocumentDrag}),f.bind("vmouseup",a.proxy(e._checkedRefresh,e)),y.bind("vmousedown",function(a){return e.options.disabled?!1:(e.dragging=!0,e.userModified=!1,e.mouseMoved=!1,j==="select"&&(e.beforeStart=f[0].selectedIndex),e.refresh(a),e._trigger("start"),!1)}).bind("vclick",!1),this._sliderMouseUp=function(){if(e.dragging)return e.dragging=!1,j==="select"&&(w.addClass("ui-slider-handle-snapping"),e.mouseMoved?e.userModified?e.refresh(e.beforeStart===0?1:0):e.refresh(e.beforeStart):e.refresh(e.beforeStart===0?1:0)),e.mouseMoved=!1,e._trigger("stop"),!1},this._on(y.add(c),{vmouseup:this._sliderMouseUp}),y.insertAfter(f),j==="select"&&this.handle.bind({focus:function(){y.addClass(a.mobile.focusClass)},blur:function(){y.removeClass(a.mobile.focusClass)}}),this.handle.bind({vmousedown:function(){a(this).focus()},vclick:!1,keydown:function(b){var c=p();if(e.options.disabled)return;switch(b.keyCode){case a.mobile.keyCode.HOME:case a.mobile.keyCode.END:case a.mobile.keyCode.PAGE_UP:case a.mobile.keyCode.PAGE_DOWN:case a.mobile.keyCode.UP:case a.mobile.keyCode.RIGHT:case a.mobile.keyCode.DOWN:case a.mobile.keyCode.LEFT:b.preventDefault(),e._keySliding||(e._keySliding=!0,a(this).addClass("ui-state-active"))}switch(b.keyCode){case a.mobile.keyCode.HOME:e.refresh(q);break;case a.mobile.keyCode.END:e.refresh(r);break;case a.mobile.keyCode.PAGE_UP:case a.mobile.keyCode.UP:case a.mobile.keyCode.RIGHT:e.refresh(c+s);break;case a.mobile.keyCode.PAGE_DOWN:case a.mobile.keyCode.DOWN:case a.mobile.keyCode.LEFT:e.refresh(c-s)}},keyup:function(b){e._keySliding&&(e._keySliding=!1,a(this).removeClass("ui-state-active"))}}),this.refresh(d,d,!0)},_checkedRefresh:function(){this.value!=this._value()&&this.refresh(this._value())},_value:function(){return this._type==="input"?parseFloat(this.element.val()):this.element[0].selectedIndex},refresh:function(b,c,d){var e=!1,f;a(this.handle).parents().is(".ui-toggle-switch")&&(e=!0),(this.options.disabled||this.element.attr("disabled"))&&this.disable(),this.value=this._value();var g=this.element,h,i=g[0].nodeName.toLowerCase(),j=i==="input"?parseFloat(g.attr("min")):0,k=i==="input"?parseFloat(g.attr("max")):g.find("option").length-1,l=i==="input"&&parseFloat(g.attr("step"))>0?parseFloat(g.attr("step")):1;if(typeof b=="object"){var m=b,n=8;if(!this.dragging||m.pageX<this.slider.offset().left-n||m.pageX>this.slider.offset().left+this.slider.width()+n)return;h=Math.round((m.pageX-this.slider.offset().left)/this.slider.width()*100)}else b==null&&(b=i==="input"?parseFloat(g.val()||0):g[0].selectedIndex),h=(parseFloat(b)-j)/(k-j)*100;if(isNaN(h))return;h<0&&(h=0),h>100&&(h=100);var o=h/100*(k-j)+j,p=(o-j)%l,q=o-p;Math.abs(p)*2>=l&&(q+=p>0?l:-l),o=parseFloat(q.toFixed(5)),o<j&&(o=j),o>k&&(o=k),this.handle.css("left",h+"%"),this.handle.attr({"aria-valuenow":i==="input"?o:g.find("option").eq(o).attr("value"),"aria-valuetext":i==="input"?o:g.find("option").eq(o).getEncodedText(),title:i==="input"?o:g.find("option").eq(o).getEncodedText()}),e||this.valuebg&&this.valuebg.css("width",h+"%");if(e)f=a(this.handle).parents(".ui-slider"),a(this.handle).attr("aria-valuenow")==="on"?(f.children("span.ui-slider-label-a").show(),f.children("span.ui-slider-label-b").hide()):(f.children("span.ui-slider-label-b").show(),f.children("span.ui-slider-label-a").hide());else if(this._labels){var r=this.handle.width()/this.slider.width()*100,s=h&&r+(100-r)*h/100,t=h===100?0:Math.min(r+100-s,100);this._labels.each(function(){var b=a(this).is(".ui-slider-label-a");a(this).width((b?s:t)+"%")})}if(!d){var u=!1;i==="input"?(u=g.val()!==o,g.val(o)):(u=g[0].selectedIndex!==o,g[0].selectedIndex=o),!c&&u&&g.trigger("change")}},enable:function(){return this.element.attr("disabled",!1),this.slider.removeClass("ui-disabled").attr("aria-disabled",!1),this._setOption("disabled",!1)},disable:function(){return this.element.attr("disabled",!0),this.slider.addClass("ui-disabled").attr("aria-disabled",!0),this._setOption("disabled",!0)}}),a.mobile.$document.bind("pagecreate create",function(b){a.mobile.slider.prototype.enhanceWithin(b.target,!0)})}(a),function(a,d){a.widget("mobile.selectmenu",a.mobile.widget,{options:{theme:null,disabled:!1,icon:"arrow-d",iconpos:"right",inline:!1,corners:!0,shadow:!0,iconshadow:!0,overlayTheme:"a",hidePlaceholderMenuItems:!0,closeText:"Close",nativeMenu:!0,preventFocusZoom:/iPhone|iPad|iPod/.test(navigator.platform)&&navigator.userAgent.indexOf("AppleWebKit")>-1,initSelector:"select:not( :jqmData(role='slider') )",mini:!1},_button:function(){return a("<div/>")},_setDisabled:function(a){return this.element.attr("disabled",a),this.button.attr("aria-disabled",a),this._setOption("disabled",a)},_focusButton:function(){var a=this;setTimeout(function(){a.button.focus()},40)},_selectOptions:function(){return this.select.find("option")},_preExtension:function(){var b="";!~this.element[0].className.indexOf("ui-btn-left")||(b=" ui-btn-left"),!~this.element[0].className.indexOf("ui-btn-right")||(b=" ui-btn-right"),this.select=this.element.wrap("<div class='ui-select"+b+"'>"),this.selectID=this.select.attr("id"),this.label=a("label[for='"+this.selectID+"']").addClass("ui-select"),this.isMultiple=this.select[0].multiple,this.options.theme||(this.options.theme=a.mobile.getInheritedTheme(this.select,"c"))},_create:function(){this._preExtension(),this._trigger("beforeCreate"),this.button=this._button();var c=this,d=this.options,e=d.inline||a.mobile.getAttrFixed(this.select[0],"data-"+a.mobile.ns+"inline"),f=d.mini||a.mobile.getAttrFixed(this.select[0],"data-"+a.mobile.ns+"mini"),g=d.icon?d.iconpos||a.mobile.getAttrFixed(this.select[0],"data-"+a.mobile.ns+"iconpos"):!1,h=this.select[0].selectedIndex===-1?0:this.select[0].selectedIndex,i=this.button.insertBefore(this.select).buttonMarkup({theme:d.theme,icon:d.icon,iconpos:g,inline:e,corners:d.corners,shadow:d.shadow,iconshadow:d.iconshadow,mini:f});this.setButtonText(),i.children(".ui-btn-inner").removeClass("ui-btn-icon-only"),d.nativeMenu&&b.opera&&b.opera.version&&i.addClass("ui-select-nativeonly"),this.isMultiple&&(this.buttonCount=a("<span>").addClass("ui-li-count ui-btn-up-c ui-btn-corner-all").hide().appendTo(i.addClass("ui-li-has-count"))),(d.disabled||this.element.attr("disabled"))&&this.disable(),this.select.change(function(){c.refresh()}),this.build()},build:function(){var b=this;this.select.appendTo(b.button).bind("vmousedown",function(){b.button.addClass(a.mobile.activeBtnClass)}).bind("focus",function(){b.button.addClass(a.mobile.focusClass)}).bind("blur",function(){b.button.removeClass(a.mobile.focusClass)}).bind("focus vmouseover",function(){b.button.trigger("vmouseover")}).bind("vmousemove",function(){b.button.removeClass(a.mobile.activeBtnClass)}).bind("change blur vmouseout",function(){b.button.trigger("vmouseout").removeClass(a.mobile.activeBtnClass)}).bind("change blur",function(){b.button.removeClass("ui-btn-down-"+b.options.theme)}),b.button.bind("vmousedown",function(){b.options.preventFocusZoom&&a.mobile.zoom.disable(!0)}).bind("mouseup",function(){b.options.preventFocusZoom&&setTimeout(function(){a.mobile.zoom.enable(!0)},0)})},selected:function(){return this._selectOptions().filter(":selected")},selectedIndices:function(){var a=this;return this.selected().map(function(){return a._selectOptions().index(this)}).get()},setButtonText:function(){var b=this,d=this.selected(),e=this.placeholder,f=a(c.createElement("span"));this.button.find(".ui-btn-text").html(function(){return d.length?e=d.map(function(){return a(this).text()}).get().join(", "):e=b.placeholder,f.text(e).addClass(b.select.attr("class")).addClass(d.attr("class"))})},setButtonCount:function(){var a=this.selected();this.isMultiple&&this.buttonCount[a.length>1?"show":"hide"]().text(a.length)},refresh:function(){this.setButtonText(),this.setButtonCount()},open:a.noop,close:a.noop,disable:function(){this._setDisabled(!0),this.button.addClass("ui-disabled")},enable:function(){this._setDisabled(!1),this.button.removeClass("ui-disabled")}}),a.mobile.$document.bind("pagecreate create",function(b){a.mobile.selectmenu.prototype.enhanceWithin(b.target,!0)})}(a),function(a,b){var d=function(b){var d=b.select,e=b.selectID,f=b.label,g=b.select.closest(".ui-page"),h=b._selectOptions(),i=b.isMultiple=b.select[0].multiple,j=e+"-button",k=e+"-menu",l=a("<div data-"+a.mobile.ns+"role='dialog' data-"+a.mobile.ns+"theme='"+b.options.theme+"' data-"+a.mobile.ns+"overlay-theme='"+b.options.overlayTheme+"'>"+"<div data-"+a.mobile.ns+"role='header'>"+"<div class='ui-title'>"+f.getEncodedText()+"</div>"+"</div>"+"<div data-"+a.mobile.ns+"role='content'></div>"+"</div>"),m=a("<div>",{"class":"ui-selectmenu"}).insertAfter(b.select).popup({theme:"a"}),n=a("<ul>",{"class":"ui-selectmenu-list",id:k,role:"listbox","aria-labelledby":j}).attr("data-"+a.mobile.ns+"theme",b.options.theme).appendTo(m),o=a("<div>",{"class":"ui-header ui-bar-"+b.options.theme}).prependTo(m),p=a("<h1>",{"class":"ui-title"}).appendTo(o),q,r,s;b.isMultiple&&(s=a("<a>",{text:b.options.closeText,href:"#","class":"ui-btn-left"}).attr("data-"+a.mobile.ns+"iconpos","notext").attr("data-"+a.mobile.ns+"icon","delete").appendTo(o).buttonMarkup()),a.extend(b,{select:b.select,selectID:e,buttonId:j,menuId:k,thisPage:g,menuPage:l,label:f,selectOptions:h,isMultiple:i,theme:b.options.theme,listbox:m,list:n,header:o,headerTitle:p,headerClose:s,menuPageContent:q,menuPageClose:r,placeholder:"",build:function(){var c=this;c.refresh(),c.select.attr("tabindex","-1").focus(function(){a(this).blur(),c.button.focus()}),c.button.bind("vclick keydown",function(b){if(b.type==="vclick"||b.keyCode&&(b.keyCode===a.mobile.keyCode.ENTER||b.keyCode===a.mobile.keyCode.SPACE))c.open(),b.preventDefault()}),c.list.attr("role","listbox").bind("focusin",function(b){a(b.target).attr("tabindex","0").trigger("vmouseover")}).bind("focusout",function(b){a(b.target).attr("tabindex","-1").trigger("vmouseout")}).delegate("li:not(.ui-disabled, .ui-li-divider)","click",function(d){var e=c.select[0].selectedIndex,f=c.list.find("li:not(.ui-li-divider)").index(this),g=c._selectOptions().eq(f)[0];g.selected=c.isMultiple?!g.selected:!0,c.isMultiple&&a(this).find(".ui-icon").toggleClass("ui-icon-checkbox-on",g.selected).toggleClass("ui-icon-checkbox-off",!g.selected),(c.isMultiple||e!==f)&&c.select.trigger("change"),c.isMultiple?c.list.find("li:not(.ui-li-divider)").eq(f).addClass("ui-btn-down-"+b.options.theme).find("a").first().focus():c.close(),d.preventDefault()}).keydown(function(c){var d=a(c.target),e=d.closest("li"),f,g;switch(c.keyCode){case 38:return f=e.prev().not(".ui-selectmenu-placeholder"),f.is(".ui-li-divider")&&(f=f.prev()),f.length&&(d.blur().attr("tabindex","-1"),f.addClass("ui-btn-down-"+b.options.theme).find("a").first().focus()),!1;case 40:return g=e.next(),g.is(".ui-li-divider")&&(g=g.next()),g.length&&(d.blur().attr("tabindex","-1"),g.addClass("ui-btn-down-"+b.options.theme).find("a").first().focus()),!1;case 13:case 32:return d.trigger("click"),!1}}),c.menuPage.bind("pagehide",function(){c.list.appendTo(c.listbox),c._focusButton(),a.mobile._bindPageRemove.call(c.thisPage)}),c.listbox.bind("popupafterclose",function(a){c.close()}),c.isMultiple&&c.headerClose.click(function(){if(c.menuType==="overlay")return c.close(),!1}),c.thisPage.addDependents(this.menuPage)},_isRebuildRequired:function(){var a=this.list.find("li"),b=this._selectOptions();return b.text()!==a.text()},selected:function(){return this._selectOptions().filter(":selected:not( :jqmData(placeholder='true') )")},refresh:function(b,c){var d=this,e=this.element,f=this.isMultiple,g;(b||this._isRebuildRequired())&&d._buildList(),g=this.selectedIndices(),d.setButtonText(),d.setButtonCount(),d.list.find("li:not(.ui-li-divider)").removeClass(a.mobile.activeBtnClass).attr("aria-selected",!1).each(function(b){if(a.inArray(b,g)>-1){var c=a(this);c.attr("aria-selected",!0),d.isMultiple?c.find(".ui-icon").removeClass("ui-icon-checkbox-off").addClass("ui-icon-checkbox-on"):c.is(".ui-selectmenu-placeholder")?c.next().addClass(a.mobile.activeBtnClass):c.addClass(a.mobile.activeBtnClass)}})},close:function(){if(this.options.disabled||!this.isOpen)return;var b=this;b.menuType==="page"?a.mobile.back():(b.listbox.popup("close"),b.list.appendTo(b.listbox),b._focusButton()),b.isOpen=!1},open:function(){function n(){var d=c.list.find("."+a.mobile.activeBtnClass+" a");d.length===0&&(d=c.list.find("li.ui-btn:not( :jqmData(placeholder='true') ) a")),d.first().focus().closest("li").addClass("ui-btn-down-"+b.options.theme)}if(this.options.disabled)return;var c=this,d=a.mobile.$window,e=c.list.parent(),f=e.outerHeight(),g=e.outerWidth(),h=a("."+a.mobile.activePageClass),i=d.scrollTop(),j=c.button.offset().top,k=d.height(),m=d.width();c.button.addClass(a.mobile.activeBtnClass),setTimeout(function(){c.button.removeClass(a.mobile.activeBtnClass)},300),f>k-80||!a.support.scrollTop?(c.menuPage.appendTo(a.mobile.pageContainer).page(),c.menuPageContent=l.find(".ui-content"),c.menuPageClose=l.find(".ui-header a"),c.thisPage.unbind("pagehide.remove"),i===0&&j>k&&c.thisPage.one("pagehide",function(){a(this).jqmData("lastScroll",j)}),c.menuPage.one("pageshow",function(){n(),c.isOpen=!0}),c.menuType="page",c.menuPageContent.append(c.list),c.menuPage.find("div .ui-title").text(c.label.text()),a.mobile.changePage(c.menuPage,{transition:a.mobile.defaultDialogTransition})):(c.menuType="overlay",c.listbox.one("popupafteropen",n).popup("open",{x:c.button.offset().left+c.button.outerWidth()/2,y:c.button.offset().top+c.button.outerHeight()/2}),c.isOpen=!0)},_buildList:function(){var b=this,d=this.options,e=this.placeholder,f=!0,g=[],h=[],i=b.isMultiple?"checkbox-off":"false";b.list.empty().filter(".ui-listview").listview("destroy");var j=b.select.find("option"),k=j.length,l=this.select[0],m="data-"+a.mobile.ns,n=m+"option-index",o=m+"icon",p=m+"role",q=m+"placeholder",r=c.createDocumentFragment(),s=!1,t;for(var u=0;u<k;u++,s=!1){var v=j[u],w=a(v),x=v.parentNode,y=w.text(),z=c.createElement("a"),A=[];z.setAttribute("href","#"),z.appendChild(c.createTextNode(y));if(x!==l&&x.nodeName.toLowerCase()==="optgroup"){var B=x.getAttribute("label");if(B!==t){var C=c.createElement("li");C.setAttribute(p,"list-divider"),C.setAttribute("role","option"),C.setAttribute("tabindex","-1"),C.appendChild(c.createTextNode(B)),r.appendChild(C),t=B}}f&&(!v.getAttribute("value")||y.length===0||w.jqmData("placeholder"))&&(f=!1,s=!0,v.setAttribute(q,!0),d.hidePlaceholderMenuItems&&A.push("ui-selectmenu-placeholder"),e||(e=b.placeholder=y));var D=c.createElement("li");v.disabled&&(A.push("ui-disabled"),D.setAttribute("aria-disabled",!0)),D.setAttribute(n,u),D.setAttribute(o,i),s&&D.setAttribute(q,!0),D.className=A.join(" "),D.setAttribute("role","option"),z.setAttribute("tabindex","-1"),D.appendChild(z),r.appendChild(D)}b.list[0].appendChild(r),!this.isMultiple&&!e.length?this.header.hide():this.headerTitle.text(this.placeholder),b.list.listview()},_button:function(){return a("<a>",{href:"#",role:"button",id:this.buttonId,"aria-haspopup":"true","aria-owns":this.menuId})}})};a.mobile.$document.bind("selectmenubeforecreate",function(b){var c=a(b.target).data("selectmenu");!c.options.nativeMenu&&c.element.parents(":jqmData(role='popup')").length===0&&d(c)})}(a),function(a,c){a.widget("mobile.fixedtoolbar",a.mobile.widget,{options:{visibleOnPageShow:!0,disablePageZoom:!0,transition:"slide",fullscreen:!1,tapToggle:!0,tapToggleBlacklist:"a, button, input, select, textarea, .ui-header-fixed, .ui-footer-fixed, .ui-popup",hideDuringFocus:"input, textarea, select",updatePagePadding:!0,trackPersistentToolbars:!0,supportBlacklist:function(){var a=b,c=navigator.userAgent,d=navigator.platform,e=c.match(/AppleWebKit\/([0-9]+)/),f=!!e&&e[1],g=c.match(/Fennec\/([0-9]+)/),h=!!g&&g[1],i=c.match(/Opera Mobi\/([0-9]+)/),j=!!i&&i[1];return(d.indexOf("iPhone")>-1||d.indexOf("iPad")>-1||d.indexOf("iPod")>-1)&&f&&f<534||a.operamini&&{}.toString.call(a.operamini)==="[object OperaMini]"||i&&j<7458||c.indexOf("Android")>-1&&f&&f<533||h&&h<6||"palmGetResource"in b&&f&&f<534||c.indexOf("MeeGo")>-1&&c.indexOf("NokiaBrowser/8.5.0")>-1?!0:!1},initSelector:":jqmData(position='dummy')"},_create:function(){var a=this,b=a.options,c=a.element,d=c.is(":jqmData(role='header')")?"header":"footer",e=c.closest(".ui-page");if(b.supportBlacklist()){a.destroy();return}c.addClass("ui-"+d+"-fixed"),b.fullscreen?(c.addClass("ui-"+d+"-fullscreen"),e.addClass("ui-page-"+d+"-fullscreen")):e.addClass("ui-page-"+d+"-fixed"),a._addTransitionClass(),a._bindPageEvents(),a._bindToggleHandlers()},_addTransitionClass:function(){var a=this.options.transition;a&&a!=="none"&&(a==="slide"&&(a=this.element.is(".ui-header")?"slidedown":"slideup"),this.element.addClass(a))},_bindPageEvents:function(){var b=this,c=b.options,d=b.element;d.closest(".ui-page").bind("pagebeforeshow",function(){c.disablePageZoom&&a.mobile.zoom.disable(!0),c.visibleOnPageShow||b.hide(!0)}).bind("webkitAnimationStart animationstart updatelayout",function(){var a=this;c.updatePagePadding&&b.updatePagePadding(a)}).bind("pageshow",function(){var d=this;b.updatePagePadding(d),c.updatePagePadding&&a.mobile.$window.bind("throttledresize."+b.widgetName,function(){b.updatePagePadding(d)})}).bind("pagebeforehide",function(d,e){c.disablePageZoom&&a.mobile.zoom.enable(!0),c.updatePagePadding&&a.mobile.$window.unbind("throttledresize."+b.widgetName);if(c.trackPersistentToolbars){var f=a(".ui-footer-fixed:jqmData(id)",this),g=a(".ui-header-fixed:jqmData(id)",this),h=f.length&&e.nextPage&&a(".ui-footer-fixed:jqmData(id='"+f.jqmData("id")+"')",e.nextPage)||a(),i=g.length&&e.nextPage&&a(".ui-header-fixed:jqmData(id='"+g.jqmData("id")+"')",e.nextPage)||a();if(h.length||i.length)h.add(i).appendTo(a.mobile.pageContainer),e.nextPage.one("pageshow",function(){h.add(i).appendTo(this)})}})},_visible:!0,updatePagePadding:function(b){var c=this.element,d=c.is(".ui-header");if(this.options.fullscreen)return;b=b||c.closest(".ui-page"),a(b).css("padding-"+(d?"top":"bottom"),c.outerHeight())},_useTransition:function(b){var c=a.mobile.$window,d=this.element,e=c.scrollTop(),f=d.height(),g=d.closest(".ui-page").height(),h=a.mobile.getScreenHeight(),i=d.is(":jqmData(role='header')")?"header":"footer";return!b&&(this.options.transition&&this.options.transition!=="none"&&(i==="header"&&!this.options.fullscreen&&e>f||i==="footer"&&!this.options.fullscreen&&e+h<g-f)||this.options.fullscreen)},show:function(a){var b="ui-fixed-hidden",c=this.element;this._useTransition(a)?c.removeClass("out "+b).addClass("in"):c.removeClass(b),this._visible=!0},hide:function(a){var b="ui-fixed-hidden",c=this.element,d="out"+(this.options.transition==="slide"?" reverse":"");this._useTransition(a)?c.addClass(d).removeClass("in").animationComplete(function(){c.addClass(b).removeClass(d)}):c.addClass(b).removeClass(d),this._visible=!1},toggle:function(){this[this._visible?"hide":"show"]()},_bindToggleHandlers:function(){var b=this,c=b.options,d=b.element;d.closest(".ui-page").bind("vclick",function(d){c.tapToggle&&!a(d.target).closest(c.tapToggleBlacklist).length&&b.toggle()}).bind("focusin focusout",function(d){screen.width<500&&a(d.target).is(c.hideDuringFocus)&&!a(d.target).closest(".ui-header-fixed, .ui-footer-fixed").length&&b[d.type==="focusin"&&b._visible?"hide":"show"]()})},destroy:function(){this.element.removeClass("ui-header-fixed ui-footer-fixed ui-header-fullscreen ui-footer-fullscreen in out fade slidedown slideup ui-fixed-hidden"),this.element.closest(".ui-page").removeClass("ui-page-header-fixed ui-page-footer-fixed ui-page-header-fullscreen ui-page-footer-fullscreen")}}),a.mobile.$document.bind("pagecreate create",function(b){a(b.target).jqmData("fullscreen")&&a(a.mobile.fixedtoolbar.prototype.options.initSelector,b.target).not(":jqmData(fullscreen)").jqmData("fullscreen",!0),a.mobile.fixedtoolbar.prototype.enhanceWithin(b.target)})}(a),function(a,b){function i(a){d=a.originalEvent,h=d.accelerationIncludingGravity,e=Math.abs(h.x),f=Math.abs(h.y),g=Math.abs(h.z),!b.orientation&&(e>7||(g>6&&f<8||g<8&&f>6)&&e>5)?c.enabled&&c.disable():c.enabled||c.enable()}if(!(/iPhone|iPad|iPod/.test(navigator.platform)&&navigator.userAgent.indexOf("AppleWebKit")>-1))return;var c=a.mobile.zoom,d,e,f,g,h;a.mobile.$window.bind("orientationchange.iosorientationfix",c.enable).bind("devicemotion.iosorientationfix",i)}(a,this),function(a,b,d){function h(){e.removeClass("ui-mobile-rendering")}var e=a("html"),f=a("head"),g=a.mobile.$window;a(b.document).trigger("mobileinit");if(!a.mobile.gradeA())return;a.mobile.ajaxBlacklist&&(a.mobile.ajaxEnabled=!1),e.addClass("ui-mobile ui-mobile-rendering"),setTimeout(h,5e3),a.extend(a.mobile,{addEventBlocker:function(){e.addClass("ui-blocker"),e.bind("touchstart touchend vclick mousedown mouseup click",function(){return!1})},removeEventBlocker:function(){e.removeClass("ui-blocker"),e.unbind("touchstart touchend vclick mousedown mouseup click")},initializePage:function(){var b=a(":jqmData(role='page'), :jqmData(role='dialog')"),d=a.mobile.path.parseLocation().hash.replace("#",""),e=c.getElementById(d);b.length||(b=a("body").wrapInner("<div data-"+a.mobile.ns+"role='page'></div>").children(0)),b.each(function(){var b=a(this);b[0].getAttribute("data-"+a.mobile.ns+"url")||b.attr("data-"+a.mobile.ns+"url",b.attr("id")||location.pathname+location.search)}),a.mobile.firstPage=b.first(),a.mobile.pageContainer=a.mobile.firstPage.parent().addClass("ui-mobile-viewport"),g.trigger("pagecontainercreate"),a.mobile.showPageLoadingMsg(),a.mobile.addEventBlocker(),h(),!a.mobile.hashListeningEnabled||!a.mobile.path.isHashValid(location.hash)||!a(e).is(':jqmData(role="page")')&&!a.mobile.path.isPath(d)&&d!==a.mobile.dialogHashKey?(a.mobile.path.isHashValid(location.hash)&&(a.mobile.urlHistory.initialDst=d.replace("#","")),a.mobile.changePage(a.mobile.firstPage,{transition:"none",reverse:!0,changeHash:!1,fromHashChange:!0})):g.trigger("hashchange",[!0])}}),a.mobile.navreadyDeferred.resolve(),a(function(){b.scrollTo(0,1),a.mobile.defaultHomeScroll=!a.support.scrollTop||a.mobile.$window.scrollTop()===1?0:1,a.fn.controlgroup&&a.mobile.$document.bind("pagecreate create",function(b){a(":jqmData(role='controlgroup')",b.target).jqmEnhanceable().controlgroup({excludeInvisible:!1})}),a.mobile.autoInitializePage&&a.mobile.initializePage(),g.load(a.mobile.silentScroll),a.support.cssPointerEvents||a.mobile.$document.delegate(".ui-disabled","vclick",function(a){a.preventDefault(),a.stopImmediatePropagation()})})}(a,this)});
/*!
* Globalize
*
* Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
*
* Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software" ),
+ * copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
* ***************************************************************************
+ *
+ * Author: Minkyu Kang <mk7.kang@samsung.com>
*/
-// most of following codes are derived from jquery.mobile.scrollview.js
-(function ( $, window, document, undefined ) {
+/*
+ * Gallery widget
+ *
+ * HTML Attributes
+ *
+ * data-role: set to 'gallery'
+ * data-index: start index
+ * data-vertical-align: set to top or middle or bottom.
+ *
+ * APIs
+ *
+ * add(file): add the image (parameter: url of iamge)
+ * remove(index): remove the image (parameter: index of image)
+ * refresh(index): refresh the widget, should be called after add or remove. (parameter: start index)
+ * empty: remove all of images from the gallery
+ * length: get length of images
+ * value(index): get or set current index of gallery (parameter: index of image)
+ *
+ * Events
+ *
+ * N/A
+ *
+ * Example
+ *
+ * <div data-role="gallery" id="gallery" data-index="3" data-vertical-align="middle">
+ * <img src="01.jpg">
+ * <img src="02.jpg">
+ * <img src="03.jpg">
+ * <img src="04.jpg">
+ * <img src="05.jpg">
+ * </div>
+ *
+ *
+ * $('#gallery-add').bind('vmouseup', function ( e ) {
+ * $('#gallery').gallery('add', '9.jpg');
+ * $('#gallery').gallery('add', '10.jpg');
+ * $('#gallery').gallery('refresh');
+ * });
+ *
+ * $('#gallery-del').bind('vmouseup', function ( e ) {
+ * $('#gallery').gallery('remove');
+ * });
+ *
+ */
- function circularNum( num, total ) {
- var n = num % total;
- if ( n < 0 ) {
- n = total + n;
- }
- return n;
- }
+ /**
+ @class Gallery
+ The gallery widget shows images in a gallery on the screen. <br/><br/> To add an gallery widget to the application, use the following code:
- function setElementTransform( $ele, x, y ) {
- var v = "translate3d( " + x + "," + y + ", 0px)";
- $ele.css({
- "-ms-transform": v,
- "-o-transform": v,
- "-moz-transform": v,
- "-webkit-transform": v,
- "transform": v
- } );
- }
+ <div data-role="gallery" id="gallery" data-vertical-align="middle" data-index="3">
+ <img src="01.jpg">
+ <img src="02.jpg">
+ <img src="03.jpg">
+ <img src="04.jpg">
+ <img src="05.jpg">
+ </div>
+*/
+/**
+ @property {Integer} data-index
+ Defines the index number of the first image in the gallery.
+ <br/>The default value is 0.
+*/
+/**
+ @property {String} data-vertical-align
+ Defines the image alignment. The alignment options are top, middle, and bottom.
+ <br/>The default value is top.
+*/
+/**
+ @method add
+ The add method is used to add an image to the gallery. The image_file attribute defines the image file URL.
- function MomentumTracker( options ) {
- this.options = $.extend( {}, options );
- this.easing = "easeOutQuad";
- this.reset();
- }
+ <div id="gallery" data-role="gallery" data-vertical-align="middle"></div>
+ $("#gallery").gallery('add', [image_file]);
+*/
+/**
+ @method remove
+ The remove method is used to delete an image from the gallery. The image_index attribute defines the index of the image to be deleted. If not set removes current image.
- var tstates = {
- scrolling : 0,
- done : 1
- };
+ <div id="gallery" data-role="gallery" data-vertical-align="middle"></div>
+ $("#gallery").gallery('remove', [image_index]);
+*/
+/**
+ @method refresh
+ The refresh method is used to refresh the gallery. This method must be called after adding images to the gallery.
- function getCurrentTime() {
- return Date.now();
- }
+ <div id="gallery" data-role="gallery" data-vertical-align="middle"></div>
+ $("#gallery").gallery('refresh');
+*/
+/**
+ @method empty
+ The empty method is used to remove all of images from the gallery.
- $.extend( MomentumTracker.prototype, {
- start: function ( pos, speed, duration ) {
- this.state = ( speed != 0 ) ? tstates.scrolling : tstates.done;
- this.pos = pos;
- this.speed = speed;
- this.duration = duration;
+ <div id="gallery" data-role="gallery" data-vertical-align="middle"></div>
+ $("#gallery").gallery('empty');
+*/
+/**
+ @method length
+ The length method is used to get length of images.
- this.fromPos = 0;
- this.toPos = 0;
+ <div id="gallery" data-role="gallery" data-vertical-align="middle"></div>
+ length = $("#gallery").gallery('length');
+*/
+/**
+ @method value
+ The value method is used to get or set current index of gallery. The image_index attribute defines the index of the image to be set. If not get current index.
- this.startTime = getCurrentTime();
+ <div id="gallery" data-role="gallery" data-vertical-align="middle"></div>
+ value = $("#gallery").gallery('value');
+ $("#gallery").gallery('value', [image_index]);
+*/
+(function ( $, window, undefined ) {
+ $.widget( "tizen.gallery", $.mobile.widget, {
+ options: {
+ flicking: false,
+ duration: 500
},
- reset: function () {
- this.state = tstates.done;
- this.pos = 0;
- this.speed = 0;
- this.duration = 0;
- },
+ dragging: false,
+ moving: false,
+ max_width: 0,
+ max_height: 0,
+ org_x: 0,
+ org_time: null,
+ cur_img: null,
+ prev_img: null,
+ next_img: null,
+ images: [],
+ images_hold: [],
+ index: 0,
+ align_type: null,
+ direction: 1,
+ container: null,
+ orientationEventFire: false,
- update: function () {
- var state = this.state,
- duration,
- elapsed,
- dx,
- x;
+ _resize: function ( index ) {
+ var img = this.images[index],
+ width = this.images[index].width(),
+ height = this.images[index].height(),
+ margin = 0,
+ ratio,
+ img_max_width = this.max_width - margin,
+ img_max_height = this.max_height - margin;
- if ( state == tstates.done ) {
- return this.pos;
+ ratio = height / width;
+
+ if ( width > img_max_width ) {
+ img.width( img_max_width );
+ img.height( img_max_width * ratio );
}
- duration = this.duration;
- elapsed = getCurrentTime() - this.startTime;
- elapsed = elapsed > duration ? duration : elapsed;
+ height = img.height();
- dx = this.speed * ( 1 - $.easing[this.easing](elapsed / duration, elapsed, 0, 1, duration ) );
+ if ( height > img_max_height ) {
+ img.height( img_max_height );
+ img.width( img_max_height / ratio );
+ }
+ },
- x = this.pos + dx;
- this.pos = x;
+ _align: function ( index, obj ) {
+ var img = this.images[index],
+ img_top = 0;
- if ( elapsed >= duration ) {
- this.state = tstates.done;
+ if ( !obj ) {
+ return;
+ }
+ if ( !obj.length ) {
+ return;
}
- return this.pos;
- },
+ if ( this.align_type == "middle" ) {
+ img_top = ( this.max_height - img.height() ) / 2;
+ } else if ( this.align_type == "bottom" ) {
+ img_top = this.max_height - img.height();
+ } else {
+ img_top = 0;
+ }
- done: function () {
- return this.state == tstates.done;
+ obj.css( 'top', img_top + 'px' );
},
- getPosition: function () {
- return this.pos;
- }
- } );
+ _attach: function ( index, obj ) {
+ var self = this,
+ processing = function () {
+ self._resize( index );
+ self._align( index, obj );
- jQuery.widget( "mobile.circularview", jQuery.mobile.widget, {
- options: {
- fps: 60,
+ },
+ loading = function () {
+ if ( self.images[index] === undefined ) {
+ return;
+ }
- scrollDuration: 2000,
+ if ( !self.images[index].height() ) {
+ setTimeout( loading, 10 );
+ return;
+ }
- moveThreshold: 10,
- moveIntervalThreshold: 150,
+ processing();
+ };
- startEventName: "scrollstart",
- updateEventName: "scrollupdate",
- stopEventName: "scrollstop",
-
- eventType: $.support.touch ? "touch" : "mouse",
+ if ( !obj ) {
+ return;
+ }
+ if ( !obj.length ) {
+ return;
+ }
+ if ( index < 0 ) {
+ return;
+ }
+ if ( !this.images.length ) {
+ return;
+ }
+ if ( index >= this.images.length ) {
+ return;
+ }
- delayedClickSelector: "a, .ui-btn",
- delayedClickEnabled: false
+ obj.css( "display", "block" );
+ obj.css( "visibility", "hidden" );
+ obj.append( this.images[index] );
+ loading();
},
- _makePositioned: function ( $ele ) {
- if ( $ele.css( 'position' ) == 'static' ) {
- $ele.css( 'position', 'relative' );
+ _detach: function ( index, obj ) {
+ if ( !obj ) {
+ return;
+ }
+ if ( !obj.length ) {
+ return;
+ }
+ if ( index < 0 ) {
+ return;
+ }
+ if ( index >= this.images.length ) {
+ return;
}
- },
- _create: function () {
- var self = this;
+ obj.css( "display", "none" );
+ this.images[index].removeAttr("style");
+ this.images[index].detach();
+ },
- this._items = $( this.element ).jqmData('list');
- this._$clip = $( this.element ).addClass( "ui-scrollview-clip" );
- this._$clip.wrapInner( '<div class="ui-scrollview-view"></div>' );
- this._$view = $('.ui-scrollview-view', this._$clip );
- this._$list = $( 'ul', this._$clip );
+ _detach_all: function () {
+ var i;
- this._$clip.css( "overflow", "hidden" );
- this._makePositioned( this._$clip );
+ for ( i = 0; i < this.images.length; i++ ) {
+ this.images[i].detach();
+ }
+ },
- this._$view.css( "overflow", "hidden" );
- this._tracker = new MomentumTracker( this.options );
+ _drag: function ( _x ) {
+ var delta,
+ coord_x;
- this._timerInterval = 1000 / this.options.fps;
- this._timerID = 0;
+ if ( !this.dragging ) {
+ return;
+ }
- this._timerCB = function () { self._handleMomentumScroll(); };
+ if ( this.options.flicking === false ) {
+ delta = this.org_x - _x;
- this.refresh();
+ // first image
+ if ( delta < 0 && !this.prev_img.length ) {
+ return;
+ }
+ // last image
+ if ( delta > 0 && !this.next_img.length ) {
+ return;
+ }
+ }
- this._addBehaviors();
- },
+ coord_x = _x - this.org_x;
- reflow: function () {
- var xy = this.getScrollPosition();
- this.refresh();
- this.scrollTo( xy.x, xy.y );
+ this._moveLeft( this.cur_img , coord_x + 'px' );
+ if ( this.next_img.length ) {
+ this._moveLeft( this.next_img , coord_x + this.window_width + 'px' );
+ }
+ if ( this.prev_img.length ) {
+ this._moveLeft( this.prev_img , coord_x - this.window_width + 'px' );
+ }
},
- refresh: function () {
- var itemsPerView;
+ _move: function ( _x ) {
+ var delta = this.org_x - _x,
+ flip = 0,
+ drag_time,
+ sec,
+ self;
- this._$clip.width( $(window).width() );
- this._clipWidth = this._$clip.width();
- this._$list.empty();
- this._$list.append(this._items[0]);
- this._itemWidth = $(this._items[0]).outerWidth();
- $(this._items[0]).detach();
+ if ( delta == 0 ) {
+ return;
+ }
- itemsPerView = this._clipWidth / this._itemWidth;
- itemsPerView = Math.ceil( itemsPerView * 10 ) / 10;
- this._itemsPerView = parseInt( itemsPerView, 10 );
- while ( this._itemsPerView + 1 > this._items.length ) {
- $.merge( this._items, $(this._items).clone() );
+ if ( delta > 0 ) {
+ flip = delta < ( this.max_width * 0.45 ) ? 0 : 1;
+ } else {
+ flip = -delta < ( this.max_width * 0.45 ) ? 0 : 1;
}
- this._rx = -this._itemWidth;
- this._sx = -this._itemWidth;
- this._setItems();
- },
- _startMScroll: function ( speedX, speedY ) {
- this._stopMScroll();
+ if ( !flip ) {
+ drag_time = Date.now() - this.org_time;
- var keepGoing = false,
- duration = this.options.scrollDuration,
- t = this._tracker,
- c = this._clipWidth,
- v = this._viewWidth;
+ if ( Math.abs( delta ) / drag_time > 1 ) {
+ flip = 1;
+ }
+ }
- this._$clip.trigger( this.options.startEventName);
+ if ( flip ) {
+ if ( delta > 0 && this.next_img.length ) {
+ /* next */
+ this._detach( this.index - 1, this.prev_img );
- t.start( this._rx, speedX, duration, (v > c ) ? -(v - c) : 0, 0 );
- keepGoing = !t.done();
+ this.prev_img = this.cur_img;
+ this.cur_img = this.next_img;
+ this.next_img = this.next_img.next();
- if ( keepGoing ) {
- this._timerID = setTimeout( this._timerCB, this._timerInterval );
- } else {
- this._stopMScroll();
- }
- //console.log( "startmscroll" + this._rx + "," + this._sx );
- },
+ this.index++;
- _stopMScroll: function () {
- if ( this._timerID ) {
- this._$clip.trigger( this.options.stopEventName );
- clearTimeout( this._timerID );
- }
+ if ( this.next_img.length ) {
+ this._moveLeft( this.next_img , this.window_width + 'px' );
+ this._attach( this.index + 1, this.next_img );
+ }
- this._timerID = 0;
+ this.direction = 1;
- if ( this._tracker ) {
- this._tracker.reset();
- }
- //console.log( "stopmscroll" + this._rx + "," + this._sx );
- },
+ } else if ( delta < 0 && this.prev_img.length ) {
+ /* prev */
+ this._detach( this.index + 1, this.next_img );
- _handleMomentumScroll: function () {
- var keepGoing = false,
- v = this._$view,
- x = 0,
- y = 0,
- t = this._tracker;
+ this.next_img = this.cur_img;
+ this.cur_img = this.prev_img;
+ this.prev_img = this.prev_img.prev();
- if ( t ) {
- t.update();
- x = t.getPosition();
+ this.index--;
- keepGoing = !t.done();
+ if ( this.prev_img.length ) {
+ this._moveLeft( this.prev_img , -this.window_width + 'px' );
+ this._attach( this.index - 1, this.prev_img );
+ }
+ this.direction = -1;
+ }
}
- this._setScrollPosition( x, y );
- this._rx = x;
-
- this._$clip.trigger( this.options.updateEventName, [ { x: x, y: y } ] );
+ sec = this.options.duration;
+ self = this;
- if ( keepGoing ) {
- this._timerID = setTimeout( this._timerCB, this._timerInterval );
- } else {
- this._stopMScroll();
- }
- },
+ this.moving = true;
- _setItems: function () {
- var i,
- $item;
+ setTimeout( function () {
+ self.moving = false;
+ }, sec - 25 );
- for ( i = -1; i < this._itemsPerView + 1; i++ ) {
- $item = this._items[ circularNum( i, this._items.length ) ];
- this._$list.append( $item );
+ this._moveLeft( this.cur_img, 0 + 'px', sec );
+ if ( this.next_img.length ) {
+ this._moveLeft( this.next_img, this.window_width + 'px', sec );
+ }
+ if ( this.prev_img.length ) {
+ this._moveLeft( this.prev_img, -this.window_width + 'px', sec );
}
- setElementTransform( this._$view, this._sx + "px", 0 );
- this._$view.width( this._itemWidth * ( this._itemsPerView + 2 ) );
- this._viewWidth = this._$view.width();
},
- _setScrollPosition: function ( x, y ) {
- var sx = this._sx,
- dx = x - sx,
- di = parseInt( dx / this._itemWidth, 10 ),
- i,
- idx,
- $item;
+ _add_event: function () {
+ var self = this,
+ date;
- if ( di > 0 ) {
- for ( i = 0; i < di; i++ ) {
- this._$list.children().last().detach();
- idx = -parseInt( ( sx / this._itemWidth ) + i + 3, 10 );
- $item = this._items[ circularNum( idx, this._items.length ) ];
- this._$list.prepend( $item );
- //console.log( "di > 0 : " + idx );
+ this.container.bind( 'vmousemove', function ( e ) {
+ e.preventDefault();
+
+ if ( self.moving ) {
+ return;
}
- } else if ( di < 0 ) {
- for ( i = 0; i > di; i-- ) {
- this._$list.children().first().detach();
- idx = this._itemsPerView - parseInt( ( sx / this._itemWidth ) + i, 10 );
- $item = this._items[ circularNum( idx, this._items.length ) ];
- this._$list.append( $item );
- //console.log( "di < 0 : " + idx );
+ if ( !self.dragging ) {
+ return;
}
- }
- this._sx += di * this._itemWidth;
+ self._drag( e.pageX );
+ } );
- setElementTransform( this._$view, ( x - this._sx - this._itemWidth ) + "px", 0 );
+ this.container.bind( 'vmousedown', function ( e ) {
+ e.preventDefault();
- //console.log( "rx " + this._rx + "sx " + this._sx );
- },
+ if ( self.moving ) {
+ return;
+ }
- _enableTracking: function () {
- $(document).bind( this._dragMoveEvt, this._dragMoveCB );
- $(document).bind( this._dragStopEvt, this._dragStopCB );
- },
+ self.dragging = true;
- _disableTracking: function () {
- $(document).unbind( this._dragMoveEvt, this._dragMoveCB );
- $(document).unbind( this._dragStopEvt, this._dragStopCB );
- },
+ self.org_x = e.pageX;
- _getScrollHierarchy: function () {
- var svh = [],
- d;
- this._$clip.parents( '.ui-scrollview-clip' ).each( function () {
- d = $( this ).jqmData( 'circulaview' );
- if ( d ) {
- svh.unshift( d );
- }
+ self.org_time = Date.now();
} );
- return svh;
- },
-
- centerTo: function ( selector, duration ) {
- var i,
- newX;
- for ( i = 0; i < this._items.length; i++ ) {
- if ( $( this._items[i]).is( selector ) ) {
- newX = -( i * this._itemWidth - this._clipWidth / 2 + this._itemWidth * 1.5 );
- this.scrollTo( newX + this._itemWidth, 0 );
- this.scrollTo( newX, 0, duration );
+ this.container.bind( 'vmouseup', function ( e ) {
+ if ( self.moving ) {
return;
}
- }
- },
-
- scrollTo: function ( x, y, duration ) {
- this._stopMScroll();
- if ( !duration ) {
- this._setScrollPosition( x, y );
- this._rx = x;
- return;
- }
- var self = this,
- start = getCurrentTime(),
- efunc = $.easing.easeOutQuad,
- sx = this._rx,
- sy = 0,
- dx = x - sx,
- dy = 0,
- tfunc,
- elapsed,
- ec;
+ self.dragging = false;
- this._rx = x;
+ self._move( e.pageX );
+ } );
- tfunc = function () {
- elapsed = getCurrentTime() - start;
- if ( elapsed >= duration ) {
- self._timerID = 0;
- self._setScrollPosition( x, y );
- self._$clip.trigger("scrollend");
- } else {
- ec = efunc( elapsed / duration, elapsed, 0, 1, duration );
- self._setScrollPosition( sx + ( dx * ec ), sy + ( dy * ec ) );
- self._timerID = setTimeout( tfunc, self._timerInterval );
+ this.container.bind( 'vmouseout', function ( e ) {
+ if ( self.moving ) {
+ return;
+ }
+ if ( !self.dragging ) {
+ return;
}
- };
- this._timerID = setTimeout( tfunc, this._timerInterval );
+ if ( ( e.pageX < 20 ) ||
+ ( e.pageX > ( self.max_width - 20 ) ) ) {
+ self._move( e.pageX );
+ self.dragging = false;
+ }
+ } );
},
- getScrollPosition: function () {
- return { x: -this._rx, y: 0 };
+ _del_event: function () {
+ this.container.unbind( 'vmousemove' );
+ this.container.unbind( 'vmousedown' );
+ this.container.unbind( 'vmouseup' );
+ this.container.unbind( 'vmouseout' );
},
+ _setTranslateposition : function ( $ele, value ) {
+ var translate,
+ cssArray = null,
+ self = this;
- _handleDragStart: function ( e, ex, ey ) {
- $.each( this._getScrollHierarchy(), function ( i, sv ) {
- sv._stopMScroll();
- } );
-
- this._stopMScroll();
-
- if ( this.options.delayedClickEnabled ) {
- this._$clickEle = $( e.target ).closest( this.options.delayedClickSelector );
+ if ( $.support.cssTransform3d ) {
+ translate = "translate3d(" + value + ", 0px, 0px)";
+ } else {
+ translate = "translate(" + value + ", 0px)";
}
- this._lastX = ex;
- this._lastY = ey;
- this._speedX = 0;
- this._speedY = 0;
- this._didDrag = false;
+ cssArray = {"-moz-transform": translate,
+ "-webkit-transform": translate,
+ "-ms-transform": translate,
+ "-o-transform": translate,
+ "transform": translate};
- this._lastMove = 0;
- this._enableTracking();
+ $ele.css(cssArray);
+ return $ele;
+ },
+ _hidePrevNext : function() {
+ var self = this;
- this._ox = ex;
- this._nx = this._rx;
+ if( self.next_img ) {
+ self.next_img.css( "visibility", "hidden" );
+ }
+ if( self.prev_img ) {
+ self.prev_img.css( "visibility", "hidden" );
+ }
- if ( this.options.eventType == "mouse" || this.options.delayedClickEnabled ) {
- e.preventDefault();
+ },
+ _hideCur : function() {
+ var self = this;
+ if( self.cur_img ) {
+ self.cur_img.css( "visibility", "hidden" );
}
- //console.log( "scrollstart" + this._rx + "," + this._sx );
- e.stopPropagation();
},
+ _moveLeft : function ( $ele , value , duration ) {
+ var translate,
+ transition = "",
+ cssArray = null,
+ self = this;
- _handleDragMove: function ( e, ex, ey ) {
- this._lastMove = getCurrentTime();
-
- var dx = ex - this._lastX,
- dy = ey - this._lastY;
-
- this._speedX = dx;
- this._speedY = 0;
-
- this._didDrag = true;
-
- this._lastX = ex;
- this._lastY = ey;
-
- this._mx = ex - this._ox;
-
- this._setScrollPosition( this._nx + this._mx, 0 );
+ if ( $.support.cssTransform3d ) {
+ translate = "translate3d(" + value + ", 0px, 0px)";
+ } else {
+ translate = "translate(" + value + ", 0px)";
+ }
+ if( duration !== undefined ) {
+ transition = "-webkit-transform " + (duration / 1000)+ "s ease";
+ }
+ cssArray = {"-moz-transform": translate,
+ "-webkit-transform": translate,
+ "-ms-transform": translate,
+ "-o-transform": translate,
+ "transform": translate};
+ if( transition !== "" ) {
+ cssArray["-webkit-transition"] = transition ;
+ if( value == "0px" ) {
+ $ele.one( 'webkitTransitionEnd', self._hidePrevNext );
+ } else {
+ $ele.one( 'webkitTransitionEnd', self._hideCur );
+ }
+ }
+ if( value == "0px" ) {
+ $ele.css( "visibility", "visible" );
+ }
- //console.log( "scrollmove" + this._rx + "," + this._sx );
- return false;
+ $ele.css(cssArray);
+ return $ele;
},
+ _show: function () {
+ /* resizing */
+ this.window_width = $( window ).width();
+ this.max_width = this._get_width();
+ this.max_height = this._get_height();
+ this.container.css( 'height', this.max_height );
- _handleDragStop: function ( e ) {
- var l = this._lastMove,
- t = getCurrentTime(),
- doScroll = l && ( t - l ) <= this.options.moveIntervalThreshold,
- sx = ( this._tracker && this._speedX && doScroll ) ? this._speedX : 0,
- sy = 0;
+ this.cur_img = $( 'div' ).find( '.ui-gallery-bg:eq(' + this.index + ')' );
+ this.prev_img = this.cur_img.prev();
+ this.next_img = this.cur_img.next();
- this._rx = this._mx ? this._nx + this._mx : this._rx;
+ this._attach( this.index - 1, this.prev_img );
+ this._attach( this.index, this.cur_img );
+ this._attach( this.index + 1, this.next_img );
- if ( sx ) {
- this._startMScroll( sx, sy );
+ this.cur_img.css( 'visibility', 'visible' );
+ if ( this.prev_img.length ) {
+ this._setTranslateposition( this.prev_img, -this.window_width + 'px');
}
- //console.log( "scrollstop" + this._rx + "," + this._sx );
-
- this._disableTracking();
-
- if ( !this._didDrag && this.options.delayedClickEnabled && this._$clickEle.length ) {
- this._$clickEle
- .trigger( "mousedown" )
- .trigger( "mouseup" )
- .trigger( "click" );
+ this._moveLeft( this.cur_img, '0px');
+ if ( this.next_img.length ) {
+ this._setTranslateposition( this.next_img, this.window_width + 'px' );
}
+ },
- if ( this._didDrag ) {
- e.preventDefault();
- e.stopPropagation();
+ show: function () {
+ if ( !this.images.length ) {
+ return;
}
- return this._didDrag ? false : undefined;
+ this._show();
+ this._add_event();
},
- _addBehaviors: function () {
- var self = this;
+ _hide: function () {
+ this._detach( this.index - 1, this.prev_img );
+ this._detach( this.index, this.cur_img );
+ this._detach( this.index + 1, this.next_img );
+ },
- if ( this.options.eventType === "mouse" ) {
- this._dragStartEvt = "mousedown";
- this._dragStartCB = function ( e ) {
- return self._handleDragStart( e, e.clientX, e.clientY );
- };
+ hide: function () {
+ this._hide();
+ this._del_event();
+ },
- this._dragMoveEvt = "mousemove";
- this._dragMoveCB = function ( e ) {
- return self._handleDragMove( e, e.clientX, e.clientY );
- };
+ _get_width: function () {
+ return $( this.element ).width();
+ },
- this._dragStopEvt = "mouseup";
- this._dragStopCB = function ( e ) {
- return self._handleDragStop( e );
- };
+ _get_height: function () {
+ var $page = $( this.element ).parentsUntil( 'ui-page' ),
+ $content = $page.children( '.ui-content' ),
+ header_h = $page.children( '.ui-header' ).outerHeight() || 0,
+ footer_h = $page.children( '.ui-footer' ).outerHeight() || 0,
+ padding = parseFloat( $content.css( 'padding-top' ) )
+ + parseFloat( $content.css( 'padding-bottom' ) ),
+ content_h = $( window ).height() - header_h - footer_h - padding;
- this._$view.bind( "vclick", function (e) {
- return !self._didDrag;
- } );
+ return content_h;
+ },
- } else { //touch
- this._dragStartEvt = "touchstart";
- this._dragStartCB = function ( e ) {
- var t = e.originalEvent.targetTouches[0];
- return self._handleDragStart(e, t.pageX, t.pageY );
- };
+ _create: function () {
+ var temp_img,
+ self = this,
+ index,
+ i = 0;
- this._dragMoveEvt = "touchmove";
- this._dragMoveCB = function ( e ) {
- var t = e.originalEvent.targetTouches[0];
- return self._handleDragMove(e, t.pageX, t.pageY );
- };
+ $( this.element ).wrapInner( '<div class="ui-gallery"></div>' );
+ $( this.element ).find( 'img' ).wrap( '<div class="ui-gallery-bg"></div>' );
- this._dragStopEvt = "touchend";
- this._dragStopCB = function ( e ) {
- return self._handleDragStop( e );
- };
+ this.container = $( this.element ).find('.ui-gallery');
+
+ temp_img = $( 'div' ).find( '.ui-gallery-bg:first' );
+
+ while ( temp_img.length ) {
+ this.images[i] = temp_img.find( 'img' );
+ temp_img = temp_img.next();
+ i++;
}
- this._$view.bind( this._dragStartEvt, this._dragStartCB );
- }
- } );
- $( document ).bind( "pagecreate create", function ( e ) {
- $( $.mobile.circularview.prototype.options.initSelector, e.target ).circularview();
- } );
+ this._detach_all();
-}( jQuery, window, document ) ); // End Component
+ index = parseInt( $( this.element ).jqmData( 'index' ), 10 );
+ if ( !index ) {
+ index = 0;
+ }
+ if ( index < 0 ) {
+ index = 0;
+ }
+ if ( index >= this.images.length ) {
+ index = this.images.length - 1;
+ }
+ this.index = index;
+ this.align_type = $( this.element ).jqmData( 'vertical-align' );
-/* ***************************************************************************
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- *
- * Author: Minkyu Kang <mk7.kang@samsung.com>
- */
+ $.extend( this, {
+ _globalHandlers: [
+ {
+ src: $( window ),
+ handler: {
+ orientationchange: $.proxy( this, "_orientationHandler" ),
+ resize: $.proxy( this, "_resizeHandler" )
+ }
+ }
+ ]
+ });
-/*
- * Gallery widget
- *
- * HTML Attributes
- *
- * data-role: set to 'gallery'
- * data-index: start index
- * data-vertical-align: set to top or middle or bottom.
- *
- * APIs
- *
- * add(file): add the image (parameter: url of iamge)
- * remove(index): remove the image (parameter: index of image)
- * refresh(index): refresh the widget, should be called after add or remove. (parameter: start index)
- * empty: remove all of images from the gallery
- * length: get length of images
- * value(index): get or set current index of gallery (parameter: index of image)
- *
- * Events
- *
- * N/A
- *
- * Example
- *
- * <div data-role="gallery" id="gallery" data-index="3" data-vertical-align="middle">
- * <img src="01.jpg">
- * <img src="02.jpg">
- * <img src="03.jpg">
- * <img src="04.jpg">
- * <img src="05.jpg">
- * </div>
- *
- *
- * $('#gallery-add').bind('vmouseup', function ( e ) {
- * $('#gallery').gallery('add', '9.jpg');
- * $('#gallery').gallery('add', '10.jpg');
- * $('#gallery').gallery('refresh');
- * });
- *
- * $('#gallery-del').bind('vmouseup', function ( e ) {
- * $('#gallery').gallery('remove');
- * });
- *
- */
+ $.each( this._globalHandlers, function( idx, value ) {
+ value.src.bind( value.handler );
+ });
+ },
- /**
- @class Gallery
- The gallery widget shows images in a gallery on the screen. <br/><br/> To add an gallery widget to the application, use the following code:
+ _update: function () {
+ var image_file,
+ bg_html,
+ temp_img;
- <div data-role="gallery" id="gallery" data-vertical-align="middle" data-index="3">
- <img src="01.jpg">
- <img src="02.jpg">
- <img src="03.jpg">
- <img src="04.jpg">
- <img src="05.jpg">
- </div>
-*/
-/**
- @property {Integer} data-index
- Defines the index number of the first image in the gallery.
- <br/>The default value is 0.
-*/
-/**
- @property {String} data-vertical-align
- Defines the image alignment. The alignment options are top, middle, and bottom.
- <br/>The default value is top.
-*/
-/**
- @method add
- The add method is used to add an image to the gallery. The image_file attribute defines the image file URL.
+ while ( this.images_hold.length ) {
+ image_file = this.images_hold.shift();
- <div id="gallery" data-role="gallery" data-vertical-align="middle"></div>
- $("#gallery").gallery('add', [image_file]);
-*/
-/**
- @method remove
- The remove method is used to delete an image from the gallery. The image_index attribute defines the index of the image to be deleted. If not set removes current image.
+ bg_html = $( '<div class="ui-gallery-bg"></div>' );
+ temp_img = $( '<img src="' + image_file + '"></div>' );
- <div id="gallery" data-role="gallery" data-vertical-align="middle"></div>
- $("#gallery").gallery('remove', [image_index]);
-*/
-/**
- @method refresh
- The refresh method is used to refresh the gallery. This method must be called after adding images to the gallery.
+ bg_html.append( temp_img );
+ this.container.append( bg_html );
+ this.images.push( temp_img );
+ }
- <div id="gallery" data-role="gallery" data-vertical-align="middle"></div>
- $("#gallery").gallery('refresh');
-*/
-/**
- @method empty
- The empty method is used to remove all of images from the gallery.
+ this._detach_all();
+ },
+ _resizeHandler: function() {
+ var self = this;
+ if( self.orientationEventFire ) {
+ self.refresh();
+ self.orientationEventFire = false;
+ }
+ },
+ _orientationHandler: function() {
+ var self = this;
+ self.refresh();
+ self.orientationEventFire = true;
+ },
+ refresh: function ( start_index ) {
+ this._update();
- <div id="gallery" data-role="gallery" data-vertical-align="middle"></div>
- $("#gallery").gallery('empty');
-*/
-/**
- @method length
- The length method is used to get length of images.
+ this._hide();
- <div id="gallery" data-role="gallery" data-vertical-align="middle"></div>
- length = $("#gallery").gallery('length');
-*/
-/**
- @method value
- The value method is used to get or set current index of gallery. The image_index attribute defines the index of the image to be set. If not get current index.
+ if ( start_index === undefined ) {
+ start_index = this.index;
+ }
+ if ( start_index < 0 ) {
+ start_index = 0;
+ }
+ if ( start_index >= this.images.length ) {
+ start_index = this.images.length - 1;
+ }
- <div id="gallery" data-role="gallery" data-vertical-align="middle"></div>
- value = $("#gallery").gallery('value');
- $("#gallery").gallery('value', [image_index]);
-*/
-(function ( $, window, undefined ) {
- $.widget( "tizen.gallery", $.mobile.widget, {
- options: {
- flicking: false,
- duration: 500
+ this.index = start_index;
+
+ this._show();
+
+ return this.index;
},
- dragging: false,
- moving: false,
- max_width: 0,
- max_height: 0,
- org_x: 0,
- org_time: null,
- cur_img: null,
- prev_img: null,
- next_img: null,
- images: [],
- images_hold: [],
- index: 0,
- align_type: null,
- direction: 1,
- container: null,
- orientationEventFire: false,
-
- _resize: function ( index ) {
- var img = this.images[index],
- width = this.images[index].width(),
- height = this.images[index].height(),
- margin = 0,
- ratio,
- img_max_width = this.max_width - margin,
- img_max_height = this.max_height - margin;
-
- ratio = height / width;
-
- if ( width > img_max_width ) {
- img.width( img_max_width );
- img.height( img_max_width * ratio );
- }
-
- height = img.height();
-
- if ( height > img_max_height ) {
- img.height( img_max_height );
- img.width( img_max_height / ratio );
- }
+ add: function ( file ) {
+ this.images_hold.push( file );
},
- _align: function ( index, obj ) {
- var img = this.images[index],
- img_top = 0;
+ remove: function ( index ) {
+ var temp_img;
- if ( !obj ) {
- return;
+ if ( index === undefined ) {
+ index = this.index;
}
- if ( !obj.length ) {
+
+ if ( index < 0 || index >= this.images.length ) {
return;
}
- if ( this.align_type == "middle" ) {
- img_top = ( this.max_height - img.height() ) / 2;
- } else if ( this.align_type == "bottom" ) {
- img_top = this.max_height - img.height();
- } else {
- img_top = 0;
- }
+ if ( index == this.index ) {
+ temp_img = this.cur_img;
- obj.css( 'top', img_top + 'px' );
- },
+ if ( this.index == 0 ) {
+ this.direction = 1;
+ } else if ( this.index == this.images.length - 1 ) {
+ this.direction = -1;
+ }
- _attach: function ( index, obj ) {
- var self = this,
- processing = function () {
- self._resize( index );
- self._align( index, obj );
- },
- loading = function () {
- if ( self.images[index] === undefined ) {
- return;
+ if ( this.direction < 0 ) {
+ this.cur_img = this.prev_img;
+ this.prev_img = this.prev_img.prev();
+ if ( this.prev_img.length ) {
+ this._moveLeft( this.prev_img, -this.window_width + 'px' );
+ this._attach( index - 2, this.prev_img );
}
-
- if ( !self.images[index].height() ) {
- setTimeout( loading, 10 );
- return;
+ this.index--;
+ } else {
+ this.cur_img = this.next_img;
+ this.next_img = this.next_img.next();
+ if ( this.next_img.length ) {
+ this._moveLeft( this.next_img, this.window_width + 'px' );
+ this._attach( index + 2, this.next_img );
}
+ }
+ this._moveLeft( this.cur_img, '0px', this.options.duration );
- processing();
- };
-
- if ( !obj ) {
- return;
- }
- if ( !obj.length ) {
- return;
- }
- if ( index < 0 ) {
- return;
- }
- if ( !this.images.length ) {
- return;
- }
- if ( index >= this.images.length ) {
- return;
- }
+ } else if ( index == this.index - 1 ) {
+ temp_img = this.prev_img;
+ this.prev_img = this.prev_img.prev();
+ if ( this.prev_img.length ) {
+ this._moveLeft( this.prev_img, -this.window_width + 'px' );
+ this._attach( index - 1, this.prev_img );
+ }
+ this.index--;
- obj.css( "display", "block" );
- obj.append( this.images[index] );
- loading();
- },
+ } else if ( index == this.index + 1 ) {
+ temp_img = this.next_img;
+ this.next_img = this.next_img.next();
+ if ( this.next_img.length ) {
+ this._moveLeft( this.next_img, this.window_width + 'px' );
+ this._attach( index + 1, this.next_img );
+ }
- _detach: function ( index, obj ) {
- if ( !obj ) {
- return;
- }
- if ( !obj.length ) {
- return;
- }
- if ( index < 0 ) {
- return;
- }
- if ( index >= this.images.length ) {
- return;
+ } else {
+ temp_img = $( 'div' ).find( '.ui-gallery-bg:eq(' + index + ')' );
}
- obj.css( "display", "none" );
- this.images[index].removeAttr("style");
- this.images[index].detach();
+ this.images.splice( index, 1 );
+ temp_img.detach();
},
- _detach_all: function () {
- var i;
-
- for ( i = 0; i < this.images.length; i++ ) {
- this.images[i].detach();
- }
+ empty: function () {
+ this.images.splice( 0, this.images.length );
+ this.container.find('.ui-gallery-bg').detach();
},
- _drag: function ( _x ) {
- var delta,
- coord_x;
-
- if ( !this.dragging ) {
- return;
- }
-
- if ( this.options.flicking === false ) {
- delta = this.org_x - _x;
+ length: function () {
+ return this.images.length;
+ },
- // first image
- if ( delta < 0 && !this.prev_img.length ) {
- return;
- }
- // last image
- if ( delta > 0 && !this.next_img.length ) {
- return;
- }
+ value: function ( index ) {
+ if ( index === undefined ) {
+ return this.index;
}
- coord_x = _x - this.org_x;
-
- this._moveLeft( this.cur_img , coord_x + 'px');
- if ( this.next_img.length ) {
- this._moveLeft( this.next_img , coord_x + this.window_width + 'px' );
- }
- if ( this.prev_img.length ) {
- this._moveLeft( this.prev_img , coord_x - this.window_width + 'px' );
- }
+ this.refresh( index );
},
- _move: function ( _x ) {
- var delta = this.org_x - _x,
- flip = 0,
- drag_time,
- sec,
- self;
+ destory: function() {
+ $( window ).unbind( 'resize', this._resizeHandler );
+ $( window ).unbind( 'orientationchange' , this._orientationHandler );
+ }
- if ( delta == 0 ) {
- return;
- }
+ }); /* End of widget */
- if ( delta > 0 ) {
- flip = delta < ( this.max_width * 0.45 ) ? 0 : 1;
- } else {
- flip = -delta < ( this.max_width * 0.45 ) ? 0 : 1;
- }
+ // auto self-init widgets
+ $( document ).bind( "pagecreate create", function ( e ) {
+ $( e.target ).find( ":jqmData(role='gallery')" ).gallery();
+ });
- if ( !flip ) {
- drag_time = Date.now() - this.org_time;
+ $( document ).bind( "pageshow", function ( e ) {
+ $( e.target ).find( ":jqmData(role='gallery')" ).gallery( 'show' );
+ });
- if ( Math.abs( delta ) / drag_time > 1 ) {
- flip = 1;
- }
- }
+ $( document ).bind( "pagebeforehide", function ( e ) {
+ $( e.target ).find( ":jqmData(role='gallery')" ).gallery( 'hide' );
+ } );
- if ( flip ) {
- if ( delta > 0 && this.next_img.length ) {
- /* next */
- this._detach( this.index - 1, this.prev_img );
+}( jQuery, this ) );
- this.prev_img = this.cur_img;
- this.cur_img = this.next_img;
- this.next_img = this.next_img.next();
- this.index++;
- if ( this.next_img.length ) {
- this._moveLeft( this.next_img , this.window_width + 'px' );
- this._attach( this.index + 1, this.next_img );
- }
+/* ***************************************************************************
+* style : normal, check
+* option :
+* - folded : decide to show divider press effect or not
+* - line : decide to draw divider line or not
+*/
+/**
+ @class ListDivider
+ The list divider widget is used as a list separator for grouping lists. List dividers can be used in Tizen as described in the jQueryMobile documentation for list dividers.<br/>
+ To add a list divider widget to the application, use the following code:
- this.direction = 1;
+ <li data-role="list-divider" data-style="check">
+ <form><input type="checkbox" name="c2line-check1" /></form></li>
- } else if ( delta < 0 && this.prev_img.length ) {
- /* prev */
- this._detach( this.index + 1, this.next_img );
+ The list divider can define callbacks for events as described in the jQueryMobile documentation for list events. <br/> You can use methods with the list divider as described in the jQueryMobile documentation for list methods.
- this.next_img = this.cur_img;
- this.cur_img = this.prev_img;
- this.prev_img = this.prev_img.prev();
+ @since tizen2.0
+*/
+/**
+ @property {String} data-style
+ Sets the style of the list divider. The style options are dialogue, check, expandable, and checkexpandable.
+*/
- this.index--;
+(function ( $, undefined ) {
+ $.widget( "tizen.listdivider", $.mobile.widget, {
+ options: {
+ initSelector: ":jqmData(role='list-divider')",
+ folded : false,
+ listDividerLine : true,
+ },
- if ( this.prev_img.length ) {
- this._moveLeft( this.prev_img , -this.window_width + 'px' );
- this._attach( this.index - 1, this.prev_img );
- }
+ _create: function () {
- this.direction = -1;
- }
- }
+ var $listdivider = this.element,
+ openStatus = true,
+ expandSrc,
+ listDividerLine = true,
+ style = $listdivider.attr( "data-style" );
- sec = this.options.duration;
- self = this;
+ if ( $listdivider.data("line") === false ) {
+ this.options.listDividerLine = false;
+ }
- this.moving = true;
+ if ( $listdivider.data("folded") === true ) {
+ this.options.folded = true;
+ }
- setTimeout( function () {
- self.moving = false;
- }, sec - 25 );
+ if ( style == undefined || style === "normal" || style === "check" ) {
+ if ( this.options.folded ) {
+ $listdivider.buttonMarkup();
+ } else {
+ $listdivider.wrapInner("<span class='ui-btn-text'></span>");
+ }
- this._moveLeft( this.cur_img, 0 + 'px', sec );
- if ( this.next_img.length ) {
- this._moveLeft( this.next_img, this.window_width + 'px', sec );
- }
- if ( this.prev_img.length ) {
- this._moveLeft( this.prev_img, -this.window_width + 'px', sec );
+ if ( this.options.listDividerLine ) {
+ expandSrc = "<span class='ui-divider-normal-line'></span>";
+ if ( this.options.folded ) {
+ $( expandSrc ).appendTo( $listdivider.children( ".ui-btn-inner" ) );
+ } else {
+ $( expandSrc ).appendTo( $listdivider);
+ }
+ }
}
+
+ $listdivider.bind( "vclick", function ( event, ui ) {
+ /* need to implement expand/collapse divider */
+ });
},
+ });
- _add_event: function () {
- var self = this,
- date;
+ //auto self-init widgets
+ $( document ).bind( "pagecreate create", function ( e ) {
+ $( $.tizen.listdivider.prototype.options.initSelector, e.target ).listdivider();
+ });
+}( jQuery ) );
- this.container.bind( 'vmousemove', function ( e ) {
- e.preventDefault();
- if ( self.moving ) {
- return;
- }
- if ( !self.dragging ) {
- return;
- }
- self._drag( e.pageX );
- } );
+/* ***************************************************************************
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ * ***************************************************************************
+ *
+ * Authors: Yonghwi Park <yonghwi0324.park@samsung.com>
+ * Wonseop Kim <wonseop.kim@samsung.com>
+*/
- this.container.bind( 'vmousedown', function ( e ) {
- e.preventDefault();
+/**
+ *
+ * MultiMediaView is a widget that lets the user view and handle multimedia contents.
+ * Video and audio elements are coded as standard HTML elements and enhanced by the
+ * MultiMediaview to make them attractive and usable on a mobile device.
+ *
+ * HTML Attributes:
+ * data-theme : Set a theme of widget.
+ * If this value is not defined, widget will use parent`s theme. (optional)
+ * data-controls : If this value is 'true', widget will use belonging controller.
+ * If this value is 'false', widget will use browser`s controller.
+ * Default value is 'true'.
+ * data-full-screen : Set a status that full-screen when inital start.
+ * Default value is 'false'.
+ *
+ * APIs:
+ * width( [number] )
+ * : Get or set the width of widget.
+ * The first argument is the width of widget.
+ * If no first argument is specified, will act as a getter.
+ * height( [number] )
+ * : Get or set the height of widget.
+ * The first argument is the height of widget.
+ * If no first argument is specified, will act as a getter.
+ * fullScreen( [boolean] )
+ * : Get or Set the status of full-screen.
+ * If no first argument is specified, will act as a getter.
+ *
+ * Events:
+ *
+ * N/A
+ *
+ * Examples:
+ *
+ * VIDEO :
+ * <video data-controls="true" style="width:100%;">
+ * <source src="media/oceans-clip.mp4" type="video/mp4" />
+ * Your browser does not support the video tag.
+ * </video>
+ *
+ * AUDIO :
+ * <audio data-controls="true" style="width:100%;">
+ * <source src="media/Over the horizon.mp3" type="audio/mp3" />
+ * Your browser does not support the audio tag.
+ * </audio>
+ *
+ */
+/**
+ @class MutimediaView
+ The multimedia view widget shows a player control that you can use to view and handle multimedia content. This widget uses the standard HTML video and audio elements, which have been enhanced for use on a mobile device.
- if ( self.moving ) {
- return;
- }
+ To add a multimedia view widget to the application, use the following code:
+
+ // Video player control
+ <video data-controls="true" style="width:100%;">
+ <source src="<VIDEO_FILE_URL>" type="video/mp4" /> Your browser does not support the video tag. </video>
+ // Audio player control
+ <audio data-controls="true" style="width:100%;"> <source src="<AUDIO_FILE_URL>" type="audio/mp3" /> Your browser does not support the audio tag.
+ </audio>
+*/
+/**
+ @property {Boolean} data-control
+ Sets the controls for the widget.
+ The default value is true. If the value is set to true, the widget uses its own player controls. If the value is set to false, the widget uses the browser's player controls.
+*/
+/**
+ @property {Boolean} data-full-screen
+ Defines whether the widget opens in the fullscreen view mode.
+ The default value is false.
+*/
+/**
+ @property {String} data-theme
+ Sets the widget theme.
+ If the value is not set, the parent control's theme is used
+*/
+/**
+ @method width
+ The width method is used to get (if no value is defined) or set the multimedia view widget width:
+ <video>
+ <source src="test.mp4" type="video/mp4" />
+ </video>
+ $(".selector").multimediaview("width", [value]);
+*/
+/**
+ @method height
+ The height method is used to get (if no value is defined) or set the multimedia view widget height:
+ <video>
+ <source src="test.mp4" type="video/mp4" />
+ </video>
+ $(".selector").multimediaview("height", [value]);
+*/
+/**
+ @method fullScreen
+ The fullScreen method is used to get (if no value is defined) or set the full-screen mode of the multimedia view widget. If the value is true, the full-screen mode is used; otherwise the multimedia view widget runs in the normal mode.
- self.dragging = true;
+ <video>
+ <source src="test.mp4" type="video/mp4" />
+ </video>
+ $(".selector").multimediaview("fullScreen", [value]);
+*/
+( function ( $, document, window, undefined ) {
+ $.widget( "tizen.multimediaview", $.mobile.widget, {
+ options: {
+ theme: null,
+ controls: true,
+ fullScreen: false,
+ initSelector: "video, audio"
+ },
- self.org_x = e.pageX;
+ _create: function () {
+ var self = this,
+ view = self.element,
+ viewElement = view[0],
+ isVideo = ( viewElement.nodeName === "VIDEO" ),
+ option = self.options,
+ parentTheme = $.mobile.getInheritedTheme( view, "s" ),
+ theme = option.theme || parentTheme,
+ width = viewElement.style.getPropertyValue( "width" ) || "",
+ wrap = $( "<div class='ui-multimediaview-wrap ui-multimediaview-" + theme + "'>" ),
+ control = null;
- self.org_time = Date.now();
- } );
+ $.extend( this, {
+ role: null,
+ controlTimer: null,
+ isVolumeHide: true,
+ backupView: null,
+ _reserveVolume: -1,
+ _isVideo: isVideo
+ });
- this.container.bind( 'vmouseup', function ( e ) {
- if ( self.moving ) {
- return;
- }
+ view.addClass( "ui-multimediaview" );
+ control = self._createControl();
+ control.hide();
- self.dragging = false;
+ control.find( ".ui-button" ).each( function ( index ) {
+ $( this ).buttonMarkup( { corners: true, theme: theme, shadow: true } );
+ });
- self._move( e.pageX );
- } );
-
- this.container.bind( 'vmouseout', function ( e ) {
- if ( self.moving ) {
- return;
- }
- if ( !self.dragging ) {
- return;
- }
-
- if ( ( e.pageX < 20 ) ||
- ( e.pageX > ( self.max_width - 20 ) ) ) {
- self._move( e.pageX );
- self.dragging = false;
- }
- } );
- },
-
- _del_event: function () {
- this.container.unbind( 'vmousemove' );
- this.container.unbind( 'vmousedown' );
- this.container.unbind( 'vmouseup' );
- this.container.unbind( 'vmouseout' );
- },
- _setTranslateposition : function ( $ele, value ) {
- var translate,
- cssArray = null;
+ view.wrap( wrap ).after( control );
- if ( $.support.cssTransform3d ) {
- translate = "translate3d(" + value + ", 0px, 0px)";
+ if ( isVideo ) {
+ control.addClass( "ui-multimediaview-video" );
} else {
- translate = "translate(" + value + ", 0px)";
+ self.width( width );
+ self.options.fullScreen = false;
}
- cssArray = {"-moz-transform": translate,
- "-webkit-transform": translate,
- "-ms-transform": translate,
- "-o-transform": translate,
- "transform": translate};
-
- $ele.css(cssArray);
- return $ele;
- },
- _moveLeft : function ( $ele , value , duration) {
- var translate,
- transition = "",
- cssArray = null;
- if ( $.support.cssTransform3d ) {
- translate = "translate3d(" + value + ", 0px, 0px)";
- } else {
- translate = "translate(" + value + ", 0px)";
- }
- if( duration !== undefined ) {
- transition = "-webkit-transform " + (duration / 1000)+ "s ease";
- }
- cssArray = {"-moz-transform": translate,
- "-webkit-transform": translate,
- "-ms-transform": translate,
- "-o-transform": translate,
- "transform": translate};
- if( transition !== "" ) {
- cssArray["-webkit-transition"] = transition ;
+ if ( option.controls && view.attr( "controls" ) ) {
+ view.removeAttr( "controls" );
}
- $ele.css(cssArray);
- return $ele;
+ self._addEvent();
},
- _show: function () {
- /* resizing */
- this.window_width = $( window ).width();
- this.max_width = this._get_width();
- this.max_height = this._get_height();
- this.container.css( 'height', this.max_height );
- this.cur_img = $( 'div' ).find( '.ui-gallery-bg:eq(' + this.index + ')' );
- this.prev_img = this.cur_img.prev();
- this.next_img = this.cur_img.next();
+ _resize: function () {
+ this._resizeFullscreen( this.options.fullScreen );
+ this._resizeControl();
+ this._updateSeekBar();
+ this._updateVolumeState();
+ },
- this._attach( this.index - 1, this.prev_img );
- this._attach( this.index, this.cur_img );
- this._attach( this.index + 1, this.next_img );
+ _resizeControl: function () {
+ var self = this,
+ view = self.element,
+ viewElement = view[0],
+ isVideo = self._isVideo,
+ wrap = view.parent( ".ui-multimediaview-wrap" ),
+ control = wrap.find( ".ui-multimediaview-control" ),
+ buttons = control.find( ".ui-button" ),
+ playpauseButton = control.find( ".ui-playpausebutton" ),
+ seekBar = control.find( ".ui-seekbar" ),
+ durationLabel = control.find( ".ui-durationlabel" ),
+ timestampLabel = control.find( ".ui-timestamplabel" ),
+ volumeControl = control.find( ".ui-volumecontrol" ),
+ volumeBar = volumeControl.find( ".ui-volumebar" ),
+ width = ( isVideo ? view.width() : wrap.width() ),
+ height = ( isVideo ? view.height() : control.height() ),
+ offset = view.offset(),
+ controlHeight = control.height(),
+ availableWidth = 0,
+ controlOffset = null;
- if ( this.prev_img.length ) {
- this._setTranslateposition( this.prev_img, -this.window_width + 'px');
+ if ( control ) {
+ if ( isVideo ) {
+ controlOffset = control.offset();
+ controlOffset.left = offset.left;
+ controlOffset.top = offset.top + height - controlHeight;
+ control.offset( controlOffset );
+ }
+ control.width( width );
}
- this._moveLeft( this.cur_img, '0px');
- if ( this.next_img.length ) {
- this._setTranslateposition( this.next_img, this.window_width + 'px' );
+ if ( seekBar ) {
+ availableWidth = control.width() - ( buttons.outerWidth( true ) * buttons.length );
+ availableWidth -= ( parseInt( buttons.eq( 0 ).css( "margin-left" ), 10 ) + parseInt( buttons.eq( 0 ).css( "margin-right" ), 10 ) ) * buttons.length;
+ if ( !self.isVolumeHide ) {
+ availableWidth -= volumeControl.outerWidth( true );
+ }
+ seekBar.width( availableWidth );
}
- },
- show: function () {
- if ( !this.images.length ) {
- return;
+ if ( durationLabel && !isNaN( viewElement.duration ) ) {
+ durationLabel.find( "p" ).text( self._convertTimeFormat( viewElement.duration ) );
}
- this._show();
- this._add_event();
- },
-
- _hide: function () {
- this._detach( this.index - 1, this.prev_img );
- this._detach( this.index, this.cur_img );
- this._detach( this.index + 1, this.next_img );
- },
-
- hide: function () {
- this._hide();
- this._del_event();
- },
+ if ( viewElement.autoplay && viewElement.paused === false ) {
+ playpauseButton.removeClass( "ui-play-icon" ).addClass( "ui-pause-icon" );
+ }
- _get_width: function () {
- return $( this.element ).width();
+ if ( seekBar.width() < ( volumeBar.width() + timestampLabel.width() + durationLabel.width() ) ) {
+ durationLabel.hide();
+ } else {
+ durationLabel.show();
+ }
},
- _get_height: function () {
- var $page = $( this.element ).parentsUntil( 'ui-page' ),
- $content = $page.children( '.ui-content' ),
- header_h = $page.children( '.ui-header' ).outerHeight() || 0,
- footer_h = $page.children( '.ui-footer' ).outerHeight() || 0,
- padding = parseFloat( $content.css( 'padding-top' ) )
- + parseFloat( $content.css( 'padding-bottom' ) ),
- content_h = $( window ).height() - header_h - footer_h - padding;
+ _resizeFullscreen: function ( isFullscreen ) {
+ if ( !this._isVideo ) {
+ return;
+ }
- return content_h;
- },
+ var self = this,
+ view = self.element,
+ viewElement = view[0],
+ wrap = view.parent( ".ui-multimediaview-wrap" ),
+ control = wrap.find( ".ui-multimediaview-control" ),
+ fullscreenButton = control.find( ".ui-fullscreenbutton" ),
+ currentPage = $( ".ui-page-active" ),
+ playpauseButton = control.find( ".ui-playpausebutton" ),
+ timestampLabel = control.find( ".ui-timestamplabel" ),
+ seekBar = control.find( ".ui-seekbar" ),
+ durationBar = seekBar.find( ".ui-duration" ),
+ currenttimeBar = seekBar.find( ".ui-currenttime" ),
+ body = $( "body" )[0],
+ header = currentPage.children( ".ui-header" ),
+ footer = currentPage.children( ".ui-footer" ),
+ docWidth = 0,
+ docHeight = 0;
- _create: function () {
- var temp_img,
- self = this,
- index,
- i = 0;
+ if ( isFullscreen ) {
+ if ( !self.backupView ) {
+ self.backupView = {
+ width: viewElement.style.getPropertyValue( "width" ) || "",
+ height: viewElement.style.getPropertyValue( "height" ) || "",
+ position: view.css( "position" ),
+ zindex: view.css( "z-index" ),
+ wrapHeight: wrap[0].style.getPropertyValue( "height" ) || ""
+ };
+ }
+ docWidth = body.clientWidth;
+ docHeight = body.clientHeight - 1;
- $( this.element ).wrapInner( '<div class="ui-gallery"></div>' );
- $( this.element ).find( 'img' ).wrap( '<div class="ui-gallery-bg"></div>' );
+ header.hide();
+ footer.hide();
+ view.parents().each( function ( e ) {
+ var element = $( this );
+ element.addClass( "ui-fullscreen-parents" )
+ .siblings()
+ .addClass( "ui-multimediaview-siblings-off" );
+ });
+ fullscreenButton.removeClass( "ui-fullscreen-on" ).addClass( "ui-fullscreen-off" );
- this.container = $( this.element ).find('.ui-gallery');
+ wrap.height( docHeight );
+ view.width( docWidth ).height( docHeight );
+ } else {
+ if ( !self.backupView ) {
+ return;
+ }
- temp_img = $( 'div' ).find( '.ui-gallery-bg:first' );
+ header.show();
+ footer.show();
+ view.parents().each( function ( e ) {
+ var element = $( this );
+ element.removeClass( "ui-fullscreen-parents" )
+ .siblings()
+ .removeClass( "ui-multimediaview-siblings-off" );
+ });
- while ( temp_img.length ) {
- this.images[i] = temp_img.find( 'img' );
- temp_img = temp_img.next();
- i++;
- }
+ fullscreenButton.removeClass( "ui-fullscreen-off" ).addClass( "ui-fullscreen-on" );
- this._detach_all();
+ wrap.css( "height", self.backupView.wrapHeight );
+ view.css( {
+ "width": self.backupView.width,
+ "height": self.backupView.height,
+ "position": self.backupView.position,
+ "z-index": self.backupView.zindex
+ });
+ self.backupView = null;
- index = parseInt( $( this.element ).jqmData( 'index' ), 10 );
- if ( !index ) {
- index = 0;
- }
- if ( index < 0 ) {
- index = 0;
- }
- if ( index >= this.images.length ) {
- index = this.images.length - 1;
+ $( window ).trigger( "throttledresize" );
}
+ },
- this.index = index;
-
- this.align_type = $( this.element ).jqmData( 'vertical-align' );
-
- $.extend( this, {
- _globalHandlers: [
- {
- src: $( window ),
- handler: {
- orientationchange: $.proxy( this, "_orientationHandler" ),
- resize: $.proxy( this, "_resizeHandler" )
- }
- }
- ]
- });
-
- $.each( this._globalHandlers, function( idx, value ) {
- value.src.bind( value.handler );
- });
- },
+ _addEvent: function () {
+ var self = this,
+ view = self.element,
+ option = self.options,
+ viewElement = view[0],
+ isVideo = self._isVideo,
+ control = view.parent( ".ui-multimediaview-wrap" ).find( ".ui-multimediaview-control" ),
+ playpauseButton = control.find( ".ui-playpausebutton" ),
+ timestampLabel = control.find( ".ui-timestamplabel" ),
+ durationLabel = control.find( ".ui-durationlabel" ),
+ volumeButton = control.find( ".ui-volumebutton" ),
+ volumeControl = control.find( ".ui-volumecontrol" ),
+ volumeBar = volumeControl.find( ".ui-volumebar" ),
+ volumeGuide = volumeControl.find( ".ui-guide" ),
+ volumeHandle = volumeControl.find( ".ui-handle" ),
+ fullscreenButton = control.find( ".ui-fullscreenbutton" ),
+ seekBar = control.find( ".ui-seekbar" ),
+ durationBar = seekBar.find( ".ui-duration" ),
+ currenttimeBar = seekBar.find( ".ui-currenttime" ),
+ $document = $( document );
- _update: function () {
- var image_file,
- bg_html,
- temp_img;
+ view.bind( "loadedmetadata.multimediaview", function ( e ) {
+ if ( !isNaN( viewElement.duration ) ) {
+ durationLabel.find( "p" ).text( self._convertTimeFormat( viewElement.duration ) );
+ }
+ self._resize();
+ }).bind( "timeupdate.multimediaview", function ( e ) {
+ self._updateSeekBar();
+ }).bind( "play.multimediaview", function ( e ) {
+ playpauseButton.removeClass( "ui-play-icon" ).addClass( "ui-pause-icon" );
+ }).bind( "pause.multimediaview", function ( e ) {
+ playpauseButton.removeClass( "ui-pause-icon" ).addClass( "ui-play-icon" );
+ }).bind( "ended.multimediaview", function ( e ) {
+ if ( typeof viewElement.loop == "undefined" || viewElement.loop === "" ) {
+ self.stop();
+ }
+ }).bind( "volumechange.multimediaview", function ( e ) {
+ if ( viewElement.muted && viewElement.volume > 0.1 ) {
+ volumeButton.removeClass( "ui-volume-icon" ).addClass( "ui-mute-icon" );
+ self._reserveVolume = viewElement.volume;
+ viewElement.volume = 0;
+ } else if ( self._reserveVolume !== -1 && !viewElement.muted ) {
+ volumeButton.removeClass( "ui-mute-icon" ).addClass( "ui-volume-icon" );
+ viewElement.volume = self._reserveVolume;
+ self._reserveVolume = -1;
+ } else if ( viewElement.volume < 0.1 ) {
+ volumeButton.removeClass( "ui-volume-icon" ).addClass( "ui-mute-icon" );
+ } else {
+ volumeButton.removeClass( "ui-mute-icon" ).addClass( "ui-volume-icon" );
+ }
- while ( this.images_hold.length ) {
- image_file = this.images_hold.shift();
+ if ( !self.isVolumeHide ) {
+ self._updateVolumeState();
+ }
+ }).bind( "durationchange.multimediaview", function ( e ) {
+ if ( !isNaN( viewElement.duration ) ) {
+ durationLabel.find( "p" ).text( self._convertTimeFormat( viewElement.duration ) );
+ }
+ self._resize();
+ }).bind( "click.multimediaview", function ( e ) {
+ if ( !self.options.controls ) {
+ return;
+ }
- bg_html = $( '<div class="ui-gallery-bg"></div>' );
- temp_img = $( '<img src="' + image_file + '"></div>' );
+ control.fadeToggle( "fast" );
+ self._resize();
+ }).bind( "multimediaviewinit", function ( e ) {
+ if ( option.controls ) {
+ control.show();
+ }
+ self._resize();
+ });
- bg_html.append( temp_img );
- this.container.append( bg_html );
- this.images.push( temp_img );
- }
+ playpauseButton.bind( "click.multimediaview", function () {
+ self._endTimer();
- this._detach_all();
- },
- _resizeHandler: function() {
- var self = this;
- if( self.orientationEventFire ) {
- self.refresh();
- self.orientationEventFire = false;
- }
- },
- _orientationHandler: function() {
- var self = this;
- self.refresh();
- self.orientationEventFire = true;
- },
- refresh: function ( start_index ) {
- this._update();
+ if ( viewElement.paused ) {
+ viewElement.play();
+ } else {
+ viewElement.pause();
+ }
- this._hide();
+ if ( isVideo ) {
+ self._startTimer();
+ }
+ });
- if ( start_index === undefined ) {
- start_index = this.index;
- }
- if ( start_index < 0 ) {
- start_index = 0;
- }
- if ( start_index >= this.images.length ) {
- start_index = this.images.length - 1;
- }
+ fullscreenButton.bind( "click.multimediaview", function ( e ) {
+ e.preventDefault();
+ self.fullScreen( !self.options.fullScreen );
+ self._resize();
+ self._endTimer();
+ e.stopPropagation();
+ });
- this.index = start_index;
+ seekBar.bind( "vmousedown.multimediaview", function ( e ) {
+ var x = e.clientX,
+ duration = viewElement.duration,
+ durationOffset = durationBar.offset(),
+ durationWidth = durationBar.width(),
+ timerate = ( x - durationOffset.left ) / durationWidth,
+ time = duration * timerate;
- this._show();
+ if ( !viewElement.played.length ) {
+ return;
+ }
- return this.index;
- },
+ viewElement.currentTime = time;
- add: function ( file ) {
- this.images_hold.push( file );
- },
+ self._endTimer();
- remove: function ( index ) {
- var temp_img;
+ e.preventDefault();
- if ( index === undefined ) {
- index = this.index;
- }
+ $document.bind( "vmousemove.multimediaview", function ( e ) {
+ var x = e.clientX,
+ timerate = ( x - durationOffset.left ) / durationWidth;
- if ( index < 0 || index >= this.images.length ) {
- return;
- }
+ viewElement.currentTime = duration * timerate;
- if ( index == this.index ) {
- temp_img = this.cur_img;
+ e.preventDefault();
+ }).bind( "vmouseup.multimediaview", function () {
+ $document.unbind( "vmousemove.multimediaview vmouseup.multimediaview" );
+ if ( viewElement.paused ) {
+ viewElement.pause();
+ } else {
+ viewElement.play();
+ }
+ });
+ });
- if ( this.index == 0 ) {
- this.direction = 1;
- } else if ( this.index == this.images.length - 1 ) {
- this.direction = -1;
- }
+ volumeButton.bind( "click.multimediaview", function () {
+ if ( self.isVolumeHide ) {
+ var view = self.element,
+ volume = viewElement.volume;
- if ( this.direction < 0 ) {
- this.cur_img = this.prev_img;
- this.prev_img = this.prev_img.prev();
- if ( this.prev_img.length ) {
- this._moveLeft( this.prev_img, -this.window_width + 'px' );
- this._attach( index - 2, this.prev_img );
- }
- this.index--;
+ self.isVolumeHide = false;
+ volumeControl.fadeIn( "fast", function () {
+ self._updateVolumeState();
+ self._updateSeekBar();
+ });
+ self._resize();
} else {
- this.cur_img = this.next_img;
- this.next_img = this.next_img.next();
- if ( this.next_img.length ) {
- this._moveLeft( this.next_img, this.window_width + 'px' );
- this._attach( index + 2, this.next_img );
- }
- }
- this._moveLeft( this.cur_img, '0px', this.options.duration );
-
- } else if ( index == this.index - 1 ) {
- temp_img = this.prev_img;
- this.prev_img = this.prev_img.prev();
- if ( this.prev_img.length ) {
- this._moveLeft( this.prev_img, -this.window_width + 'px' );
- this._attach( index - 1, this.prev_img );
+ self.isVolumeHide = true;
+ volumeControl.fadeOut( "fast", function () {
+ self._resize();
+ });
}
- this.index--;
+ });
- } else if ( index == this.index + 1 ) {
- temp_img = this.next_img;
- this.next_img = this.next_img.next();
- if ( this.next_img.length ) {
- this._moveLeft( this.next_img, this.window_width + 'px' );
- this._attach( index + 1, this.next_img );
- }
+ volumeBar.bind( "vmousedown.multimediaview", function ( e ) {
+ var baseX = e.clientX,
+ volumeGuideLeft = volumeGuide.offset().left,
+ volumeGuideWidth = volumeGuide.width(),
+ volumeBase = volumeGuideLeft + volumeGuideWidth,
+ handlerOffset = volumeHandle.offset(),
+ volumerate = ( baseX - volumeGuideLeft ) / volumeGuideWidth,
+ currentVolume = ( baseX - volumeGuideLeft ) / volumeGuideWidth;
- } else {
- temp_img = $( 'div' ).find( '.ui-gallery-bg:eq(' + index + ')' );
- }
+ self._endTimer();
+ self._setVolume( currentVolume.toFixed( 2 ) );
- this.images.splice( index, 1 );
- temp_img.detach();
- },
+ e.preventDefault();
- empty: function () {
- this.images.splice( 0, this.images.length );
- this.container.find('.ui-gallery-bg').detach();
- },
+ $document.bind( "vmousemove.multimediaview", function ( e ) {
+ var currentX = e.clientX,
+ currentVolume = ( currentX - volumeGuideLeft ) / volumeGuideWidth;
- length: function () {
- return this.images.length;
+ self._setVolume( currentVolume.toFixed( 2 ) );
+
+ e.preventDefault();
+ }).bind( "vmouseup.multimediaview", function () {
+ $document.unbind( "vmousemove.multimediaview vmouseup.multimediaview" );
+ });
+ });
},
- value: function ( index ) {
- if ( index === undefined ) {
- return this.index;
- }
+ _removeEvent: function () {
+ var view = this.element,
+ control = view.parent( ".ui-multimediaview-wrap" ).find( ".ui-multimediaview-control" ),
+ playpauseButton = control.find( ".ui-playpausebutton" ),
+ fullscreenButton = control.find( ".ui-fullscreenbutton" ),
+ seekBar = control.find( ".ui-seekbar" ),
+ volumeControl = control.find( ".ui-volumecontrol" ),
+ volumeBar = volumeControl.find( ".ui-volumebar" ),
+ volumeHandle = volumeControl.find( ".ui-handle" );
- this.refresh( index );
+ view.unbind( ".multimediaview" );
+ playpauseButton.unbind( ".multimediaview" );
+ fullscreenButton.unbind( ".multimediaview" );
+ seekBar.unbind( ".multimediaview" );
+ volumeBar.unbind( ".multimediaview" );
+ volumeHandle.unbind( ".multimediaview" );
},
- destory: function() {
- $( window ).unbind( 'resize', this._resizeHandler );
- $( window ).unbind( 'orientationchange' , this._orientationHandler );
- }
-
- }); /* End of widget */
+ _createControl: function () {
+ var view = this.element,
+ viewElement = view[0],
+ control = $( "<span></span>" ).addClass( "ui-multimediaview-control" ),
+ playpauseButton = $( "<span></span>" ).addClass( "ui-playpausebutton ui-button ui-play-icon" ),
+ seekBar = $( "<span></span>" ).addClass( "ui-seekbar ui-multimediaview-bar" ),
+ timestampLabel = $( "<span><p>00:00:00</p></span>" ).addClass( "ui-timestamplabel" ),
+ durationLabel = $( "<span><p>00:00:00</p></span>" ).addClass( "ui-durationlabel" ),
+ volumeButton = $( "<span></span>" ).addClass( "ui-volumebutton ui-button" ),
+ volumeControl = $( "<span></span>" ).addClass( "ui-volumecontrol" ),
+ volumeBar = $( "<div></div>" ).addClass( "ui-volumebar ui-multimediaview-bar" ),
+ volumeGuide = $( "<span></span>" ).addClass( "ui-guide ui-multimediaview-bar-bg" ),
+ volumeValue = $( "<span></span>" ).addClass( "ui-value ui-multimediaview-bar-highlight" ),
+ volumeHandle = $( "<span></span>" ).addClass( "ui-handle" ),
+ fullscreenButton = $( "<span></span>" ).addClass( "ui-fullscreenbutton ui-button" ),
+ durationBar = $( "<span></span>" ).addClass( "ui-duration ui-multimediaview-bar-bg" ),
+ currenttimeBar = $( "<span></span>" ).addClass( "ui-currenttime ui-multimediaview-bar-highlight" );
- // auto self-init widgets
- $( document ).bind( "pagecreate create", function ( e ) {
- $( e.target ).find( ":jqmData(role='gallery')" ).gallery();
- });
+ seekBar.append( durationBar ).append( currenttimeBar ).append( durationLabel ).append( timestampLabel );
- $( document ).bind( "pageshow", function ( e ) {
- $( e.target ).find( ":jqmData(role='gallery')" ).gallery( 'show' );
- });
+ volumeButton.addClass( viewElement.muted ? "ui-mute-icon" : "ui-volume-icon" );
+ volumeBar.append( volumeGuide ).append( volumeValue ).append( volumeHandle );
+ volumeControl.append( volumeBar );
- $( document ).bind( "pagebeforehide", function ( e ) {
- $( e.target ).find( ":jqmData(role='gallery')" ).gallery( 'hide' );
- } );
+ control.append( playpauseButton ).append( seekBar ).append( volumeControl ).append( volumeButton );
-}( jQuery, this ) );
+ if ( this._isVideo ) {
+ $( fullscreenButton ).addClass( "ui-fullscreen-on" );
+ control.append( fullscreenButton );
+ }
+ volumeControl.hide();
+ return control;
+ },
-\r
-/**\r
- @class Checkbox\r
- The check box widget shows a list of options on the screen where one or more can be selected. Check boxes can be used in Tizen as described in the jQueryMobile documentation for check boxes.<br/> To add a check box widget to the application, use the following code:\r
-\r
- <input type="checkbox" name="mycheck" id="check-test" class="favorite" />\r
- <label for="check-test">Favorite</label>\r
- <input type="checkbox" name="check-favorite" id="check-test2" checked="checked" disabled="disabled" class="favorite" />\r
- <label for="check-test2">Favorite Checked, Disabled</label>\r
-\r
- The check box can define callbacks for events as described in the jQueryMobile documentation for check box events.\r
- You can use methods with the check box as described in the jQueryMobile documentation for check box methods.\r
-\r
-*/\r
-/**\r
- @property {String} class\r
- Defines the check box style. <br/> The default value is check. If the value is set to favorite, a star-shaped check box is created.\r
-*/\r
-\r
+ _startTimer: function ( duration ) {
+ this._endTimer();
+ if ( !duration ) {
+ duration = 3000;
+ }
-/****************************************************************************
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- *
- * Author: Wongi Lee <wongi11.lee@samsung.com>
-*/
+ var self = this,
+ view = self.element,
+ control = view.parent( ".ui-multimediaview-wrap" ).find( ".ui-multimediaview-control" ),
+ volumeControl = control.find( ".ui-volumecontrol" );
-/**
- * Extendable List Widget for unlimited data.
- * To support more then 1,000 items, special list widget developed.
- * Fast initialize and append some element into the DOM tree repeatedly.
- * DB connection and works like DB cursor.
- *
- * HTML Attributes:
- *
- * data-role: extendablelist
- * data-template : jQuery.template ID that populate into extendable list. A button : a <DIV> element with "data-role : button" should be included on data-template.
- * data-dbtable : DB Table name. It used as window[DB NAME]. Loaded data should be converted as window object.
- * data-extenditems : Number of elements to extend at once.
- *
- * ID : <UL> element that has "data-role=extendablelist" must have ID attribute.
- * Class : <UL> element that has "data-role=extendablelist" should have "vlLoadSuccess" class to guaranty DB loading is completed.
- * tmp_load_more : Template ID for "load more" message and button.
- *
- *
- *APIs:
- * create ( {
- * itemData: function ( idx ) { return json_obj; },
- * numItemData: number or function () { return number; },
- * cacheItemData: function ( minIdx, maxIdx ) {}
- * } )
- * : Create a extendable list widget. At this moment, _create method is called.
- * args : A collection of options
- * itemData: A function that returns JSON object for given index. Mandatory.
- * numItemData: Total number of itemData. Mandatory.
- * cacheItemData: Extendable list will ask itemData between minIdx and maxIdx.
- * Developers can implement this function for preparing data.
- * Optional.
- *
- *Examples:
- *
- * <script id="tmp-3-1-1" type="text/x-jquery-tmpl">
- * <li class="ui-li-3-1-1"><span class="ui-li-text-main">${NAME}</span></li>
- * </script>
- *
- * <script id="tmp_load_more" type="text/x-jquery-tmpl">
- * <li class="ui-li-3-1-1" style="text-align:center; margin:0 auto">
- * <div data-role="button">Load ${NUM_MORE_ITEMS} more items</div>
- * </li>
- * </script>
- *
- * <ul id = "extendable_list_main" data-role="extendablelist" data-extenditems="50" data-template="tmp-3-1-1">
- * </ul>
- *
- */
+ self.controlTimer = setTimeout( function () {
+ self.isVolumeHide = true;
+ self.controlTimer = null;
+ volumeControl.hide();
+ control.fadeOut( "fast" );
+ }, duration );
+ },
-/**
- @class Extendablelist
- In the Web environment, it is challenging to display a large amount of data in a list, such as displaying a contact list of over 1000 list items. It takes time to display the entire list in HTML and the DOM manipulation is complex.
- The extendable list widget is used to display a list of unlimited data elements on the screen for better performance. The list is extended if you click the button at the bottom of the list to load more data elements. Extendable lists are based on the jQuery.template plugin as described in the jQuery documentation for jQuery.template plugin.<br/>
- To add a extendable list widget to the application, use the following code:
+ _endTimer: function () {
+ if ( this.controlTimer ) {
+ clearTimeout( this.controlTimer );
+ this.controlTimer = null;
+ }
+ },
- <script id="tmp-3-1-1" type="text/x-jquery-tmpl">
- <li class="ui-li-3-1-1"><span class="ui-li-text-main">${NAME}</span></li>
- </script>
- <script id="tmp_load_more" type="text/x-jquery-tmpl">
- <li class="ui-li-3-1-1" style="text-align:center; margin:0 auto">
- <div data-role="button">Load ${NUM_MORE_ITEMS} more items</div>
- </li>
- </script>
- <ul id="extendable_list_main" data-role="extendablelist" data-extenditems="50" data-template="tmp-3-1-1">
- </ul>
-*/
-/**
- @property {String} data-role
- Creates the extendable list view. The value must be set to extendablelist. Only the <ul> element, which a id attribute defined, supports this option. Also, the elLoadSuccess class attribute must be defined in the <ul> element to ensure that loading data from the database is complete.
-*/
-/**
- @property {String} data-template
- Specifies the jQuery.template element ID. The jQuery.template must be defined. The template style can use rem units to support scalability. For using the button at the bottom of the list to load more data elements, there must be list view template with the button. The attribute ID must be tmp_load_more.
-*/
-/**
- @property {Integer} data-extenditems
- Defines the number of data elements to be extended at a time.
-*/
-( function ( $, undefined ) {
+ _convertTimeFormat: function ( systime ) {
+ if ( !$.isNumeric( systime ) ) {
+ return "Playback Error";
+ }
- //Keeps track of the number of lists per page UID
- //This allows support for multiple nested list in the same page
- //https://github.com/jquery/jquery-mobile/issues/1617
- var listCountPerPage = {};
+ var ss = parseInt( systime % 60, 10 ).toString(),
+ mm = parseInt( ( systime / 60 ) % 60, 10 ).toString(),
+ hh = parseInt( systime / 3600, 10 ).toString(),
+ time = ( ( hh.length < 2 ) ? "0" + hh : hh ) + ":" +
+ ( ( mm.length < 2 ) ? "0" + mm : mm ) + ":" +
+ ( ( ss.length < 2 ) ? "0" + ss : ss );
- $.widget( "tizen.extendablelist", $.mobile.widget, {
- options: {
- theme: "s",
- countTheme: "c",
- headerTheme: "b",
- dividerTheme: "b",
- splitIcon: "arrow-r",
- splitTheme: "b",
- inset: false,
- id: "", /* Extendable list UL elemet's ID */
- extenditems: 50, /* Number of append items */
- childSelector: " li", /* To support swipe list */
- dbtable: "",
- template : "", /* Template for each list item */
- loadmore : "tmp_load_more", /* Template for "Load more" message */
- scrollview: false,
- initSelector: ":jqmData(role='extendablelist')"
+ return time;
},
- _stylerMouseUp: function () {
- $( this ).addClass( "ui-btn-up-s" );
- $( this ).removeClass( "ui-btn-down-s" );
- },
+ _updateSeekBar: function ( currenttime ) {
+ var view = this.element,
+ viewElement = view[0],
+ duration = viewElement.duration,
+ control = view.parent( ".ui-multimediaview-wrap" ).find( ".ui-multimediaview-control" ),
+ seekBar = control.find( ".ui-seekbar" ),
+ durationBar = seekBar.find( ".ui-duration" ),
+ currenttimeBar = seekBar.find( ".ui-currenttime" ),
+ timestampLabel = control.find( ".ui-timestamplabel" ),
+ durationOffset = durationBar.offset(),
+ durationWidth = durationBar.width(),
+ durationHeight = durationBar.height(),
+ timebarWidth = 0;
- _stylerMouseDown: function () {
- $( this ).addClass( "ui-btn-down-s" );
- $( this ).removeClass( "ui-btn-up-s" );
+ if ( typeof currenttime === "undefined" ) {
+ currenttime = viewElement.currentTime;
+ }
+ timebarWidth = parseInt( currenttime / duration * durationWidth, 10 );
+ durationBar.offset( durationOffset );
+ currenttimeBar.offset( durationOffset ).width( timebarWidth );
+ timestampLabel.find( "p" ).text( this._convertTimeFormat( currenttime ) );
},
- _stylerMouseOver: function () {
- $( this ).toggleClass( "ui-btn-hover-s" );
- },
+ _updateVolumeState: function () {
+ var view = this.element,
+ control = view.parent( ".ui-multimediaview-wrap" ).find( ".ui-multimediaview-control" ),
+ volumeControl = control.find( ".ui-volumecontrol" ),
+ volumeButton = control.find( ".ui-volumebutton" ),
+ volumeBar = volumeControl.find( ".ui-volumebar" ),
+ volumeGuide = volumeControl.find( ".ui-guide" ),
+ volumeValue = volumeControl.find( ".ui-value" ),
+ volumeHandle = volumeControl.find( ".ui-handle" ),
+ handlerWidth = volumeHandle.width(),
+ handlerHeight = volumeHandle.height(),
+ volumeGuideHeight = volumeGuide.height(),
+ volumeGuideWidth = volumeGuide.width(),
+ volumeGuideTop = 0,
+ volumeGuideLeft = 0,
+ volumeBase = 0,
+ handlerOffset = null,
+ volume = view[0].volume;
- _stylerMouseOut: function () {
- $( this ).toggleClass( "ui-btn-hover-s" );
- $( this ).addClass( "ui-btn-up-s" );
- $( this ).removeClass( "ui-btn-down-s" );
+ volumeGuideTop = parseInt( volumeGuide.offset().top, 10 );
+ volumeGuideLeft = parseInt( volumeGuide.offset().left, 10 );
+ volumeBase = volumeGuideLeft;
+ handlerOffset = volumeHandle.offset();
+ handlerOffset.top = volumeGuideTop - parseInt( ( handlerHeight - volumeGuideHeight ) / 2, 10 );
+ handlerOffset.left = volumeBase + parseInt( volumeGuideWidth * volume, 10 ) - parseInt( handlerWidth / 2, 10 );
+ volumeHandle.offset( handlerOffset );
+ volumeValue.offset( volumeGuide.offset() ).width( parseInt( volumeGuideWidth * ( volume ), 10 ) );
},
- _pushData: function ( template ) {
- var o = this.options,
- t = this,
- i = 0,
- myTemplate = $( "#" + template ),
- loadMoreItems = ( o.extenditems > t._numItemData - t._lastIndex ? t._numItemData - t.lastIndex : o.extenditems ),
- htmlData;
-
- for (i = 0; i < loadMoreItems; i++ ) {
- htmlData = myTemplate.tmpl( t._itemData( i ) );
- $( o.id ).append( $( htmlData ).attr( 'id', 'li_' + i ) );
-
- /* Add style */
- $( o.id + ">" + o.childSelector )
- .addClass( "ui-btn-up-s" )
- .bind( "mouseup", t._stylerMouseUp )
- .bind( "mousedown", t._stylerMouseDown )
- .bind( "mouseover", t._stylerMouseOver )
- .bind( "mouseout", t._stylerMouseOut );
+ _setVolume: function ( value ) {
+ var viewElement = this.element[0];
- t._lastIndex += 1;
+ if ( value < 0.0 || value > 1.0 ) {
+ return;
}
- /* After push data, re-style extendable list widget */
- $( o.id ).trigger( "create" );
+ viewElement.volume = value;
},
- _loadmore: function ( event ) {
- var t = event.data, // <li> element
- o = t.options,
- i = 0,
- myTemplate = $( "#" + o.template ),
- loadMoreItems = ( o.extenditems > t._numItemData - t._lastIndex ? t._numItemData - t._lastIndex : o.extenditems ),
- htmlData,
- more_items_to_load,
- num_next_load_items;
+ width: function ( value ) {
+ if ( this.options.fullScreen ) {
+ return;
+ }
- /* Remove load more message */
- $( "#load_more_message" ).remove();
+ var view = this.element,
+ wrap = view.parent( ".ui-multimediaview-wrap" );
- /* Append More Items */
- for ( i = 0; i < loadMoreItems; i++ ) {
- htmlData = myTemplate.tmpl( t._itemData( t._lastIndex ) );
- $( o.id ).append( $( htmlData ).attr( 'id', 'li_' + t._lastIndex ) );
- t._lastIndex += 1;
+ if ( arguments.length === 0 ) {
+ return view.width();
}
- /* Append "Load more" message on the last of list */
- if ( t._numItemData > t._lastIndex ) {
- myTemplate = $( "#" + o.loadmore );
- more_items_to_load = t._numItemData - t._lastIndex;
- num_next_load_items = ( o.extenditems <= more_items_to_load ) ? o.extenditems : more_items_to_load;
- htmlData = myTemplate.tmpl( { NUM_MORE_ITEMS : num_next_load_items } );
- // Button minimum height(37px)
- $( o.id ).append( $( htmlData ).attr( 'id', "load_more_message" ).css( 'min-height' , "37px") );
+ if ( !this._isVideo ) {
+ wrap.width( value );
}
- $( o.id ).trigger( "create" );
- $( o.id ).extendablelist( "refresh" );
+ view.width( value );
+ this._resize();
},
- recreate: function ( newArray ) {
- this._create( {
- itemData: function ( idx ) { return newArray[ idx ]; },
- numItemData: newArray.length
- } );
- },
+ height: function ( value ) {
+ if ( !this._isVideo || this.options.fullScreen ) {
+ return;
+ }
- _initList: function (args ) {
- var t = this,
- o = this.options,
- myTemplate,
- more_items_to_load,
- num_next_load_items,
- htmlData;
+ var view = this.element;
- /* Make Gen list by template */
- if ( t._lastIndex <= 0 ) {
- t._pushData( o.template );
+ if ( arguments.length === 0 ) {
+ return view.height();
+ }
- /* Append "Load more" message on the last of list */
- if ( t._numItemData > t._lastIndex ) {
- myTemplate = $( "#" + o.loadmore );
- more_items_to_load = t._numItemData - t._lastIndex;
- num_next_load_items = ( o.extenditems <= more_items_to_load) ? o.extenditems : more_items_to_load;
- htmlData = myTemplate.tmpl( { NUM_MORE_ITEMS : num_next_load_items } );
- // Button minimum height(37px)
- $( o.id ).append( $( htmlData ).attr( 'id', "load_more_message" ).css( 'min-height' , "37px") );
+ view.height( value );
+ this._resize();
+ },
- $( "#load_more_message" ).live( "click", t, t._loadmore );
- } else {
- /* No more items to load */
- $( "#load_more_message" ).die();
- $( "#load_more_message" ).remove();
- }
+ fullScreen: function ( value ) {
+ if ( !this._isVideo ) {
+ return;
}
- if ( o.childSelector == " ul" ) {
- $( o.id + " ul" ).swipelist();
- }
+ var view = this.element,
+ option = this.options;
- $( o.id ).trigger( "create" );
+ if ( arguments.length === 0 ) {
+ return option.fullScreen;
+ }
- t.refresh( true );
- },
+ view.parents( ".ui-scrollview-clip" ).scrollview( "scrollTo", 0, 0 );
- create: function () {
- var o = this.options;
+ this.options.fullScreen = value;
- /* external API for AJAX callback */
- this._create.apply( this, arguments );
+ this._resize();
},
- _create: function ( args ) {
- var t = this,
- o = this.options,
- $el = this.element,
- dbtable_name;
-
-
- t.destroy();
-
- $.extend(this, {
- _itemData: function ( idx ) { return null; },
- _numItemData: 0,
- _cacheItemData: function ( minIdx, maxIdx ) { },
- _lastIndex: 0
- });
+ refresh: function () {
+ this._resize();
+ }
+ });
+ $( document ).bind( "pagecreate create", function ( e ) {
+ $.tizen.multimediaview.prototype.enhanceWithin( e.target );
+ }).bind( "pagechange", function ( e ) {
+ $( e.target ).find( ".ui-multimediaview" ).each( function () {
+ var view = $( this ),
+ viewElement = view[0];
- // create listview markup
- t.element.addClass( function ( i, orig ) {
- return orig + " ui-listview ui-extendable-list-container" + ( t.options.inset ? " ui-listview-inset ui-corner-all ui-shadow " : "" );
- });
+ if ( viewElement.autoplay ) {
+ viewElement.play();
+ }
+ view.multimediaview( "refresh" );
+ });
+ }).bind( "pagebeforechange", function ( e ) {
+ $( e.target ).find( ".ui-multimediaview" ).each( function () {
+ var view = $( this ),
+ viewElement = view[0],
+ isFullscreen = view.multimediaview( "fullScreen" );
- o.id = "#" + $el.attr( "id" );
+ if ( isFullscreen ) {
+ view.multimediaview( "fullScreen", !isFullscreen );
+ }
- if ( $el.data( "extenditems" ) ) {
- o.extenditems = parseInt( $el.data( "extenditems" ), 10 );
+ if ( viewElement.played.length !== 0 ) {
+ viewElement.pause();
}
+ });
+ });
- $( o.id ).bind( "pagehide", function (e) {
- $( o.id ).empty();
- });
+ $( window ).bind( "resize orientationchange", function ( e ) {
+ $( ".ui-page-active" ).find( ".ui-multimediaview" ).multimediaview( "refresh" );
+ });
- /* Scroll view */
- if ( $( ".ui-scrollview-clip" ).size() > 0) {
- o.scrollview = true;
- } else {
- o.scrollview = false;
- }
+} ( jQuery, document, window ) );
- if ( args ) {
- if ( !t._loadData( args ) ) {
- return;
- }
- } else {
- // Legacy support: dbtable
- console.warn("WARNING: The data interface of extendable list is changed. \nOld data interface(data-dbtable) is still supported, but will be removed in next version. \nPlease fix your code soon!");
- if ( $( o.id ).hasClass( "elLoadSuccess" ) ) {
- dbtable_name = $el.jqmData('dbtable');
- o.dbtable = window[ dbtable_name ];
- if ( !(o.dbtable) ) {
- o.dbtable = { };
- }
- t._itemData = function ( idx ) {
- return o.dbtable[ idx ];
- };
- t._numItemData = o.dbtable.length;
- } else {
- console.warn("No elLoadSuccess class");
- return;
- }
- }
+/* ***************************************************************************
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software" ),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ * ***************************************************************************
+ */
- if ( $el.data( "template" ) ) {
- o.template = $el.data( "template" );
+// most of following codes are derived from jquery.mobile.scrollview.js
+(function ( $, window, document, undefined ) {
- /* to support swipe list, <li> or <ul> can be main node of extendable list. */
- if ( $el.data( "swipelist" ) == true ) {
- o.childSelector = " ul";
- } else {
- o.shildSelector = " li";
- }
- }
- t._initList( args );
- },
+ function circularNum( num, total ) {
+ var n = num % total;
+ if ( n < 0 ) {
+ n = total + n;
+ }
+ return n;
+ }
- _loadData : function ( args ) {
- var self = this;
+ function setElementTransform( $ele, x, y ) {
+ var v = "translate3d( " + x + "," + y + ", 0px)";
+ $ele.css({
+ "-ms-transform": v,
+ "-o-transform": v,
+ "-moz-transform": v,
+ "-webkit-transform": v,
+ "transform": v
+ } );
+ }
- if ( args.itemData && typeof args.itemData == 'function' ) {
- self._itemData = args.itemData;
- } else {
- return false;
- }
- if ( args.numItemData ) {
- if ( typeof args.numItemData == 'function' ) {
- self._numItemData = args.numItemData( );
- } else if ( typeof args.numItemData == 'number' ) {
- self._numItemData = args.numItemData;
- } else {
- return false;
- }
- } else {
- return false;
- }
- return true;
- },
+ function MomentumTracker( options ) {
+ this.options = $.extend( {}, options );
+ this.easing = "easeOutQuad";
+ this.reset();
+ }
+ var tstates = {
+ scrolling : 0,
+ done : 1
+ };
- destroy : function () {
- var o = this.options,
- eOTAL_ITEMS = 0,
- last_index = 0;
+ function getCurrentTime() {
+ return Date.now();
+ }
- $( o.id ).empty();
+ $.extend( MomentumTracker.prototype, {
+ start: function ( pos, speed, duration ) {
+ this.state = ( speed != 0 ) ? tstates.scrolling : tstates.done;
+ this.pos = pos;
+ this.speed = speed;
+ this.duration = duration;
- $( "#load_more_message" ).die();
+ this.fromPos = 0;
+ this.toPos = 0;
+
+ this.startTime = getCurrentTime();
},
- _itemApply: function ( $list, item ) {
- var $countli = item.find( ".ui-li-count" );
+ reset: function () {
+ this.state = tstates.done;
+ this.pos = 0;
+ this.speed = 0;
+ this.duration = 0;
+ },
- if ( $countli.length ) {
- item.addClass( "ui-li-has-count" );
- }
+ update: function () {
+ var state = this.state,
+ duration,
+ elapsed,
+ dx,
+ x;
- $countli.addClass( "ui-btn-up-" + ( $list.jqmData( "counttheme" ) || this.options.countTheme ) + " ui-btn-corner-all" );
+ if ( state == tstates.done ) {
+ return this.pos;
+ }
- // TODO class has to be defined in markup
- item.find( "h1, h2, h3, h4, h5, h6" ).addClass( "ui-li-heading" ).end()
- .find( "p, dl" ).addClass( "ui-li-desc" ).end()
- .find( ">img:eq(0), .ui-link-inherit>img:eq(0)" ).addClass( "ui-li-thumb" ).each(function () {
- item.addClass( $( this ).is( ".ui-li-icon" ) ? "ui-li-has-icon" : "ui-li-has-thumb" );
- }).end()
- .find( ".ui-li-aside" ).each(function () {
- var $this = $( this );
- $this.prependTo( $this.parent() ); //shift aside to front for css float
- });
- },
+ duration = this.duration;
+ elapsed = getCurrentTime() - this.startTime;
+ elapsed = elapsed > duration ? duration : elapsed;
- _removeCorners: function ( li, which ) {
- var top = "ui-corner-top ui-corner-tr ui-corner-tl",
- bot = "ui-corner-bottom ui-corner-br ui-corner-bl";
+ dx = this.speed * ( 1 - $.easing[this.easing](elapsed / duration, elapsed, 0, 1, duration ) );
- li = li.add( li.find( ".ui-btn-inner, .ui-li-link-alt, .ui-li-thumb" ) );
+ x = this.pos + dx;
+ this.pos = x;
- if ( which === "top" ) {
- li.removeClass( top );
- } else if ( which === "bottom" ) {
- li.removeClass( bot );
- } else {
- li.removeClass( top + " " + bot );
+ if ( elapsed >= duration ) {
+ this.state = tstates.done;
}
+
+ return this.pos;
},
- _refreshCorners: function ( create ) {
- var $li,
- $visibleli,
- $topli,
- $bottomli;
+ done: function () {
+ return this.state == tstates.done;
+ },
- if ( this.options.inset ) {
- $li = this.element.children( "li" );
- // at create time the li are not visible yet so we need to rely on .ui-screen-hidden
- $visibleli = create ? $li.not( ".ui-screen-hidden" ) : $li.filter( ":visible" );
+ getPosition: function () {
+ return this.pos;
+ }
+ } );
- this._removeCorners( $li );
+ jQuery.widget( "mobile.circularview", jQuery.mobile.widget, {
+ options: {
+ fps: 60,
- // Select the first visible li element
- $topli = $visibleli.first()
- .addClass( "ui-corner-top" );
+ scrollDuration: 2000,
- $topli.add( $topli.find( ".ui-btn-inner" ) )
- .find( ".ui-li-link-alt" )
- .addClass( "ui-corner-tr" )
- .end()
- .find( ".ui-li-thumb" )
- .not( ".ui-li-icon" )
- .addClass( "ui-corner-tl" );
+ moveThreshold: 10,
+ moveIntervalThreshold: 150,
- // Select the last visible li element
- $bottomli = $visibleli.last()
- .addClass( "ui-corner-bottom" );
+ startEventName: "scrollstart",
+ updateEventName: "scrollupdate",
+ stopEventName: "scrollstop",
- $bottomli.add( $bottomli.find( ".ui-btn-inner" ) )
- .find( ".ui-li-link-alt" )
- .addClass( "ui-corner-br" )
- .end()
- .find( ".ui-li-thumb" )
- .not( ".ui-li-icon" )
- .addClass( "ui-corner-bl" );
+ eventType: $.support.touch ? "touch" : "mouse",
+
+ delayedClickSelector: "a, .ui-btn",
+ delayedClickEnabled: false
+ },
+
+ _makePositioned: function ( $ele ) {
+ if ( $ele.css( 'position' ) == 'static' ) {
+ $ele.css( 'position', 'relative' );
}
},
- refresh: function ( create ) {
- this.parentPage = this.element.closest( ".ui-page" );
- this._createSubPages();
+ _create: function () {
+ var self = this;
- var o = this.options,
- $list = this.element,
- self = this,
- dividertheme = $list.jqmData( "dividertheme" ) || o.dividerTheme,
- listsplittheme = $list.jqmData( "splittheme" ),
- listspliticon = $list.jqmData( "spliticon" ),
- li = $list.children( "li" ),
- counter = $.support.cssPseudoElement || !$.nodeName( $list[ 0 ], "ol" ) ? 0 : 1,
- item,
- itemClass,
- itemTheme,
- a,
- last,
- splittheme,
- countParent,
- icon,
- pos,
- numli;
+ this._items = $( this.element ).jqmData('list');
+ this._$clip = $( this.element ).addClass( "ui-scrollview-clip" );
+ this._$clip.wrapInner( '<div class="ui-scrollview-view"></div>' );
+ this._$view = $('.ui-scrollview-view', this._$clip );
+ this._$list = $( 'ul', this._$clip );
- if ( counter ) {
- $list.find( ".ui-li-dec" ).remove();
- }
+ this._$clip.css( "overflow", "hidden" );
+ this._makePositioned( this._$clip );
- for ( pos = 0, numli = li.length; pos < numli; pos++ ) {
- item = li.eq( pos );
- itemClass = "ui-li";
-
- // If we're creating the element, we update it regardless
- if ( create || !item.hasClass( "ui-li" ) ) {
- itemTheme = item.jqmData( "theme" ) || o.theme;
- a = item.children( "a" );
+ this._$view.css( "overflow", "hidden" );
+ this._tracker = new MomentumTracker( this.options );
- if ( a.length ) {
- icon = item.jqmData( "icon" );
+ this._timerInterval = 1000 / this.options.fps;
+ this._timerID = 0;
- item.buttonMarkup({
- wrapperEls: "div",
- shadow: false,
- corners: false,
- iconpos: "right",
- /* icon: a.length > 1 || icon === false ? false : icon || "arrow-r",*/
- icon: false, /* Remove unnecessary arrow icon */
- theme: itemTheme
- });
+ this._timerCB = function () { self._handleMomentumScroll(); };
- if ( ( icon != false ) && ( a.length == 1 ) ) {
- item.addClass( "ui-li-has-arrow" );
- }
+ this.refresh();
- a.first().addClass( "ui-link-inherit" );
+ this._addBehaviors();
+ },
- if ( a.length > 1 ) {
- itemClass += " ui-li-has-alt";
+ reflow: function () {
+ var xy = this.getScrollPosition();
+ this.refresh();
+ this.scrollTo( xy.x, xy.y );
+ },
- last = a.last();
- splittheme = listsplittheme || last.jqmData( "theme" ) || o.splitTheme;
+ refresh: function () {
+ var itemsPerView;
- last.appendTo(item)
- .attr( "title", last.getEncodedText() )
- .addClass( "ui-li-link-alt" )
- .empty()
- .buttonMarkup({
- shadow: false,
- corners: false,
- theme: itemTheme,
- icon: false,
- iconpos: false
- })
- .find( ".ui-btn-inner" )
- .append(
- $( "<span />" ).buttonMarkup( {
- shadow : true,
- corners : true,
- theme : splittheme,
- iconpos : "notext",
- icon : listspliticon || last.jqmData( "icon" ) || o.splitIcon
- })
- );
- }
- } else if ( item.jqmData( "role" ) === "list-divider" ) {
+ this._$clip.width( $(window).width() );
+ this._clipWidth = this._$clip.width();
+ this._$list.empty();
+ this._$list.append(this._items[0]);
+ this._itemWidth = $(this._items[0]).outerWidth();
+ $(this._items[0]).detach();
- itemClass += " ui-li-divider ui-btn ui-bar-" + dividertheme;
- item.attr( "role", "heading" );
+ itemsPerView = this._clipWidth / this._itemWidth;
+ itemsPerView = Math.ceil( itemsPerView * 10 ) / 10;
+ this._itemsPerView = parseInt( itemsPerView, 10 );
+ while ( this._itemsPerView + 1 > this._items.length ) {
+ $.merge( this._items, $(this._items).clone() );
+ }
+ this._rx = -this._itemWidth;
+ this._sx = -this._itemWidth;
+ this._setItems();
+ },
- //reset counter when a divider heading is encountered
- if ( counter ) {
- counter = 1;
- }
+ _startMScroll: function ( speedX, speedY ) {
+ this._stopMScroll();
- } else {
- itemClass += " ui-li-static ui-body-" + itemTheme;
- }
- }
+ var keepGoing = false,
+ duration = this.options.scrollDuration,
+ t = this._tracker,
+ c = this._clipWidth,
+ v = this._viewWidth;
- if ( counter && itemClass.indexOf( "ui-li-divider" ) < 0 ) {
- countParent = item.is( ".ui-li-static:first" ) ? item : item.find( ".ui-link-inherit" );
+ this._$clip.trigger( this.options.startEventName);
- countParent.addClass( "ui-li-jsnumbering" )
- .prepend( "<span class='ui-li-dec'>" + (counter++) + ". </span>" );
- }
+ t.start( this._rx, speedX, duration, (v > c ) ? -(v - c) : 0, 0 );
+ keepGoing = !t.done();
- item.add( item.children( ".ui-btn-inner" ) ).addClass( itemClass );
+ if ( keepGoing ) {
+ this._timerID = setTimeout( this._timerCB, this._timerInterval );
+ } else {
+ this._stopMScroll();
+ }
+ //console.log( "startmscroll" + this._rx + "," + this._sx );
+ },
- self._itemApply( $list, item );
+ _stopMScroll: function () {
+ if ( this._timerID ) {
+ this._$clip.trigger( this.options.stopEventName );
+ clearTimeout( this._timerID );
}
- this._refreshCorners( create );
+ this._timerID = 0;
+
+ if ( this._tracker ) {
+ this._tracker.reset();
+ }
+ //console.log( "stopmscroll" + this._rx + "," + this._sx );
},
- //create a string for ID/subpage url creation
- _idStringEscape: function ( str ) {
- return str.replace(/\W/g , "-");
+ _handleMomentumScroll: function () {
+ var keepGoing = false,
+ v = this._$view,
+ x = 0,
+ y = 0,
+ t = this._tracker;
- },
+ if ( t ) {
+ t.update();
+ x = t.getPosition();
- _createSubPages: function () {
- var parentList = this.element,
- parentPage = parentList.closest( ".ui-page" ),
- parentUrl = parentPage.jqmData( "url" ),
- parentId = parentUrl || parentPage[ 0 ][ $.expando ],
- parentListId = parentList.attr( "id" ),
- o = this.options,
- dns = "data-" + $.mobile.ns,
- self = this,
- persistentFooterID = parentPage.find( ":jqmData(role='footer')" ).jqmData( "id" ),
- hasSubPages,
- newRemove;
+ keepGoing = !t.done();
- if ( typeof listCountPerPage[ parentId ] === "undefined" ) {
- listCountPerPage[ parentId ] = -1;
}
- parentListId = parentListId || ++listCountPerPage[ parentId ];
-
- $( parentList.find( "li>ul, li>ol" ).toArray().reverse() ).each(function ( i ) {
- var self = this,
- list = $( this ),
- listId = list.attr( "id" ) || parentListId + "-" + i,
- parent = list.parent(),
- nodeEls,
- title = nodeEls.first().getEncodedText(),//url limits to first 30 chars of text
- id = ( parentUrl || "" ) + "&" + $.mobile.subPageUrlKey + "=" + listId,
- theme = list.jqmData( "theme" ) || o.theme,
- countTheme = list.jqmData( "counttheme" ) || parentList.jqmData( "counttheme" ) || o.countTheme,
- newPage,
- anchor;
+ this._setScrollPosition( x, y );
+ this._rx = x;
- nodeEls = $( list.prevAll().toArray().reverse() );
- nodeEls = nodeEls.length ? nodeEls : $( "<span>" + $.trim(parent.contents()[ 0 ].nodeValue) + "</span>" );
+ this._$clip.trigger( this.options.updateEventName, [ { x: x, y: y } ] );
- //define hasSubPages for use in later removal
- hasSubPages = true;
+ if ( keepGoing ) {
+ this._timerID = setTimeout( this._timerCB, this._timerInterval );
+ } else {
+ this._stopMScroll();
+ }
+ },
- newPage = list.detach()
- .wrap( "<div " + dns + "role='page' " + dns + "url='" + id + "' " + dns + "theme='" + theme + "' " + dns + "count-theme='" + countTheme + "'><div " + dns + "role='content'></div></div>" )
- .parent()
- .before( "<div " + dns + "role='header' " + dns + "theme='" + o.headerTheme + "'><div class='ui-title'>" + title + "</div></div>" )
- .after( persistentFooterID ? $( "<div " + dns + "role='footer' " + dns + "id='" + persistentFooterID + "'>" ) : "" )
- .parent()
- .appendTo( $.mobile.pageContainer );
+ _setItems: function () {
+ var i,
+ $item;
- newPage.page();
+ for ( i = -1; i < this._itemsPerView + 1; i++ ) {
+ $item = this._items[ circularNum( i, this._items.length ) ];
+ this._$list.append( $item );
+ }
+ setElementTransform( this._$view, this._sx + "px", 0 );
+ this._$view.width( this._itemWidth * ( this._itemsPerView + 2 ) );
+ this._viewWidth = this._$view.width();
+ },
- anchor = parent.find('a:first');
+ _setScrollPosition: function ( x, y ) {
+ var sx = this._sx,
+ dx = x - sx,
+ di = parseInt( dx / this._itemWidth, 10 ),
+ i,
+ idx,
+ $item;
- if ( !anchor.length ) {
- anchor = $( "<a/>" ).html( nodeEls || title ).prependTo( parent.empty() );
+ if ( di > 0 ) {
+ for ( i = 0; i < di; i++ ) {
+ this._$list.children().last().detach();
+ idx = -parseInt( ( sx / this._itemWidth ) + i + 3, 10 );
+ $item = this._items[ circularNum( idx, this._items.length ) ];
+ this._$list.prepend( $item );
+ //console.log( "di > 0 : " + idx );
}
+ } else if ( di < 0 ) {
+ for ( i = 0; i > di; i-- ) {
+ this._$list.children().first().detach();
+ idx = this._itemsPerView - parseInt( ( sx / this._itemWidth ) + i, 10 );
+ $item = this._items[ circularNum( idx, this._items.length ) ];
+ this._$list.append( $item );
+ //console.log( "di < 0 : " + idx );
+ }
+ }
- anchor.attr( "href", "#" + id );
-
- }).extendablelist();
-
- // on pagehide, remove any nested pages along with the parent page, as long as they aren't active
- // and aren't embedded
- if ( hasSubPages &&
- parentPage.is( ":jqmData(external-page='true')" ) &&
- parentPage.data( "page" ).options.domCache === false ) {
+ this._sx += di * this._itemWidth;
- newRemove = function ( e, ui ) {
- var nextPage = ui.nextPage, npURL;
+ setElementTransform( this._$view, ( x - this._sx - this._itemWidth ) + "px", 0 );
- if ( ui.nextPage ) {
- npURL = nextPage.jqmData( "url" );
- if ( npURL.indexOf( parentUrl + "&" + $.mobile.subPageUrlKey ) !== 0 ) {
- self.childPages().remove();
- parentPage.remove();
- }
- }
- };
+ //console.log( "rx " + this._rx + "sx " + this._sx );
+ },
- // unbind the original page remove and replace with our specialized version
- parentPage
- .unbind( "pagehide.remove" )
- .bind( "pagehide.remove", newRemove);
- }
+ _enableTracking: function () {
+ $(document).bind( this._dragMoveEvt, this._dragMoveCB );
+ $(document).bind( this._dragStopEvt, this._dragStopCB );
},
- // TODO sort out a better way to track sub pages of the extendable listview this is brittle
- childPages: function () {
- var parentUrl = this.parentPage.jqmData( "url" );
+ _disableTracking: function () {
+ $(document).unbind( this._dragMoveEvt, this._dragMoveCB );
+ $(document).unbind( this._dragStopEvt, this._dragStopCB );
+ },
- return $( ":jqmData(url^='" + parentUrl + "&" + $.mobile.subPageUrlKey + "')" );
+ _getScrollHierarchy: function () {
+ var svh = [],
+ d;
+ this._$clip.parents( '.ui-scrollview-clip' ).each( function () {
+ d = $( this ).jqmData( 'circulaview' );
+ if ( d ) {
+ svh.unshift( d );
+ }
+ } );
+ return svh;
+ },
+
+ centerTo: function ( selector, duration ) {
+ var i,
+ newX;
+
+ for ( i = 0; i < this._items.length; i++ ) {
+ if ( $( this._items[i]).is( selector ) ) {
+ newX = -( i * this._itemWidth - this._clipWidth / 2 + this._itemWidth * 1.5 );
+ this.scrollTo( newX + this._itemWidth, 0 );
+ this.scrollTo( newX, 0, duration );
+ return;
+ }
+ }
+ },
+
+ scrollTo: function ( x, y, duration ) {
+ this._stopMScroll();
+ if ( !duration ) {
+ this._setScrollPosition( x, y );
+ this._rx = x;
+ return;
+ }
+
+ var self = this,
+ start = getCurrentTime(),
+ efunc = $.easing.easeOutQuad,
+ sx = this._rx,
+ sy = 0,
+ dx = x - sx,
+ dy = 0,
+ tfunc,
+ elapsed,
+ ec;
+
+ this._rx = x;
+
+ tfunc = function () {
+ elapsed = getCurrentTime() - start;
+ if ( elapsed >= duration ) {
+ self._timerID = 0;
+ self._setScrollPosition( x, y );
+ self._$clip.trigger("scrollend");
+ } else {
+ ec = efunc( elapsed / duration, elapsed, 0, 1, duration );
+ self._setScrollPosition( sx + ( dx * ec ), sy + ( dy * ec ) );
+ self._timerID = setTimeout( tfunc, self._timerInterval );
+ }
+ };
+
+ this._timerID = setTimeout( tfunc, this._timerInterval );
+ },
+
+ getScrollPosition: function () {
+ return { x: -this._rx, y: 0 };
+ },
+
+ _handleDragStart: function ( e, ex, ey ) {
+ $.each( this._getScrollHierarchy(), function ( i, sv ) {
+ sv._stopMScroll();
+ } );
+
+ this._stopMScroll();
+
+ if ( this.options.delayedClickEnabled ) {
+ this._$clickEle = $( e.target ).closest( this.options.delayedClickSelector );
+ }
+ this._lastX = ex;
+ this._lastY = ey;
+ this._speedX = 0;
+ this._speedY = 0;
+ this._didDrag = false;
+
+ this._lastMove = 0;
+ this._enableTracking();
+
+ this._ox = ex;
+ this._nx = this._rx;
+
+ if ( this.options.eventType == "mouse" || this.options.delayedClickEnabled ) {
+ e.preventDefault();
+ }
+ //console.log( "scrollstart" + this._rx + "," + this._sx );
+ e.stopPropagation();
+ },
+
+ _handleDragMove: function ( e, ex, ey ) {
+ this._lastMove = getCurrentTime();
+
+ var dx = ex - this._lastX,
+ dy = ey - this._lastY;
+
+ this._speedX = dx;
+ this._speedY = 0;
+
+ this._didDrag = true;
+
+ this._lastX = ex;
+ this._lastY = ey;
+
+ this._mx = ex - this._ox;
+
+ this._setScrollPosition( this._nx + this._mx, 0 );
+
+ //console.log( "scrollmove" + this._rx + "," + this._sx );
+ return false;
+ },
+
+ _handleDragStop: function ( e ) {
+ var l = this._lastMove,
+ t = getCurrentTime(),
+ doScroll = l && ( t - l ) <= this.options.moveIntervalThreshold,
+ sx = ( this._tracker && this._speedX && doScroll ) ? this._speedX : 0,
+ sy = 0;
+
+ this._rx = this._mx ? this._nx + this._mx : this._rx;
+
+ if ( sx ) {
+ this._startMScroll( sx, sy );
+ }
+
+ //console.log( "scrollstop" + this._rx + "," + this._sx );
+
+ this._disableTracking();
+
+ if ( !this._didDrag && this.options.delayedClickEnabled && this._$clickEle.length ) {
+ this._$clickEle
+ .trigger( "mousedown" )
+ .trigger( "mouseup" )
+ .trigger( "click" );
+ }
+
+ if ( this._didDrag ) {
+ e.preventDefault();
+ e.stopPropagation();
+ }
+
+ return this._didDrag ? false : undefined;
+ },
+
+ _addBehaviors: function () {
+ var self = this;
+
+ if ( this.options.eventType === "mouse" ) {
+ this._dragStartEvt = "mousedown";
+ this._dragStartCB = function ( e ) {
+ return self._handleDragStart( e, e.clientX, e.clientY );
+ };
+
+ this._dragMoveEvt = "mousemove";
+ this._dragMoveCB = function ( e ) {
+ return self._handleDragMove( e, e.clientX, e.clientY );
+ };
+
+ this._dragStopEvt = "mouseup";
+ this._dragStopCB = function ( e ) {
+ return self._handleDragStop( e );
+ };
+
+ this._$view.bind( "vclick", function (e) {
+ return !self._didDrag;
+ } );
+
+ } else { //touch
+ this._dragStartEvt = "touchstart";
+ this._dragStartCB = function ( e ) {
+ var t = e.originalEvent.targetTouches[0];
+ return self._handleDragStart(e, t.pageX, t.pageY );
+ };
+
+ this._dragMoveEvt = "touchmove";
+ this._dragMoveCB = function ( e ) {
+ var t = e.originalEvent.targetTouches[0];
+ return self._handleDragMove(e, t.pageX, t.pageY );
+ };
+
+ this._dragStopEvt = "touchend";
+ this._dragStopCB = function ( e ) {
+ return self._handleDragStop( e );
+ };
+ }
+ this._$view.bind( this._dragStartEvt, this._dragStartCB );
}
- });
+ } );
- //auto self-init widgets
$( document ).bind( "pagecreate create", function ( e ) {
- $( $.tizen.extendablelist.prototype.options.initSelector, e.target ).extendablelist();
- });
+ $( $.mobile.circularview.prototype.options.initSelector, e.target ).circularview();
+ } );
+
+}( jQuery, window, document ) ); // End Component
+
+
+
+/*
+ *
+ * This software is licensed under the MIT licence (as defined by the OSI at
+ * http://www.opensource.org/licenses/mit-license.php)
+ *
+ * ***************************************************************************
+ * Copyright (C) 2011 by Intel Corporation Ltd.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ * ***************************************************************************
+ */
+
+// Add markup for labels
+
+
+(function($, undefined) {
+
+$(document).bind("pagecreate create", function(e) {
+ $(":jqmData(role='label')", e.target).not(":jqmData(role='none'), :jqmData(role='nojs')").each(function() {
+ $(this).addClass("jquery-mobile-ui-label")
+ .html($("<span>", {"class": "jquery-mobile-ui-label-text"}).text($(this).text()));
+ });
+});
+
+})(jQuery);
-}( jQuery ));
_primaryLanguage: null,
_secondLanguage: null,
+ _dividerMap: {},
+ _defaultTime: 500,
+ _defaultDuration: 500,
+ _timer: null,
+ _isFadeOut: false,
_create: function () {
var $el = this.element,
var coords = $.mobile.tizen.targetRelativeCoordsFromEvent( e ),
shortcutsListOffset = self.shortcutsList.offset();
+ if ( self._isFadeOut === true ) {
+ return;
+ }
+
// If the element is a list item, get coordinates relative to the shortcuts list
if ( e.target.tagName.toLowerCase() === "li" ) {
coords.x += $( e.target ).offset().left - shortcutsListOffset.left;
l = listItem.offset().left - shortcutsListOffset.left,
t = listItem.offset().top - shortcutsListOffset.top,
r = l + Math.abs(listItem.outerWidth( true ) ),
- b = t + Math.abs(listItem.outerHeight( true ) );
+ b = t + Math.abs(listItem.outerHeight( true ) ),
+ unit,
+ baseTop,
+ baseBottom,
+ omitSet,
+ i;
if ( coords.x >= l && coords.x <= r && coords.y >= t && coords.y <= b ) {
- self._hitItem( listItem );
+ if ( listItem.text() !== "." ) {
+ self._hitItem( listItem );
+ } else {
+ omitSet = listItem.data( "omitSet" );
+ unit = ( b - t ) / omitSet.length;
+ for ( i = 0; i < omitSet.length; i++ ) {
+ baseTop = t + ( i * unit );
+ baseBottom = baseTop + unit;
+ if ( coords.y >= baseTop && coords.y <= baseBottom ) {
+ self._hitOmitItem( listItem, omitSet.charAt( i ) );
+ }
+ }
+ }
return false;
}
return true;
} );
+ self._setTimer( false );
+
e.preventDefault();
e.stopPropagation();
} )
$( ".ui-fastscroll-hover-first-item" ).removeClass( "ui-fastscroll-hover-first-item" );
$( ".ui-fastscroll-hover-up" ).removeClass( "ui-fastscroll-hover-up" );
$( ".ui-fastscroll-hover-down" ).removeClass( "ui-fastscroll-hover-down" );
+ self._setTimer( true );
} );
if ( page && !( page.is( ':visible' ) ) ) {
$( window ).unbind( ".fastscroll" ).bind( "resize.fastscroll", function ( e ) {
self.refresh();
} );
+
+ self.scrollview.bind( "scrollstart", function ( e ) {
+ self._setTimer( false );
+ }).bind( "scrollstop", function ( e ) {
+ self._setTimer( true );
+ });
},
- _hitItem: function ( listItem ) {
+ _hitOmitItem: function ( listItem, text ) {
var self = this,
- $popup = self.scrollview.find( '.ui-fastscroll-popup' );
+ $popup = self.scrollview.find( '.ui-fastscroll-popup' ),
+ divider = self._dividerMap[ text ];
+
+ if ( typeof divider !== "undefined" ) {
+ self.jumpToDivider( $( divider ) );
+ }
- if ( typeof listItem.data( 'divider' ) !== "undefined" ) {
- self.jumpToDivider( $( listItem.data( 'divider' ) ) );
+ $popup.text( text )
+ .css( { marginLeft: -( $popup.width() / 2 ),
+ marginTop: -( $popup.height() / 2 ),
+ padding: $popup.css( "paddingTop" ) } )
+ .width( $popup.height() )
+ .show();
+
+ $( listItem ).addClass( "ui-fastscroll-hover" );
+ if ( listItem.index() === 0 ) {
+ $( listItem ).addClass( "ui-fastscroll-hover-first-item" );
}
+ if ( listItem.index() > 0 ) {
+ $( listItem ).siblings().eq( listItem.index() - 1 ).addClass( "ui-fastscroll-hover-up" );
+ }
+ $( listItem ).siblings().eq( listItem.index() ).addClass( "ui-fastscroll-hover-down" );
+ },
+
+ _hitItem: function ( listItem ) {
+ var self = this,
+ $popup = self.scrollview.find( '.ui-fastscroll-popup' ),
+ text = listItem.text(),
+ divider;
- if ( listItem.text() !== "." ) {
- $popup.text( listItem.text() )
- .css( { marginLeft: -( $popup.width() / 2 ),
- marginTop: -( $popup.height() / 2 ),
- padding: $popup.css( "paddingTop" ) } )
- .width( $popup.height() )
- .show();
+ if ( text === "#" ) {
+ divider = self._dividerMap.number;
} else {
- $popup.hide();
+ divider = self._dividerMap[ text ];
}
+ if ( typeof divider !== "undefined" ) {
+ self.jumpToDivider( $( divider ) );
+ }
+
+ $popup.text( text )
+ .css( { marginLeft: -( $popup.width() / 2 ),
+ marginTop: -( $popup.height() / 2 ),
+ padding: $popup.css( "paddingTop" ) } )
+ .width( $popup.height() )
+ .show();
+
$( listItem ).addClass( "ui-fastscroll-hover" );
if ( listItem.index() === 0 ) {
$( listItem ).addClass( "ui-fastscroll-hover-first-item" );
$popup = self.scrollview.find( '.ui-fastscroll-popup' );
listItem.focusin( function ( e ) {
+ self.shortcutsList.attr( "aria-hidden", false );
self._hitItem( listItem );
+ self._setTimer( false );
}).focusout( function ( e ) {
+ self.shortcutsList.attr( "aria-hidden", true );
$popup.hide();
$( ".ui-fastscroll-hover" ).removeClass( "ui-fastscroll-hover" );
$( ".ui-fastscroll-hover-first-item" ).removeClass( "ui-fastscroll-hover-first-item" );
$( ".ui-fastscroll-hover-up" ).removeClass( "ui-fastscroll-hover-up" );
$( ".ui-fastscroll-hover-down" ).removeClass( "ui-fastscroll-hover-down" );
+ self._setTimer( true );
});
},
return omitInfo;
},
+ _createDividerMap: function () {
+ var self = this,
+ primaryCharacterSet = self._primaryLanguage ? self._primaryLanguage.replace( /,/g, "" ) : null,
+ secondCharacterSet = self._secondLanguage ? self._secondLanguage.replace( /,/g, "" ) : null,
+ numberSet = "0123456789",
+ dividers = self.element.find( '.ui-li-divider' ),
+ map = {},
+ matchToDivider,
+ makeCharacterSet,
+ indexChar,
+ i;
+
+ matchToDivider = function ( index, divider ) {
+ if ( $( divider ).text() === indexChar ) {
+ map[ indexChar ] = divider;
+ }
+ };
+
+ makeCharacterSet = function ( index, divider ) {
+ primaryCharacterSet += $( divider ).text();
+ };
+
+ if ( primaryCharacterSet === null ) {
+ primaryCharacterSet = "";
+ dividers.each( makeCharacterSet );
+ }
+
+ for ( i = 0; i < primaryCharacterSet.length; i++ ) {
+ indexChar = primaryCharacterSet.charAt( i );
+ dividers.each( matchToDivider );
+ }
+
+ if ( secondCharacterSet !== null ) {
+ for ( i = 0; i < secondCharacterSet.length; i++ ) {
+ indexChar = secondCharacterSet.charAt( i );
+ dividers.each( matchToDivider );
+ }
+ }
+
+ dividers.each( function ( index, divider ) {
+ if ( numberSet.search( $( divider ).text() ) !== -1 ) {
+ map.number = divider;
+ return false;
+ }
+ });
+
+ self._dividerMap = map;
+ },
+
+ _setTimer: function ( start ) {
+ var self = this;
+
+ if ( start === true ) {
+ self._timer = setTimeout( function () {
+ self._isFadeOut = true;
+ self.shortcutsContainer.fadeOut( self._defaultDuration, function () {
+ self._isFadeOut = false;
+ });
+ }, self._defaultTime );
+ } else {
+ if ( self._timer !== null ) {
+ clearTimeout( self._timer );
+ }
+ self.shortcutsContainer.show();
+ }
+ },
+
indexString: function ( indexAlphabet ) {
var self = this,
characterSet = [];
- if ( typeof indexAlphabet === " undefined" ) {
+ if ( typeof indexAlphabet === "undefined" ) {
return self._primaryLanguage + ":" + self._secondLanguage;
}
contentHeight = self._contentHeight(),
shapItem = $( '<li tabindex="0" aria-label="double to move Number list"><span aria-hidden="true">#</span><span aria-label="Number"/></li>' ),
omitIndex = 0,
- matchToDivider,
+ makeCharacterSet,
+ makeOmitSet,
+ itemHandler,
containerHeight,
shortcutsItems,
shortcutItem,
size,
i;
- matchToDivider = function ( index, divider ) {
- if ( $( divider ).text() === indexChar ) {
- shortcutItem.data( 'divider', divider )
- .bind( 'vclick', function ( e ) {
- $( divider ).next().focus();
- } );
+ makeCharacterSet = function ( index, divider ) {
+ primaryCharacterSet += $( divider ).text();
+ };
+
+ makeOmitSet = function ( index, length ) {
+ var count,
+ omitSet = "";
+
+ for ( count = 0; count < length; count++ ) {
+ omitSet += primaryCharacterSet[ index + count ];
+ }
+
+ return omitSet;
+ };
+
+ itemHandler = function ( e ) {
+ var text = $( this ).text(),
+ matchDivider = self._dividerMap[ text ];
+
+ if ( typeof matchDivider !== "undefined" ) {
+ $( matchDivider ).next().focus();
}
};
+ self._createDividerMap();
+
self.shortcutsList.find( 'li' ).remove();
// get all the dividers from the list and turn them into shortcuts
self.shortcutsList.append( shapItem );
self._focusItem( shapItem );
- if ( primaryCharacterSet !== null ) {
- padding = parseInt( shapItem.css( "padding" ), 10 );
- minHeight = shapItem.height() + ( padding * 2 );
- maxNumOfItems = parseInt( ( contentHeight / minHeight ) - 1, 10 );
- numOfItems = primaryCharacterSet.length;
+ if ( primaryCharacterSet === null ) {
+ primaryCharacterSet = "";
+ dividers.each( makeCharacterSet );
+ }
- maxNumOfItems = secondCharacterSet ? maxNumOfItems - 2 : maxNumOfItems;
+ padding = parseInt( shapItem.css( "padding" ), 10 );
+ minHeight = shapItem.height() + ( padding * 2 );
+ maxNumOfItems = parseInt( ( contentHeight / minHeight ) - 1, 10 );
+ numOfItems = primaryCharacterSet.length;
- if ( maxNumOfItems < 3 ) {
- shapItem.remove();
- return;
- }
+ maxNumOfItems = secondCharacterSet ? maxNumOfItems - 2 : maxNumOfItems;
- omitInfo = self._omit( numOfItems, maxNumOfItems );
+ if ( maxNumOfItems < 3 ) {
+ shapItem.remove();
+ return;
+ }
- for ( i = 0; i < primaryCharacterSet.length; i++ ) {
- indexChar = primaryCharacterSet.charAt( i );
- shortcutItem = $( '<li tabindex="0" aria-label="double to move ' + indexChar + ' list">' + indexChar + '</li>' );
+ omitInfo = self._omit( numOfItems, maxNumOfItems );
- self._focusItem( shortcutItem );
- dividers.each( matchToDivider );
+ for ( i = 0; i < primaryCharacterSet.length; i++ ) {
+ indexChar = primaryCharacterSet.charAt( i );
+ shortcutItem = $( '<li tabindex="0" aria-label="double to move ' + indexChar + ' list">' + indexChar + '</li>' );
- if ( typeof omitInfo !== "undefined" && omitInfo[ omitIndex ] > 1 ) {
- shortcutItem = $( '<li>.</li>' );
- i += omitInfo[ omitIndex ] - 1;
- }
+ self._focusItem( shortcutItem );
- shapItem.before( shortcutItem );
- omitIndex++;
+ if ( typeof omitInfo !== "undefined" && omitInfo[ omitIndex ] > 1 ) {
+ shortcutItem = $( '<li>.</li>' );
+ shortcutItem.data( "omitSet", makeOmitSet( i, omitInfo[ omitIndex ] ) );
+ i += omitInfo[ omitIndex ] - 1;
+ } else {
+ shortcutItem.bind( 'vclick', itemHandler );
}
- if ( secondCharacterSet !== null ) {
- lastIndex = secondCharacterSet.length - 1;
- seconds = [];
-
- seconds.push( secondCharacterSet.charAt( 0 ) );
- seconds.push( secondCharacterSet.charAt( lastIndex ) );
+ shapItem.before( shortcutItem );
+ omitIndex++;
+ }
- for ( i = 0; i < seconds.length; i++ ) {
- indexChar = seconds[ i ];
- shortcutItem = $( '<li tabindex="0" aria-label="double to move ' + indexChar + ' list">' + indexChar + '</li>' );
+ if ( secondCharacterSet !== null ) {
+ lastIndex = secondCharacterSet.length - 1;
+ seconds = [];
- self._focusItem( shortcutItem );
- dividers.each( matchToDivider );
+ seconds.push( secondCharacterSet.charAt( 0 ) );
+ seconds.push( secondCharacterSet.charAt( lastIndex ) );
- shapItem.before( shortcutItem );
- }
- }
- } else {
- dividers.each( function ( index, divider ) {
- indexChar = $( divider ).text();
+ for ( i = 0; i < seconds.length; i++ ) {
+ indexChar = seconds[ i ];
shortcutItem = $( '<li tabindex="0" aria-label="double to move ' + indexChar + ' list">' + indexChar + '</li>' );
- shortcutItem.data( 'divider', divider );
self._focusItem( shortcutItem );
+ shortcutItem.bind( 'vclick', itemHandler );
shapItem.before( shortcutItem );
- } );
+ }
}
containerHeight = self.shortcutsContainer.outerHeight();
// make the scrollview clip tall enough to show the whole of the shortcutslist
minClipHeight = shortcutsTop + self.shortcutsContainer.outerHeight() + 'px';
self.scrollview.css( 'min-height', minClipHeight );
+
+ self._setTimer( false );
+ self._setTimer( true );
}
} );
-/* ***************************************************************************
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+/*
*
+ * This software is licensed under the MIT licence (as defined by the OSI at
+ * http://www.opensource.org/licenses/mit-license.php)
+ *
+ * ***************************************************************************
+ * Copyright (C) 2011 by Intel Corporation Ltd.
+ *
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
- *
+ *
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
- *
+ *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
* ***************************************************************************
- *
- * Author: Sanghee Lee <sang-hee.lee@samsung.com>
-*/
-
-/**
- * Splitview is a widget which can show different HTML contents at the same time on each divided pane.
- * A user can place Splitview controls on JQuery Mobile's Content area and arrange two panes on the widget.
- * And HTML fragments or another Splitview also can be placed on the pane.
- * The number of panes inside of Splitview is restricted as two.
- * If a user define only one pane in Splitview, a empty pane will be added automatically,
- * on the other hand, if 3 or more panes are defined in Splitview, the panes after two will be ignored and removed from the DOM tree.
- * The HTML fragments of a pane should be composed of elements describing a part of Web page (e.g. <div>…</div>).
- * Also widgets can be included in the HTML fragments.
- *
- * HTML Attributes:
- *
- * data-fixed : The resizing mode of panes - fixed and flexible mode.
- * If the value is true, the panes' sizes will be fixed, or if not, it will be flexible. (Default : false)
- * data-divider-vertical : The direction of dividers.
- * If the value is true, the panes will be placed in horizontal direction,
- * or if not, it will be placed in vertical direction. (Default : "true")
- * data-ratio : The ratio of two panes' widths or heights. (Default : [ 1/2, 1/2 ]
- *
- * APIs:
- *
- * pane ( id [ , element ] )
- * : This method replaces child contents of a pane indicated by id attribute with contents of inputted element.
- * If second argument is not specified, it will act as a getter method.
- * The string of id has to be started with "#" which means "id" of CSS selectors.
- * maximize ( id )
- * : This method maximizes a pane's size indicated by id.
- * The string of id has to be started with "#" which means "id" of CSS selectors.
- * restore ()
- * : This method restores all panes' sizes to the ratio prior to maximization.
- *
- * Examples:
- *
- * <div data-role="splitview" data-fixed="false" data-divider-vertical="true" data-ratio="0.5, 0.5">
- * <div class="ui-pane">pane0</div>
- * <div class="ui-pane">pane1</div>
- * </div>
- *
*/
+// Ensure that the given namespace is defined. If not, define it to be an empty object.
+// This is kinda like the mkdir -p command.
-/**
- @class Splitview
- Splitview widget enables a user to place and arrange several panes. Each divided pane can show repective HTML contents.
-
- To add a Splitview widget to the application, use the following code:
+var ensureNS = (function () {
+ var internalCache = {};
+ return function ensureNS (ns) { // name just for debugging purposes
+ var nsArr = ns.split(".").reverse(),
+ nsSoFar = "",
+ buffer = "",
+ leaf = "",
+ l = nsArr.length;
+ while(--l >= 0) {
+ leaf = nsArr[l];
+ nsSoFar = nsSoFar + (nsSoFar.length > 0 ? "." : "") + leaf;
+ if (!internalCache[nsSoFar]) {
+ internalCache[nsSoFar] = true;
+ buffer += "!window." + nsSoFar + ' && (window.' + nsSoFar + " = {});\n";
+ }
+ }
+ buffer.length && (new Function(buffer))();
+ };
+})();
- <div data-role="splitview" data-fixed="false" data-divider-vertical="true" data-ratio="0.5, 0.5">
- <div class="ui-pane">pane0</div>
- <div class="ui-pane">pane1</div>
- </div>
-*/
-/**
- @property {Boolean} data-fixed
- The resizing mode of panes - fixed and flexible mode.
-*/
-/**
- @property {Boolean} data-divider-vertical
- The direction of dividers - horizontal or vertical.
+/*
+ * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL licenses
+ * http://phpjs.org/functions/range
+ * original by: Waldo Malqui Silva
+ * version: 1107.2516
*/
+function range( low, high, step ) {
+ // Create an array containing the range of integers or characters
+ // from low to high (inclusive)
+ //
+ // version: 1107.2516
+ // discuss at: http://phpjs.org/functions/range
+ // + original by: Waldo Malqui Silva
+ // * example 1: range ( 0, 12 );
+ // * returns 1: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
+ // * example 2: range( 0, 100, 10 );
+ // * returns 2: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+ // * example 3: range( 'a', 'i' );
+ // * returns 3: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
+ // * example 4: range( 'c', 'a' );
+ // * returns 4: ['c', 'b', 'a']
+ var matrix = [],
+ inival,
+ endval,
+ plus,
+ walker = step || 1,
+ chars = false;
-/**
- @property {Array} data-ratio
- The ratio of two panes' widths or heights.
-*/
-
-/**
- @method pane
- This method replaces child contents of a pane indicated by id attribute with contents of inputted element.
- If second argument is not specified, it will act as a getter method.
-
- <div data-role="splitview">
- <div class="ui-pane" id="pane0">pane0</div>
- <div class="ui-pane" id="pane1">pane1</div>
- </div>
- $(".selector").splitview("pane", id, element);
-*/
-
-/**
- @method maximize
- This method maximizes a pane's size indicated by id.
+ if (!isNaN(low) && !isNaN(high)) {
+ inival = low;
+ endval = high;
+ } else if (isNaN(low) && isNaN(high)) {
+ chars = true;
+ inival = low.charCodeAt(0);
+ endval = high.charCodeAt(0);
+ } else {
+ inival = (isNaN(low) ? 0 : low);
+ endval = (isNaN(high) ? 0 : high);
+ }
- <div data-role="splitview">
- <div class="ui-pane" id="pane0">pane0</div>
- <div class="ui-pane" id="pane1">pane1</div>
- </div>
- $(".selector").splitview("maximize", id);
-*/
+ plus = ((inival > endval) ? false : true);
+ if (plus) {
+ while (inival <= endval) {
+ matrix.push(((chars) ? String.fromCharCode(inival) : inival));
+ inival += walker;
+ }
+ } else {
+ while (inival >= endval) {
+ matrix.push(((chars) ? String.fromCharCode(inival) : inival));
+ inival -= walker;
+ }
+ }
-/**
- @method restore
- This method restores all panes' sizes to the ratio prior to maximization.
+ return matrix;
+}
- <div data-role="splitview">
- <div class="ui-pane" id="pane0">pane0</div>
- <div class="ui-pane" id="pane1">pane1</div>
- </div>
- $(".selector").splitview("restore");
-*/
-( function ( $, window, document, undefined ) {
- $.widget( "tizen.splitview", $.mobile.widget, {
- options : {
- fixed : false,
- dividerVertical : true,
- ratio : [],
- initSelector : ":jqmData(role='splitview')"
- },
+\r
+/* ***************************************************************************\r
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.\r
+ *\r
+ * Permission is hereby granted, free of charge, to any person obtaining a\r
+ * copy of this software and associated documentation files (the "Software"),\r
+ * to deal in the Software without restriction, including without limitation\r
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,\r
+ * and/or sell copies of the Software, and to permit persons to whom the\r
+ * Software is furnished to do so, subject to the following conditions:\r
+ *\r
+ * The above copyright notice and this permission notice shall be included in\r
+ * all copies or substantial portions of the Software.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\r
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\r
+ * DEALINGS IN THE SOFTWARE.\r
+ * ***************************************************************************\r
+ *\r
+ * Authors: Hyunsook Park <hyunsook.park@samsung.com>\r
+ * Wonseop Kim <wonseop.kim@samsung.com>\r
+*/\r
+\r
+( function ( $, undefined ) {\r
+ $.webgl = {};\r
+\r
+ $.webgl.shader = {\r
+ _vertexShader: null,\r
+ _fragmentShader: null,\r
+\r
+ deleteShaders: function ( gl ) {\r
+ gl.deleteShader( this._vertexShader );\r
+ gl.deleteShader( this._fragmentShader );\r
+ },\r
+\r
+ addShaderProgram : function ( gl, vs, fs, isFile ) {\r
+ var shaderProgram,\r
+ vertexShaderSource = {},\r
+ fragmentShaderSource = {};\r
+\r
+ if ( isFile ) {\r
+ vertexShaderSource = this.loadShaderFile( vs );\r
+ fragmentShaderSource = this.loadShaderFile( fs );\r
+ } else {\r
+ vertexShaderSource.source = vs;\r
+ fragmentShaderSource.source = fs;\r
+ }\r
+\r
+ this._vertexShader = this.getShader( gl, gl.VERTEX_SHADER, vertexShaderSource );\r
+ this._fragmentShader = this.getShader( gl, gl.FRAGMENT_SHADER, fragmentShaderSource );\r
+\r
+ shaderProgram = gl.createProgram();\r
+ gl.attachShader( shaderProgram, this._vertexShader);\r
+ gl.attachShader( shaderProgram, this._fragmentShader);\r
+ gl.linkProgram( shaderProgram );\r
+\r
+ if ( !gl.getProgramParameter( shaderProgram, gl.LINK_STATUS ) ) {\r
+ window.alert( "Could not initialize Shaders!" );\r
+ }\r
+ return shaderProgram;\r
+ },\r
+\r
+ loadShaderFile : function ( path ) {\r
+ var cache = null;\r
+ $.ajax({\r
+ async : false,\r
+ url : path,\r
+ success : function ( result ) {\r
+ cache = {\r
+ source: result\r
+ };\r
+ }\r
+ });\r
+ return cache;\r
+ },\r
+\r
+ getShader: function ( gl, type, script ) {\r
+ var shader;\r
+\r
+ if ( !gl || !type || !script ) {\r
+ return null;\r
+ }\r
+\r
+ shader = gl.createShader( type );\r
+\r
+ gl.shaderSource( shader, script.source );\r
+ gl.compileShader( shader );\r
+\r
+ if ( !gl.getShaderParameter( shader, gl.COMPILE_STATUS ) ) {\r
+ window.alert( gl.getShaderInfoLog( shader ) );\r
+ gl.deleteShader( shader );\r
+ return null;\r
+ }\r
+ return shader;\r
+ }\r
+ };\r
+\r
+ $.webgl.buffer = {\r
+ attribBufferData: function ( gl, attribArray ) {\r
+ var attribBuffer = gl.createBuffer();\r
+\r
+ gl.bindBuffer( gl.ARRAY_BUFFER, attribBuffer );\r
+ gl.bufferData( gl.ARRAY_BUFFER, attribArray, gl.STATIC_DRAW );\r
+ gl.bindBuffer( gl.ARRAY_BUFFER, null );\r
+\r
+ return attribBuffer;\r
+ }\r
+ };\r
+\r
+} ( jQuery ) );\r
+\r
- _create : function () {
- var self = this,
- $el = self.element,
- opt = self.options,
- $panes = $el.children( ".ui-pane" ),
- panesLength = $panes.length,
- spliters = [],
- spliterBars = [],
- ratioAttr = this.element.attr( "data-ratio" ),
- containerSize = [ 0, 0 ],
- resizeTimer = null,
- i = 0;
- if ( panesLength !== 2 ) {
- if ( panesLength < 2 ) {
- for ( i = panesLength ; i < 2 ; ++i ) {
- self._addEmptyPanes();
- }
- } else {
- $panes.slice( 2 ).remove();
- }
+/* ***************************************************************************
+ Flora License
+
+ Version 1.0, May, 2012
+
+ http://floralicense.org/license/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and
+ all other entities that control, are controlled by, or are
+ under common control with that entity. For the purposes of
+ this definition, "control" means (i) the power, direct or indirect,
+ to cause the direction or management of such entity,
+ whether by contract or otherwise, or (ii) ownership of fifty percent (50%)
+ or more of the outstanding shares, or (iii) beneficial ownership of
+ such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation source,
+ and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or Object form,
+ made available under the License, as indicated by a copyright notice
+ that is included in or attached to the work (an example is provided
+ in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object form,
+ that is based on (or derived from) the Work and for which the editorial
+ revisions, annotations, elaborations, or other modifications represent,
+ as a whole, an original work of authorship. For the purposes of this License,
+ Derivative Works shall not include works that remain separable from,
+ or merely link (or bind by name) to the interfaces of, the Work and
+ Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including the original
+ version of the Work and any modifications or additions to that Work or
+ Derivative Works thereof, that is intentionally submitted to Licensor
+ for inclusion in the Work by the copyright owner or by an individual or
+ Legal Entity authorized to submit on behalf of the copyright owner.
+ For the purposes of this definition, "submitted" means any form of
+ electronic, verbal, or written communication sent to the Licensor or
+ its representatives, including but not limited to communication on
+ electronic mailing lists, source code control systems, and issue
+ tracking systems that are managed by, or on behalf of, the Licensor
+ for the purpose of discussing and improving the Work, but excluding
+ communication that is conspicuously marked or otherwise designated
+ in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ "Tizen Certified Platform" shall mean a software platform that complies
+ with the standards set forth in the Compatibility Definition Document
+ and passes the Compatibility Test Suite as defined from time to time
+ by the Tizen Technical Steering Group and certified by the Tizen
+ Association or its designated agent.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work
+ solely as incorporated into a Tizen Certified Platform, where such
+ license applies only to those patent claims licensable by such
+ Contributor that are necessarily infringed by their Contribution(s)
+ alone or by combination of their Contribution(s) with the Work solely
+ as incorporated into a Tizen Certified Platform to which such
+ Contribution(s) was submitted. If You institute patent litigation
+ against any entity (including a cross-claim or counterclaim
+ in a lawsuit) alleging that the Work or a Contribution incorporated
+ within the Work constitutes direct or contributory patent infringement,
+ then any patent licenses granted to You under this License for that
+ Work shall terminate as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof pursuant to the copyright license
+ above, in any medium, with or without modifications, and in Source or
+ Object form, provided that You meet the following conditions:
+
+ 1. You must give any other recipients of the Work or Derivative Works
+ a copy of this License; and
+ 2. You must cause any modified files to carry prominent notices stating
+ that You changed the files; and
+ 3. You must retain, in the Source form of any Derivative Works that
+ You distribute, all copyright, patent, trademark, and attribution
+ notices from the Source form of the Work, excluding those notices
+ that do not pertain to any part of the Derivative Works; and
+ 4. If the Work includes a "NOTICE" text file as part of its distribution,
+ then any Derivative Works that You distribute must include a readable
+ copy of the attribution notices contained within such NOTICE file,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works, in at least one of the following places:
+ within a NOTICE text file distributed as part of the Derivative Works;
+ within the Source form or documentation, if provided along with the
+ Derivative Works; or, within a display generated by the Derivative Works,
+ if and wherever such third-party notices normally appear.
+ The contents of the NOTICE file are for informational purposes only
+ and do not modify the License.
+
+ You may add Your own attribution notices within Derivative Works
+ that You distribute, alongside or as an addendum to the NOTICE text
+ from the Work, provided that such additional attribution notices
+ cannot be construed as modifying the License. You may add Your own
+ copyright statement to Your modifications and may provide additional or
+ different license terms and conditions for use, reproduction, or
+ distribution of Your modifications, or for any such Derivative Works
+ as a whole, provided Your use, reproduction, and distribution of
+ the Work otherwise complies with the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Flora License to your work
+
+ To apply the Flora License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Flora License, Version 1.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.tizenopensource.org/license
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
- $panes = $el.children( ".ui-pane" );
- panesLength = $panes.length;
- }
+ * Author: Minkyu Kang <mk7.kang@samsung.com>
+ */
- spliters[ 0 ] = $( "<a href='#' class='ui-spliter' aria-label='Drag scroll, double tap and move to adjust split area'></a>" ).insertAfter( $panes[ 0 ] );
- spliterBars[ 0 ] = $( "<div class='ui-spliter-bar'></div>" ).appendTo( spliters[ 0 ] );
- $( "<div class='ui-spliter-handle'></div>" ).appendTo( spliterBars[ 0 ] );
+/*
+ * Pinch Event
+ *
+ * Events
+ * pinchstart: triggered when start the touched two points
+ * pinch: triggered when move the touch point after pinchstart event occured
+ * pinchend: triggered when touchend event after pinchstart event occured
+ *
+ * Parameters
+ * point: touched points
+ * ratio: origin point-to-current point ratio for moving distance
+ *
+ * $("#pinch").bind("pinch", function (e, p) {
+ * console.log("point[0].x: " + p.point[0].x);
+ * console.log("point[0].y: " + p.point[0].y);
+ * console.log("point[1].x: " + p.point[1].x);
+ * console.log("point[1].y: " + p.point[1].y);
+ * console.log("ratio: " + p.ratio);
+ * });
+ *
+ * Options
+ * $.mobile.pinch.enabled: true or false
+ * $.mobile.pinch.min: minimum value of ratio
+ * $.mobile.pinch.max: maximum value of ratio
+ * $.mobile.pinch.factor: scale factor of ratio
+ * $.mobile.pinch.threshold: move threshold of ratio
+ * $.mobile.pinch.interval: interval for pinch event
+ */
- $.extend( this, {
- moveTarget : null,
- moveData : {},
- spliters : spliters,
- spliterBars : spliterBars,
- panes : $panes,
- containerSize : containerSize,
- touchStatus : false,
- minPaneWidth : 50,
- savedRatio : []
- });
+( function( $, window, undefined ) {
- self._bindTouchEvents();
- self._convertRatio( ratioAttr, $panes.length );
+pinch_event = {
+ setup: function () {
+ var thisObject = this,
+ $this = $( thisObject );
- $el.addClass( "ui-splitview ui-direction-" + self._direction( opt.dividerVertical ) );
+ if ( !$.mobile.support.touch ) {
+ return;
+ }
- if ( $el.parent().closest( ".ui-splitview" ).length ) {
- if ( self._getContainerSize( $el[ 0 ].style.width, $el[ 0 ].style.height ) ) {
- self._layout();
- }
- }
+ function getDistance( point ) {
+ var x = point[0].x - point[1].x,
+ y = point[0].y - point[0].y;
- $( window ).bind( "pagechange", function ( e ) {
- if ( !$el.parent().closest( ".ui-splitview" ).length ) {
- if ( self._getContainerSize( $el[ 0 ].style.width, $el[ 0 ].style.height ) ) {
- self._layout();
- }
- }
- }).resize( function () {
- if ( resizeTimer ) {
- clearTimeout( resizeTimer );
- }
+ return Math.sqrt( ( x * x ) + ( y * y ) );
+ }
- resizeTimer = setTimeout( function () {
- if ( !$el.parent().closest( ".ui-splitview" ).length ) {
- if ( self._getContainerSize( $el[ 0 ].style.width, $el[ 0 ].style.height ) ) {
- self._layout();
- }
- }
- }, 250);
- });
- },
+ function getParameter( point, ratio ) {
+ return { point: point, ratio: ratio };
+ }
- _addEmptyPanes : function () {
- var self = this,
- $el = self.element,
- opt = self.options,
- $panes = $el.children( ".ui-pane" ),
- scrollAttribute = ( $.support.scrollview ) ? "data-scroll='y'" : "",
- pane = $( "<div class='ui-pane' " + scrollAttribute + "></div>" );
+ $this.bind( "touchstart", function ( event ) {
+ var data = event.originalEvent.touches,
+ origin,
+ last_ratio = 1,
+ processing = false;
- if ( scrollAttribute.length ) {
- pane.scrollview( { direction: "y" } );
+ if ( !$.mobile.pinch.enabled ) {
+ return;
}
- if ( !$panes.length ) {
- $el.append( pane );
- } else {
- $panes.last().after( pane );
+ if ( data.length != 2 ) {
+ return;
}
- },
-
- _direction : function ( isHorizontal ) {
- return isHorizontal ? "horizontal" : "vertical";
- },
-
- _isStyleSpecified : function ( cssString ) {
- return ( typeof cssString !== "undefined" && cssString.length );
- },
- _getContainerSize : function ( widthString, heightString ) {
- var self = this,
- $el = self.element,
- widthSpecified = self._isStyleSpecified( widthString ),
- heightSpecified = self._isStyleSpecified( heightString );
+ origin = [
+ { x: data[0].pageX, y: data[0].pageY },
+ { x: data[1].pageX, y: data[1].pageY }
+ ];
- self.containerSize[ 0 ] = ( widthSpecified ) ? $el.outerWidth( true ) : self._parentWidth();
- self.containerSize[ 1 ] = ( heightSpecified ) ? $el.outerHeight( true ) : self._parentHeight();
+ $( event.target ).trigger( "pinchstart", getParameter( origin, undefined ) );
- if ( !self.containerSize[ 0 ] || !self.containerSize[ 1 ] ) {
- return false;
- }
+ function pinchHandler( event ) {
+ var data = event.originalEvent.touches,
+ current,
+ ratio,
+ delta,
+ factor = $( window ).width() / $.mobile.pinch.factor;
- return true;
- },
+ if ( processing ) {
+ return;
+ }
- _parentWidth : function () {
- var $parent = this.element.parent();
+ if ( !origin ) {
+ return;
+ }
- if ( !$parent && typeof $parent === "undefined" && !$parent.length ) {
- return $( window ).width();
- }
+ current = [
+ { x: data[0].pageX, y: data[0].pageY },
+ { x: data[1].pageX, y: data[1].pageY }
+ ];
- return $parent.width();
- },
+ delta = getDistance( current ) - getDistance( origin );
- _parentHeight : function () {
- var $parent = this.element.parent(),
- heightString = "",
- heightSpecified = false,
- parentHeight = 0;
+ ratio = 1 + delta / factor;
- while ( $parent && typeof $parent !== "undefined" && $parent.length ) {
- if ( typeof $parent[ 0 ].style !== "undefined" ) {
- heightString = $parent[ 0 ].style.height;
- heightSpecified = ( typeof heightString !== "undefined" && heightString.length );
- if ( heightSpecified ) {
- parentHeight = $parent.height();
- break;
- }
+ if ( ratio < $.mobile.pinch.min ) {
+ ratio = $.mobile.pinch.min;
+ } else if ( ratio > $.mobile.pinch.max ) {
+ ratio = $.mobile.pinch.max;
}
- $parent = $parent.parent();
- }
+ if ( Math.abs( ratio - last_ratio ) < $.mobile.pinch.threshold ) {
+ return;
+ }
- if ( !heightSpecified ) {
- parentHeight = $(window).height();
- }
+ $( event.target ).trigger( "pinch", getParameter( current, ratio ) );
- return parentHeight;
- },
+ last_ratio = ratio;
- _convertRatio : function ( ratioParam, panesLength ) {
- var self = this,
- ratio = [],
- loop = 0,
- type = typeof ratioParam,
- ratioArray = null,
- i;
+ if ( $.mobile.pinch.interval ) {
+ processing = true;
- for ( i = 0; i < panesLength; ++i ) {
- ratio.push( 0 );
+ setTimeout( function () {
+ processing = false;
+ }, $.mobile.pinch.interval );
+ }
}
- switch ( type ) {
- case "number":
- if ( panesLength ) {
- ratio[ 0 ] = ratioParam;
- }
- break;
+ $this.bind( "touchmove", pinchHandler )
+ .one( "touchend", function ( event ) {
+ $this.unbind( "touchmove", pinchHandler );
+ $( event.target ).trigger( "pinchend",
+ getParameter( undefined, last_ratio ) );
- case "string":
- ratioArray = ratioParam.split( "," );
- loop = Math.min( ratioArray.length, panesLength );
- for ( i = 0; i < loop; ++i ) {
- ratio[ i ] = parseFloat( ratioArray[ i ] );
- }
- break;
+ origin = undefined;
+ current = undefined;
+ last_ratio = 1;
+ processing = false;
+ });
+ });
+ }
+};
- case "object":
- if ( !$.isArray( ratioParam ) ) {
- break;
- }
+$.event.special["pinch"] = pinch_event;
- loop = Math.min( ratioParam.length, panesLength );
- for ( i = 0; i < loop; ++i ) {
- type = typeof ratioParam[ i ];
- ratio[ i ] = ( type === "string" ) ? parseFloat( ratioParam[ i ] ) :
- ( type === "number" ) ? ratioParam[ i ] : 0;
- }
- break;
- }
+$.mobile.pinch = {
+ enabled: true,
+ min: 0.1,
+ max: 3,
+ factor: 4,
+ threshold: 0.01,
+ interval: 50
+};
- self.options.ratio = ratio;
- self._adjustRatio( panesLength );
- },
+})( jQuery, this );
- _adjustRatio : function ( panesLength ) {
- var self = this,
- ratio = self.options.ratio,
- sum = 0,
- remain = 0,
- value = 0,
- subValue = 0,
- subRemain = 0,
- i;
- if ( !panesLength ) {
- self.options.ratio = [];
- return;
- }
+\r
+/* ***************************************************************************\r
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.\r
+ *\r
+ * Permission is hereby granted, free of charge, to any person obtaining a\r
+ * copy of this software and associated documentation files (the "Software"),\r
+ * to deal in the Software without restriction, including without limitation\r
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,\r
+ * and/or sell copies of the Software, and to permit persons to whom the\r
+ * Software is furnished to do so, subject to the following conditions:\r
+ *\r
+ * The above copyright notice and this permission notice shall be included in\r
+ * all copies or substantial portions of the Software.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\r
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\r
+ * DEALINGS IN THE SOFTWARE.\r
+ * ***************************************************************************\r
+ *\r
+ * Authors: Hyunsook Park <hyunsook.park@samsung.com>\r
+ * Wonseop Kim <wonseop.kim@samsung.com>\r
+*/\r
+\r
+( function ( $, window, document, undefined ) {\r
+ var _canvas, _context;\r
+\r
+ function initCanvas() {\r
+ if (_context) {\r
+ return;\r
+ }\r
+ _canvas = document.createElement( 'canvas' );\r
+ _context = _canvas.getContext( '2d' );\r
+ }\r
+\r
+ function fileSystemErrorMessage( e ) {\r
+ var FileError = window.FileError,\r
+ msg = '';\r
+ switch ( e.code ) {\r
+ case FileError.QUOTA_EXCEEDED_ERR:\r
+ msg = 'QUOTA_EXCEEDED_ERR';\r
+ break;\r
+ case FileError.NOT_FOUND_ERR:\r
+ msg = 'NOT_FOUND_ERR';\r
+ break;\r
+ case FileError.SECURITY_ERR:\r
+ msg = 'SECURITY_ERR';\r
+ break;\r
+ case FileError.INVALID_MODIFICATION_ERR:\r
+ msg = 'INVALID_MODIFICATION_ERR';\r
+ break;\r
+ case FileError.INVALID_STATE_ERR:\r
+ msg = 'INVALID_STATE_ERR';\r
+ break;\r
+ default:\r
+ msg = 'Unknown Error';\r
+ break;\r
+ }\r
+ return msg;\r
+ }\r
+\r
+ function getInternalURLFromURL( url ) {\r
+ var internalURL = url.replace( /\//gi, "_" );\r
+ return internalURL;\r
+ }\r
+\r
+ function resize( imagewidth, imageheight, thumbwidth, thumbheight, fit ) {\r
+ var w = 0, h = 0, x = 0, y = 0,\r
+ widthratio = imagewidth / thumbwidth,\r
+ heightratio = imageheight / thumbheight,\r
+ maxratio = Math.max( widthratio, heightratio );\r
+\r
+ if ( fit ) {\r
+ w = thumbwidth;\r
+ h = thumbheight;\r
+ } else {\r
+ if ( maxratio > 1 ) {\r
+ w = imagewidth / maxratio;\r
+ h = imageheight / maxratio;\r
+ } else {\r
+ w = imagewidth;\r
+ h = imageheight;\r
+ }\r
+ x = ( thumbwidth - w ) / 2;\r
+ y = ( thumbheight - h ) / 2;\r
+ }\r
+\r
+ return { w: w, h: h, x: x, y: y };\r
+ }\r
+\r
+ function getThumbnail( img, thumbwidth, thumbheight, fit ) {\r
+ var dimensions, url;\r
+ initCanvas();\r
+ _canvas.width = thumbwidth;\r
+ _canvas.height = thumbheight;\r
+ dimensions = resize( img.width, img.height, thumbwidth, thumbheight, fit );\r
+ _context.fillStyle = "#000000";\r
+ _context.fillRect ( 0, 0, thumbwidth, thumbheight );\r
+ _context.drawImage( img, dimensions.x, dimensions.y, dimensions.w, dimensions.h );\r
+ url = _canvas.toDataURL();\r
+ return url;\r
+ }\r
+\r
+ $.imageloader = {\r
+ _grantedBytes: 1024 * 1024,\r
+ getThumbnail: function ( url, _callback ) {\r
+ var internalURL, canvasDataURI;\r
+ function errorHandler( e ) {\r
+ var msg = fileSystemErrorMessage( e );\r
+ if ( _callback ) {\r
+ _callback( ( msg === "NOT_FOUND_ERR" ) ? msg : null );\r
+ }\r
+ }\r
+\r
+ internalURL = getInternalURLFromURL( url );\r
+ try {\r
+ canvasDataURI = localStorage.getItem( internalURL );\r
+ if ( _callback ) {\r
+ _callback( ( canvasDataURI === null ) ? "NOT_FOUND_ERR" : canvasDataURI );\r
+ }\r
+ } catch ( e ) {\r
+ if ( _callback ) {\r
+ _callback( ( e.type === "non_object_property_load" ) ? "NOT_FOUND_ERR" : null );\r
+ }\r
+ }\r
+ },\r
+\r
+ setThumbnail: function ( url, _callback, thumbWidth, thumbHeight, fit ) {\r
+ var image, internalURL, canvasDataURI;\r
+ function errorHandler( e ) {\r
+ var msg = fileSystemErrorMessage( e );\r
+ if ( _callback ) {\r
+ _callback( ( msg === "NOT_FOUND_ERR" ) ? msg : null );\r
+ }\r
+ }\r
+\r
+ thumbWidth = thumbWidth || 128;\r
+ thumbHeight = thumbHeight || 128;\r
+ fit = fit || true;\r
+ image = new Image();\r
+ image.onload = function () {\r
+ internalURL = getInternalURLFromURL( url );\r
+ canvasDataURI = getThumbnail( this, thumbWidth, thumbHeight, fit );\r
+ try {\r
+ localStorage.setItem( internalURL, canvasDataURI );\r
+ if ( _callback ) {\r
+ _callback( canvasDataURI );\r
+ }\r
+ } catch ( e ) {\r
+ if ( _callback ) {\r
+ _callback( ( e.type === "non_object_property_load" ) ? "NOT_FOUND_ERR" : null );\r
+ }\r
+ }\r
+ };\r
+ image.src = url;\r
+ },\r
+\r
+ removeThumbnail: function ( url ) {\r
+ var internalURL;\r
+ function errorHandler( e ) {\r
+ fileSystemErrorMessage( e );\r
+ }\r
+\r
+ internalURL = getInternalURLFromURL( url );\r
+ try {\r
+ localStorage.removeItem( internalURL );\r
+ } catch ( e ) {\r
+ throw e;\r
+ }\r
+ }\r
+ };\r
+\r
+} ( jQuery, window, document ) );\r
+\r
- for ( i in ratio ) {
- sum += ratio[ i ];
- }
- if ( sum !== 1 ) {
- remain = 1 - sum;
- value = remain / panesLength;
+/* ***************************************************************************
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ * ***************************************************************************
+ *
+ * Author: Sanghee Lee <sang-hee.lee@samsung.com>
+*/
- for ( i in ratio ) {
- if ( value >= 0 ) {
- ratio[ i ] += value;
- remain = Math.max( 0, remain - value );
- } else {
- subRemain += value;
- subValue = Math.max( subRemain, ratio[ i ] * -1 );
- ratio[ i ] = Math.max( 0, ratio[ i ] + subValue );
- remain = Math.min( 0, remain - subValue );
- subRemain -= subValue;
- }
- }
+/**
+ * Splitview is a widget which can show different HTML contents at the same time on each divided pane.
+ * A user can place Splitview controls on JQuery Mobile's Content area and arrange two panes on the widget.
+ * And HTML fragments or another Splitview also can be placed on the pane.
+ * The number of panes inside of Splitview is restricted as two.
+ * If a user define only one pane in Splitview, a empty pane will be added automatically,
+ * on the other hand, if 3 or more panes are defined in Splitview, the panes after two will be ignored and removed from the DOM tree.
+ * The HTML fragments of a pane should be composed of elements describing a part of Web page (e.g. <div>…</div>).
+ * Also widgets can be included in the HTML fragments.
+ *
+ * HTML Attributes:
+ *
+ * data-fixed : The resizing mode of panes - fixed and flexible mode.
+ * If the value is true, the panes' sizes will be fixed, or if not, it will be flexible. (Default : false)
+ * data-divider-vertical : The direction of dividers.
+ * If the value is true, the panes will be placed in horizontal direction,
+ * or if not, it will be placed in vertical direction. (Default : "true")
+ * data-ratio : The ratio of two panes' widths or heights. (Default : [ 1/2, 1/2 ]
+ *
+ * APIs:
+ *
+ * pane ( id [ , element ] )
+ * : This method replaces child contents of a pane indicated by id attribute with contents of inputted element.
+ * If second argument is not specified, it will act as a getter method.
+ * The string of id has to be started with "#" which means "id" of CSS selectors.
+ * maximize ( id )
+ * : This method maximizes a pane's size indicated by id.
+ * The string of id has to be started with "#" which means "id" of CSS selectors.
+ * restore ()
+ * : This method restores all panes' sizes to the ratio prior to maximization.
+ *
+ * Examples:
+ *
+ * <div data-role="splitview" data-fixed="false" data-divider-vertical="true" data-ratio="0.5, 0.5">
+ * <div class="ui-pane">pane0</div>
+ * <div class="ui-pane">pane1</div>
+ * </div>
+ *
+ */
- if ( remain ) {
- if ( remain > 0 ) {
- ratio[ ratio.length - 1 ] += remain;
- } else {
- for ( i = ratio.length - 1; i >= 0; --i ) {
- subValue = Math.max( remain, ratio[ i ] * -1 );
- ratio[ i ] = Math.max( 0, ratio[ i ] + subValue );
- remain = Math.min( 0, remain - subValue );
- if ( !remain ) {
- break;
- }
- }
- }
- }
- self.options.ratio = ratio;
- }
- },
+/**
+ @class Splitview
+ Splitview widget enables a user to place and arrange several panes. Each divided pane can show repective HTML contents.
- _setOption : function ( key, value ) {
- var self = this,
- orgValue = self.options[ key ];
+ To add a Splitview widget to the application, use the following code:
- if ( orgValue === value ) {
- return;
- }
+ <div data-role="splitview" data-fixed="false" data-divider-vertical="true" data-ratio="0.5, 0.5">
+ <div class="ui-pane">pane0</div>
+ <div class="ui-pane">pane1</div>
+ </div>
+*/
- $.Widget.prototype._setOption.apply( this, arguments );
+/**
+ @property {Boolean} data-fixed
+ The resizing mode of panes - fixed and flexible mode.
+*/
- switch ( key ) {
- case "fixed":
- self._fixed( value );
- break;
+/**
+ @property {Boolean} data-divider-vertical
+ The direction of dividers - horizontal or vertical.
+ */
- case "dividerVertical":
- self._dividerVertical( value );
- break;
+/**
+ @property {Array} data-ratio
+ The ratio of two panes' widths or heights.
+*/
- case "ratio":
- self._ratio( value );
- break;
- }
- },
+/**
+ @method pane
+ This method replaces child contents of a pane indicated by id attribute with contents of inputted element.
+ If second argument is not specified, it will act as a getter method.
- _subtractDiffWidth : function ( width, diff ) {
- var self = this;
+ <div data-role="splitview">
+ <div class="ui-pane" id="pane0">pane0</div>
+ <div class="ui-pane" id="pane1">pane1</div>
+ </div>
+ $(".selector").splitview("pane", id, element);
+*/
- if ( width <= self.minPaneWidth ) {
- return {
- width: width,
- diff: diff
- };
- }
+/**
+ @method maximize
+ This method maximizes a pane's size indicated by id.
- width += diff;
- if ( width >= self.minPaneWidth ) {
- return {
- width: width,
- diff: 0
- };
- }
+ <div data-role="splitview">
+ <div class="ui-pane" id="pane0">pane0</div>
+ <div class="ui-pane" id="pane1">pane1</div>
+ </div>
+ $(".selector").splitview("maximize", id);
+*/
- return {
- width: self.minPaneWidth,
- diff: width - self.minPaneWidth
- };
- },
+/**
+ @method restore
+ This method restores all panes' sizes to the ratio prior to maximization.
- _initRatio : function ( fromFirstPane, panes, isHorizontal, availableWidth ) {
- var self = this,
- sum = 0,
- widths = [],
- diff = 0,
- panesLength = panes.length,
- ret,
- i;
+ <div data-role="splitview">
+ <div class="ui-pane" id="pane0">pane0</div>
+ <div class="ui-pane" id="pane1">pane1</div>
+ </div>
+ $(".selector").splitview("restore");
+*/
- panes.each( function ( i ) {
- var pane = $( this );
- widths.push( isHorizontal ? pane.width() : pane.height() );
- sum += widths[ i ];
- });
+( function ( $, window, document, undefined ) {
+ $.widget( "tizen.splitview", $.mobile.widget, {
+ options : {
+ fixed : false,
+ dividerVertical : true,
+ ratio : [],
+ initSelector : ":jqmData(role='splitview')"
+ },
- diff = availableWidth - sum;
- if ( !diff ) {
- return widths;
- }
+ _create : function () {
+ var self = this,
+ $el = self.element,
+ opt = self.options,
+ $panes = $el.children( ".ui-pane" ),
+ panesLength = $panes.length,
+ spliters = [],
+ spliterBars = [],
+ ratioAttr = this.element.attr( "data-ratio" ),
+ containerSize = [ 0, 0 ],
+ resizeTimer = null,
+ i = 0;
- if ( diff > 0 ) {
- widths[ fromFirstPane ? 0 : panesLength - 1 ] += diff;
- } else {
- if ( fromFirstPane ) {
- for ( i = 0; i < panesLength; ++i ) {
- ret = self._subtractDiffWidth( widths[ i ], diff );
- widths[ i ] = ret.width;
- diff = ret.diff;
- if ( !diff ) {
- break;
- }
+ if ( panesLength !== 2 ) {
+ if ( panesLength < 2 ) {
+ for ( i = panesLength ; i < 2 ; ++i ) {
+ self._addEmptyPanes();
}
} else {
- for ( i = panesLength - 1; i >= 0; --i ) {
- diff = self._subtractDiffWidth( widths[ i ], diff );
- widths[ i ] = ret.width;
- diff = ret.diff;
- if ( !diff ) {
- break;
- }
- }
+ $panes.slice( 2 ).remove();
}
- }
-
- sum = 0;
- for ( i in widths ) {
- sum += widths[ i ];
- }
- for ( i in self.options.ratio ) {
- self.options.ratio[ i ] = widths[ i ] / sum;
+ $panes = $el.children( ".ui-pane" );
+ panesLength = $panes.length;
}
- return widths;
- },
+ spliters[ 0 ] = $( "<a href='#' class='ui-spliter' aria-label='Drag scroll, double tap and move to adjust split area'></a>" ).insertAfter( $panes[ 0 ] );
+ spliterBars[ 0 ] = $( "<div class='ui-spliter-bar'></div>" ).appendTo( spliters[ 0 ] );
+ $( "<div class='ui-spliter-handle'></div>" ).appendTo( spliterBars[ 0 ] );
- _horizontalBoundary : function () {
- var self = this,
- $el = self.element;
+ $.extend( this, {
+ moveTarget : null,
+ moveData : {},
+ spliters : spliters,
+ spliterBars : spliterBars,
+ panes : $panes,
+ containerSize : containerSize,
+ touchStatus : false,
+ minPaneWidth : 50,
+ savedRatio : []
+ });
- return $el.outerWidth( true ) - $el.width();
- },
+ self._bindTouchEvents();
+ self._convertRatio( ratioAttr, $panes.length );
- _verticalBoundary : function () {
- var self = this,
- $el = self.element;
+ $el.addClass( "ui-splitview ui-direction-" + self._direction( opt.dividerVertical ) );
- return $el.outerHeight( true ) - $el.height();
- },
+ if ( $el.parent().closest( ".ui-splitview" ).length ) {
+ if ( self._getContainerSize( $el[ 0 ].style.width, $el[ 0 ].style.height ) ) {
+ self._layout();
+ }
+ }
- _boundary : function ( type ) {
- var self = this,
- $el = self.element,
- computedStyle = window.getComputedStyle( $el[ 0 ], null ),
- margin = parseFloat( computedStyle[ "margin" + type ] ),
- border = parseFloat( computedStyle[ "border" + type + "Width" ] ),
- padding = parseFloat( computedStyle[ "padding" + type ] );
+ $( window ).bind( "pagechange", function ( e ) {
+ if ( !$el.parent().closest( ".ui-splitview" ).length ) {
+ if ( self._getContainerSize( $el[ 0 ].style.width, $el[ 0 ].style.height ) ) {
+ self._layout();
+ }
+ }
+ }).resize( function () {
+ if ( resizeTimer ) {
+ clearTimeout( resizeTimer );
+ }
- return {
- margin: margin,
- border: border,
- padding: padding
- };
+ resizeTimer = setTimeout( function () {
+ if ( !$el.parent().closest( ".ui-splitview" ).length ) {
+ if ( self._getContainerSize( $el[ 0 ].style.width, $el[ 0 ].style.height ) ) {
+ self._layout();
+ }
+ }
+ }, 250);
+ });
},
- _layout : function ( initRatio, fromFirstPane ) {
+ _addEmptyPanes : function () {
var self = this,
$el = self.element,
opt = self.options,
- isHorizontal = opt.dividerVertical,
- $panes = self.panes,
- spliters = self.spliters,
- spliterBars = self.spliterBars,
- spliterBar = self.spliterBars.length ? $( spliterBars[ 0 ] ) : null,
- spliterWidth = !spliterBar ? 0 :
- isHorizontal ? spliterBar.outerWidth() :
- spliterBar.outerHeight(),
- spliterBarMargin = !spliterBar ? 0 :
- isHorizontal ?
- spliterBar.outerWidth( true ) - spliterBar.outerWidth() :
- spliterBar.outerHeight( true ) - spliterBar.outerHeight(),
- panesLength = $panes.length,
- currentAvailable = 0,
- spliterSize = spliterWidth * ( panesLength - 1 ),
- parentWidth = self.containerSize[ 0 ],
- parentHeight = self.containerSize[ 1 ],
- width = parentWidth - self._horizontalBoundary(),
- height = parentHeight - self._verticalBoundary(),
- innerSize = isHorizontal ? height : width,
- availableWidth = isHorizontal ? width - spliterSize :
- height - spliterSize,
- initializedWidth = [],
- widthSum = 0,
- childSplitview = null;
+ $panes = $el.children( ".ui-pane" ),
+ scrollAttribute = ( $.support.scrollview ) ? "data-scroll='y'" : "",
+ pane = $( "<div class='ui-pane' " + scrollAttribute + "></div>" );
- if ( typeof initRatio === "undefined" ) {
- initRatio = false;
+ if ( scrollAttribute.length ) {
+ pane.scrollview( { direction: "y" } );
}
- if ( initRatio && typeof fromFirstPane === "undefined" ) {
- fromFirstPane = false;
+ if ( !$panes.length ) {
+ $el.append( pane );
+ } else {
+ $panes.last().after( pane );
}
+ },
- $el.css( {
- "min-width" : width,
- "min-height" : height
- });
-
- if ( initRatio ) {
- initializedWidth = self._initRatio( fromFirstPane, $panes, isHorizontal, availableWidth );
- }
+ _direction : function ( isHorizontal ) {
+ return isHorizontal ? "horizontal" : "vertical";
+ },
- currentAvailable = availableWidth;
- $panes.each( function ( i ) {
- var $pane = $( this ),
- paneWidth = initRatio ? initializedWidth[ i ] :
- Math.floor( availableWidth * self.options.ratio[i] ),
- prevPane = ( ( i ) ? $panes.eq( i - 1 ) : null ),
- posValue = 0,
- widthValue = 0,
- heightValue = 0,
- boundary = 0;
+ _isStyleSpecified : function ( cssString ) {
+ return ( typeof cssString !== "undefined" && cssString.length );
+ },
- currentAvailable -= paneWidth;
- if ( i === ( panesLength - 1 ) ) {
- paneWidth = Math.max( Math.min( paneWidth, self.minPaneWidth ), paneWidth + currentAvailable );
- }
+ _getContainerSize : function ( widthString, heightString ) {
+ var self = this,
+ $el = self.element,
+ widthSpecified = self._isStyleSpecified( widthString ),
+ heightSpecified = self._isStyleSpecified( heightString );
- widthSum += paneWidth;
+ self.containerSize[ 0 ] = ( widthSpecified ) ? $el.outerWidth( true ) : self._parentWidth();
+ self.containerSize[ 1 ] = ( heightSpecified ) ? $el.outerHeight( true ) : self._parentHeight();
- if ( !prevPane ) {
- boundary = self._boundary( isHorizontal ? "Left" : "Top" );
- posValue = boundary.padding;
- } else {
- posValue = parseInt( prevPane.css( isHorizontal ? "left" : "top" ), 10 );
- posValue += isHorizontal ? prevPane.width() : prevPane.height();
- posValue += spliterWidth;
- }
+ if ( !self.containerSize[ 0 ] || !self.containerSize[ 1 ] ) {
+ return false;
+ }
- widthValue = isHorizontal ? paneWidth : innerSize;
- heightValue = isHorizontal ? innerSize : paneWidth;
+ return true;
+ },
- $pane.css( {
- "width" : widthValue ,
- "height" : heightValue
- } );
+ _parentWidth : function () {
+ var $parent = this.element.parent();
- $pane.css( ( isHorizontal ? "left" : "top" ), posValue );
- });
+ if ( !$parent && typeof $parent === "undefined" && !$parent.length ) {
+ return $( window ).width();
+ }
- $panes.each( function ( i ) {
- var $pane = $( this ),
- paneWidth = isHorizontal ? $pane.width() : $pane.height();
+ return $parent.width();
+ },
- self.options.ratio[ i ] = paneWidth / widthSum;
- });
-
- $.each( spliters, function ( i ) {
- var spliter = $( this ),
- prevPane = $panes.eq( i ),
- bar = spliter.children( ".ui-spliter-bar" ),
- handle = bar.children( ".ui-spliter-handle" ),
- posValue = 0;
-
- if ( isHorizontal ) {
- posValue = parseInt( prevPane.css( "left" ), 10 ) + prevPane.width() - spliterBarMargin;
- spliter.outerHeight( innerSize ).css( "left", posValue );
- } else {
- posValue = parseInt( prevPane.css( "top" ), 10 ) + prevPane.height() - spliterBarMargin;
- spliter.outerWidth( innerSize ).css( "top", posValue );
- }
+ _parentHeight : function () {
+ var $parent = this.element.parent(),
+ heightString = "",
+ heightSpecified = false,
+ parentHeight = 0;
- if ( typeof bar !== "undefined" && bar ) {
- if ( isHorizontal ) {
- bar.outerHeight( innerSize );
- } else {
- bar.outerWidth( innerSize );
- }
- }
- if ( typeof handle !== "undefined" && handle ) {
- if ( isHorizontal ) {
- handle.css( "top", ( innerSize - spliterWidth ) / 2 );
- } else {
- handle.css( "left", ( innerSize - spliterWidth ) / 2 );
+ while ( $parent && typeof $parent !== "undefined" && $parent.length ) {
+ if ( typeof $parent[ 0 ].style !== "undefined" ) {
+ heightString = $parent[ 0 ].style.height;
+ heightSpecified = ( typeof heightString !== "undefined" && heightString.length );
+ if ( heightSpecified ) {
+ parentHeight = $parent.height();
+ break;
}
}
- });
- childSplitview = $el.find( ":jqmData(role='splitview'):first" );
- if ( !childSplitview.length ) {
- return;
+ $parent = $parent.parent();
}
- childSplitview = childSplitview.data( "splitview" );
- if ( childSplitview ) {
- childSplitview._refresh();
+ if ( !heightSpecified ) {
+ parentHeight = $(window).height();
}
+
+ return parentHeight;
},
- _bindTouchEvents : function () {
+ _convertRatio : function ( ratioParam, panesLength ) {
var self = this,
- $el = self.element,
- $panes = self.panes,
- spliters = self.spliters;
+ ratio = [],
+ loop = 0,
+ type = typeof ratioParam,
+ ratioArray = null,
+ i;
- $.each( spliters, function ( i ) {
- var spliter = $( this );
- self._bindSpliterTouchEvents( spliter );
- });
+ for ( i = 0; i < panesLength; ++i ) {
+ ratio.push( 0 );
+ }
- $el.mouseleave( function () {
- if ( self.touchStatus ) {
- $el.children( ".ui-spliter" ).trigger( "vmouseup" );
+ switch ( type ) {
+ case "number":
+ if ( panesLength ) {
+ ratio[ 0 ] = ratioParam;
}
- });
+ break;
- $panes.bind( "vmousedown", function () {
- $el.find( ".ui-spliter" ).trigger( "vmouseup" );
- });
- },
+ case "string":
+ ratioArray = ratioParam.split( "," );
+ loop = Math.min( ratioArray.length, panesLength );
+ for ( i = 0; i < loop; ++i ) {
+ ratio[ i ] = parseFloat( ratioArray[ i ] );
+ }
+ break;
- _bindSpliterTouchEvents : function ( spliter ) {
- var self = this,
- $el = self.element,
- opt = self.options;
+ case "object":
+ if ( !$.isArray( ratioParam ) ) {
+ break;
+ }
- spliter.bind( "vmousedown", { e : spliter }, function ( event ) {
- if ( self.options.fixed ) {
- return;
+ loop = Math.min( ratioParam.length, panesLength );
+ for ( i = 0; i < loop; ++i ) {
+ type = typeof ratioParam[ i ];
+ ratio[ i ] = ( type === "string" ) ? parseFloat( ratioParam[ i ] ) :
+ ( type === "number" ) ? ratioParam[ i ] : 0;
}
+ break;
+ }
- var targetSpliter = event.data.e,
- prevPane = targetSpliter.prev(),
- nextPane = targetSpliter.next(),
- splitviewInPrev = prevPane.find( ":jqmData(role='splitview'):first" ),
- splitviewInNext = nextPane.find( ":jqmData(role='splitview'):first" ),
- isHorizontal = opt.dividerVertical,
- spliterWidth = isHorizontal ?
- $( self.spliterBars[0] ).outerWidth() :
- $( self.spliterBars[0] ).outerHeight();
+ self.options.ratio = ratio;
+ self._adjustRatio( panesLength );
+ },
- $el.closest( ".ui-page" ).find( ".ui-spliter" ).trigger( "vmouseup" );
+ _adjustRatio : function ( panesLength ) {
+ var self = this,
+ ratio = self.options.ratio,
+ sum = 0,
+ remain = 0,
+ value = 0,
+ subValue = 0,
+ subRemain = 0,
+ i;
- self.moveTarget = targetSpliter;
- self.moveData = {
- spliterWidth : spliterWidth || 0,
- prevPane : prevPane,
- nextPane : nextPane,
- splitviewInPrev : splitviewInPrev,
- splitviewInNext : splitviewInNext,
- prevPanePos : parseInt( prevPane.css( isHorizontal ? "left" : "top" ), 10 ) || 0,
- prevPaneWidth : parseInt( prevPane.css( isHorizontal ? "width" : "height" ), 10 ) || 0,
- nextPanePos : parseInt( nextPane.css( isHorizontal ? "left" : "top" ), 10 ) || 0,
- nextPaneWidth : parseInt( nextPane.css( isHorizontal ? "width" : "height" ), 10 ) || 0,
- targetPos : parseInt( targetSpliter.css( isHorizontal ? "left" : "top" ), 10 ) || 0,
- pagePos : isHorizontal ? event.pageX : event.pageY
- };
+ if ( !panesLength ) {
+ self.options.ratio = [];
+ return;
+ }
- targetSpliter.addClass( "ui-spliter-active" );
+ for ( i in ratio ) {
+ sum += ratio[ i ];
+ }
- $( document ).bind( "vmousemove.splitview", function ( event ) {
- if ( !self.touchStatus ) {
- return;
- }
+ if ( sum !== 1 ) {
+ remain = 1 - sum;
+ value = remain / panesLength;
- self._drag( event );
+ for ( i in ratio ) {
+ if ( value >= 0 ) {
+ ratio[ i ] += value;
+ remain = Math.max( 0, remain - value );
+ } else {
+ subRemain += value;
+ subValue = Math.max( subRemain, ratio[ i ] * -1 );
+ ratio[ i ] = Math.max( 0, ratio[ i ] + subValue );
+ remain = Math.min( 0, remain - subValue );
+ subRemain -= subValue;
+ }
+ }
- event.preventDefault();
- event.stopPropagation();
- }).bind( "vmouseup.splitview", function ( event ) {
- if ( !self.touchStatus ) {
- return;
+ if ( remain ) {
+ if ( remain > 0 ) {
+ ratio[ ratio.length - 1 ] += remain;
+ } else {
+ for ( i = ratio.length - 1; i >= 0; --i ) {
+ subValue = Math.max( remain, ratio[ i ] * -1 );
+ ratio[ i ] = Math.max( 0, ratio[ i ] + subValue );
+ remain = Math.min( 0, remain - subValue );
+ if ( !remain ) {
+ break;
+ }
+ }
}
+ }
- self._stop( event );
+ self.options.ratio = ratio;
+ }
+ },
- event.preventDefault();
- event.stopPropagation();
+ _setOption : function ( key, value ) {
+ var self = this,
+ orgValue = self.options[ key ];
- self.touchStatus = false;
- });
+ if ( orgValue === value ) {
+ return;
+ }
- event.preventDefault();
- event.stopPropagation();
+ $.Widget.prototype._setOption.apply( this, arguments );
- self.touchStatus = true;
- });
- },
+ switch ( key ) {
+ case "fixed":
+ self._fixed( value );
+ break;
- _drag : function ( e ) {
- if ( !this.moveData || typeof this.moveData === "undefined" ) {
- return;
+ case "dividerVertical":
+ self._dividerVertical( value );
+ break;
+
+ case "ratio":
+ self._ratio( value );
+ break;
}
+ },
- var self = this,
- $el = self.element,
- opt = self.options,
- isHorizontal = opt.dividerVertical,
- moveData = self.moveData,
- moveTarget = self.moveTarget,
- prevPane = moveData.prevPane,
- nextPane = moveData.nextPane,
- splitviewInPrev = moveData.splitviewInPrev,
- splitviewInNext = moveData.splitviewInNext,
- spliterWidth = moveData.spliterWidth,
- movement = null,
- targetPos = null,
- nextPanePos = null,
- prevPaneWidth = null,
- nextPaneWidth = null,
- pagePos = isHorizontal ? e.pageX : e.pageY,
- splitview = null;
+ _subtractDiffWidth : function ( width, diff ) {
+ var self = this;
- movement = pagePos - moveData.pagePos;
- if ( movement > 0 ) {
- movement = Math.min( Math.max( moveData.nextPaneWidth - self.minPaneWidth, 0 ), movement );
- } else {
- movement = Math.max( Math.max( moveData.prevPaneWidth - self.minPaneWidth, 0 ) * -1, movement );
+ if ( width <= self.minPaneWidth ) {
+ return {
+ width: width,
+ diff: diff
+ };
}
- nextPanePos = moveData.nextPanePos + movement;
- prevPaneWidth = Math.max( moveData.prevPaneWidth + movement, 0 );
- nextPaneWidth = Math.max( moveData.nextPaneWidth - movement, 0 );
- targetPos = moveData.targetPos + movement;
+ width += diff;
+ if ( width >= self.minPaneWidth ) {
+ return {
+ width: width,
+ diff: 0
+ };
+ }
- moveTarget.css( isHorizontal ? { left : targetPos } : { top : targetPos } );
- prevPane.css( isHorizontal ? { width : prevPaneWidth } : { height : prevPaneWidth } );
- nextPane.css( isHorizontal ? { width : nextPaneWidth, left : nextPanePos } :
- { height : nextPaneWidth, top : nextPanePos } );
+ return {
+ width: self.minPaneWidth,
+ diff: width - self.minPaneWidth
+ };
+ },
- if ( splitviewInPrev.length ) {
- splitview = splitviewInPrev.data( "splitview" );
- splitview._refresh( true, false );
+ _initRatio : function ( fromFirstPane, panes, isHorizontal, availableWidth ) {
+ var self = this,
+ sum = 0,
+ widths = [],
+ diff = 0,
+ panesLength = panes.length,
+ ret,
+ i;
+
+ panes.each( function ( i ) {
+ var pane = $( this );
+ widths.push( isHorizontal ? pane.width() : pane.height() );
+ sum += widths[ i ];
+ });
+
+ diff = availableWidth - sum;
+ if ( !diff ) {
+ return widths;
}
- if ( splitviewInNext.length ) {
- splitview = splitviewInNext.data( "splitview" );
- splitview._refresh( true, true );
+ if ( diff > 0 ) {
+ widths[ fromFirstPane ? 0 : panesLength - 1 ] += diff;
+ } else {
+ if ( fromFirstPane ) {
+ for ( i = 0; i < panesLength; ++i ) {
+ ret = self._subtractDiffWidth( widths[ i ], diff );
+ widths[ i ] = ret.width;
+ diff = ret.diff;
+ if ( !diff ) {
+ break;
+ }
+ }
+ } else {
+ for ( i = panesLength - 1; i >= 0; --i ) {
+ diff = self._subtractDiffWidth( widths[ i ], diff );
+ widths[ i ] = ret.width;
+ diff = ret.diff;
+ if ( !diff ) {
+ break;
+ }
+ }
+ }
}
- },
- _stop : function ( e ) {
- if ( !this.moveData || typeof this.moveData === "undefined" ) {
- return;
+ sum = 0;
+ for ( i in widths ) {
+ sum += widths[ i ];
+ }
+
+ for ( i in self.options.ratio ) {
+ self.options.ratio[ i ] = widths[ i ] / sum;
}
+ return widths;
+ },
+
+ _horizontalBoundary : function () {
+ var self = this,
+ $el = self.element;
+
+ return $el.outerWidth( true ) - $el.width();
+ },
+
+ _verticalBoundary : function () {
+ var self = this,
+ $el = self.element;
+
+ return $el.outerHeight( true ) - $el.height();
+ },
+
+ _boundary : function ( type ) {
+ var self = this,
+ $el = self.element,
+ computedStyle = window.getComputedStyle( $el[ 0 ], null ),
+ margin = parseFloat( computedStyle[ "margin" + type ] ),
+ border = parseFloat( computedStyle[ "border" + type + "Width" ] ),
+ padding = parseFloat( computedStyle[ "padding" + type ] );
+
+ return {
+ margin: margin,
+ border: border,
+ padding: padding
+ };
+ },
+
+ _layout : function ( initRatio, fromFirstPane ) {
var self = this,
$el = self.element,
opt = self.options,
+ isHorizontal = opt.dividerVertical,
$panes = self.panes,
+ spliters = self.spliters,
+ spliterBars = self.spliterBars,
+ spliterBar = self.spliterBars.length ? $( spliterBars[ 0 ] ) : null,
+ spliterWidth = !spliterBar ? 0 :
+ isHorizontal ? spliterBar.outerWidth() :
+ spliterBar.outerHeight(),
+ spliterBarMargin = !spliterBar ? 0 :
+ isHorizontal ?
+ spliterBar.outerWidth( true ) - spliterBar.outerWidth() :
+ spliterBar.outerHeight( true ) - spliterBar.outerHeight(),
panesLength = $panes.length,
- isHorizontal = opt.dividerVertical,
- moveData = self.moveData,
- moveTarget = self.moveTarget,
- prevPane = moveData.prevPane,
- nextPane = moveData.nextPane,
- splitviewInPrev = moveData.splitviewInPrev,
- splitviewInNext = moveData.splitviewInNext,
- spliterWidth = moveData.spliterWidth,
+ currentAvailable = 0,
spliterSize = spliterWidth * ( panesLength - 1 ),
- movement = null,
- targetPos = null,
- nextPanePos = null,
- prevPaneWidth = null,
- nextPaneWidth = null,
- displayStyle = $el.css( "display" ),
parentWidth = self.containerSize[ 0 ],
parentHeight = self.containerSize[ 1 ],
width = parentWidth - self._horizontalBoundary(),
height = parentHeight - self._verticalBoundary(),
- availableWidth = isHorizontal ?
- ( width - spliterSize ) :
- ( height - spliterSize ),
- sum = 0;
+ innerSize = isHorizontal ? height : width,
+ availableWidth = isHorizontal ? width - spliterSize :
+ height - spliterSize,
+ initializedWidth = [],
+ widthSum = 0,
+ childSplitview = null;
- $( document ).unbind( "vmousemove.splitview vmouseup.splitview" );
- moveTarget.removeClass( "ui-spliter-active" );
+ if ( typeof initRatio === "undefined" ) {
+ initRatio = false;
+ }
- // ratio calculation
+ if ( initRatio && typeof fromFirstPane === "undefined" ) {
+ fromFirstPane = false;
+ }
+
+ $el.css( {
+ "min-width" : width,
+ "min-height" : height
+ });
+
+ if ( initRatio ) {
+ initializedWidth = self._initRatio( fromFirstPane, $panes, isHorizontal, availableWidth );
+ }
+
+ currentAvailable = availableWidth;
$panes.each( function ( i ) {
var $pane = $( this ),
- paneWidth = isHorizontal ? $pane.width() : $pane.height();
+ paneWidth = initRatio ? initializedWidth[ i ] :
+ Math.floor( availableWidth * self.options.ratio[i] ),
+ prevPane = ( ( i ) ? $panes.eq( i - 1 ) : null ),
+ posValue = 0,
+ widthValue = 0,
+ heightValue = 0,
+ boundary = 0;
- sum += paneWidth;
+ currentAvailable -= paneWidth;
+ if ( i === ( panesLength - 1 ) ) {
+ paneWidth = Math.max( Math.min( paneWidth, self.minPaneWidth ), paneWidth + currentAvailable );
+ }
+
+ widthSum += paneWidth;
+
+ if ( !prevPane ) {
+ boundary = self._boundary( isHorizontal ? "Left" : "Top" );
+ posValue = boundary.padding;
+ } else {
+ posValue = parseInt( prevPane.css( isHorizontal ? "left" : "top" ), 10 );
+ posValue += isHorizontal ? prevPane.width() : prevPane.height();
+ posValue += spliterWidth;
+ }
+
+ widthValue = isHorizontal ? paneWidth : innerSize;
+ heightValue = isHorizontal ? innerSize : paneWidth;
+
+ $pane.css( {
+ "width" : widthValue ,
+ "height" : heightValue
+ } );
+
+ $pane.css( ( isHorizontal ? "left" : "top" ), posValue );
});
$panes.each( function ( i ) {
var $pane = $( this ),
paneWidth = isHorizontal ? $pane.width() : $pane.height();
- self.options.ratio[ i ] = paneWidth / sum;
+ self.options.ratio[ i ] = paneWidth / widthSum;
});
- self.moveData = null;
- },
-
- _fixed : function ( isFix ) {
- var self = this,
- spliters = self.spliters;
-
$.each( spliters, function ( i ) {
- var $spliter = $( this );
+ var spliter = $( this ),
+ prevPane = $panes.eq( i ),
+ bar = spliter.children( ".ui-spliter-bar" ),
+ handle = bar.children( ".ui-spliter-handle" ),
+ posValue = 0;
- if ( isFix ) {
- $spliter.addClass( "ui-fixed" );
+ if ( isHorizontal ) {
+ posValue = parseInt( prevPane.css( "left" ), 10 ) + prevPane.width() - spliterBarMargin;
+ spliter.outerHeight( innerSize ).css( "left", posValue );
} else {
- $spliter.removeClass( "ui-fixed" );
+ posValue = parseInt( prevPane.css( "top" ), 10 ) + prevPane.height() - spliterBarMargin;
+ spliter.outerWidth( innerSize ).css( "top", posValue );
+ }
+
+ if ( typeof bar !== "undefined" && bar ) {
+ if ( isHorizontal ) {
+ bar.outerHeight( innerSize );
+ } else {
+ bar.outerWidth( innerSize );
+ }
+ }
+ if ( typeof handle !== "undefined" && handle ) {
+ if ( isHorizontal ) {
+ handle.css( "top", ( innerSize - spliterWidth ) / 2 );
+ } else {
+ handle.css( "left", ( innerSize - spliterWidth ) / 2 );
+ }
}
});
- self._layout();
+ childSplitview = $el.find( ":jqmData(role='splitview'):first" );
+ if ( !childSplitview.length ) {
+ return;
+ }
+
+ childSplitview = childSplitview.data( "splitview" );
+ if ( childSplitview ) {
+ childSplitview._refresh();
+ }
},
- _dividerVertical : function ( isDividerVertical ) {
+ _bindTouchEvents : function () {
var self = this,
$el = self.element,
- isHorizontal = isDividerVertical,
- $panes = null,
- $spliters = null,
- $bar = null,
- $handle = null;
+ $panes = self.panes,
+ spliters = self.spliters;
- $panes = $el.children( ".ui-pane" );
+ $.each( spliters, function ( i ) {
+ var spliter = $( this );
+ self._bindSpliterTouchEvents( spliter );
+ });
+
+ $el.mouseleave( function () {
+ if ( self.touchStatus ) {
+ $el.children( ".ui-spliter" ).trigger( "vmouseup" );
+ }
+ });
+
+ $panes.bind( "vmousedown", function () {
+ $el.find( ".ui-spliter" ).trigger( "vmouseup" );
+ });
+ },
+
+ _bindSpliterTouchEvents : function ( spliter ) {
+ var self = this,
+ $el = self.element,
+ opt = self.options;
+
+ spliter.bind( "vmousedown", { e : spliter }, function ( event ) {
+ if ( self.options.fixed ) {
+ return;
+ }
+
+ var targetSpliter = event.data.e,
+ prevPane = targetSpliter.prev(),
+ nextPane = targetSpliter.next(),
+ splitviewInPrev = prevPane.find( ":jqmData(role='splitview'):first" ),
+ splitviewInNext = nextPane.find( ":jqmData(role='splitview'):first" ),
+ isHorizontal = opt.dividerVertical,
+ spliterWidth = isHorizontal ?
+ $( self.spliterBars[0] ).outerWidth() :
+ $( self.spliterBars[0] ).outerHeight();
+
+ $el.closest( ".ui-page" ).find( ".ui-spliter" ).trigger( "vmouseup" );
+
+ self.moveTarget = targetSpliter;
+ self.moveData = {
+ spliterWidth : spliterWidth || 0,
+ prevPane : prevPane,
+ nextPane : nextPane,
+ splitviewInPrev : splitviewInPrev,
+ splitviewInNext : splitviewInNext,
+ prevPanePos : parseInt( prevPane.css( isHorizontal ? "left" : "top" ), 10 ) || 0,
+ prevPaneWidth : parseInt( prevPane.css( isHorizontal ? "width" : "height" ), 10 ) || 0,
+ nextPanePos : parseInt( nextPane.css( isHorizontal ? "left" : "top" ), 10 ) || 0,
+ nextPaneWidth : parseInt( nextPane.css( isHorizontal ? "width" : "height" ), 10 ) || 0,
+ targetPos : parseInt( targetSpliter.css( isHorizontal ? "left" : "top" ), 10 ) || 0,
+ pagePos : isHorizontal ? event.pageX : event.pageY
+ };
+
+ targetSpliter.addClass( "ui-spliter-active" );
+
+ $( document ).bind( "vmousemove.splitview", function ( event ) {
+ if ( !self.touchStatus ) {
+ return;
+ }
+
+ self._drag( event );
+
+ event.preventDefault();
+ event.stopPropagation();
+ }).bind( "vmouseup.splitview", function ( event ) {
+ if ( !self.touchStatus ) {
+ return;
+ }
+
+ self._stop( event );
+
+ event.preventDefault();
+ event.stopPropagation();
+
+ self.touchStatus = false;
+ });
+
+ event.preventDefault();
+ event.stopPropagation();
+
+ self.touchStatus = true;
+ });
+ },
+
+ _drag : function ( e ) {
+ if ( !this.moveData || typeof this.moveData === "undefined" ) {
+ return;
+ }
+
+ var self = this,
+ $el = self.element,
+ opt = self.options,
+ isHorizontal = opt.dividerVertical,
+ moveData = self.moveData,
+ moveTarget = self.moveTarget,
+ prevPane = moveData.prevPane,
+ nextPane = moveData.nextPane,
+ splitviewInPrev = moveData.splitviewInPrev,
+ splitviewInNext = moveData.splitviewInNext,
+ spliterWidth = moveData.spliterWidth,
+ movement = null,
+ targetPos = null,
+ nextPanePos = null,
+ prevPaneWidth = null,
+ nextPaneWidth = null,
+ pagePos = isHorizontal ? e.pageX : e.pageY,
+ splitview = null;
+
+ movement = pagePos - moveData.pagePos;
+ if ( movement > 0 ) {
+ movement = Math.min( Math.max( moveData.nextPaneWidth - self.minPaneWidth, 0 ), movement );
+ } else {
+ movement = Math.max( Math.max( moveData.prevPaneWidth - self.minPaneWidth, 0 ) * -1, movement );
+ }
+
+ nextPanePos = moveData.nextPanePos + movement;
+ prevPaneWidth = Math.max( moveData.prevPaneWidth + movement, 0 );
+ nextPaneWidth = Math.max( moveData.nextPaneWidth - movement, 0 );
+ targetPos = moveData.targetPos + movement;
+
+ moveTarget.css( isHorizontal ? { left : targetPos } : { top : targetPos } );
+ prevPane.css( isHorizontal ? { width : prevPaneWidth } : { height : prevPaneWidth } );
+ nextPane.css( isHorizontal ? { width : nextPaneWidth, left : nextPanePos } :
+ { height : nextPaneWidth, top : nextPanePos } );
+
+ if ( splitviewInPrev.length ) {
+ splitview = splitviewInPrev.data( "splitview" );
+ splitview._refresh( true, false );
+ }
+
+ if ( splitviewInNext.length ) {
+ splitview = splitviewInNext.data( "splitview" );
+ splitview._refresh( true, true );
+ }
+ },
+
+ _stop : function ( e ) {
+ if ( !this.moveData || typeof this.moveData === "undefined" ) {
+ return;
+ }
+
+ var self = this,
+ $el = self.element,
+ opt = self.options,
+ $panes = self.panes,
+ panesLength = $panes.length,
+ isHorizontal = opt.dividerVertical,
+ moveData = self.moveData,
+ moveTarget = self.moveTarget,
+ prevPane = moveData.prevPane,
+ nextPane = moveData.nextPane,
+ splitviewInPrev = moveData.splitviewInPrev,
+ splitviewInNext = moveData.splitviewInNext,
+ spliterWidth = moveData.spliterWidth,
+ spliterSize = spliterWidth * ( panesLength - 1 ),
+ movement = null,
+ targetPos = null,
+ nextPanePos = null,
+ prevPaneWidth = null,
+ nextPaneWidth = null,
+ displayStyle = $el.css( "display" ),
+ parentWidth = self.containerSize[ 0 ],
+ parentHeight = self.containerSize[ 1 ],
+ width = parentWidth - self._horizontalBoundary(),
+ height = parentHeight - self._verticalBoundary(),
+ availableWidth = isHorizontal ?
+ ( width - spliterSize ) :
+ ( height - spliterSize ),
+ sum = 0;
+
+ $( document ).unbind( "vmousemove.splitview vmouseup.splitview" );
+ moveTarget.removeClass( "ui-spliter-active" );
+
+ // ratio calculation
+ $panes.each( function ( i ) {
+ var $pane = $( this ),
+ paneWidth = isHorizontal ? $pane.width() : $pane.height();
+
+ sum += paneWidth;
+ });
+
+ $panes.each( function ( i ) {
+ var $pane = $( this ),
+ paneWidth = isHorizontal ? $pane.width() : $pane.height();
+
+ self.options.ratio[ i ] = paneWidth / sum;
+ });
+
+ self.moveData = null;
+ },
+
+ _fixed : function ( isFix ) {
+ var self = this,
+ spliters = self.spliters;
+
+ $.each( spliters, function ( i ) {
+ var $spliter = $( this );
+
+ if ( isFix ) {
+ $spliter.addClass( "ui-fixed" );
+ } else {
+ $spliter.removeClass( "ui-fixed" );
+ }
+ });
+
+ self._layout();
+ },
+
+ _dividerVertical : function ( isDividerVertical ) {
+ var self = this,
+ $el = self.element,
+ isHorizontal = isDividerVertical,
+ $panes = null,
+ $spliters = null,
+ $bar = null,
+ $handle = null;
+
+ $panes = $el.children( ".ui-pane" );
$spliters = $el.children( ".ui-spliter" );
$bar = $spliters.children( ".ui-spliter-bar" );
$handle = $bar.children( ".ui-spliter-handle" );
} ( jQuery, window, document ) );
+\r
+/**\r
+ @class Checkbox\r
+ The check box widget shows a list of options on the screen where one or more can be selected. Check boxes can be used in Tizen as described in the jQueryMobile documentation for check boxes.<br/> To add a check box widget to the application, use the following code:\r
+\r
+ <input type="checkbox" name="mycheck" id="check-test" class="favorite" />\r
+ <label for="check-test">Favorite</label>\r
+ <input type="checkbox" name="check-favorite" id="check-test2" checked="checked" disabled="disabled" class="favorite" />\r
+ <label for="check-test2">Favorite Checked, Disabled</label>\r
+\r
+ The check box can define callbacks for events as described in the jQueryMobile documentation for check box events.\r
+ You can use methods with the check box as described in the jQueryMobile documentation for check box methods.\r
+\r
+*/\r
+/**\r
+ @property {String} class\r
+ Defines the check box style. <br/> The default value is check. If the value is set to favorite, a star-shaped check box is created.\r
+*/\r
+\r
+
-/*
+/* ***************************************************************************
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
*
- * This software is licensed under the MIT licence (as defined by the OSI at
- * http://www.opensource.org/licenses/mit-license.php)
- *
- * ***************************************************************************
- * Copyright (C) 2011 by Intel Corporation Ltd.
- *
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
- *
+ *
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
- *
+ *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
* ***************************************************************************
- */
+ *
+ * Authors: Hyunsook Park <hyunsook.park@samsung.com>
+ * Wonseop Kim <wonseop.kim@samsung.com>
+*/
-// Add markup for labels
+( function ( $, window, undefined ) {
+ var HALF_PI = Math.PI / 2,
+ DEFAULT_STEP = 0.001,
+ MotionPath = {},
+ vec3 = window.vec3,
+ arcLength3d = function ( p0, p1 ) {
+ var d = [ p1[0] - p0[0], p1[1] - p0[1], p1[2] - p0[2] ],
+ value = Math.sqrt( d[0] * d[0] + d[1] * d[1] + d[2] * d[2] );
+ return value;
+ };
+ MotionPath.base = function () {};
+ MotionPath.base.prototype = {
+ points: [],
+ step: DEFAULT_STEP,
+ length: 0,
+ levels: [],
+ init: function ( data ) {},
+ calculateLevel: function ( maxLevel ) {},
+ calculateTotalLength: function () {},
+ getPosition: function ( percent ) {},
+ getPercent: function ( start, interval ) {},
+ getAngle: function ( percent ) {}
+ };
-(function($, undefined) {
+ MotionPath.bezier2d = function () {};
+ MotionPath.bezier2d.prototype = $.extend( true, {}, MotionPath.base.prototype, {
+ init: function ( data ) {
+ this.points = data.points;
+ this.step = data.step || DEFAULT_STEP;
+ this.length = this.calculateTotalLength();
+ this.levels = this.calculateLevel( data.maxLevel ) || [];
+ },
-$(document).bind("pagecreate create", function(e) {
- $(":jqmData(role='label')", e.target).not(":jqmData(role='none'), :jqmData(role='nojs')").each(function() {
- $(this).addClass("jquery-mobile-ui-label")
- .html($("<span>", {"class": "jquery-mobile-ui-label-text"}).text($(this).text()));
- });
-});
+ calculateLevel: function ( maxLevel ) {
+ var totalLength = this.length,
+ interval = totalLength / maxLevel,
+ levels = [],
+ i;
-})(jQuery);
+ if ( !maxLevel ) {
+ return null;
+ }
+ for ( i = 0; i < maxLevel; i += 1 ) {
+ levels[maxLevel - i] = this.getPercent( 0, interval * i );
+ }
+ return levels;
+ },
+ calculateTotalLength: function () {
+ var step = this.step,
+ current = this.getPosition( 0 ),
+ last = current,
+ length = 0,
+ percent;
+ for ( percent = step; percent <= 1; percent += step ) {
+ current = this.getPosition( percent );
+ length += arcLength3d( last, current );
+ last = current;
+ }
+ return length;
+ },
-ensureNS("jQuery.mobile.tizen.clrlib");
+ getPosition: function ( percent ) {
+ var points = this.points,
+ getValue = function ( p1, c1, c2, p2, t ) {
+ return Math.pow(1 - t, 3) * p1 +
+ 3 * t * Math.pow( 1 - t, 2 ) * c1 +
+ 3 * Math.pow( t, 2 ) * ( 1 - t ) * c2 +
+ Math.pow( t, 3 ) * p2;
+ },
+ result = [
+ getValue( points[0][0], points[1][0], points[2][0], points[3][0], percent ),
+ getValue( points[0][2], points[1][2], points[2][2], points[3][2], percent )
+ ];
+ return [ result[0], 0, result[1] ];
+ },
-jQuery.extend( jQuery.mobile.tizen.clrlib,
-{
- nearestInt: function(val) {
- var theFloor = Math.floor(val);
+ getPercent: function ( start, interval ) {
+ var step = this.step,
+ current = this.getPosition( start = start || 0 ),
+ last = current,
+ targetLength = start + interval,
+ length = 0,
+ percent;
- return (((val - theFloor) > 0.5) ? (theFloor + 1) : theFloor);
- },
+ for ( percent = start + step; percent <= 1; percent += step ) {
+ current = this.getPosition( percent );
+ length += arcLength3d( last, current );
+ if ( length >= targetLength ) {
+ return percent;
+ }
+ last = current;
+ }
+ return 1;
+ },
- /*
- * Converts html color string to rgb array.
- *
- * Input: string clr_str, where
- * clr_str is of the form "#aabbcc"
- *
- * Returns: [ r, g, b ], where
- * r is in [0, 1]
- * g is in [0, 1]
- * b is in [0, 1]
- */
- HTMLToRGB: function(clr_str) {
- clr_str = (('#' == clr_str.charAt(0)) ? clr_str.substring(1) : clr_str);
+ getAngle: function ( percent ) {
+ var points = this.points,
+ getTangent = function ( p1, c1, c2, p2, t ) {
+ return 3 * t * t * ( -p1 + 3 * c1 - 3 * c2 + p2 ) + 6 * t * ( p1 - 2 * c1 + c2 ) + 3 * ( -p1 + c1 );
+ },
+ tx = getTangent( points[0][0], points[1][0], points[2][0], points[3][0], percent ),
+ ty = getTangent( points[0][2], points[1][2], points[2][2], points[3][2], percent );
+ return Math.atan2( tx, ty ) - HALF_PI;
+ }
- return ([
- clr_str.substring(0, 2),
- clr_str.substring(2, 4),
- clr_str.substring(4, 6)
- ].map(function(val) {
- return parseInt(val, 16) / 255.0;
- }));
- },
+ } );
- /*
- * Converts rgb array to html color string.
- *
- * Input: [ r, g, b ], where
- * r is in [0, 1]
- * g is in [0, 1]
- * b is in [0, 1]
- *
- * Returns: string of the form "#aabbcc"
- */
- RGBToHTML: function(rgb) {
- return ("#" +
- rgb.map(function(val) {
- var ret = val * 255,
- theFloor = Math.floor(ret);
+ // clamped cubic B-spline curve
+ // http://web.mit.edu/hyperbook/Patrikalakis-Maekawa-Cho/node17.html
+ // http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/B-spline/bspline-curve-coef.html
+ MotionPath.bspline = function () {};
+ MotionPath.bspline.prototype = $.extend( true, {}, MotionPath.base.prototype, {
+ _degree: 3,
+ _numberOfControls : 0,
+ _knotVectors: [],
+ _numberOfKnots: 0,
- ret = ((ret - theFloor > 0.5) ? (theFloor + 1) : theFloor);
- ret = (((ret < 16) ? "0" : "") + (ret & 0xff).toString(16));
- return ret;
- })
- .join(""));
- },
+ init: function ( data ) {
+ this.points = data.points;
+ this.step = data.step || DEFAULT_STEP;
+ this._numberOfPoints = this.points.length - 1;
+ this._numberOfKnots = this._numberOfPoints + this._degree + 1;
- /*
- * Converts hsl to rgb.
- *
- * From http://130.113.54.154/~monger/hsl-rgb.html
- *
- * Input: [ h, s, l ], where
- * h is in [0, 360]
- * s is in [0, 1]
- * l is in [0, 1]
- *
- * Returns: [ r, g, b ], where
- * r is in [0, 1]
- * g is in [0, 1]
- * b is in [0, 1]
- */
- HSLToRGB: function(hsl) {
- var h = hsl[0] / 360.0, s = hsl[1], l = hsl[2];
+ var deltaKnot = 1 / ( this._numberOfKnots - ( 2 * this._degree ) ),
+ v = deltaKnot,
+ i = 0;
- if (0 === s)
- return [ l, l, l ];
+ while ( i <= this._numberOfKnots ) {
+ if ( i <= this._degree ) {
+ this._knotVectors.push( 0 );
+ } else if ( i < this._numberOfKnots - this._degree + 1 ) {
+ this._knotVectors.push( v );
+ v += deltaKnot;
+ } else {
+ this._knotVectors.push( 1 );
+ }
+ i += 1;
+ }
- var temp2 = ((l < 0.5)
- ? l * (1.0 + s)
- : l + s - l * s),
- temp1 = 2.0 * l - temp2,
- temp3 = {
- r: h + 1.0 / 3.0,
- g: h,
- b: h - 1.0 / 3.0
- };
+ this.length = this.calculateTotalLength();
+ this.levels = this.calculateLevel( data.maxLevel ) || [];
+ },
- temp3.r = ((temp3.r < 0) ? (temp3.r + 1.0) : ((temp3.r > 1) ? (temp3.r - 1.0) : temp3.r));
- temp3.g = ((temp3.g < 0) ? (temp3.g + 1.0) : ((temp3.g > 1) ? (temp3.g - 1.0) : temp3.g));
- temp3.b = ((temp3.b < 0) ? (temp3.b + 1.0) : ((temp3.b > 1) ? (temp3.b - 1.0) : temp3.b));
+ _Np: function ( percent, i, degree ) {
+ var knots = this._knotVectors,
+ A = 0,
+ B = 0,
+ denominator = 0,
+ N0 = function ( percent, i ) {
+ return ( ( knots[i] <= percent && percent < knots[i + 1] ) ? 1 : 0 );
+ };
- ret = [
- (((6.0 * temp3.r) < 1) ? (temp1 + (temp2 - temp1) * 6.0 * temp3.r) :
- (((2.0 * temp3.r) < 1) ? temp2 :
- (((3.0 * temp3.r) < 2) ? (temp1 + (temp2 - temp1) * ((2.0 / 3.0) - temp3.r) * 6.0) :
- temp1))),
- (((6.0 * temp3.g) < 1) ? (temp1 + (temp2 - temp1) * 6.0 * temp3.g) :
- (((2.0 * temp3.g) < 1) ? temp2 :
- (((3.0 * temp3.g) < 2) ? (temp1 + (temp2 - temp1) * ((2.0 / 3.0) - temp3.g) * 6.0) :
- temp1))),
- (((6.0 * temp3.b) < 1) ? (temp1 + (temp2 - temp1) * 6.0 * temp3.b) :
- (((2.0 * temp3.b) < 1) ? temp2 :
- (((3.0 * temp3.b) < 2) ? (temp1 + (temp2 - temp1) * ((2.0 / 3.0) - temp3.b) * 6.0) :
- temp1)))];
+ if ( degree === 1 ) {
+ A = N0( percent, i );
+ B = N0( percent, i + 1 );
+ } else {
+ A = this._Np( percent, i, degree - 1 );
+ B = this._Np( percent, i + 1, degree - 1 );
+ }
- return ret;
- },
+ denominator = knots[i + degree] - knots[i];
+ A *= ( denominator !== 0 ) ? ( ( percent - knots[i] ) / denominator ) : 0;
+ denominator = knots[i + degree + 1] - knots[i + 1];
+ B *= ( denominator !== 0 ) ? ( ( knots[i + degree + 1] - percent ) / denominator ) : 0;
- /*
- * Converts hsv to rgb.
- *
- * Input: [ h, s, v ], where
- * h is in [0, 360]
- * s is in [0, 1]
- * v is in [0, 1]
- *
- * Returns: [ r, g, b ], where
- * r is in [0, 1]
- * g is in [0, 1]
- * b is in [0, 1]
- */
- HSVToRGB: function(hsv) {
- return $.mobile.tizen.clrlib.HSLToRGB($.mobile.tizen.clrlib.HSVToHSL(hsv));
- },
+ return A + B;
+ },
- /*
- * Converts rgb to hsv.
- *
- * from http://coecsl.ece.illinois.edu/ge423/spring05/group8/FinalProject/HSV_writeup.pdf
- *
- * Input: [ r, g, b ], where
- * r is in [0, 1]
- * g is in [0, 1]
- * b is in [0, 1]
- *
- * Returns: [ h, s, v ], where
- * h is in [0, 360]
- * s is in [0, 1]
- * v is in [0, 1]
- */
- RGBToHSV: function(rgb) {
- var min, max, delta, h, s, v, r = rgb[0], g = rgb[1], b = rgb[2];
+ calculateLevel: function ( maxLevel ) {
+ var totalLength = this.length,
+ interval = totalLength / maxLevel,
+ levels = [],
+ i;
- min = Math.min(r, Math.min(g, b));
- max = Math.max(r, Math.max(g, b));
- delta = max - min;
+ if ( !maxLevel ) {
+ return null;
+ }
- h = 0;
- s = 0;
- v = max;
+ for ( i = 0; i < maxLevel; i += 1 ) {
+ levels[maxLevel - i] = this.getPercent( 0, interval * i );
+ }
+ return levels;
+ },
- if (delta > 0.00001) {
- s = delta / max;
+ calculateTotalLength: function () {
+ var step = this.step,
+ current = this.getPosition( 0 ),
+ last = current,
+ length = 0,
+ percent;
+ for ( percent = step; percent <= 1; percent += step ) {
+ current = this.getPosition( percent );
+ length += arcLength3d( last, current );
+ last = current;
+ }
+ return length;
+ },
- if (r === max)
- h = (g - b) / delta ;
- else
- if (g === max)
- h = 2 + (b - r) / delta ;
- else
- h = 4 + (r - g) / delta ;
+ getPosition: function ( percent ) {
+ var result = [], i, j, sum;
+ percent = percent.toFixed( 4 );
+ for ( j = 0; j < 3; j += 1 ) {
+ sum = 0;
+ for ( i = 0; i <= this._numberOfPoints; i += 1 ) {
+ sum += this.points[i][j] * this._Np( percent, i, this._degree );
+ }
+ result[j] = sum;
+ }
- h *= 60 ;
+ return result;
+ },
- if (h < 0)
- h += 360 ;
- }
+ getPercent: function ( start, interval ) {
+ var step = this.step,
+ current = this.getPosition( start = start || 0 ),
+ last = current,
+ targetLength = start + interval,
+ length = 0,
+ percent;
- return [h, s, v];
- },
+ for ( percent = start + step; percent <= 1; percent += step ) {
+ current = this.getPosition( percent );
+ length += arcLength3d( last, current );
+ if ( length >= targetLength ) {
+ return percent;
+ }
+ last = current;
+ }
+ return 1;
+ },
- /*
- * Converts hsv to hsl.
- *
- * Input: [ h, s, v ], where
- * h is in [0, 360]
- * s is in [0, 1]
- * v is in [0, 1]
- *
- * Returns: [ h, s, l ], where
- * h is in [0, 360]
- * s is in [0, 1]
- * l is in [0, 1]
- */
- HSVToHSL: function(hsv) {
- var max = hsv[2],
- delta = hsv[1] * max,
- min = max - delta,
- sum = max + min,
- half_sum = sum / 2,
- s_divisor = ((half_sum < 0.5) ? sum : (2 - max - min));
+ getAngle: function ( percent ) {
+ var prev = this.getPosition( percent ),
+ next = this.getPosition( percent + 0.001 ),
+ dir = vec3.normalize( vec3.direction( prev, next ) ),
+ cosValue = vec3.dot( dir, [1, 0, 0] );
- return [ hsv[0], ((0 == s_divisor) ? 0 : (delta / s_divisor)), half_sum ];
- },
+ return Math.acos( cosValue ) + Math.PI;
+ }
+ } );
- /*
- * Converts rgb to hsl
- *
- * Input: [ r, g, b ], where
- * r is in [0, 1]
- * g is in [0, 1]
- * b is in [0, 1]
- *
- * Returns: [ h, s, l ], where
- * h is in [0, 360]
- * s is in [0, 1]
- * l is in [0, 1]
- */
- RGBToHSL: function(rgb) {
- return $.mobile.tizen.clrlib.HSVToHSL($.mobile.tizen.clrlib.RGBToHSV(rgb));
- }
-});
+ $.motionpath = function ( type, data ) {
+ var object = new MotionPath[type]();
+ object.init( data );
+ return object;
+ };
+} ( jQuery, window ) );
-(function($, undefined) {
+/****************************************************************************
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ * ***************************************************************************
+ *
+ * Author: Wongi Lee <wongi11.lee@samsung.com>
+*/
-ensureNS("jQuery.mobile.tizen");
+/**
+ * Extendable List Widget for unlimited data.
+ * To support more then 1,000 items, special list widget developed.
+ * Fast initialize and append some element into the DOM tree repeatedly.
+ * DB connection and works like DB cursor.
+ *
+ * HTML Attributes:
+ *
+ * data-role: extendablelist
+ * data-template : jQuery.template ID that populate into extendable list. A button : a <DIV> element with "data-role : button" should be included on data-template.
+ * data-dbtable : DB Table name. It used as window[DB NAME]. Loaded data should be converted as window object.
+ * data-extenditems : Number of elements to extend at once.
+ *
+ * ID : <UL> element that has "data-role=extendablelist" must have ID attribute.
+ * Class : <UL> element that has "data-role=extendablelist" should have "vlLoadSuccess" class to guaranty DB loading is completed.
+ * tmp_load_more : Template ID for "load more" message and button.
+ *
+ *
+ *APIs:
+ * create ( {
+ * itemData: function ( idx ) { return json_obj; },
+ * numItemData: number or function () { return number; },
+ * cacheItemData: function ( minIdx, maxIdx ) {}
+ * } )
+ * : Create a extendable list widget. At this moment, _create method is called.
+ * args : A collection of options
+ * itemData: A function that returns JSON object for given index. Mandatory.
+ * numItemData: Total number of itemData. Mandatory.
+ * cacheItemData: Extendable list will ask itemData between minIdx and maxIdx.
+ * Developers can implement this function for preparing data.
+ * Optional.
+ *
+ *Examples:
+ *
+ * <script id="tmp-3-1-1" type="text/x-jquery-tmpl">
+ * <li class="ui-li-3-1-1"><span class="ui-li-text-main">${NAME}</span></li>
+ * </script>
+ *
+ * <script id="tmp_load_more" type="text/x-jquery-tmpl">
+ * <li class="ui-li-3-1-1" style="text-align:center; margin:0 auto">
+ * <div data-role="button">Load ${NUM_MORE_ITEMS} more items</div>
+ * </li>
+ * </script>
+ *
+ * <ul id = "extendable_list_main" data-role="extendablelist" data-extenditems="50" data-template="tmp-3-1-1">
+ * </ul>
+ *
+ */
-jQuery.extend( jQuery.mobile.tizen,
-{
- _widgetPrototypes: {},
+/**
+ @class Extendablelist
+ In the Web environment, it is challenging to display a large amount of data in a list, such as displaying a contact list of over 1000 list items. It takes time to display the entire list in HTML and the DOM manipulation is complex.
+ The extendable list widget is used to display a list of unlimited data elements on the screen for better performance. The list is extended if you click the button at the bottom of the list to load more data elements. Extendable lists are based on the jQuery.template plugin as described in the jQuery documentation for jQuery.template plugin.<br/>
+ To add a extendable list widget to the application, use the following code:
- /*
- * load the prototype for a widget.
- *
- * If @widget is a string, the function looks for @widget.prototype.html in the proto-html/ subdirectory of the
- * framework's current theme and loads the file via AJAX into a string. Note that the file will only be loaded via
- * AJAX once. If two widget instances based on the same @widget value are to be constructed, the second will be
- * constructed from the cached copy of the prototype of the first instance.
- *
- * If @widget is not a string, it is assumed to be a hash containing at least one key, "proto", the value of which is
- * the string to be used for the widget prototype. if another key named "key" is also provided, it will serve as the
- * key under which to cache the prototype, so it need not be rendered again in the future.
- *
- * Given the string for the widget prototype, the following patterns occurring in the string are replaced:
- *
- * "${FRAMEWORK_ROOT}" - replaced with the path to the root of the framework
- *
- * The function then creates a jQuery $("<div>") object containing the prototype from the string.
- *
- * If @ui is not provided, the jQuery object containing the prototype is returned.
- *
- * If @ui is provided, it is assumed to be a (possibly multi-level) hash containing CSS selectors. For every level of
- * the hash and for each string-valued key at that level, the CSS selector specified as the value is sought in the
- * prototype jQuery object and, if found, the value of the key is replaced with the jQuery object resulting from the
- * search. Additionally, if the CSS selector is of the form "#widgetid", the "id" attribute will be removed from the
- * elements contained within the resulting jQuery object. The resulting hash is returned.
- *
- * Examples:
- *
- * 1.
- * $.mobile.tizen.loadPrototype("mywidget") => Returns a <div> containing the structure from the file
- * mywidget.prototype.html located in the current theme folder of the current framework.
- *
- * 2. $.mobile.tizen.loadPrototype("mywidget", ui):
- * where ui is a hash that looks like this:
- * ui = {
- * element1: "<css selector 1>",
- * element2: "<css selector 2>",
- * group1: {
- * group1element1: "<css selector 3>",
- * group1element1: "<css selector 4>"
- * }
- * ...
- * }
- *
- * In this case, after loading the prototype as in Example 1, loadPrototype will traverse @ui and replace the CSS
- * selector strings with the result of the search for the selector string upon the prototype. If any of the CSS
- * selectors are of the form "#elementid" then the "id" attribute will be stripped from the elements selected. This
- * means that they will no longer be accessible via the selector used initially. @ui is then returned thus modified.
- */
-
- loadPrototype: function(widget, ui) {
- var ret = undefined,
- theScriptTag = $("script[data-framework-version][data-framework-root][data-framework-theme]"),
- frameworkRootPath = theScriptTag.attr("data-framework-root") + "/" +
- theScriptTag.attr("data-framework-version") + "/";
-
- function replaceVariables(s) {
- return s.replace(/\$\{FRAMEWORK_ROOT\}/g, frameworkRootPath);
- }
-
- function fillObj(obj, uiProto) {
- var selector;
-
- for (var key in obj) {
- if (typeof obj[key] === "string") {
- selector = obj[key];
- obj[key] = uiProto.find(obj[key]);
- if (selector.substring(0, 1) === "#")
- obj[key].removeAttr("id");
- }
- else
- if (typeof obj[key] === "object")
- obj[key] = fillObj(obj[key], uiProto);
- }
- return obj;
- }
-
- /* If @widget is a string ... */
- if (typeof widget === "string") {
- /* ... try to use it as a key into the cached prototype hash ... */
- ret = $.mobile.tizen._widgetPrototypes[widget];
- if (ret === undefined) {
- /* ... and if the proto was not found, try to load its definition ... */
- var protoPath = frameworkRootPath + "proto-html" + "/" +
- theScriptTag.attr("data-framework-theme");
- $.ajax({
- url: protoPath + "/" + widget + ".prototype.html",
- async: false,
- dataType: "html"
- })
- .success(function(data, textStatus, jqXHR) {
- /* ... and if loading succeeds, cache it and use a copy of it ... */
- $.mobile.tizen._widgetPrototypes[widget] = $("<div>").html(replaceVariables(data));
- ret = $.mobile.tizen._widgetPrototypes[widget].clone();
- });
- }
- }
- /* Otherwise ... */
- else {
- /* ... if a key was provided ... */
- if (widget.key !== undefined)
- /* ... try to use it as a key into the cached prototype hash ... */
- ret = $.mobile.tizen._widgetPrototypes[widget.key];
-
- /* ... and if the proto was not found in the cache ... */
- if (ret === undefined) {
- /* ... and a proto definition string was provided ... */
- if (widget.proto !== undefined) {
- /* ... create a new proto from the definition ... */
- ret = $("<div>").html(replaceVariables(widget.proto));
- /* ... and if a key was provided ... */
- if (widget.key !== undefined)
- /* ... cache a copy of the proto under that key */
- $.mobile.tizen._widgetPrototypes[widget.key] = ret.clone();
- }
- }
- else
- /* otherwise, if the proto /was/ found in the cache, return a copy of it */
- ret = ret.clone();
- }
-
- /* If the prototype was found/created successfully ... */
- if (ret != undefined)
- /* ... and @ui was provided */
- if (ui != undefined)
- /* ... return @ui, but replace the CSS selectors it contains with the elements they select */
- ret = fillObj(ui, ret);
-
- return ret;
- }
-});
-})(jQuery);
-
-
-
-/*
- * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL licenses
- * http://phpjs.org/functions/range
- * original by: Waldo Malqui Silva
- * version: 1107.2516
- */
-function range( low, high, step ) {
- // Create an array containing the range of integers or characters
- // from low to high (inclusive)
- //
- // version: 1107.2516
- // discuss at: http://phpjs.org/functions/range
- // + original by: Waldo Malqui Silva
- // * example 1: range ( 0, 12 );
- // * returns 1: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
- // * example 2: range( 0, 100, 10 );
- // * returns 2: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
- // * example 3: range( 'a', 'i' );
- // * returns 3: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
- // * example 4: range( 'c', 'a' );
- // * returns 4: ['c', 'b', 'a']
- var matrix = [],
- inival,
- endval,
- plus,
- walker = step || 1,
- chars = false;
-
- if (!isNaN(low) && !isNaN(high)) {
- inival = low;
- endval = high;
- } else if (isNaN(low) && isNaN(high)) {
- chars = true;
- inival = low.charCodeAt(0);
- endval = high.charCodeAt(0);
- } else {
- inival = (isNaN(low) ? 0 : low);
- endval = (isNaN(high) ? 0 : high);
- }
-
- plus = ((inival > endval) ? false : true);
- if (plus) {
- while (inival <= endval) {
- matrix.push(((chars) ? String.fromCharCode(inival) : inival));
- inival += walker;
- }
- } else {
- while (inival >= endval) {
- matrix.push(((chars) ? String.fromCharCode(inival) : inival));
- inival -= walker;
- }
- }
-
- return matrix;
-}
-
-
-
-/*
- *
- * This software is licensed under the MIT licence (as defined by the OSI at
- * http://www.opensource.org/licenses/mit-license.php)
- *
- * ***************************************************************************
- * Copyright (C) 2011 by Intel Corporation Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- */
-
-// Ensure that the given namespace is defined. If not, define it to be an empty object.
-// This is kinda like the mkdir -p command.
-
-function ensureNS(ns) {
- var nsAr = ns.split("."),
- nsSoFar = "";
-
- for (var Nix in nsAr) {
- nsSoFar = nsSoFar + (Nix > 0 ? "." : "") + nsAr[Nix];
- eval (nsSoFar + " = " + nsSoFar + " || {};");
- }
-}
-
-
-
-/* ***************************************************************************
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- *
- * Authors: Hyunsook Park <hyunsook.park@samsung.com>
- * Wonseop Kim <wonseop.kim@samsung.com>
-*/
-
-( function ( $, window, document, undefined ) {
- var _canvas = document.createElement( 'canvas' ),
- _context = _canvas.getContext( '2d' );
-
- function fileSystemErrorMessage( e ) {
- var FileError = window.FileError,
- msg = '';
- switch ( e.code ) {
- case FileError.QUOTA_EXCEEDED_ERR:
- msg = 'QUOTA_EXCEEDED_ERR';
- break;
- case FileError.NOT_FOUND_ERR:
- msg = 'NOT_FOUND_ERR';
- break;
- case FileError.SECURITY_ERR:
- msg = 'SECURITY_ERR';
- break;
- case FileError.INVALID_MODIFICATION_ERR:
- msg = 'INVALID_MODIFICATION_ERR';
- break;
- case FileError.INVALID_STATE_ERR:
- msg = 'INVALID_STATE_ERR';
- break;
- default:
- msg = 'Unknown Error';
- break;
- }
- return msg;
- }
-
- function getInternalURLFromURL( url ) {
- var internalURL = url.replace( /\//gi, "_" );
- return internalURL;
- }
-
- function resize( imagewidth, imageheight, thumbwidth, thumbheight, fit ) {
- var w = 0, h = 0, x = 0, y = 0,
- widthratio = imagewidth / thumbwidth,
- heightratio = imageheight / thumbheight,
- maxratio = Math.max( widthratio, heightratio );
-
- if ( fit ) {
- w = thumbwidth;
- h = thumbheight;
- } else {
- if ( maxratio > 1 ) {
- w = imagewidth / maxratio;
- h = imageheight / maxratio;
- } else {
- w = imagewidth;
- h = imageheight;
- }
- x = ( thumbwidth - w ) / 2;
- y = ( thumbheight - h ) / 2;
- }
-
- return { w: w, h: h, x: x, y: y };
- }
-
- function getThumbnail( img, thumbwidth, thumbheight, fit ) {
- var dimensions, url;
- _canvas.width = thumbwidth;
- _canvas.height = thumbheight;
- dimensions = resize( img.width, img.height, thumbwidth, thumbheight, fit );
- _context.fillStyle = "#000000";
- _context.fillRect ( 0, 0, thumbwidth, thumbheight );
- _context.drawImage( img, dimensions.x, dimensions.y, dimensions.w, dimensions.h );
- url = _canvas.toDataURL();
- return url;
- }
-
- $.imageloader = {
- _grantedBytes: 1024 * 1024,
- getThumbnail: function ( url, _callback ) {
- var internalURL, canvasDataURI;
- function errorHandler( e ) {
- var msg = fileSystemErrorMessage( e );
- if ( _callback ) {
- _callback( ( msg === "NOT_FOUND_ERR" ) ? msg : null );
- }
- }
-
- internalURL = getInternalURLFromURL( url );
- try {
- canvasDataURI = localStorage.getItem( internalURL );
- if ( _callback ) {
- _callback( ( canvasDataURI === null ) ? "NOT_FOUND_ERR" : canvasDataURI );
- }
- } catch ( e ) {
- if ( _callback ) {
- _callback( ( e.type === "non_object_property_load" ) ? "NOT_FOUND_ERR" : null );
- }
- }
- },
-
- setThumbnail: function ( url, _callback, thumbWidth, thumbHeight, fit ) {
- var image, internalURL, canvasDataURI;
- function errorHandler( e ) {
- var msg = fileSystemErrorMessage( e );
- if ( _callback ) {
- _callback( ( msg === "NOT_FOUND_ERR" ) ? msg : null );
- }
- }
-
- thumbWidth = thumbWidth || 128;
- thumbHeight = thumbHeight || 128;
- fit = fit || true;
- image = new Image();
- image.onload = function () {
- internalURL = getInternalURLFromURL( url );
- canvasDataURI = getThumbnail( this, thumbWidth, thumbHeight, fit );
- try {
- localStorage.setItem( internalURL, canvasDataURI );
- if ( _callback ) {
- _callback( canvasDataURI );
- }
- } catch ( e ) {
- if ( _callback ) {
- _callback( ( e.type === "non_object_property_load" ) ? "NOT_FOUND_ERR" : null );
- }
- }
- };
- image.src = url;
- },
-
- removeThumbnail: function ( url ) {
- var internalURL;
- function errorHandler( e ) {
- fileSystemErrorMessage( e );
- }
-
- internalURL = getInternalURLFromURL( url );
- try {
- localStorage.removeItem( internalURL );
- } catch ( e ) {
- throw e;
- }
- }
- };
-
-} ( jQuery, window, document ) );
-
-
-
-/* ***************************************************************************
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- *
- * Authors: Hyunsook Park <hyunsook.park@samsung.com>
- * Wonseop Kim <wonseop.kim@samsung.com>
-*/
-
-( function ( $, undefined ) {
- $.webgl = {};
-
- $.webgl.shader = {
- _vertexShader: null,
- _fragmentShader: null,
-
- deleteShaders: function ( gl ) {
- gl.deleteShader( this._vertexShader );
- gl.deleteShader( this._fragmentShader );
- },
-
- addShaderProgram : function ( gl, vs, fs, isFile ) {
- var shaderProgram,
- vertexShaderSource = {},
- fragmentShaderSource = {};
-
- if ( isFile ) {
- vertexShaderSource = this.loadShaderFile( vs );
- fragmentShaderSource = this.loadShaderFile( fs );
- } else {
- vertexShaderSource.source = vs;
- fragmentShaderSource.source = fs;
- }
-
- this._vertexShader = this.getShader( gl, gl.VERTEX_SHADER, vertexShaderSource );
- this._fragmentShader = this.getShader( gl, gl.FRAGMENT_SHADER, fragmentShaderSource );
-
- shaderProgram = gl.createProgram();
- gl.attachShader( shaderProgram, this._vertexShader);
- gl.attachShader( shaderProgram, this._fragmentShader);
- gl.linkProgram( shaderProgram );
-
- if ( !gl.getProgramParameter( shaderProgram, gl.LINK_STATUS ) ) {
- window.alert( "Could not initialize Shaders!" );
- }
- return shaderProgram;
- },
-
- loadShaderFile : function ( path ) {
- var cache = null;
- $.ajax({
- async : false,
- url : path,
- success : function ( result ) {
- cache = {
- source: result
- };
- }
- });
- return cache;
- },
-
- getShader: function ( gl, type, script ) {
- var shader;
-
- if ( !gl || !type || !script ) {
- return null;
- }
-
- shader = gl.createShader( type );
-
- gl.shaderSource( shader, script.source );
- gl.compileShader( shader );
-
- if ( !gl.getShaderParameter( shader, gl.COMPILE_STATUS ) ) {
- window.alert( gl.getShaderInfoLog( shader ) );
- gl.deleteShader( shader );
- return null;
- }
- return shader;
- }
- };
-
- $.webgl.buffer = {
- attribBufferData: function ( gl, attribArray ) {
- var attribBuffer = gl.createBuffer();
-
- gl.bindBuffer( gl.ARRAY_BUFFER, attribBuffer );
- gl.bufferData( gl.ARRAY_BUFFER, attribArray, gl.STATIC_DRAW );
- gl.bindBuffer( gl.ARRAY_BUFFER, null );
-
- return attribBuffer;
- }
- };
-
-} ( jQuery ) );
-
-
-
-/* ***************************************************************************
-* style : normal, check
-* option :
-* - folded : decide to show divider press effect or not
-* - line : decide to draw divider line or not
-*/
-/**
- @class ListDivider
- The list divider widget is used as a list separator for grouping lists. List dividers can be used in Tizen as described in the jQueryMobile documentation for list dividers.<br/>
- To add a list divider widget to the application, use the following code:
-
- <li data-role="list-divider" data-style="check">
- <form><input type="checkbox" name="c2line-check1" /></form></li>
-
- The list divider can define callbacks for events as described in the jQueryMobile documentation for list events. <br/> You can use methods with the list divider as described in the jQueryMobile documentation for list methods.
-
- @since tizen2.0
-*/
-/**
- @property {String} data-style
- Sets the style of the list divider. The style options are dialogue, check, expandable, and checkexpandable.
-*/
-
-(function ( $, undefined ) {
- $.widget( "tizen.listdivider", $.mobile.widget, {
- options: {
- initSelector: ":jqmData(role='list-divider')",
- folded : false,
- listDividerLine : true,
- },
-
- _create: function () {
-
- var $listdivider = this.element,
- openStatus = true,
- expandSrc,
- listDividerLine = true,
- style = $listdivider.attr( "data-style" );
-
- if ( $listdivider.data("line") === false ) {
- this.options.listDividerLine = false;
- }
-
- if ( $listdivider.data("folded") === true ) {
- this.options.folded = true;
- }
-
- if ( style == undefined || style === "normal" || style === "check" ) {
- if ( this.options.folded ) {
- $listdivider.buttonMarkup();
- } else {
- $listdivider.wrapInner("<span class='ui-btn-text'></span>");
- }
-
- if ( this.options.listDividerLine ) {
- expandSrc = "<span class='ui-divider-normal-line'></span>";
- if ( this.options.folded ) {
- $( expandSrc ).appendTo( $listdivider.children( ".ui-btn-inner" ) );
- } else {
- $( expandSrc ).appendTo( $listdivider);
- }
- }
- }
-
- $listdivider.bind( "vclick", function ( event, ui ) {
- /* need to implement expand/collapse divider */
- });
- },
- });
-
- //auto self-init widgets
- $( document ).bind( "pagecreate create", function ( e ) {
- $( $.tizen.listdivider.prototype.options.initSelector, e.target ).listdivider();
- });
-}( jQuery ) );
-
-
-
-/* ***************************************************************************
- * Copyright (c) 2000 - 2013 Samsung Electronics Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- *
- * Author: Minkyu Kang <mk7.kang@samsung.com>
- */
-
-/*
- * Pinch Event
- *
- * Events
- * pinchstart: triggered when start the touched two points
- * pinch: triggered when move the touch point after pinchstart event occured
- * pinchend: triggered when touchend event after pinchstart event occured
- *
- * Parameters
- * point: touched points
- * ratio: origin point-to-current point ratio for moving distance
- *
- * $("#pinch").bind("pinch", function (e, p) {
- * console.log("point[0].x: " + p.point[0].x);
- * console.log("point[0].y: " + p.point[0].y);
- * console.log("point[1].x: " + p.point[1].x);
- * console.log("point[1].y: " + p.point[1].y);
- * console.log("ratio: " + p.ratio);
- * });
- *
- * Options
- * $.mobile.pinch.enabled: true or false
- * $.mobile.pinch.min: minimum value of ratio
- * $.mobile.pinch.max: maximum value of ratio
- * $.mobile.pinch.factor: scale factor of ratio
- * $.mobile.pinch.threshold: move threshold of ratio
- * $.mobile.pinch.interval: interval for pinch event
- */
-
-( function( $, window, undefined ) {
-
-pinch_event = {
- setup: function () {
- var thisObject = this,
- $this = $( thisObject );
-
- if ( !$.mobile.support.touch ) {
- return;
- }
-
- function getDistance( point ) {
- var x = point[0].x - point[1].x,
- y = point[0].y - point[0].y;
-
- return Math.sqrt( ( x * x ) + ( y * y ) );
- }
-
- function getParameter( point, ratio ) {
- return { point: point, ratio: ratio };
- }
-
- $this.bind( "touchstart", function ( event ) {
- var data = event.originalEvent.touches,
- origin,
- last_ratio = 1,
- processing = false;
-
- if ( !$.mobile.pinch.enabled ) {
- return;
- }
-
- if ( data.length != 2 ) {
- return;
- }
-
- origin = [
- { x: data[0].pageX, y: data[0].pageY },
- { x: data[1].pageX, y: data[1].pageY }
- ];
-
- $( event.target ).trigger( "pinchstart", getParameter( origin, undefined ) );
-
- function pinchHandler( event ) {
- var data = event.originalEvent.touches,
- current,
- ratio,
- delta,
- factor = $( window ).width() / $.mobile.pinch.factor;
-
- if ( processing ) {
- return;
- }
-
- if ( !origin ) {
- return;
- }
-
- current = [
- { x: data[0].pageX, y: data[0].pageY },
- { x: data[1].pageX, y: data[1].pageY }
- ];
-
- delta = getDistance( current ) - getDistance( origin );
-
- ratio = 1 + delta / factor;
-
- if ( ratio < $.mobile.pinch.min ) {
- ratio = $.mobile.pinch.min;
- } else if ( ratio > $.mobile.pinch.max ) {
- ratio = $.mobile.pinch.max;
- }
-
- if ( Math.abs( ratio - last_ratio ) < $.mobile.pinch.threshold ) {
- return;
- }
-
- $( event.target ).trigger( "pinch", getParameter( current, ratio ) );
-
- last_ratio = ratio;
-
- if ( $.mobile.pinch.interval ) {
- processing = true;
-
- setTimeout( function () {
- processing = false;
- }, $.mobile.pinch.interval );
- }
- }
-
- $this.bind( "touchmove", pinchHandler )
- .one( "touchend", function ( event ) {
- $this.unbind( "touchmove", pinchHandler );
- $( event.target ).trigger( "pinchend",
- getParameter( undefined, last_ratio ) );
-
- origin = undefined;
- current = undefined;
- last_ratio = 1;
- processing = false;
- });
- });
- }
-};
-
-$.event.special["pinch"] = pinch_event;
-
-$.mobile.pinch = {
- enabled: true,
- min: 0.1,
- max: 3,
- factor: 4,
- threshold: 0.01,
- interval: 50
-};
-
-})( jQuery, this );
-
-
-
-/*
- * set TIZEN specific configures
- */
-
-( function( $, window, undefined ) {
-
- /* set default transition */
- $.mobile.defaultPageTransition = "none";
-
- /* depth transition */
- $.mobile.transitionHandlers.depth = $.mobile.transitionHandlers.simultaneous;
- $.mobile.transitionFallbacks.depth = "fade";
-
- /* Button data-corners default value */
- $.fn.buttonMarkup.defaults.corners = false;
-
- /* button hover delay */
- $.mobile.buttonMarkup.hoverDelay = 0;
-
-})( jQuery, this );
-
-
-
-
-/* ***************************************************************************
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- *
- * Authors: Hyunsook Park <hyunsook.park@samsung.com>
- * Wonseop Kim <wonseop.kim@samsung.com>
-*/
-
-( function ( $, window, undefined ) {
- var HALF_PI = Math.PI / 2,
- DEFAULT_STEP = 0.001,
- MotionPath = {},
- vec3 = window.vec3,
- arcLength3d = function ( p0, p1 ) {
- var d = [ p1[0] - p0[0], p1[1] - p0[1], p1[2] - p0[2] ],
- value = Math.sqrt( d[0] * d[0] + d[1] * d[1] + d[2] * d[2] );
- return value;
- };
-
- MotionPath.base = function () {};
- MotionPath.base.prototype = {
- points: [],
- step: DEFAULT_STEP,
- length: 0,
- levels: [],
- init: function ( data ) {},
- calculateLevel: function ( maxLevel ) {},
- calculateTotalLength: function () {},
- getPosition: function ( percent ) {},
- getPercent: function ( start, interval ) {},
- getAngle: function ( percent ) {}
- };
-
- MotionPath.bezier2d = function () {};
- MotionPath.bezier2d.prototype = $.extend( true, {}, MotionPath.base.prototype, {
- init: function ( data ) {
- this.points = data.points;
- this.step = data.step || DEFAULT_STEP;
- this.length = this.calculateTotalLength();
- this.levels = this.calculateLevel( data.maxLevel ) || [];
- },
-
- calculateLevel: function ( maxLevel ) {
- var totalLength = this.length,
- interval = totalLength / maxLevel,
- levels = [],
- i;
-
- if ( !maxLevel ) {
- return null;
- }
-
- for ( i = 0; i < maxLevel; i += 1 ) {
- levels[maxLevel - i] = this.getPercent( 0, interval * i );
- }
-
- return levels;
- },
-
- calculateTotalLength: function () {
- var step = this.step,
- current = this.getPosition( 0 ),
- last = current,
- length = 0,
- percent;
- for ( percent = step; percent <= 1; percent += step ) {
- current = this.getPosition( percent );
- length += arcLength3d( last, current );
- last = current;
- }
- return length;
- },
-
- getPosition: function ( percent ) {
- var points = this.points,
- getValue = function ( p1, c1, c2, p2, t ) {
- return Math.pow(1 - t, 3) * p1 +
- 3 * t * Math.pow( 1 - t, 2 ) * c1 +
- 3 * Math.pow( t, 2 ) * ( 1 - t ) * c2 +
- Math.pow( t, 3 ) * p2;
- },
- result = [
- getValue( points[0][0], points[1][0], points[2][0], points[3][0], percent ),
- getValue( points[0][2], points[1][2], points[2][2], points[3][2], percent )
- ];
- return [ result[0], 0, result[1] ];
- },
-
- getPercent: function ( start, interval ) {
- var step = this.step,
- current = this.getPosition( start = start || 0 ),
- last = current,
- targetLength = start + interval,
- length = 0,
- percent;
-
- for ( percent = start + step; percent <= 1; percent += step ) {
- current = this.getPosition( percent );
- length += arcLength3d( last, current );
- if ( length >= targetLength ) {
- return percent;
- }
- last = current;
- }
- return 1;
- },
-
- getAngle: function ( percent ) {
- var points = this.points,
- getTangent = function ( p1, c1, c2, p2, t ) {
- return 3 * t * t * ( -p1 + 3 * c1 - 3 * c2 + p2 ) + 6 * t * ( p1 - 2 * c1 + c2 ) + 3 * ( -p1 + c1 );
- },
- tx = getTangent( points[0][0], points[1][0], points[2][0], points[3][0], percent ),
- ty = getTangent( points[0][2], points[1][2], points[2][2], points[3][2], percent );
- return Math.atan2( tx, ty ) - HALF_PI;
- }
-
- } );
-
- // clamped cubic B-spline curve
- // http://web.mit.edu/hyperbook/Patrikalakis-Maekawa-Cho/node17.html
- // http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/B-spline/bspline-curve-coef.html
- MotionPath.bspline = function () {};
- MotionPath.bspline.prototype = $.extend( true, {}, MotionPath.base.prototype, {
- _degree: 3,
- _numberOfControls : 0,
- _knotVectors: [],
- _numberOfKnots: 0,
-
- init: function ( data ) {
- this.points = data.points;
- this.step = data.step || DEFAULT_STEP;
- this._numberOfPoints = this.points.length - 1;
- this._numberOfKnots = this._numberOfPoints + this._degree + 1;
-
- var deltaKnot = 1 / ( this._numberOfKnots - ( 2 * this._degree ) ),
- v = deltaKnot,
- i = 0;
-
- while ( i <= this._numberOfKnots ) {
- if ( i <= this._degree ) {
- this._knotVectors.push( 0 );
- } else if ( i < this._numberOfKnots - this._degree + 1 ) {
- this._knotVectors.push( v );
- v += deltaKnot;
- } else {
- this._knotVectors.push( 1 );
- }
- i += 1;
- }
-
- this.length = this.calculateTotalLength();
- this.levels = this.calculateLevel( data.maxLevel ) || [];
- },
-
- _Np: function ( percent, i, degree ) {
- var knots = this._knotVectors,
- A = 0,
- B = 0,
- denominator = 0,
- N0 = function ( percent, i ) {
- return ( ( knots[i] <= percent && percent < knots[i + 1] ) ? 1 : 0 );
- };
-
- if ( degree === 1 ) {
- A = N0( percent, i );
- B = N0( percent, i + 1 );
- } else {
- A = this._Np( percent, i, degree - 1 );
- B = this._Np( percent, i + 1, degree - 1 );
- }
-
- denominator = knots[i + degree] - knots[i];
- A *= ( denominator !== 0 ) ? ( ( percent - knots[i] ) / denominator ) : 0;
- denominator = knots[i + degree + 1] - knots[i + 1];
- B *= ( denominator !== 0 ) ? ( ( knots[i + degree + 1] - percent ) / denominator ) : 0;
-
- return A + B;
- },
-
- calculateLevel: function ( maxLevel ) {
- var totalLength = this.length,
- interval = totalLength / maxLevel,
- levels = [],
- i;
-
- if ( !maxLevel ) {
- return null;
- }
-
- for ( i = 0; i < maxLevel; i += 1 ) {
- levels[maxLevel - i] = this.getPercent( 0, interval * i );
- }
- return levels;
- },
-
- calculateTotalLength: function () {
- var step = this.step,
- current = this.getPosition( 0 ),
- last = current,
- length = 0,
- percent;
- for ( percent = step; percent <= 1; percent += step ) {
- current = this.getPosition( percent );
- length += arcLength3d( last, current );
- last = current;
- }
- return length;
- },
-
- getPosition: function ( percent ) {
- var result = [], i, j, sum;
- percent = percent.toFixed( 4 );
- for ( j = 0; j < 3; j += 1 ) {
- sum = 0;
- for ( i = 0; i <= this._numberOfPoints; i += 1 ) {
- sum += this.points[i][j] * this._Np( percent, i, this._degree );
- }
- result[j] = sum;
- }
-
- return result;
- },
-
- getPercent: function ( start, interval ) {
- var step = this.step,
- current = this.getPosition( start = start || 0 ),
- last = current,
- targetLength = start + interval,
- length = 0,
- percent;
-
- for ( percent = start + step; percent <= 1; percent += step ) {
- current = this.getPosition( percent );
- length += arcLength3d( last, current );
- if ( length >= targetLength ) {
- return percent;
- }
- last = current;
- }
- return 1;
- },
-
- getAngle: function ( percent ) {
- var prev = this.getPosition( percent ),
- next = this.getPosition( percent + 0.001 ),
- dir = vec3.normalize( vec3.direction( prev, next ) ),
- cosValue = vec3.dot( dir, [1, 0, 0] );
-
- return Math.acos( cosValue ) + Math.PI;
- }
- } );
-
- $.motionpath = function ( type, data ) {
- var object = new MotionPath[type]();
- object.init( data );
- return object;
- };
-} ( jQuery, window ) );
-
-
-
-/* ***************************************************************************
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- *
- * Authors: Yonghwi Park <yonghwi0324.park@samsung.com>
- * Wonseop Kim <wonseop.kim@samsung.com>
-*/
-
-/**
- *
- * MultiMediaView is a widget that lets the user view and handle multimedia contents.
- * Video and audio elements are coded as standard HTML elements and enhanced by the
- * MultiMediaview to make them attractive and usable on a mobile device.
- *
- * HTML Attributes:
- * data-theme : Set a theme of widget.
- * If this value is not defined, widget will use parent`s theme. (optional)
- * data-controls : If this value is 'true', widget will use belonging controller.
- * If this value is 'false', widget will use browser`s controller.
- * Default value is 'true'.
- * data-full-screen : Set a status that full-screen when inital start.
- * Default value is 'false'.
- *
- * APIs:
- * width( [number] )
- * : Get or set the width of widget.
- * The first argument is the width of widget.
- * If no first argument is specified, will act as a getter.
- * height( [number] )
- * : Get or set the height of widget.
- * The first argument is the height of widget.
- * If no first argument is specified, will act as a getter.
- * fullScreen( [boolean] )
- * : Get or Set the status of full-screen.
- * If no first argument is specified, will act as a getter.
- *
- * Events:
- *
- * N/A
- *
- * Examples:
- *
- * VIDEO :
- * <video data-controls="true" style="width:100%;">
- * <source src="media/oceans-clip.mp4" type="video/mp4" />
- * Your browser does not support the video tag.
- * </video>
- *
- * AUDIO :
- * <audio data-controls="true" style="width:100%;">
- * <source src="media/Over the horizon.mp3" type="audio/mp3" />
- * Your browser does not support the audio tag.
- * </audio>
- *
- */
-/**
- @class MutimediaView
- The multimedia view widget shows a player control that you can use to view and handle multimedia content. This widget uses the standard HTML video and audio elements, which have been enhanced for use on a mobile device.
-
- To add a multimedia view widget to the application, use the following code:
-
- // Video player control
- <video data-controls="true" style="width:100%;">
- <source src="<VIDEO_FILE_URL>" type="video/mp4" /> Your browser does not support the video tag. </video>
- // Audio player control
- <audio data-controls="true" style="width:100%;"> <source src="<AUDIO_FILE_URL>" type="audio/mp3" /> Your browser does not support the audio tag.
- </audio>
-*/
-/**
- @property {Boolean} data-control
- Sets the controls for the widget.
- The default value is true. If the value is set to true, the widget uses its own player controls. If the value is set to false, the widget uses the browser's player controls.
-*/
-/**
- @property {Boolean} data-full-screen
- Defines whether the widget opens in the fullscreen view mode.
- The default value is false.
-*/
-/**
- @property {String} data-theme
- Sets the widget theme.
- If the value is not set, the parent control's theme is used
-*/
-/**
- @method width
- The width method is used to get (if no value is defined) or set the multimedia view widget width:
- <video>
- <source src="test.mp4" type="video/mp4" />
- </video>
- $(".selector").multimediaview("width", [value]);
-*/
-/**
- @method height
- The height method is used to get (if no value is defined) or set the multimedia view widget height:
- <video>
- <source src="test.mp4" type="video/mp4" />
- </video>
- $(".selector").multimediaview("height", [value]);
-*/
-/**
- @method fullScreen
- The fullScreen method is used to get (if no value is defined) or set the full-screen mode of the multimedia view widget. If the value is true, the full-screen mode is used; otherwise the multimedia view widget runs in the normal mode.
-
- <video>
- <source src="test.mp4" type="video/mp4" />
- </video>
- $(".selector").multimediaview("fullScreen", [value]);
-*/
-( function ( $, document, window, undefined ) {
- $.widget( "tizen.multimediaview", $.mobile.widget, {
- options: {
- theme: null,
- controls: true,
- fullScreen: false,
- initSelector: "video, audio"
- },
-
- _create: function () {
- var self = this,
- view = self.element,
- viewElement = view[0],
- isVideo = ( viewElement.nodeName === "VIDEO" ),
- option = self.options,
- parentTheme = $.mobile.getInheritedTheme( view, "s" ),
- theme = option.theme || parentTheme,
- width = viewElement.style.getPropertyValue( "width" ) || "",
- wrap = $( "<div class='ui-multimediaview-wrap ui-multimediaview-" + theme + "'>" ),
- control = null;
-
- $.extend( this, {
- role: null,
- controlTimer: null,
- isVolumeHide: true,
- backupView: null,
- _reserveVolume: -1,
- _isVideo: isVideo
- });
-
- view.addClass( "ui-multimediaview" );
- control = self._createControl();
- control.hide();
-
- control.find( ".ui-button" ).each( function ( index ) {
- $( this ).buttonMarkup( { corners: true, theme: theme, shadow: true } );
- });
-
- view.wrap( wrap ).after( control );
-
- if ( isVideo ) {
- control.addClass( "ui-multimediaview-video" );
- } else {
- self.width( width );
- self.options.fullScreen = false;
- }
-
- if ( option.controls && view.attr( "controls" ) ) {
- view.removeAttr( "controls" );
- }
-
- self._addEvent();
- },
-
- _resize: function () {
- this._resizeFullscreen( this.options.fullScreen );
- this._resizeControl();
- this._updateSeekBar();
- this._updateVolumeState();
- },
-
- _resizeControl: function () {
- var self = this,
- view = self.element,
- viewElement = view[0],
- isVideo = self._isVideo,
- wrap = view.parent( ".ui-multimediaview-wrap" ),
- control = wrap.find( ".ui-multimediaview-control" ),
- buttons = control.find( ".ui-button" ),
- playpauseButton = control.find( ".ui-playpausebutton" ),
- seekBar = control.find( ".ui-seekbar" ),
- durationLabel = control.find( ".ui-durationlabel" ),
- timestampLabel = control.find( ".ui-timestamplabel" ),
- volumeControl = control.find( ".ui-volumecontrol" ),
- volumeBar = volumeControl.find( ".ui-volumebar" ),
- width = ( isVideo ? view.width() : wrap.width() ),
- height = ( isVideo ? view.height() : control.height() ),
- offset = view.offset(),
- controlHeight = control.height(),
- availableWidth = 0,
- controlOffset = null;
-
- if ( control ) {
- if ( isVideo ) {
- controlOffset = control.offset();
- controlOffset.left = offset.left;
- controlOffset.top = offset.top + height - controlHeight;
- control.offset( controlOffset );
- }
- control.width( width );
- }
-
- if ( seekBar ) {
- availableWidth = control.width() - ( buttons.outerWidth( true ) * buttons.length );
- availableWidth -= ( parseInt( buttons.eq( 0 ).css( "margin-left" ), 10 ) + parseInt( buttons.eq( 0 ).css( "margin-right" ), 10 ) ) * buttons.length;
- if ( !self.isVolumeHide ) {
- availableWidth -= volumeControl.outerWidth( true );
- }
- seekBar.width( availableWidth );
- }
-
- if ( durationLabel && !isNaN( viewElement.duration ) ) {
- durationLabel.find( "p" ).text( self._convertTimeFormat( viewElement.duration ) );
- }
-
- if ( viewElement.autoplay && viewElement.paused === false ) {
- playpauseButton.removeClass( "ui-play-icon" ).addClass( "ui-pause-icon" );
- }
-
- if ( seekBar.width() < ( volumeBar.width() + timestampLabel.width() + durationLabel.width() ) ) {
- durationLabel.hide();
- } else {
- durationLabel.show();
- }
- },
-
- _resizeFullscreen: function ( isFullscreen ) {
- if ( !this._isVideo ) {
- return;
- }
-
- var self = this,
- view = self.element,
- viewElement = view[0],
- wrap = view.parent( ".ui-multimediaview-wrap" ),
- control = wrap.find( ".ui-multimediaview-control" ),
- fullscreenButton = control.find( ".ui-fullscreenbutton" ),
- currentPage = $( ".ui-page-active" ),
- playpauseButton = control.find( ".ui-playpausebutton" ),
- timestampLabel = control.find( ".ui-timestamplabel" ),
- seekBar = control.find( ".ui-seekbar" ),
- durationBar = seekBar.find( ".ui-duration" ),
- currenttimeBar = seekBar.find( ".ui-currenttime" ),
- body = $( "body" )[0],
- header = currentPage.children( ".ui-header" ),
- footer = currentPage.children( ".ui-footer" ),
- docWidth = 0,
- docHeight = 0;
-
- if ( isFullscreen ) {
- if ( !self.backupView ) {
- self.backupView = {
- width: viewElement.style.getPropertyValue( "width" ) || "",
- height: viewElement.style.getPropertyValue( "height" ) || "",
- position: view.css( "position" ),
- zindex: view.css( "z-index" ),
- wrapHeight: wrap[0].style.getPropertyValue( "height" ) || ""
- };
- }
- docWidth = body.clientWidth;
- docHeight = body.clientHeight - 1;
-
- header.hide();
- footer.hide();
- view.parents().each( function ( e ) {
- var element = $( this );
- element.addClass( "ui-fullscreen-parents" )
- .siblings()
- .addClass( "ui-multimediaview-siblings-off" );
- });
- fullscreenButton.removeClass( "ui-fullscreen-on" ).addClass( "ui-fullscreen-off" );
-
- wrap.height( docHeight );
- view.width( docWidth ).height( docHeight );
- } else {
- if ( !self.backupView ) {
- return;
- }
-
- header.show();
- footer.show();
- view.parents().each( function ( e ) {
- var element = $( this );
- element.removeClass( "ui-fullscreen-parents" )
- .siblings()
- .removeClass( "ui-multimediaview-siblings-off" );
- });
-
- fullscreenButton.removeClass( "ui-fullscreen-off" ).addClass( "ui-fullscreen-on" );
-
- wrap.css( "height", self.backupView.wrapHeight );
- view.css( {
- "width": self.backupView.width,
- "height": self.backupView.height,
- "position": self.backupView.position,
- "z-index": self.backupView.zindex
- });
- self.backupView = null;
-
- $( window ).trigger( "throttledresize" );
- }
- },
-
- _addEvent: function () {
- var self = this,
- view = self.element,
- option = self.options,
- viewElement = view[0],
- isVideo = self._isVideo,
- control = view.parent( ".ui-multimediaview-wrap" ).find( ".ui-multimediaview-control" ),
- playpauseButton = control.find( ".ui-playpausebutton" ),
- timestampLabel = control.find( ".ui-timestamplabel" ),
- durationLabel = control.find( ".ui-durationlabel" ),
- volumeButton = control.find( ".ui-volumebutton" ),
- volumeControl = control.find( ".ui-volumecontrol" ),
- volumeBar = volumeControl.find( ".ui-volumebar" ),
- volumeGuide = volumeControl.find( ".ui-guide" ),
- volumeHandle = volumeControl.find( ".ui-handle" ),
- fullscreenButton = control.find( ".ui-fullscreenbutton" ),
- seekBar = control.find( ".ui-seekbar" ),
- durationBar = seekBar.find( ".ui-duration" ),
- currenttimeBar = seekBar.find( ".ui-currenttime" ),
- $document = $( document );
-
- view.bind( "loadedmetadata.multimediaview", function ( e ) {
- if ( !isNaN( viewElement.duration ) ) {
- durationLabel.find( "p" ).text( self._convertTimeFormat( viewElement.duration ) );
- }
- self._resize();
- }).bind( "timeupdate.multimediaview", function ( e ) {
- self._updateSeekBar();
- }).bind( "play.multimediaview", function ( e ) {
- playpauseButton.removeClass( "ui-play-icon" ).addClass( "ui-pause-icon" );
- }).bind( "pause.multimediaview", function ( e ) {
- playpauseButton.removeClass( "ui-pause-icon" ).addClass( "ui-play-icon" );
- }).bind( "ended.multimediaview", function ( e ) {
- if ( typeof viewElement.loop == "undefined" || viewElement.loop === "" ) {
- self.stop();
- }
- }).bind( "volumechange.multimediaview", function ( e ) {
- if ( viewElement.muted && viewElement.volume > 0.1 ) {
- volumeButton.removeClass( "ui-volume-icon" ).addClass( "ui-mute-icon" );
- self._reserveVolume = viewElement.volume;
- viewElement.volume = 0;
- } else if ( self._reserveVolume !== -1 && !viewElement.muted ) {
- volumeButton.removeClass( "ui-mute-icon" ).addClass( "ui-volume-icon" );
- viewElement.volume = self._reserveVolume;
- self._reserveVolume = -1;
- } else if ( viewElement.volume < 0.1 ) {
- volumeButton.removeClass( "ui-volume-icon" ).addClass( "ui-mute-icon" );
- } else {
- volumeButton.removeClass( "ui-mute-icon" ).addClass( "ui-volume-icon" );
- }
-
- if ( !self.isVolumeHide ) {
- self._updateVolumeState();
- }
- }).bind( "durationchange.multimediaview", function ( e ) {
- if ( !isNaN( viewElement.duration ) ) {
- durationLabel.find( "p" ).text( self._convertTimeFormat( viewElement.duration ) );
- }
- self._resize();
- }).bind( "click.multimediaview", function ( e ) {
- if ( !self.options.controls ) {
- return;
- }
-
- control.fadeToggle( "fast" );
- self._resize();
- }).bind( "multimediaviewinit", function ( e ) {
- if ( option.controls ) {
- control.show();
- }
- self._resize();
- });
-
- playpauseButton.bind( "click.multimediaview", function () {
- self._endTimer();
-
- if ( viewElement.paused ) {
- viewElement.play();
- } else {
- viewElement.pause();
- }
-
- if ( isVideo ) {
- self._startTimer();
- }
- });
-
- fullscreenButton.bind( "click.multimediaview", function ( e ) {
- e.preventDefault();
- self.fullScreen( !self.options.fullScreen );
- self._resize();
- self._endTimer();
- e.stopPropagation();
- });
-
- seekBar.bind( "vmousedown.multimediaview", function ( e ) {
- var x = e.clientX,
- duration = viewElement.duration,
- durationOffset = durationBar.offset(),
- durationWidth = durationBar.width(),
- timerate = ( x - durationOffset.left ) / durationWidth,
- time = duration * timerate;
-
- if ( !viewElement.played.length ) {
- return;
- }
-
- viewElement.currentTime = time;
-
- self._endTimer();
-
- e.preventDefault();
-
- $document.bind( "vmousemove.multimediaview", function ( e ) {
- var x = e.clientX,
- timerate = ( x - durationOffset.left ) / durationWidth;
-
- viewElement.currentTime = duration * timerate;
-
- e.preventDefault();
- }).bind( "vmouseup.multimediaview", function () {
- $document.unbind( "vmousemove.multimediaview vmouseup.multimediaview" );
- if ( viewElement.paused ) {
- viewElement.pause();
- } else {
- viewElement.play();
- }
- });
- });
-
- volumeButton.bind( "click.multimediaview", function () {
- if ( self.isVolumeHide ) {
- var view = self.element,
- volume = viewElement.volume;
-
- self.isVolumeHide = false;
- volumeControl.fadeIn( "fast", function () {
- self._updateVolumeState();
- self._updateSeekBar();
- });
- self._resize();
- } else {
- self.isVolumeHide = true;
- volumeControl.fadeOut( "fast", function () {
- self._resize();
- });
- }
- });
-
- volumeBar.bind( "vmousedown.multimediaview", function ( e ) {
- var baseX = e.clientX,
- volumeGuideLeft = volumeGuide.offset().left,
- volumeGuideWidth = volumeGuide.width(),
- volumeBase = volumeGuideLeft + volumeGuideWidth,
- handlerOffset = volumeHandle.offset(),
- volumerate = ( baseX - volumeGuideLeft ) / volumeGuideWidth,
- currentVolume = ( baseX - volumeGuideLeft ) / volumeGuideWidth;
-
- self._endTimer();
- self._setVolume( currentVolume.toFixed( 2 ) );
-
- e.preventDefault();
+ <script id="tmp-3-1-1" type="text/x-jquery-tmpl">
+ <li class="ui-li-3-1-1"><span class="ui-li-text-main">${NAME}</span></li>
+ </script>
+ <script id="tmp_load_more" type="text/x-jquery-tmpl">
+ <li class="ui-li-3-1-1" style="text-align:center; margin:0 auto">
+ <div data-role="button">Load ${NUM_MORE_ITEMS} more items</div>
+ </li>
+ </script>
+ <ul id="extendable_list_main" data-role="extendablelist" data-extenditems="50" data-template="tmp-3-1-1">
+ </ul>
+*/
+/**
+ @property {String} data-role
+ Creates the extendable list view. The value must be set to extendablelist. Only the <ul> element, which a id attribute defined, supports this option. Also, the elLoadSuccess class attribute must be defined in the <ul> element to ensure that loading data from the database is complete.
+*/
+/**
+ @property {String} data-template
+ Specifies the jQuery.template element ID. The jQuery.template must be defined. The template style can use rem units to support scalability. For using the button at the bottom of the list to load more data elements, there must be list view template with the button. The attribute ID must be tmp_load_more.
+*/
+/**
+ @property {Integer} data-extenditems
+ Defines the number of data elements to be extended at a time.
+*/
+( function ( $, undefined ) {
- $document.bind( "vmousemove.multimediaview", function ( e ) {
- var currentX = e.clientX,
- currentVolume = ( currentX - volumeGuideLeft ) / volumeGuideWidth;
+ //Keeps track of the number of lists per page UID
+ //This allows support for multiple nested list in the same page
+ //https://github.com/jquery/jquery-mobile/issues/1617
+ var listCountPerPage = {};
- self._setVolume( currentVolume.toFixed( 2 ) );
+ $.widget( "tizen.extendablelist", $.mobile.widget, {
+ options: {
+ theme: "s",
+ countTheme: "c",
+ headerTheme: "b",
+ dividerTheme: "b",
+ splitIcon: "arrow-r",
+ splitTheme: "b",
+ inset: false,
+ id: "", /* Extendable list UL elemet's ID */
+ extenditems: 50, /* Number of append items */
+ childSelector: " li", /* To support swipe list */
+ dbtable: "",
+ template : "", /* Template for each list item */
+ loadmore : "tmp_load_more", /* Template for "Load more" message */
+ scrollview: false,
+ initSelector: ":jqmData(role='extendablelist')"
+ },
- e.preventDefault();
- }).bind( "vmouseup.multimediaview", function () {
- $document.unbind( "vmousemove.multimediaview vmouseup.multimediaview" );
- });
- });
+ _stylerMouseUp: function () {
+ $( this ).addClass( "ui-btn-up-s" );
+ $( this ).removeClass( "ui-btn-down-s" );
},
- _removeEvent: function () {
- var view = this.element,
- control = view.parent( ".ui-multimediaview-wrap" ).find( ".ui-multimediaview-control" ),
- playpauseButton = control.find( ".ui-playpausebutton" ),
- fullscreenButton = control.find( ".ui-fullscreenbutton" ),
- seekBar = control.find( ".ui-seekbar" ),
- volumeControl = control.find( ".ui-volumecontrol" ),
- volumeBar = volumeControl.find( ".ui-volumebar" ),
- volumeHandle = volumeControl.find( ".ui-handle" );
+ _stylerMouseDown: function () {
+ $( this ).addClass( "ui-btn-down-s" );
+ $( this ).removeClass( "ui-btn-up-s" );
+ },
- view.unbind( ".multimediaview" );
- playpauseButton.unbind( ".multimediaview" );
- fullscreenButton.unbind( ".multimediaview" );
- seekBar.unbind( ".multimediaview" );
- volumeBar.unbind( ".multimediaview" );
- volumeHandle.unbind( ".multimediaview" );
+ _stylerMouseOver: function () {
+ $( this ).toggleClass( "ui-btn-hover-s" );
},
- _createControl: function () {
- var view = this.element,
- viewElement = view[0],
- control = $( "<span></span>" ).addClass( "ui-multimediaview-control" ),
- playpauseButton = $( "<span></span>" ).addClass( "ui-playpausebutton ui-button ui-play-icon" ),
- seekBar = $( "<span></span>" ).addClass( "ui-seekbar ui-multimediaview-bar" ),
- timestampLabel = $( "<span><p>00:00:00</p></span>" ).addClass( "ui-timestamplabel" ),
- durationLabel = $( "<span><p>00:00:00</p></span>" ).addClass( "ui-durationlabel" ),
- volumeButton = $( "<span></span>" ).addClass( "ui-volumebutton ui-button" ),
- volumeControl = $( "<span></span>" ).addClass( "ui-volumecontrol" ),
- volumeBar = $( "<div></div>" ).addClass( "ui-volumebar ui-multimediaview-bar" ),
- volumeGuide = $( "<span></span>" ).addClass( "ui-guide ui-multimediaview-bar-bg" ),
- volumeValue = $( "<span></span>" ).addClass( "ui-value ui-multimediaview-bar-highlight" ),
- volumeHandle = $( "<span></span>" ).addClass( "ui-handle" ),
- fullscreenButton = $( "<span></span>" ).addClass( "ui-fullscreenbutton ui-button" ),
- durationBar = $( "<span></span>" ).addClass( "ui-duration ui-multimediaview-bar-bg" ),
- currenttimeBar = $( "<span></span>" ).addClass( "ui-currenttime ui-multimediaview-bar-highlight" );
+ _stylerMouseOut: function () {
+ $( this ).toggleClass( "ui-btn-hover-s" );
+ $( this ).addClass( "ui-btn-up-s" );
+ $( this ).removeClass( "ui-btn-down-s" );
+ },
- seekBar.append( durationBar ).append( currenttimeBar ).append( durationLabel ).append( timestampLabel );
+ _pushData: function ( template ) {
+ var o = this.options,
+ t = this,
+ i = 0,
+ myTemplate = $( "#" + template ),
+ loadMoreItems = ( o.extenditems > t._numItemData - t._lastIndex ? t._numItemData - t.lastIndex : o.extenditems ),
+ htmlData;
- volumeButton.addClass( viewElement.muted ? "ui-mute-icon" : "ui-volume-icon" );
- volumeBar.append( volumeGuide ).append( volumeValue ).append( volumeHandle );
- volumeControl.append( volumeBar );
+ for (i = 0; i < loadMoreItems; i++ ) {
+ htmlData = myTemplate.tmpl( t._itemData( i ) );
+ $( o.id ).append( $( htmlData ).attr( 'id', 'li_' + i ) );
- control.append( playpauseButton ).append( seekBar ).append( volumeControl ).append( volumeButton );
+ /* Add style */
+ $( o.id + ">" + o.childSelector )
+ .addClass( "ui-btn-up-s" )
+ .bind( "mouseup", t._stylerMouseUp )
+ .bind( "mousedown", t._stylerMouseDown )
+ .bind( "mouseover", t._stylerMouseOver )
+ .bind( "mouseout", t._stylerMouseOut );
- if ( this._isVideo ) {
- $( fullscreenButton ).addClass( "ui-fullscreen-on" );
- control.append( fullscreenButton );
+ t._lastIndex += 1;
}
- volumeControl.hide();
- return control;
+ /* After push data, re-style extendable list widget */
+ $( o.id ).trigger( "create" );
},
- _startTimer: function ( duration ) {
- this._endTimer();
+ _loadmore: function ( event ) {
+ var t = event.data, // <li> element
+ o = t.options,
+ i = 0,
+ myTemplate = $( "#" + o.template ),
+ loadMoreItems = ( o.extenditems > t._numItemData - t._lastIndex ? t._numItemData - t._lastIndex : o.extenditems ),
+ htmlData,
+ more_items_to_load,
+ num_next_load_items;
- if ( !duration ) {
- duration = 3000;
+ /* Remove load more message */
+ $( "#load_more_message" ).remove();
+
+ /* Append More Items */
+ for ( i = 0; i < loadMoreItems; i++ ) {
+ htmlData = myTemplate.tmpl( t._itemData( t._lastIndex ) );
+ $( o.id ).append( $( htmlData ).attr( 'id', 'li_' + t._lastIndex ) );
+ t._lastIndex += 1;
}
- var self = this,
- view = self.element,
- control = view.parent( ".ui-multimediaview-wrap" ).find( ".ui-multimediaview-control" ),
- volumeControl = control.find( ".ui-volumecontrol" );
+ /* Append "Load more" message on the last of list */
+ if ( t._numItemData > t._lastIndex ) {
+ myTemplate = $( "#" + o.loadmore );
+ more_items_to_load = t._numItemData - t._lastIndex;
+ num_next_load_items = ( o.extenditems <= more_items_to_load ) ? o.extenditems : more_items_to_load;
+ htmlData = myTemplate.tmpl( { NUM_MORE_ITEMS : num_next_load_items } );
+ // Button minimum height(37px)
+ $( o.id ).append( $( htmlData ).attr( 'id', "load_more_message" ).css( 'min-height' , "37px") );
+ }
- self.controlTimer = setTimeout( function () {
- self.isVolumeHide = true;
- self.controlTimer = null;
- volumeControl.hide();
- control.fadeOut( "fast" );
- }, duration );
+ $( o.id ).trigger( "create" );
+ $( o.id ).extendablelist( "refresh" );
},
- _endTimer: function () {
- if ( this.controlTimer ) {
- clearTimeout( this.controlTimer );
- this.controlTimer = null;
- }
+ recreate: function ( newArray ) {
+ this._create( {
+ itemData: function ( idx ) { return newArray[ idx ]; },
+ numItemData: newArray.length
+ } );
},
- _convertTimeFormat: function ( systime ) {
- if ( !$.isNumeric( systime ) ) {
- return "Playback Error";
- }
+ _initList: function (args ) {
+ var t = this,
+ o = this.options,
+ myTemplate,
+ more_items_to_load,
+ num_next_load_items,
+ htmlData;
- var ss = parseInt( systime % 60, 10 ).toString(),
- mm = parseInt( ( systime / 60 ) % 60, 10 ).toString(),
- hh = parseInt( systime / 3600, 10 ).toString(),
- time = ( ( hh.length < 2 ) ? "0" + hh : hh ) + ":" +
- ( ( mm.length < 2 ) ? "0" + mm : mm ) + ":" +
- ( ( ss.length < 2 ) ? "0" + ss : ss );
+ /* Make Gen list by template */
+ if ( t._lastIndex <= 0 ) {
+ t._pushData( o.template );
- return time;
- },
+ /* Append "Load more" message on the last of list */
+ if ( t._numItemData > t._lastIndex ) {
+ myTemplate = $( "#" + o.loadmore );
+ more_items_to_load = t._numItemData - t._lastIndex;
+ num_next_load_items = ( o.extenditems <= more_items_to_load) ? o.extenditems : more_items_to_load;
+ htmlData = myTemplate.tmpl( { NUM_MORE_ITEMS : num_next_load_items } );
+ // Button minimum height(37px)
+ $( o.id ).append( $( htmlData ).attr( 'id', "load_more_message" ).css( 'min-height' , "37px") );
- _updateSeekBar: function ( currenttime ) {
- var view = this.element,
- viewElement = view[0],
- duration = viewElement.duration,
- control = view.parent( ".ui-multimediaview-wrap" ).find( ".ui-multimediaview-control" ),
- seekBar = control.find( ".ui-seekbar" ),
- durationBar = seekBar.find( ".ui-duration" ),
- currenttimeBar = seekBar.find( ".ui-currenttime" ),
- timestampLabel = control.find( ".ui-timestamplabel" ),
- durationOffset = durationBar.offset(),
- durationWidth = durationBar.width(),
- durationHeight = durationBar.height(),
- timebarWidth = 0;
+ $( "#load_more_message" ).live( "click", t, t._loadmore );
+ } else {
+ /* No more items to load */
+ $( "#load_more_message" ).die();
+ $( "#load_more_message" ).remove();
+ }
+ }
- if ( typeof currenttime === "undefined" ) {
- currenttime = viewElement.currentTime;
+ if ( o.childSelector == " ul" ) {
+ $( o.id + " ul" ).swipelist();
}
- timebarWidth = parseInt( currenttime / duration * durationWidth, 10 );
- durationBar.offset( durationOffset );
- currenttimeBar.offset( durationOffset ).width( timebarWidth );
- timestampLabel.find( "p" ).text( this._convertTimeFormat( currenttime ) );
+
+ $( o.id ).trigger( "create" );
+
+ t.refresh( true );
},
- _updateVolumeState: function () {
- var view = this.element,
- control = view.parent( ".ui-multimediaview-wrap" ).find( ".ui-multimediaview-control" ),
- volumeControl = control.find( ".ui-volumecontrol" ),
- volumeButton = control.find( ".ui-volumebutton" ),
- volumeBar = volumeControl.find( ".ui-volumebar" ),
- volumeGuide = volumeControl.find( ".ui-guide" ),
- volumeValue = volumeControl.find( ".ui-value" ),
- volumeHandle = volumeControl.find( ".ui-handle" ),
- handlerWidth = volumeHandle.width(),
- handlerHeight = volumeHandle.height(),
- volumeGuideHeight = volumeGuide.height(),
- volumeGuideWidth = volumeGuide.width(),
- volumeGuideTop = 0,
- volumeGuideLeft = 0,
- volumeBase = 0,
- handlerOffset = null,
- volume = view[0].volume;
+ create: function () {
+ var o = this.options;
- volumeGuideTop = parseInt( volumeGuide.offset().top, 10 );
- volumeGuideLeft = parseInt( volumeGuide.offset().left, 10 );
- volumeBase = volumeGuideLeft;
- handlerOffset = volumeHandle.offset();
- handlerOffset.top = volumeGuideTop - parseInt( ( handlerHeight - volumeGuideHeight ) / 2, 10 );
- handlerOffset.left = volumeBase + parseInt( volumeGuideWidth * volume, 10 ) - parseInt( handlerWidth / 2, 10 );
- volumeHandle.offset( handlerOffset );
- volumeValue.offset( volumeGuide.offset() ).width( parseInt( volumeGuideWidth * ( volume ), 10 ) );
+ /* external API for AJAX callback */
+ this._create.apply( this, arguments );
},
- _setVolume: function ( value ) {
- var viewElement = this.element[0];
+ _create: function ( args ) {
+ var t = this,
+ o = this.options,
+ $el = this.element,
+ dbtable_name;
+
+
+ t.destroy();
+
+ $.extend(this, {
+ _itemData: function ( idx ) { return null; },
+ _numItemData: 0,
+ _cacheItemData: function ( minIdx, maxIdx ) { },
+ _lastIndex: 0
+ });
+
+
+ // create listview markup
+ t.element.addClass( function ( i, orig ) {
+ return orig + " ui-listview ui-extendable-list-container" + ( t.options.inset ? " ui-listview-inset ui-corner-all ui-shadow " : "" );
+ });
+
+ o.id = "#" + $el.attr( "id" );
- if ( value < 0.0 || value > 1.0 ) {
- return;
+ if ( $el.data( "extenditems" ) ) {
+ o.extenditems = parseInt( $el.data( "extenditems" ), 10 );
}
- viewElement.volume = value;
- },
+ $( o.id ).bind( "pagehide", function (e) {
+ $( o.id ).empty();
+ });
- width: function ( value ) {
- if ( this.options.fullScreen ) {
- return;
+ /* Scroll view */
+ if ( $( ".ui-scrollview-clip" ).size() > 0) {
+ o.scrollview = true;
+ } else {
+ o.scrollview = false;
}
- var view = this.element,
- wrap = view.parent( ".ui-multimediaview-wrap" );
+ if ( args ) {
+ if ( !t._loadData( args ) ) {
+ return;
+ }
+ } else {
+ // Legacy support: dbtable
+ console.warn("WARNING: The data interface of extendable list is changed. \nOld data interface(data-dbtable) is still supported, but will be removed in next version. \nPlease fix your code soon!");
- if ( arguments.length === 0 ) {
- return view.width();
- }
+ if ( $( o.id ).hasClass( "elLoadSuccess" ) ) {
+ dbtable_name = $el.jqmData('dbtable');
+ o.dbtable = window[ dbtable_name ];
+ if ( !(o.dbtable) ) {
+ o.dbtable = { };
+ }
+ t._itemData = function ( idx ) {
+ return o.dbtable[ idx ];
+ };
+ t._numItemData = o.dbtable.length;
- if ( !this._isVideo ) {
- wrap.width( value );
+ } else {
+ console.warn("No elLoadSuccess class");
+ return;
+ }
}
- view.width( value );
- this._resize();
- },
+ if ( $el.data( "template" ) ) {
+ o.template = $el.data( "template" );
- height: function ( value ) {
- if ( !this._isVideo || this.options.fullScreen ) {
- return;
+ /* to support swipe list, <li> or <ul> can be main node of extendable list. */
+ if ( $el.data( "swipelist" ) == true ) {
+ o.childSelector = " ul";
+ } else {
+ o.shildSelector = " li";
+ }
}
+ t._initList( args );
+ },
- var view = this.element;
+ _loadData : function ( args ) {
+ var self = this;
- if ( arguments.length === 0 ) {
- return view.height();
+ if ( args.itemData && typeof args.itemData == 'function' ) {
+ self._itemData = args.itemData;
+ } else {
+ return false;
+ }
+ if ( args.numItemData ) {
+ if ( typeof args.numItemData == 'function' ) {
+ self._numItemData = args.numItemData( );
+ } else if ( typeof args.numItemData == 'number' ) {
+ self._numItemData = args.numItemData;
+ } else {
+ return false;
+ }
+ } else {
+ return false;
}
+ return true;
+ },
- view.height( value );
- this._resize();
+
+ destroy : function () {
+ var o = this.options,
+ eOTAL_ITEMS = 0,
+ last_index = 0;
+
+ $( o.id ).empty();
+
+ $( "#load_more_message" ).die();
},
- fullScreen: function ( value ) {
- if ( !this._isVideo ) {
- return;
+ _itemApply: function ( $list, item ) {
+ var $countli = item.find( ".ui-li-count" );
+
+ if ( $countli.length ) {
+ item.addClass( "ui-li-has-count" );
}
- var view = this.element,
- option = this.options;
+ $countli.addClass( "ui-btn-up-" + ( $list.jqmData( "counttheme" ) || this.options.countTheme ) + " ui-btn-corner-all" );
- if ( arguments.length === 0 ) {
- return option.fullScreen;
- }
+ // TODO class has to be defined in markup
+ item.find( "h1, h2, h3, h4, h5, h6" ).addClass( "ui-li-heading" ).end()
+ .find( "p, dl" ).addClass( "ui-li-desc" ).end()
+ .find( ">img:eq(0), .ui-link-inherit>img:eq(0)" ).addClass( "ui-li-thumb" ).each(function () {
+ item.addClass( $( this ).is( ".ui-li-icon" ) ? "ui-li-has-icon" : "ui-li-has-thumb" );
+ }).end()
+ .find( ".ui-li-aside" ).each(function () {
+ var $this = $( this );
+ $this.prependTo( $this.parent() ); //shift aside to front for css float
+ });
+ },
- view.parents( ".ui-scrollview-clip" ).scrollview( "scrollTo", 0, 0 );
+ _removeCorners: function ( li, which ) {
+ var top = "ui-corner-top ui-corner-tr ui-corner-tl",
+ bot = "ui-corner-bottom ui-corner-br ui-corner-bl";
- this.options.fullScreen = value;
+ li = li.add( li.find( ".ui-btn-inner, .ui-li-link-alt, .ui-li-thumb" ) );
- this._resize();
+ if ( which === "top" ) {
+ li.removeClass( top );
+ } else if ( which === "bottom" ) {
+ li.removeClass( bot );
+ } else {
+ li.removeClass( top + " " + bot );
+ }
},
- refresh: function () {
- this._resize();
- }
- });
+ _refreshCorners: function ( create ) {
+ var $li,
+ $visibleli,
+ $topli,
+ $bottomli;
- $( document ).bind( "pagecreate create", function ( e ) {
- $.tizen.multimediaview.prototype.enhanceWithin( e.target );
- }).bind( "pagechange", function ( e ) {
- $( e.target ).find( ".ui-multimediaview" ).each( function () {
- var view = $( this ),
- viewElement = view[0];
+ if ( this.options.inset ) {
+ $li = this.element.children( "li" );
+ // at create time the li are not visible yet so we need to rely on .ui-screen-hidden
+ $visibleli = create ? $li.not( ".ui-screen-hidden" ) : $li.filter( ":visible" );
- if ( viewElement.autoplay ) {
- viewElement.play();
- }
- view.multimediaview( "refresh" );
- });
- }).bind( "pagebeforechange", function ( e ) {
- $( e.target ).find( ".ui-multimediaview" ).each( function () {
- var view = $( this ),
- viewElement = view[0],
- isFullscreen = view.multimediaview( "fullScreen" );
+ this._removeCorners( $li );
- if ( isFullscreen ) {
- view.multimediaview( "fullScreen", !isFullscreen );
- }
+ // Select the first visible li element
+ $topli = $visibleli.first()
+ .addClass( "ui-corner-top" );
- if ( viewElement.played.length !== 0 ) {
- viewElement.pause();
- }
- });
- });
+ $topli.add( $topli.find( ".ui-btn-inner" ) )
+ .find( ".ui-li-link-alt" )
+ .addClass( "ui-corner-tr" )
+ .end()
+ .find( ".ui-li-thumb" )
+ .not( ".ui-li-icon" )
+ .addClass( "ui-corner-tl" );
- $( window ).bind( "resize orientationchange", function ( e ) {
- $( ".ui-page-active" ).find( ".ui-multimediaview" ).multimediaview( "refresh" );
- });
+ // Select the last visible li element
+ $bottomli = $visibleli.last()
+ .addClass( "ui-corner-bottom" );
-} ( jQuery, document, window ) );
+ $bottomli.add( $bottomli.find( ".ui-btn-inner" ) )
+ .find( ".ui-li-link-alt" )
+ .addClass( "ui-corner-br" )
+ .end()
+ .find( ".ui-li-thumb" )
+ .not( ".ui-li-icon" )
+ .addClass( "ui-corner-bl" );
+ }
+ },
+ refresh: function ( create ) {
+ this.parentPage = this.element.closest( ".ui-page" );
+ this._createSubPages();
+ var o = this.options,
+ $list = this.element,
+ self = this,
+ dividertheme = $list.jqmData( "dividertheme" ) || o.dividerTheme,
+ listsplittheme = $list.jqmData( "splittheme" ),
+ listspliticon = $list.jqmData( "spliticon" ),
+ li = $list.children( "li" ),
+ counter = $.support.cssPseudoElement || !$.nodeName( $list[ 0 ], "ol" ) ? 0 : 1,
+ item,
+ itemClass,
+ itemTheme,
+ a,
+ last,
+ splittheme,
+ countParent,
+ icon,
+ pos,
+ numli;
-/*
- * jQuery Mobile Widget @VERSION
- *
- * TODO: remove unnecessary codes....
- *
- * This software is licensed under the MIT licence (as defined by the OSI at
- * http://www.opensource.org/licenses/mit-license.php)
- *
- * ***************************************************************************
- * Copyright (C) 2011 by Intel Corporation Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- *
- * Authors: Kalyan Kondapally <kalyan.kondapally@intel.com>
- */
+ if ( counter ) {
+ $list.find( ".ui-li-dec" ).remove();
+ }
-ensureNS("jQuery.mobile.tizen");
+ for ( pos = 0, numli = li.length; pos < numli; pos++ ) {
+ item = li.eq( pos );
+ itemClass = "ui-li";
-(function () {
-jQuery.extend(jQuery.mobile.tizen, {
- disableSelection: function (element) {
- this.enableSelection(
- $(element).find('*').not( 'input, [type="text"], textarea' ),
- 'none'
- );
- return true;
- },
+ // If we're creating the element, we update it regardless
+ if ( create || !item.hasClass( "ui-li" ) ) {
+ itemTheme = item.jqmData( "theme" ) || o.theme;
+ a = item.children( "a" );
- enableSelection: function (element, value) {
- var val;
- switch ( value ) {
- case 'text' :
- case 'auto' :
- case 'none' :
- val = value;
- break;
- default :
- val = 'auto';
- break;
- }
- return $(element).css( {
- 'user-select': val,
- '-moz-user-select': val,
- '-webkit-user-select': val,
- '-o-user-select': val,
- '-ms-transform': val
- } );
- },
+ if ( a.length ) {
+ icon = item.jqmData( "icon" );
- disableContextMenu: function(element) {
- var self = this;
- $(element).find('*').each( function() {
- if( ( $(this).get(0).tagName !== 'INPUT' &&
- $(this).attr("type") !== 'text' ) &&
- $(this).get(0).tagName !== 'TEXTAREA' ) {
- self._disableContextMenu( this );
- }
- } );
- },
+ item.buttonMarkup({
+ wrapperEls: "div",
+ shadow: false,
+ corners: false,
+ iconpos: "right",
+ /* icon: a.length > 1 || icon === false ? false : icon || "arrow-r",*/
+ icon: false, /* Remove unnecessary arrow icon */
+ theme: itemTheme
+ });
- _disableContextMenu: function(element) {
+ if ( ( icon != false ) && ( a.length == 1 ) ) {
+ item.addClass( "ui-li-has-arrow" );
+ }
- $(element).each( function() {
- $(this).bind("contextmenu", function( event ) {
- return false;
- } );
- } );
- },
+ a.first().addClass( "ui-link-inherit" );
- enableContextMenu: function(element) {
- $(element).each( function() {
- $(this).unbind( "contextmenu" );
- } );
- },
+ if ( a.length > 1 ) {
+ itemClass += " ui-li-has-alt";
- // Get document-relative mouse coordinates from a given event
- // From: http://www.quirksmode.org/js/events_properties.html#position
- documentRelativeCoordsFromEvent: function(ev) {
- var e = ev ? ev : window.event,
- client = { x: e.clientX, y: e.clientY },
- page = { x: e.pageX, y: e.pageY },
- posx = 0,
- posy = 0;
+ last = a.last();
+ splittheme = listsplittheme || last.jqmData( "theme" ) || o.splitTheme;
- // Grab useful coordinates from touch events
- if (e.type.match(/^touch/)) {
- page = {
- x: e.originalEvent.targetTouches[0].pageX,
- y: e.originalEvent.targetTouches[0].pageY
- };
- client = {
- x: e.originalEvent.targetTouches[0].clientX,
- y: e.originalEvent.targetTouches[0].clientY
- };
- }
+ last.appendTo(item)
+ .attr( "title", last.getEncodedText() )
+ .addClass( "ui-li-link-alt" )
+ .empty()
+ .buttonMarkup({
+ shadow: false,
+ corners: false,
+ theme: itemTheme,
+ icon: false,
+ iconpos: false
+ })
+ .find( ".ui-btn-inner" )
+ .append(
+ $( "<span />" ).buttonMarkup( {
+ shadow : true,
+ corners : true,
+ theme : splittheme,
+ iconpos : "notext",
+ icon : listspliticon || last.jqmData( "icon" ) || o.splitIcon
+ })
+ );
+ }
+ } else if ( item.jqmData( "role" ) === "list-divider" ) {
- if (page.x || page.y) {
- posx = page.x;
- posy = page.y;
- }
- else
- if (client.x || client.y) {
- posx = client.x + document.body.scrollLeft + document.documentElement.scrollLeft;
- posy = client.y + document.body.scrollTop + document.documentElement.scrollTop;
- }
+ itemClass += " ui-li-divider ui-btn ui-bar-" + dividertheme;
+ item.attr( "role", "heading" );
- return { x: posx, y: posy };
- },
+ //reset counter when a divider heading is encountered
+ if ( counter ) {
+ counter = 1;
+ }
- // TODO : offsetX, offsetY. touch events don't have offsetX and offsetY. support for touch devices.
- // check algorithm...
- targetRelativeCoordsFromEvent: function(e) {
- var coords = { x: e.offsetX, y: e.offsetY };
+ } else {
+ itemClass += " ui-li-static ui-body-" + itemTheme;
+ }
+ }
- if (coords.x === undefined || isNaN(coords.x) ||
- coords.y === undefined || isNaN(coords.y)) {
- var offset = $(e.target).offset();
- //coords = documentRelativeCoordsFromEvent(e); // Old code. Must be checked again.
- coords = $.mobile.tizen.documentRelativeCoordsFromEvent(e);
- coords.x -= offset.left;
- coords.y -= offset.top;
- }
+ if ( counter && itemClass.indexOf( "ui-li-divider" ) < 0 ) {
+ countParent = item.is( ".ui-li-static:first" ) ? item : item.find( ".ui-link-inherit" );
- return coords;
- }
-});
+ countParent.addClass( "ui-li-jsnumbering" )
+ .prepend( "<span class='ui-li-dec'>" + (counter++) + ". </span>" );
+ }
-})();
+ item.add( item.children( ".ui-btn-inner" ) ).addClass( itemClass );
+ self._itemApply( $list, item );
+ }
+ this._refreshCorners( create );
+ },
-/* ***************************************************************************
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- *
- * Authors: Wonseop Kim ( wonseop.kim@samsung.com )
-*/
+ //create a string for ID/subpage url creation
+ _idStringEscape: function ( str ) {
+ return str.replace(/\W/g , "-");
-/**
- * "Handler" is a widget helping a user to scroll a window or panel.
- * It is different from the scrollview feature in that the handler has a fixed size
- * and disappears when a scroll size is smaller than a parent window's size.
- * If the handler widget is activated, a scroll bar on the screen will be deactivated.
- * The handler widget supports scrolling up and down and indicates the position of the scrolled window.
- *
- * HTML Attributes:
- *
- * data-handler : This attribute is indicating that whether enable.
- * If you want to use, you will set 'true'.
- * data-handler-theme : Set the widget theme ( optional )
- *
- * APIs:
- *
- * enableHandler ( boolean )
- * : Get or set the use of handler widget.
- * If the value is "true", it will be run handler widget.
- * If the value is "false", it will be not run handler widget.
- * If no value is specified, will act as a getter.
- *
- * Events:
- *
- * Examples:
- *
- * <div data-role="content" data-scroll="y" data-handler="true">
- * <ul data-role="listview">
- * <li data-role="list-divider">A</li>
- * <li><a href="#">Adam Kinkaid</a></li>
- * ...
- * </ul>
- * </div>
- */
+ },
+
+ _createSubPages: function () {
+ var parentList = this.element,
+ parentPage = parentList.closest( ".ui-page" ),
+ parentUrl = parentPage.jqmData( "url" ),
+ parentId = parentUrl || parentPage[ 0 ][ $.expando ],
+ parentListId = parentList.attr( "id" ),
+ o = this.options,
+ dns = "data-" + $.mobile.ns,
+ self = this,
+ persistentFooterID = parentPage.find( ":jqmData(role='footer')" ).jqmData( "id" ),
+ hasSubPages,
+ newRemove;
+
+ if ( typeof listCountPerPage[ parentId ] === "undefined" ) {
+ listCountPerPage[ parentId ] = -1;
+ }
+
+ parentListId = parentListId || ++listCountPerPage[ parentId ];
+
+ $( parentList.find( "li>ul, li>ol" ).toArray().reverse() ).each(function ( i ) {
+ var self = this,
+ list = $( this ),
+ listId = list.attr( "id" ) || parentListId + "-" + i,
+ parent = list.parent(),
+ nodeEls,
+ title = nodeEls.first().getEncodedText(),//url limits to first 30 chars of text
+ id = ( parentUrl || "" ) + "&" + $.mobile.subPageUrlKey + "=" + listId,
+ theme = list.jqmData( "theme" ) || o.theme,
+ countTheme = list.jqmData( "counttheme" ) || parentList.jqmData( "counttheme" ) || o.countTheme,
+ newPage,
+ anchor;
-/**
- @class handler
- The handler widget enables the user to vertically scroll through a page or panel using a fixed-size handle. The widget indicates the position of the scrolled window, and only appears on the screen if the parent page or panel's scroll size is larger than the screen size. <br/> To add a handler widget to the application, use the following code:
+ nodeEls = $( list.prevAll().toArray().reverse() );
+ nodeEls = nodeEls.length ? nodeEls : $( "<span>" + $.trim(parent.contents()[ 0 ].nodeValue) + "</span>" );
- <div data-role="content" data-scroll="y" data-handler="true">
- <ul data-role="listview">
- <li data-role="list-divider">A</li>
- <li><a href="#">Adam Kinkaid</a></li>
- ...
- </ul>
- </div>
-
- You can use the enableHandler method with the handler widget to get (if no value is defined) or set the handler usage status. If the [enable] value is true, the handler is enabled; otherwise the handler is not used.
+ //define hasSubPages for use in later removal
+ hasSubPages = true;
- $("#.selector").scrollview("enableHandler", [enable]);
-*/
-/**
- @property {Boolean} data-handler
- Enables the handler widget. The value must be set to true.
-*/
-/**
- @property {String} data-handler-theme
- Sets the handler widget theme.
-*/
-( function ( $, document, undefined ) {
- // The options of handler in scrollview
- $.tizen.scrollview.prototype.options.handler = false;
- $.tizen.scrollview.prototype.options.handlerTheme = "s";
+ newPage = list.detach()
+ .wrap( "<div " + dns + "role='page' " + dns + "url='" + id + "' " + dns + "theme='" + theme + "' " + dns + "count-theme='" + countTheme + "'><div " + dns + "role='content'></div></div>" )
+ .parent()
+ .before( "<div " + dns + "role='header' " + dns + "theme='" + o.headerTheme + "'><div class='ui-title'>" + title + "</div></div>" )
+ .after( persistentFooterID ? $( "<div " + dns + "role='footer' " + dns + "id='" + persistentFooterID + "'>" ) : "" )
+ .parent()
+ .appendTo( $.mobile.pageContainer );
- var originSetOption = $.tizen.scrollview.prototype._setOption,
- createHandler = function ( target ) {
- var $view = target,
- prefix = "<div class=\"ui-handler ui-handler-direction-",
- suffix = "\"><div class=\"ui-handler-track\"><div class=\"ui-handler-thumb\"></div></div></div>",
- scrollview = $view.data( "scrollview" ),
- options = scrollview.options,
- direction = options.direction,
- parentTheme = $.mobile.getInheritedTheme( scrollview, "s" ),
- theme = options.theme || parentTheme,
- isHorizontal = ( scrollview.options.direction === "x" ),
- _$view = scrollview._$view,
- _$clip = scrollview._$clip,
- scrollbar = $view.find( ".ui-scrollbar" ),
- handler = null,
- handlerThumb = null,
- viewLength = 0,
- clipLength = 0,
- handlerHeight = 0,
- handlerMargin = 0,
- trackLength = 0,
- moveTimer,
- isTouchable = $.support.touch,
- dragStartEvt = ( isTouchable ? "touchstart" : "mousedown" ) + ".handler",
- dragMoveEvt = ( isTouchable ? "touchmove" : "mousemove" ) + ".handler",
- dragStopEvt = ( isTouchable ? "touchend" : "mouseup" ) + ".handler",
- dragLeaveEvt = ( isTouchable ? " touchleave" : " mouseleave" ) + ".handler",
- calculateLength = function () {
- clipLength = ( isHorizontal ? _$clip.width() : _$clip.height() );
- viewLength = ( isHorizontal ? _$view.width() : _$view.height() ) - clipLength;
- trackLength = clipLength - handlerHeight - handlerMargin * 2;
- },
- setHanderPostion = function ( scrollPos ) {
- var handlerPos = Math.round( ( isHorizontal ? scrollPos.x : scrollPos.y ) / viewLength * trackLength );
- handlerThumb[0].style[ ( isHorizontal ? "left" : "top" ) ] = handlerPos + "px";
- },
- stopHandlerScroll = function () {
- $( document ).unbind( ".handler" );
- $view.moveData = null;
- _$view.trigger( "scrollstop" );
- };
+ newPage.page();
- if ( $view.find( ".ui-handler-thumb" ).length !== 0 || typeof direction !== "string" ) {
- return;
- }
+ anchor = parent.find('a:first');
- handler = $( [ prefix, direction, suffix ].join( "" ) ).appendTo( $view.addClass( " ui-handler-" + theme ) );
- handlerThumb = $view.find( ".ui-handler-thumb" ).attr( {
- "tabindex" : "0",
- "aria-label" : ( isHorizontal ? "Horizontal handler, double tap and move to scroll" : "Verticalhandler, double tap and move to scroll" )
- }).hide();
- handlerHeight = ( isHorizontal ? handlerThumb.width() : handlerThumb.height() );
- handlerMargin = ( isHorizontal ? parseInt( handler.css( "right" ), 10 ) : parseInt( handler.css( "bottom" ), 10 ) );
+ if ( !anchor.length ) {
+ anchor = $( "<a/>" ).html( nodeEls || title ).prependTo( parent.empty() );
+ }
- $.extend( $view, {
- moveData : null
- });
+ anchor.attr( "href", "#" + id );
- // handler drag
- handlerThumb.bind( dragStartEvt, {
- e : handlerThumb[0]
- }, function ( event ) {
- scrollview._stopMScroll();
+ }).extendablelist();
- var target = event.data.e,
- t = ( isTouchable ? event.originalEvent.targetTouches[0] : event );
+ // on pagehide, remove any nested pages along with the parent page, as long as they aren't active
+ // and aren't embedded
+ if ( hasSubPages &&
+ parentPage.is( ":jqmData(external-page='true')" ) &&
+ parentPage.data( "page" ).options.domCache === false ) {
- target.style.opacity = 1.0;
+ newRemove = function ( e, ui ) {
+ var nextPage = ui.nextPage, npURL;
- $view.moveData = {
- target : target,
- X : parseInt( target.style.left, 10 ) || 0,
- Y : parseInt( target.style.top, 10 ) || 0,
- pX : t.pageX,
- pY : t.pageY
+ if ( ui.nextPage ) {
+ npURL = nextPage.jqmData( "url" );
+ if ( npURL.indexOf( parentUrl + "&" + $.mobile.subPageUrlKey ) !== 0 ) {
+ self.childPages().remove();
+ parentPage.remove();
+ }
+ }
};
- calculateLength();
- _$view.trigger( "scrollstart" );
+ // unbind the original page remove and replace with our specialized version
+ parentPage
+ .unbind( "pagehide.remove" )
+ .bind( "pagehide.remove", newRemove);
+ }
+ },
- if ( !isTouchable ) {
- event.preventDefault();
- }
+ // TODO sort out a better way to track sub pages of the extendable listview this is brittle
+ childPages: function () {
+ var parentUrl = this.parentPage.jqmData( "url" );
- $( document ).bind( dragMoveEvt, function ( event ) {
- var moveData = $view.moveData,
- target = moveData.target,
- handlePos = 0,
- scrollPos = 0,
- t = ( isTouchable ? event.originalEvent.targetTouches[0] : event );
+ return $( ":jqmData(url^='" + parentUrl + "&" + $.mobile.subPageUrlKey + "')" );
+ }
+ });
- handlePos = ( isHorizontal ? moveData.X + t.pageX - moveData.pX : moveData.Y + t.pageY - moveData.pY );
+ //auto self-init widgets
+ $( document ).bind( "pagecreate create", function ( e ) {
+ $( $.tizen.extendablelist.prototype.options.initSelector, e.target ).extendablelist();
+ });
- if ( handlePos < 0 ) {
- handlePos = 0;
- }
+}( jQuery ));
- if ( handlePos > trackLength ) {
- handlePos = trackLength;
- }
- scrollPos = - Math.round( handlePos / trackLength * viewLength );
- if ( isHorizontal ) {
- scrollview._setScrollPosition( scrollPos, 0 );
- target.style.left = handlePos + "px";
- } else {
- scrollview._setScrollPosition( 0, scrollPos );
- target.style.top = handlePos + "px";
- }
- event.preventDefault();
- }).bind( dragStopEvt + dragLeaveEvt, function ( event ) {
- stopHandlerScroll();
- });
- });
+ensureNS("jQuery.mobile.tizen.clrlib");
- _$view.bind( dragStopEvt, function ( event ) {
- stopHandlerScroll();
- });
+jQuery.extend( jQuery.mobile.tizen.clrlib,
+{
+ nearestInt: function(val) {
+ var theFloor = Math.floor(val);
- $view.bind( "scrollstart", function ( event ) {
- if ( !scrollview.enableHandler() ) {
- return;
- }
+ return (((val - theFloor) > 0.5) ? (theFloor + 1) : theFloor);
+ },
- calculateLength();
+ /*
+ * Converts html color string to rgb array.
+ *
+ * Input: string clr_str, where
+ * clr_str is of the form "#aabbcc"
+ *
+ * Returns: [ r, g, b ], where
+ * r is in [0, 1]
+ * g is in [0, 1]
+ * b is in [0, 1]
+ */
+ HTMLToRGB: function(clr_str) {
+ clr_str = (('#' == clr_str.charAt(0)) ? clr_str.substring(1) : clr_str);
+
+ return ([
+ clr_str.substring(0, 2),
+ clr_str.substring(2, 4),
+ clr_str.substring(4, 6)
+ ].map(function(val) {
+ return parseInt(val, 16) / 255.0;
+ }));
+ },
+
+ /*
+ * Converts rgb array to html color string.
+ *
+ * Input: [ r, g, b ], where
+ * r is in [0, 1]
+ * g is in [0, 1]
+ * b is in [0, 1]
+ *
+ * Returns: string of the form "#aabbcc"
+ */
+ RGBToHTML: function(rgb) {
+ return ("#" +
+ rgb.map(function(val) {
+ var ret = val * 255,
+ theFloor = Math.floor(ret);
+
+ ret = ((ret - theFloor > 0.5) ? (theFloor + 1) : theFloor);
+ ret = (((ret < 16) ? "0" : "") + (ret & 0xff).toString(16));
+ return ret;
+ })
+ .join(""));
+ },
+
+ /*
+ * Converts hsl to rgb.
+ *
+ * From http://130.113.54.154/~monger/hsl-rgb.html
+ *
+ * Input: [ h, s, l ], where
+ * h is in [0, 360]
+ * s is in [0, 1]
+ * l is in [0, 1]
+ *
+ * Returns: [ r, g, b ], where
+ * r is in [0, 1]
+ * g is in [0, 1]
+ * b is in [0, 1]
+ */
+ HSLToRGB: function(hsl) {
+ var h = hsl[0] / 360.0, s = hsl[1], l = hsl[2];
- if ( viewLength < 0 || clipLength < handlerHeight ) {
- if ( scrollbar.is( ":hidden" ) ) {
- scrollbar.show();
- }
- return;
- }
+ if (0 === s)
+ return [ l, l, l ];
- if ( scrollbar.is( ":visible" ) ) {
- scrollbar.hide();
- }
+ var temp2 = ((l < 0.5)
+ ? l * (1.0 + s)
+ : l + s - l * s),
+ temp1 = 2.0 * l - temp2,
+ temp3 = {
+ r: h + 1.0 / 3.0,
+ g: h,
+ b: h - 1.0 / 3.0
+ };
- if ( moveTimer ) {
- clearInterval( moveTimer );
- moveTimer = undefined;
- }
+ temp3.r = ((temp3.r < 0) ? (temp3.r + 1.0) : ((temp3.r > 1) ? (temp3.r - 1.0) : temp3.r));
+ temp3.g = ((temp3.g < 0) ? (temp3.g + 1.0) : ((temp3.g > 1) ? (temp3.g - 1.0) : temp3.g));
+ temp3.b = ((temp3.b < 0) ? (temp3.b + 1.0) : ((temp3.b > 1) ? (temp3.b - 1.0) : temp3.b));
- handler.addClass( "ui-handler-visible" );
- handlerThumb.stop( true, true )
- .fadeIn();
- }).bind( "scrollupdate", function ( event, data ) {
- if ( !scrollview.enableHandler() || viewLength < 0 || clipLength < handlerHeight ) {
- return;
- }
+ ret = [
+ (((6.0 * temp3.r) < 1) ? (temp1 + (temp2 - temp1) * 6.0 * temp3.r) :
+ (((2.0 * temp3.r) < 1) ? temp2 :
+ (((3.0 * temp3.r) < 2) ? (temp1 + (temp2 - temp1) * ((2.0 / 3.0) - temp3.r) * 6.0) :
+ temp1))),
+ (((6.0 * temp3.g) < 1) ? (temp1 + (temp2 - temp1) * 6.0 * temp3.g) :
+ (((2.0 * temp3.g) < 1) ? temp2 :
+ (((3.0 * temp3.g) < 2) ? (temp1 + (temp2 - temp1) * ((2.0 / 3.0) - temp3.g) * 6.0) :
+ temp1))),
+ (((6.0 * temp3.b) < 1) ? (temp1 + (temp2 - temp1) * 6.0 * temp3.b) :
+ (((2.0 * temp3.b) < 1) ? temp2 :
+ (((3.0 * temp3.b) < 2) ? (temp1 + (temp2 - temp1) * ((2.0 / 3.0) - temp3.b) * 6.0) :
+ temp1)))];
- setHanderPostion( scrollview.getScrollPosition() );
- }).bind( "scrollstop", function ( event ) {
- if ( !scrollview.enableHandler() || viewLength < 0 || clipLength < handlerHeight ) {
- return;
- }
+ return ret;
+ },
- moveTimer = setInterval( function () {
- setHanderPostion( scrollview.getScrollPosition() );
- if ( !scrollview._gesture_timer ) {
- clearInterval( moveTimer );
- moveTimer = undefined;
- }
- }, 10 );
+ /*
+ * Converts hsv to rgb.
+ *
+ * Input: [ h, s, v ], where
+ * h is in [0, 360]
+ * s is in [0, 1]
+ * v is in [0, 1]
+ *
+ * Returns: [ r, g, b ], where
+ * r is in [0, 1]
+ * g is in [0, 1]
+ * b is in [0, 1]
+ */
+ HSVToRGB: function(hsv) {
+ return $.mobile.tizen.clrlib.HSLToRGB($.mobile.tizen.clrlib.HSVToHSL(hsv));
+ },
- if ( scrollview._handlerTimer ) {
- clearTimeout( scrollview._handlerTimer );
- scrollview._handlerTimer = 0;
- }
- scrollview._handlerTimer = setTimeout( function () {
- if ( scrollview._timerID === 0 && $view.moveData === null ) {
- handlerThumb.stop( true, true )
- .css( "opacity", 1.0 )
- .fadeOut( function () {
- handler.removeClass( "ui-handler-visible" );
- });
- scrollview._handlerTimer = 0;
- }
- }, 1000 );
- }).bind( "mousewheel", function ( event ) {
- handler.removeClass( "ui-handler-visible" );
- setHanderPostion( scrollview.getScrollPosition() );
- });
- };
+ /*
+ * Converts rgb to hsv.
+ *
+ * from http://coecsl.ece.illinois.edu/ge423/spring05/group8/FinalProject/HSV_writeup.pdf
+ *
+ * Input: [ r, g, b ], where
+ * r is in [0, 1]
+ * g is in [0, 1]
+ * b is in [0, 1]
+ *
+ * Returns: [ h, s, v ], where
+ * h is in [0, 360]
+ * s is in [0, 1]
+ * v is in [0, 1]
+ */
+ RGBToHSV: function(rgb) {
+ var min, max, delta, h, s, v, r = rgb[0], g = rgb[1], b = rgb[2];
- $.extend( $.tizen.scrollview.prototype, {
- enableHandler: function ( enabled ) {
- if ( typeof enabled === 'undefined' ) {
- return this.options.handler;
- }
+ min = Math.min(r, Math.min(g, b));
+ max = Math.max(r, Math.max(g, b));
+ delta = max - min;
- this.options.handler = !!enabled;
+ h = 0;
+ s = 0;
+ v = max;
- var $view = this.element;
- if ( this.options.handler ) {
- if ( $view.find( ".ui-handler" ).length === 0 ) {
- createHandler( $view );
- }
+ if (delta > 0.00001) {
+ s = delta / max;
- $view.find( ".ui-scrollbar" ).hide();
- $view.find( ".ui-handler" ).show();
- } else {
- $view.find( ".ui-handler" ).removeClass( "ui-handler-visible" ).hide();
- $view.find( ".ui-scrollbar" ).show();
- }
- },
+ if (r === max)
+ h = (g - b) / delta ;
+ else
+ if (g === max)
+ h = 2 + (b - r) / delta ;
+ else
+ h = 4 + (r - g) / delta ;
- _setHandlerTheme: function ( handlerTheme ) {
- if ( !handlerTheme ) {
- return;
- }
+ h *= 60 ;
- var oldClass = "ui-handler-" + this.options.handlerTheme,
- newClass = "ui-handler-" + handlerTheme;
+ if (h < 0)
+ h += 360 ;
+ }
- this.element.removeClass( oldClass ).addClass( newClass );
- this.options.handlerTheme = handlerTheme;
- },
+ return [h, s, v];
+ },
- _setOption: function ( key, value ) {
- switch ( key ) {
- case "handler":
- this.enableHandler( value );
- break;
- case "handlerTheme":
- this._setHandlerTheme( value );
- break;
- default:
- originSetOption.call( this, key, value );
- }
- },
+ /*
+ * Converts hsv to hsl.
+ *
+ * Input: [ h, s, v ], where
+ * h is in [0, 360]
+ * s is in [0, 1]
+ * v is in [0, 1]
+ *
+ * Returns: [ h, s, l ], where
+ * h is in [0, 360]
+ * s is in [0, 1]
+ * l is in [0, 1]
+ */
+ HSVToHSL: function(hsv) {
+ var max = hsv[2],
+ delta = hsv[1] * max,
+ min = max - delta,
+ sum = max + min,
+ half_sum = sum / 2,
+ s_divisor = ((half_sum < 0.5) ? sum : (2 - max - min));
- _handlerTimer : 0
- });
+ return [ hsv[0], ((0 == s_divisor) ? 0 : (delta / s_divisor)), half_sum ];
+ },
- $( document ).delegate( ":jqmData(scroll)", "scrollviewcreate", function () {
- var widget = $( this );
- if ( widget.attr( "data-" + $.mobile.ns + "scroll" ) === "none"
- || widget.attr( "data-" + $.mobile.ns + "handler" ) !== "true" ) {
- return;
- }
- widget.scrollview( "enableHandler", "true" );
- });
-} ( jQuery, document ) );
+ /*
+ * Converts rgb to hsl
+ *
+ * Input: [ r, g, b ], where
+ * r is in [0, 1]
+ * g is in [0, 1]
+ * b is in [0, 1]
+ *
+ * Returns: [ h, s, l ], where
+ * h is in [0, 360]
+ * s is in [0, 1]
+ * l is in [0, 1]
+ */
+ RGBToHSL: function(rgb) {
+ return $.mobile.tizen.clrlib.HSVToHSL($.mobile.tizen.clrlib.RGBToHSV(rgb));
+ }
+});
-/**
- @class Button
- The button widget shows a control on the screen that you can use to generate an action event when it is pressed and released. This widget is coded with standard HTML anchor and input elements and then enhanced by jQueryMobile to make it more attractive and usable on a mobile device. Buttons can be used in Tizen as described in the jQueryMobile documentation for buttons.
+/*
+ * set TIZEN specific configures
+ */
- To add a button widget to the application, use the following code
+( function( $, window, undefined ) {
- <div data-role="button" data-inline="true">Text Button Test</div>
- <div data-role="button" data-inline="true" data-icon="plus" data-style="circle"></div>
- <div data-role="button" data-inline="true" data-icon="plus" data-style="nobg"></div>
+ /* set default transition */
+ $.mobile.defaultPageTransition = "none";
- The button can define callbacks for events as described in the jQueryMobile documentation for button events.<br/>
- You can use methods with the button as described in the jQueryMobile documentation for button methods.
-*/
+ /* depth transition */
+ $.mobile.transitionHandlers.depth = $.mobile.transitionHandlers.simultaneous;
+ $.mobile.transitionFallbacks.depth = "fade";
-/**
- @property {String} data-style
- Defines the button style. <br/> The default value is box. If the value is set to circle, a circle-shaped button is created. If the value is set to nobg, a button is created without a background.
+ /* Button data-corners default value */
+ $.fn.buttonMarkup.defaults.corners = false;
+
+ /* button hover delay */
+ $.mobile.buttonMarkup.hoverDelay = 0;
+
+})( jQuery, this );
-*/
-/**
- @property {String} data-icon
- Defines an icon for a button. Tizen supports 12 icon styles: reveal, closed, opened, info, rename, call, warning, plus, minus, cancel, send, and favorite.
-*/
* DEALINGS IN THE SOFTWARE.
* ***************************************************************************
*
- * Author: Wongi Lee <wongi11.lee@samsung.com>
- * Youmin Ha <youmin.ha@samsung.com>
+ * Authors: Hyunsook Park <hyunsook.park@samsung.com>
+ * Wonseop Kim <wonseop.kim@samsung.com>
*/
/**
- * Virtual List Widget for unlimited data.
- * To support more then 1,000 items, special list widget developed.
- * Fast initialize and light DOM tree.
- * DB connection and works like DB cursor.
- *
- * HTML Attributes:
- *
- * data-role: virtuallistview
- * data-template : jQuery.template ID that populate into virtual list
- * data-row : Optional. Set number of <li> elements that are used for data handling.
- *
- * ID : <UL> element that has "data-role=virtuallist" must have ID attribute.
+ * The gallery3d widget displays images along a curved path on a 3-dimensional coordinate system.
+ * To improve performance, the size of image(s) displayed on the screen should be a square(under
+ * 128X128 pixel) as possible. But if a user can't resize the images, this widget supports an image
+ * resizing feature and he/she can use it with "data-thumbnail-cache" option. ("data-thumbnail-cache"
+ * option resizes the gallery images under 128x128 pixels and stores the images on a local storage.
+ * So when a gallery3D widget is re-launched, the widget reuse the storage and a user can improve
+ * launching time. A browser or web runtime engine should support "Web Storage" feature to use that
+ * option.)
*
- * * APIs:
+ * HTML Attributes:
*
- * create ( {
- * itemData: function ( idx ) { return json_obj; },
- * numItemData: number or function () { return number; },
- * cacheItemData: function ( minIdx, maxIdx ) {}
- * } )
- * : Create a virtuallist widget. At this moment, _create method is called.
- * args : A collection of options
- * itemData: A function that returns JSON object for given index. Mandatory.
- * numItemData: Total number of itemData. Mandatory.
- * cacheItemData: Virtuallist will ask itemData between minIdx and maxIdx.
- * Developers can implement this function for preparing data.
- * Optional.
+ * data-thumbnail-cache : Determines whether to cache and resize images.
*
- * Events:
+ * APIs:
*
- * touchstart : Temporary preventDefault applied on touchstart event to avoid broken screen.
+ * next ( void )
+ * : This method moves each image forward one by one.
+ * prev ( void )
+ * : This method moves each image backward one by one.
+ * select ( [number] )
+ * : When the "select" method is called with an argument, the method selects the image of given index.
+ * If the method is called with no argument, it will return the Javascript object having "src"
+ * attribute having the selected image’s URL.
+ * add ( object or string [, number] )
+ * This method adds an image to Gallery3D widget.
+ * If the second argument isn't inputted, the image is added at the 0th position.
+ * remove ( [number] )
+ * : This method deletes an image from Gallery3d widget.
+ * The argument defines the index of the image to be deleted.
+ * If an argument isn't inputted, it removes current image.
+ * clearThumbnailCache ( void )
+ * : This method clears the cache data of all images when thumbnailCache option is set as 'true'.
+ * refresh ( void )
+ * : This method updates and redraws current widget.
+ * empty ( void )
+ * : This method removes all of images from Gallery3D widget.
+ * length ( void )
+ * : This method gets the number of images.
*
- * Examples:
+ * Events:
*
- * <script id="tmp-3-2-7" type="text/x-jquery-tmpl">
- * <li class="ui-li-3-2-7">
- * <span class="ui-li-text-main">${NAME}</span>
- * <img src="00_winset_icon_favorite_on.png" class="ui-li-icon-sub">
- * <span class="ui-li-text-sub">${ACTIVE}</span>
- * <span class="ui-li-text-sub2">${FROM}</span>
- * </li>
- * </script>
+ * select : Triggered when an image is selected.
*
- * <ul id="virtuallist-normal_3_2_7_ul" data-role="virtuallistview" data-template="tmp-3-2-7" data-dbtable="JSON_DATA" data-row="100">
- * </ul>
+ * Examples:
*
+ * <script>
+ * $( "#gallery3d" ).on( "gallery3dcreate", function () {
+ * $( "#gallery3d" ).gallery3d( "add", "01.jpg" );
+ * });
+ * </script>
+ * <div id="gallery3d" data-role="gallery3d"></div>
*/
/**
- @class VirtualList
- In the Web environment, it is challenging to display a large amount of data in a list, such as displaying a contact list of over 1000 list items. It takes time to display the entire list in HTML and the DOM manipulation is complex.
-
- The virtual list widget is used to display a list of unlimited data elements on the screen for better performance. This widget provides easy access to databases to retrieve and display data. Virtual lists are based on the jQuery.template plugin as described in the jQuery documentation for jQuery.template plugin.
-
- To add a virtual list widget to the application, use the following code:
+ @class Gallery3D
+ The gallery3d widget displays images along a curved path on a 3-dimensional coordinate system.
+ <br/><br/>To add an gallery3d widget to the application, use the following code:
- <script id="tmp-3-2-7" type="text/x-jquery-tmpl">
- <li class="ui-li-3-2-7">
- <span class="ui-li-text-main">${NAME}</span>
- <img src="00_winset_icon_favorite_on.png" class="ui-li-icon-sub"/>
- <span class="ui-li-text-sub">${ACTIVE}</span>
- <span class="ui-li-text-sub2">${FROM}</span>
- </li>
+ <script>
+ $( "#gallery3d" ).on( "gallery3dcreate", function () {
+ $( "#gallery3d" ).gallery3d( "add", "01.jpg" );
+ });
</script>
- <ul id="vlist" data-role="virtuallistview" data-template="tmp-3-2-7" data-dbtable="JSON_DATA" data-row="100"></ul>
+ <div id="gallery3d" data-role="gallery3d"></div>
*/
/**
- @property {String} data-role
- Creates the virtual list view. The value must be set to virtuallistview.
- Only the >ul< element, which a id attribute defined, supports this option. Also, the vlLoadSuccess class attribute must be defined in the >ul< element to ensure that loading data from the database is complete.
+ @property {Boolean} data-thumbnail-cache
+ Determines whether to cache and resize images.
+ To improve performance, the size of image(s) displayed on the screen should be a square (under 128X128 pixels).
+ "data-thumbnail-cache" option resizes the gallery images under 128x128 pixels and stores the images on a local storage.
+ So when a gallery3D widget is re-launched, the widget reuses the storage and the launching time can be improved.
+ A browser or web runtime engine must support "Web Storage" feature to use this option.
*/
/**
- @property {String} data-template
- Defines the jQuery.template element ID.
- The jQuery.template must be defined. The template style can use rem units to support scalability.
+ @event select
+ Triggered when an image is selected.
+
+ <script>
+ $( "#gallery3d" ).on( "gallery3dcreate", function () {
+ $( "#gallery3d" ).gallery3d( "add", { src: "1.jpg" } )
+ .gallery3d( "add", { src: "2.jpg" } )
+ .gallery3d( "add", { src: "3.jpg" } );
+ }).on( "select", function ( event, data, index ) {
+ // Handle the select event
+ var urlOfImage = data.src, indexOfImage = index;
+ });
+ </script>
+ <div id="gallery3d" data-role="gallery3d"></div>
*/
/**
- @property {Number} data-row
- Defines the number of virtual list child elements.
- The minimum value is 20 and the default value is 100. As the value gets higher, the loading time increases while the system performance improves. So you need to pick a value that provides the best performance without excessive loading time.
+ @method next
+ This method moves each image forward one by one.
+
+ <script>
+ $( "#gallery3d" ).on( "gallery3dcreate", function () {
+ $( "#gallery3d" ).gallery3d( "add", { src: "1.jpg" } )
+ .gallery3d( "add", { src: "2.jpg" } )
+ .gallery3d( "add", { src: "3.jpg" } )
+ .gallery3d( "next" );
+ });
+ </script>
+ <div id="gallery3d" data-role="gallery3d"></div>
*/
/**
- @method create
- @param {function} itemData(index)
- : function itemData(index) returns the JSON object matched with the given index. The index value is between 0 and numItemData-1.
- @param {Number} numItemData
- : number numItemData or function numItemData() defines or returns a static number of items.
- @param {function} cacheItemData(minIndex, maxIndex)
- : function cacheItemData(minIndex, maxIndex) prepares the JSON data. This method is called before calling the itemData() method with index values between minIndex and maxIndex.
-*/
-
-(function ( $, undefined ) {
-
- /* Code for Virtual List Demo */
- var listCountPerPage = {}, /* Keeps track of the number of lists per page UID. This allows support for multiple nested list in the same page. https://github.com/jquery/jquery-mobile/issues/1617 */
- _NO_SCROLL = 0, /* ENUM */
- _SCROLL_DOWN = 1, /* ENUM */
- _SCROLL_UP = -1; /* ENUM */
-
- $.widget( "tizen.virtuallistview", $.mobile.widget, {
- options: {
- theme: "s",
- countTheme: "s",
- headerTheme: "s",
- dividerTheme: "s",
- splitIcon: "arrow-r",
- splitTheme: "s",
- inset: false,
- id: "", /* Virtual list UL elemet's ID */
- childSelector: " li", /* To support swipe list */
- dbtable: "",
- template : "",
- dbkey: false, /* Data's unique Key */
- scrollview: false,
- row: 100,
- page_buf: 30,
- initSelector: ":jqmData(role='virtuallistview')"
- },
-
- _stylerMouseUp: function () {
- $( this ).addClass( "ui-btn-up-s" );
- $( this ).removeClass( "ui-btn-down-s" );
- },
-
- _stylerMouseDown: function () {
- $( this ).addClass( "ui-btn-down-s" );
- $( this ).removeClass( "ui-btn-up-s" );
- },
-
- _stylerMouseOver: function () {
- $( this ).toggleClass( "ui-btn-hover-s" );
- },
-
- _stylerMouseOut: function () {
- $( this ).toggleClass( "ui-btn-hover-s" );
- $( this ).addClass( "ui-btn-up-s" );
- $( this ).removeClass( "ui-btn-down-s" );
- },
-
- // ?
- // this virtuallistview object
- // @param[in] template template name(string)
- _pushData: function ( template ) {
- var o = this.options,
- i,
- myTemplate = $( "#" + template ), // Get template object
- // NOTE: o.row = # of rows handled at once. Default value is 100.
- lastIndex = ( o.row > this._numItemData ? this._numItemData : o.row ), // last index of handled data
- htmlData;
+ @method prev
+ This method moves each image backward one by one.
- for ( i = 0; i < lastIndex; i++ ) {
- htmlData = myTemplate.tmpl( this._itemData( i ) ); // Make rows with template,
- $( o.id ).append( $( htmlData ).attr( 'id', o.itemIDPrefix + i ) ); // and append it to the vlist object
- }
+ <script>
+ $( "#gallery3d" ).on( "gallery3dcreate", function () {
+ $( "#gallery3d" ).gallery3d( "add", { src: "1.jpg" } )
+ .gallery3d( "add", { src: "2.jpg" } )
+ .gallery3d( "add", { src: "3.jpg" } )
+ .gallery3d( "prev" );
+ });
+ </script>
+ <div id="gallery3d" data-role="gallery3d"></div>
+*/
+/**
+ @method select
+ When the "select" method is called with an argument, the method selects the image of given index.
+ If the method is called with no argument, it will return the Javascript object having "src" attribute having the selected image’s URL.
- // After pushing data re-style virtuallist widget
- $( o.id ).trigger( "create" );
- },
+ <script>
+ $( "#gallery3d" ).on( "gallery3dcreate", function () {
+ $( "#gallery3d" ).gallery3d( "add", { src: "1.jpg" } )
+ .gallery3d( "add", { src: "2.jpg" } )
+ .gallery3d( "add", { src: "3.jpg" } );
+ var selectedImage = $("#gallery3d"). gallery3d( "select" );
+ // selectedImage = { src: "3.jpg" };
+ });
+ </script>
+ <div id="gallery3d" data-role="gallery3d"></div>
+*/
+/**
+ @method add
+ This method adds an image to Gallery3D widget.
+ The first argument is a Javascript object having a "src" attribute or a string of image's path.
+ The second argument is an index of images.
+ If second argument isn't inputted, the image is added at the 0th position.
- // Set children <li> elements' position
- //
- // this: virtuallist element
- // event: virtuallistview.options
- // TODO: Why this arg name is 'event'? Not resonable.
- // (this function is not called with event element as args!)
- _reposition: function ( event ) {
- var o,
- t = this,
- padding,
- margin;
+ <script>
+ $( "#gallery3d" ).on( "gallery3dcreate", function () {
+ $( "#gallery3d" ).gallery3d( "add", { src: "1.jpg" } )
+ .gallery3d( "add", "2.jpg", 1 );
+ });
+ </script>
+ <div id="gallery3d" data-role="gallery3d"></div>
+*/
+/**
+ @method remove
+ This method deletes an image from Gallery3d widget.
+ The argument defines the index of the image to be deleted.
+ If an argument isn't inputted, it removes current image.
- if ( event.data ) {
- o = event.data;
- } else {
- o = event;
- }
- if ( $( o.id + o.childSelector ).size() > 0 ) { // $("#vlistid li")
- // first child's top position
- // NOTE: the first element may not be '0'!!!
- t._title_h = $( o.id + o.childSelector + ':first' ).position().top;
- // first child's outer height (TODO: reuse selected items)
- t._line_h = $( o.id + o.childSelector + ':first' ).outerHeight();
+ <script>
+ $( "#gallery3d" ).on( "gallery3dcreate", function () {
+ $( "#gallery3d" ).gallery3d( "add", { src: "1.jpg" } )
+ .gallery3d( "add", { src: "2.jpg" } )
+ .gallery3d( "add", { src: "3.jpg" } );
- // container(vlist element)'s innerwidth
- t._container_w = $( o.id ).innerWidth();
+ $( "#gallery3d" ).gallery3d( "remove" );
+ $( "#gallery3d" ).gallery3d( "remove", 1 );
+ });
+ </script>
+ <div id="gallery3d" data-role="gallery3d"></div>
+*/
+/**
+ @method clearThumbnailCache
+ This method clears the cache data of all images when thumbnailCache option is set as 'true'
- // get sum of container's left/right padding
- padding = parseInt( $( o.id + o.childSelector ).css( "padding-left" ), 10 )
- + parseInt( $( o.id + o.childSelector ).css( "padding-right" ), 10 );
+ <script>
+ $( "#gallery3d" ).on( "gallery3dcreate", function () {
+ $( "#gallery3d" ).gallery3d( "add", { src: "1.jpg" } )
+ .gallery3d( "add", { src: "2.jpg" } )
+ .gallery3d( "add", { src: "3.jpg" } );
- // Add CSS to all <li> elements
- // * absolute position
- // * btn-up
- // * mouse up/down/over/out styles
- $( o.id + ">" + o.childSelector )
- .addClass( "position_absolute" )
- .addClass( "ui-btn-up-s" )
- .bind( "mouseup", t._stylerMouseUp )
- .bind( "mousedown", t._stylerMouseDown )
- .bind( "mouseover", t._stylerMouseOver )
- .bind( "mouseout", t._stylerMouseOut );
- }
+ $( "#gallery3d" ).gallery3d( "clearThumbnailCache" );
+ });
+ </script>
+ <div id="gallery3d" data-role="gallery3d" data-thumbnail-cache="true"></div>
+*/
+/**
+ @method refresh
+ This method updates and redraws current widget.
- // Set absolute top/left position of each <li>
- $( o.id + ">" + o.childSelector ).each( function ( index ) {
- margin = parseInt( $( this ).css( "margin-left" ), 10 )
- + parseInt( $( this ).css( "margin-right" ), 10 );
+ <script>
+ $( "#gallery3d" ).on( "gallery3dcreate", function () {
+ $( "#gallery3d" ).gallery3d( "add", { src: "1.jpg" } )
+ .gallery3d( "add", { src: "2.jpg" } )
+ .gallery3d( "add", { src: "3.jpg" } );
- $( this ).css( "top", t._title_h + t._line_h * index + 'px' )
- .css( "width", t._container_w - padding - margin );
- } );
+ $( "#gallery3d" ).gallery3d( "refresh" );
+ });
+ </script>
+ <div id="gallery3d" data-role="gallery3d"></div>
+*/
+/**
+ @method empty
+ This method removes all of images from Gallery3D widget.
- // Set Max Listview Height
- $( o.id ).height( t._numItemData * t._line_h );
- },
+ <script>
+ $( "#gallery3d" ).on( "gallery3dcreate", function () {
+ $( "#gallery3d" ).gallery3d( "add", { src: "1.jpg" } )
+ .gallery3d( "add", { src: "2.jpg" } )
+ .gallery3d( "add", { src: "3.jpg" } );
- _resize: function ( event ) {
- var o,
- t = this,
- padding,
- margin;
+ $( "#gallery3d" ).gallery3d( "empty" );
+ });
+ </script>
+ <div id="gallery3d" data-role="gallery3d"></div>
+*/
+/**
+ @method length
+ This method gets the number of images.
- if ( event.data ) {
- o = event.data;
- } else {
- o = event;
- }
+ <script>
+ $( "#gallery3d" ).on( "gallery3dcreate", function () {
+ $( "#gallery3d" ).gallery3d( "add", { src: "1.jpg" } )
+ .gallery3d( "add", { src: "2.jpg" } )
+ .gallery3d( "add", { src: "3.jpg" } );
- t._container_w = $( o.id ).innerWidth();
+ var imagesLength = $( "#gallery3d" ).gallery3d( "length" );
+ // imagesLength = 3;
+ });
+ </script>
+ <div id="gallery3d" data-role="gallery3d"></div>
+*/
- padding = parseInt( $( o.id + o.childSelector ).css( "padding-left" ), 10 )
- + parseInt( $( o.id + o.childSelector ).css( "padding-right" ), 10 );
+( function ( $, document, window, undefined ) {
+ window.requestAnimationFrame = ( function () {
+ return function ( callback ) {
+ var id = window.setTimeout( callback, 1000 / 60 );
+ return id;
+ };
+ } () );
- $( o.id + o.childSelector ).each( function (index) {
- margin = parseInt( $( this ).css( "margin-left" ), 10 )
- + parseInt( $( this ).css( "margin-right" ), 10 );
- $( this ).css( "width", t._container_w - padding - margin );
- } );
- },
+ window.cancelAnimationFrame = ( function () {
+ return function ( id ) {
+ window.clearTimeout( id );
+ };
+ } () );
- // New scrollmove function supporting scrollTo
- _scrollmove: function ( ev ) {
- var t = ev.data, // vlist (JQM object)
- o = t.options, // options
- prevTopBufLen = t._num_top_items, // Previous(remembered) top buf length
- timerInterval = 100,
- i,
- _scrollView,
- _normalScroll;
+ var vec3 = window.vec3,
+ mat3 = window.mat3,
+ mat4 = window.mat4,
+ GlArray32 = ( typeof window.Float32Array !== "undefined" ? window.Float32Array : ( typeof window.WebGLFloatArray !== "undefined" ? window.WebGLFloatArray : Array ) ),
+ GlArray16 = ( typeof window.Uint16Array !== "undefined" ? window.Uint16Array : Array ),
+ getContext3D = function ( canvas ) {
+ var gl, i,
+ contextNames = [ "experimental-webgl", "webkit-3d", "webgl", "moz-webgl" ];
- _scrollView = {
- viewTop: function ( ) {
- var sv = $( o.id ).parentsUntil( ".ui-page" ).find( ".ui-scrollview-view" ),
- svTrans = sv.css( "-webkit-transform" ),
- svTransVal = "0,0,0,0,0,0";
- if ( svTrans ) {
- svTransVal = svTrans.replace( /matrix\s*\((.*)\)/, "$1" ); // matrix(a,c,b,d,tx,ty)
+ for ( i = 0; i < contextNames.length; i += 1 ) {
+ try {
+ gl = canvas.getContext( contextNames[i] );
+ if ( gl ) {
+ break;
}
- return - parseInt( svTransVal.split(',')[5], 10 );
- }
- };
- _normalScroll = {
- viewTop: function ( ) {
- return $( window ).scrollTop( ); // TODO: - _line_h?
- }
- };
- // Get current view top position
- function viewTop ( ) {
- return o.scrollview ? _scrollView.viewTop() : _normalScroll.viewTop();
- }
- // log function for debug
- function log ( msg ) {
- var debug = false;
- if ( debug ) {
- console.log( ">>virtualllist: " + msg );
+ } catch ( e ) {
+ window.alert( "Unfortunately, there's a WebGL compatibility problem. </br> You may want to check your system settings." );
+ return;
}
}
+ return gl;
+ },
+ VERTEX_SHADER = [
+ "attribute vec3 aVertexPosition;",
+ "attribute vec2 aTextureCoord;",
+ "attribute vec3 aVertexNormal;",
+ "uniform mat4 uMoveMatrix;",
+ "uniform mat4 uPerspectiveMatrix;",
+ "uniform mat3 nNormalMatrix;",
+ "uniform vec3 uAmbientColor;",
+ "uniform vec3 uLightDirection;",
+ "uniform vec3 uDirectionColor;",
+ "uniform vec3 uLightDirection_first;",
+ "uniform vec3 uLightDirection_second;",
+ "varying vec2 vTextureCoord;",
+ "varying vec3 vLightWeight;",
+ "varying vec4 vFogWeight;",
- // Timer interval function
- // @param[in] vl virtuallist object (JQM object)
- function timerMove ( vl, undefined ) {
- var cy, // current y position
- cti, // current top idx
- cbi, // current bottom idx
- oti = vl._first_index, // old top idx
- obi = vl._last_index, // old botton idx
- dti, // delta of top idx
- fromIdx,
- toIdx, // index range to be moved
- delta, // moveItem delta
- rowLen = vl.options.row, // max. # of items handled at once
- bufSize, // top/bottom buffer size. unit: # of items
- i;
-
- // subroutine: Move itemContents in i2 into i1
- function moveItemContents( vl, i1, i2 ) {
- // TODO: Find a efficient way to replace data!
- // Assumption: i1 and i2 has same children.
- var NODETYPE = { ELEMENT_NODE: 1, TEXT_NODE: 3 },
- c1, // child item 1 (old)
- c2, // child item 2 (new)
- newText,
- newImg,
- i;
-
- $( i1 ).find( ".ui-li-text-main", ".ui-li-text-sub", ".ui-li-text-sub2", "ui-btn-text" ).each( function ( index ) {
- c1 = $( this );
- newText = $( i2 ).find( ".ui-li-text-main", ".ui-li-text-sub", "ui-btn-text" ).eq( index ).text();
+ "void main(void) {",
+ " vec4 v_Position = uMoveMatrix * vec4(aVertexPosition, 1.0);",
+ " gl_Position = uPerspectiveMatrix * v_Position;",
+ " vTextureCoord = aTextureCoord;",
+ " float fog = 1.0 - ((gl_Position.z + 1.5) / 60.0);",
+ " vFogWeight = clamp( vec4( fog, fog, fog, 1.0), 0.6, 1.0);",
+ " vec3 transNormalVector = nNormalMatrix * aVertexNormal;",
- $( c1 ).contents().filter( function () {
- return ( this.nodeType == NODETYPE.TEXT_NODE );
- } ).get( 0 ).data = newText;
- } );
+ " float vLightWeightFirst = 0.0;",
+ " float vLightWeightSecond = max( dot(transNormalVector, uLightDirection_second), 0.0 );",
- $( i1 ).find( "img" ).each( function ( imgIdx ) {
- var c1 = $( this );
- newImg = $( i2 ).find( "img" ).eq( imgIdx ).attr( "src" );
+ " vLightWeight = uAmbientColor + uDirectionColor * vLightWeightSecond;",
+ "}"
+ ].join( "\n" ),
+ FRAGMENT_SHADER = [
+ "precision mediump float;",
+ "varying vec2 vTextureCoord;",
+ "varying vec3 vLightWeight;",
+ "uniform sampler2D uSampler;",
+ "varying vec4 vFogWeight;",
- $( c1 ).attr( "src", newImg );
- } );
+ "void main(void) {",
+ " vec4 TextureColor;",
+ " if ( vTextureCoord.s <= 0.01 || vTextureCoord.s >= 0.99 || vTextureCoord.t <= 0.01 || vTextureCoord.t >= 0.99 ) {",
+ " TextureColor = vec4(1.0, 1.0, 1.0, 0.5);",
+ " } else {",
+ " TextureColor = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));",
+ " }",
+ " TextureColor *= vFogWeight;",
+ " gl_FragColor = vec4(TextureColor.rgb * vLightWeight, TextureColor.a);",
+ "}"
+ ].join( "\n" );
- $( i1 ).removeData( ); // Clear old data
- }
+ function Node() {
+ this.vertices = [
+ -1.0, -1.0, 0.0,
+ 1.0, -1.0, 0.0,
+ 1.0, 1.0, 0.0,
+ -1.0, 1.0, 0.0
+ ];
+ this.textureCoords = [
+ 1.0, 0.0,
+ 0.0, 0.0,
+ 0.0, 1.0,
+ 1.0, 1.0
+ ];
+ this.normalVectors = [
+ 0.0, 0.0, 1.0,
+ 0.0, 0.0, 1.0,
+ 0.0, 0.0, 1.0,
+ 0.0, 0.0, 1.0
+ ];
+ this.texture = null;
+ this.textureBuffer = null;
+ this.textureBufferItemSize = 0;
+ this.mashOrder = [];
+ this.mvMatrix = null;
+ this.level = -1;
+ this.targetLevel = 0;
+ this.drawable = false;
+ this.image = null;
+ this.imageID = 0;
+ }
- // subroutine: Move item
- function moveItem( vl, fromIdx, toIdx ) {
- var itemData, // data from itemData()
- item, // item element
- newItem, // new item element
- tmpl; // template
+ $.widget( "tizen.gallery3d", $.mobile.widget, {
+ options: {
+ thumbnailCache: false
+ },
- log( ">> move item: " + fromIdx + " --> " + toIdx );
+ _MAX_ITEM_COUNT: 28,
+ _ANIMATION_END: 999,
+ _DURATION_DEFAULT: 300,
+ _DURATION_FIRST: 1600,
+ _VIEWPORT_WIDTH: 1024,
+ _VIEWPORT_HEIGHT: 456,
+ _DIRECTION_LEFT: -1,
+ _DIRECTION_RIGHT: +1,
- // Find current item
- item = $( '#' + vl.options.itemIDPrefix + fromIdx ); // TODO: refactor ID generation!
- if ( ! item || ! item.length ) {
- return false;
- }
+ _gl: null,
+ _shaderProgram : null,
+ _positionBuffer : null,
+ _textureCoordBuffer : null,
+ _normalVectorBuffer : null,
+ _nodes: null,
+ _pMatrix : null,
+ _animationID: 0,
+ _dragInterval : 0,
+ _startTime : 0,
+ _sumTime : 0,
+ _lightsPositionStack : [
+ [0.0, 0.0, -1.0], // back
+ [-0.2, 0.0, 0.7] // front
+ ],
+ _path: null,
+ _swipeThresholdOfBasetimeGap: ( $.support.touch ? 30 : 70 ),
+ _swipeThresholdOfSensitivity: ( $.support.touch ? 2.0 : 10.0 ),
+ _canvas: null,
+ _imageList: [],
+ _maxDrawLength: 0,
+ _firstImageNumber: 0,
+ _lastImageNumber: 0,
- // Get new item
- tmpl = $( "#" + vl.options.template );
- if ( tmpl ) {
- newItem = tmpl.tmpl( vl._itemData( toIdx ) );
+ _create: function () {
+ var self = this,
+ view = self.element,
+ option = self.options;
- // TODO: Consider touch block while moving?
+ self._canvas = $( "<canvas class='ui-gallery3d-canvas'></canvas>" );
- // Move item contents
- moveItemContents( vl, item, newItem );
+ view.addClass( "ui-gallery3d" ).append( self._canvas );
+ self._addBehavier();
- // clean up temporary item
- newItem.remove();
- }
+ self._dragInterval = 1000 / 30; // 30fps
- // Move position, and set id
- item.css( 'top', toIdx * vl._line_h )
- .attr( 'id' , vl.options.itemIDPrefix + toIdx ); // TODO: refactor ID generation!
+ $.each( self.options, function ( key, value ) {
+ self.options[ key ] = undefined;
+ self._setOption( key, value );
+ });
- // TODO: Apply jqmdata? check following old code;
- // $( oldItem ).removeData( ); // Clear old data
- // if (key) { $( oldItem ).data( key, $( newItem ).data( key ) ); }
+ },
- return true;
+ _setOption: function ( key, value ) {
+ switch ( key ) {
+ case "thumbnailCache" :
+ if ( typeof value === "string" ) {
+ value = ( value === "true" ) ? true : false;
+ } else {
+ value = !!value;
}
+ this._reset();
+ break;
+ }
+ $.mobile.widget.prototype._setOption.call( this, key, value );
+ },
- // Get current view position
- cy = viewTop();
+ _init: function ( canvas ) {
+ var self = this,
+ pathPoints = [
+ [40, 0, -48],
+ [-12, 0, -40], // contorl Point of Point1
+ [24, 0, -9], // contorl Point of Point2
+ [-5, 0, -5]
+ ],
+ i;
- // Calculate bufSize: rowLen / 3
- // NOTE: Assumption: total row length = visible items * 3 (upper+visible+lower)
- bufSize = Math.ceil( rowLen / 3 );
+ canvas = canvas || self._canvas;
- // Calculate current top/bottom index (to be applied)
- // top index = current position / line height
- cti = Math.floor( cy / vl._line_h ) - bufSize; // TODO: consider buffer!
- cbi = cti + rowLen - 1;
+ if ( !canvas ) {
+ return;
+ }
- if ( cti < 0 ) { // Top boundary check
- cbi += ( - cti );
- cti = 0;
- } else if ( cbi > ( vl._numItemData - 1 ) ) { // Bottom boundary check
- cti -= ( cbi - ( vl._numItemData - 1 ) );
- cbi = ( vl._numItemData - 1 );
- }
+ self._gl = self._gl || self._initGL( canvas[0] );
+ if ( !self._gl ) {
+ return;
+ }
- // Calculate dti
- dti = cti - oti;
- log( "cy=" + cy + ", oti=" + oti + ", obi=" + obi + ", cti=" + cti + ", cbi=" + cbi + ", dti=" + dti );
+ if ( !self._imageList ) {
+ return;
+ }
- // switch: dti = 0 --> timer stop condition: delta=0 or scrollstop event comes. END.
- if ( 0 == dti ) {
- // Check timer runtime
- vl.timerStillCount += 1;
- if ( vl.timerStillCount < 12 ) { // check count ( TODO: test and adjust )
- log("dti=0 " + vl.timerStillCount + " times");
- vl.timerMoveID = setTimeout( timerMove, timerInterval, vl ); // run once more
- return;
- }
+ self._shaderProgram = self._shaderProgram || self._initShader( self._gl );
+ if ( !self._shaderProgram ) {
+ return;
+ }
- log("dti=0 " + vl.timerStillCount + " times. End timer.");
- vl.timerStillCount = 0;
- // Stop timer
- if ( vl.timerMoveID ) {
- clearTimeout( vl.timerMoveID );
- vl.timerMoveID = null;
- }
- } else {
- // switch: dti >= # of max elements --> total replace.
- vl.timerStillCount = 0; // Reset still counter
+ if ( self._imageList.length > self._MAX_ITEM_COUNT ) {
+ self._firstImageNumber = self._imageList.length - 1;
+ self._lastImageNumber = self._MAX_ITEM_COUNT - 1;
+ }
- if ( Math.abs( dti ) >= rowLen ) {
- fromIdx = oti;
- toIdx = obi;
- delta = dti;
- log( ">>> WHOLE CHANGE! delta=" + delta );
- } else {
- // switch: dti < # of max elements --> move t2b or b2t until new top/bottom idx is covered
- if ( dti > 0 ) {
- fromIdx = oti;
- toIdx = oti + dti - 1;
- delta = rowLen;
- } else {
- fromIdx = obi + dti + 1; // dti < 0
- toIdx = obi;
- delta = -rowLen;
- }
- log( ">>> partial change. delta=" + delta );
- }
+ self._nodes = self._initBuffers( self._gl, self._shaderProgram );
- // Move items
- for ( i = fromIdx; i <= toIdx; i++ ) {
- moveItem( vl, i, i + delta ); // Change data and position
- }
+ self._initTextures( self._gl, self._nodes );
- // Store current top/bottom idx into vl
- vl._first_index = cti;
- vl._last_index = cbi;
+ self._path = $.motionpath( "bezier2d", {
+ points: pathPoints,
+ maxLevel: self._MAX_ITEM_COUNT
+ } );
+ for ( i = 0; i < self._nodes.length; i += 1 ) {
+ self._path.levels[i] = self._path.levels[i + 1] || 0;
+ self._nodes[i].level = i;
+ }
+ },
- // Register timer to check again
- vl.timerMoveID = setTimeout( timerMove, timerInterval, vl );
- }
- return; // End of function
+ _final: function ( canvas ) {
+ var self = this,
+ gl = self._gl;
+
+ if ( !gl ) {
+ return;
}
- // ==== function start ====
+ canvas = canvas || self._canvas;
- t.timerStillCount = 0; // Count do-nothing time. For behavior tuning.
+ $( self._nodes ).each( function ( i ) {
+ var node = self._nodes[i];
+ gl.deleteTexture( node.texture );
+ node.texture = null;
+ });
+ self._nodes = null;
- // If a timer function is alive, clear it
- if ( t.timerMoveID ) {
- clearTimeout( t.timerMoveID );
- t.timerMoveID = null;
- }
- // run TimerMove()
- timerMove( t );
+ gl.deleteBuffer( self._positionBuffer );
+ self._positionBuffer = null;
+ gl.deleteBuffer( self._textureCoordBuffer );
+ self._textureCoordBuffer = null;
+ gl.deleteBuffer( self._normalVectorBuffer );
+ self._normalVectorBuffer = null;
+
+ $.webgl.shader.deleteShaders( gl );
+ gl.deleteProgram( self._shaderProgram );
+ self._shaderProgram = null;
+
+ self._gl = gl = null;
},
- _recreate: function ( newArray ) {
- var t = this,
- o = this.options;
+ _addBehavier : function () {
+ var self = this,
+ view = self.element,
+ canvas = self._canvas,
+ touchStartEvt = ( $.support.touch ? "touchstart" : "mousedown" ),
+ touchMoveEvt = ( $.support.touch ? "touchmove" : "mousemove" ) + ".gallery3d",
+ touchEndEvt = ( $.support.touch ? "touchend" : "mouseup" ) + ".gallery3d",
+ touchLeaveEvt = ( $.support.touch ? "touchleave" : "mouseout" ) + ".gallery3d";
- $( o.id ).empty();
+ $( document ).unbind( ".gallery3d" ).bind( "pagechange.gallery3d", function ( e ) {
+ $( e.target ).find( ".ui-gallery3d" ).gallery3d( "refresh" );
+ }).bind( "pageremove.gallery3d", function ( e ) {
+ $( e.target ).find( ".ui-gallery3d" ).trigger( "_destory" );
+ });
- t._numItemData = newArray.length;
- t._direction = _NO_SCROLL;
- t._first_index = 0;
- t._last_index = o.row - 1;
+ $( window ).unbind( ".gallery3d" ).bind( "resize.gallery3d orientationchange.gallery3d", function ( e ) {
+ $( ".ui-page-active" ).find( ".ui-gallery3d" ).gallery3d( "refresh" );
+ }).bind( "unload.gallery3d", function ( e ) {
+ $( e.target ).find( ".ui-gallery3d" ).trigger( "_destory" );
+ });
- t._pushData( o.template );
+ view.bind( "_destory", function ( e ) {
+ self._final();
+ });
- if (o.childSelector == " ul" ) {
- $( o.id + " ul" ).swipelist();
- }
+ canvas.bind( "webglcontextlost", function ( e ) {
+ e.preventDefault();
+ }).bind( "webglcontextrestored", function ( e ) {
+ self._init();
+ }).bind( touchStartEvt, function ( e ) {
+ var i = 0,
+ startX = 0,
+ deltaMaxSteps = 20,
+ deltas = [ deltaMaxSteps ],
+ deltaTimes = [ deltaMaxSteps ],
+ deltaIndex = 0,
+ dragValue = 0,
+ dragDirection = false,
+ prevTime = 0;
- $( o.id ).virtuallistview();
+ e.preventDefault();
+ e.stopPropagation();
- t.refresh( true );
+ if ( self._imageList.length <= 1 ) {
+ return;
+ }
- t._reposition( o );
- },
+ self._stop();
- // Init virtuallistview
- // this virtuallistview object
- _initList: function () {
- var t = this,
- o = this.options;
+ startX = $.support.touch ? e.originalEvent.changedTouches[0].pageX : e.pageX;
+ prevTime = $.now();
- /* After AJAX loading success */
+ for ( i = 0; i < deltaMaxSteps; i += 1 ) {
+ deltas[i] = startX;
+ deltaTimes[i] = $.now();
+ }
- // Put initial <li> elements
- t._pushData( o.template );
+ deltaIndex += 1;
- // find a parent page, and run _reposition() at 'pageshow' event
- // TODO: Consider replace parentsUntil().parent() to parent('.ui-page') ???
- $( o.id ).parentsUntil( ".ui-page" ).parent().one( "pageshow", function () {
- setTimeout( function () {
- t._reposition( o );
- }, 0);
- });
+ view.bind( touchMoveEvt, function ( e ) {
+ var x, dx, interval;
- // Bind _scrollmove() at 'scrollstart.virtuallist' event
- $( document ).bind( "scrollstart.virtuallist scrollstop.vrituallist", t, t._scrollmove );
+ e.preventDefault();
+ e.stopPropagation();
- // Bind _resize() at 'resize.virtuallist'
- $( window ).bind( "resize.virtuallist", t._resize );
+ x = $.support.touch ? e.originalEvent.changedTouches[0].pageX : e.pageX;
+ dx = startX - x;
- // when ul is a childselector, assume that this is also a swipelist,
- // and run swipelist constructor
- if ( o.childSelector == " ul" ) {
- $( o.id + " ul" ).swipelist();
- }
+ deltas[deltaIndex] = x;
+ deltaTimes[deltaIndex] = $.now();
+ interval = deltaTimes[deltaIndex] - prevTime;
- t.refresh( true );
- },
+ deltaIndex = ( deltaIndex + 1 ) % deltaMaxSteps;
- create: function () {
- var o = this.options;
+ // Validation of drag
+ if ( Math.abs( dx ) >= 10 && interval >= self._dragInterval ) {
+ if ( dragDirection !== ( ( dx < 0 ) ? self._DIRECTION_RIGHT : self._DIRECTION_LEFT ) ) {
+ dragValue = 0;
+ dragDirection = ( dx < 0 ) ? self._DIRECTION_RIGHT : self._DIRECTION_LEFT;
+ }
- /* external API for AJAX callback */
- this._create.apply( this, arguments );
+ dragValue += Math.abs( dx ) / 100;
+ if ( dragValue >= 1 ) {
+ self._setPosition( self._ANIMATION_END, dragDirection );
+ dragValue = 0;
+ } else {
+ self._setPosition( dragValue, dragDirection );
+ }
+ self._drawScene();
+ startX = x;
+ prevTime = $.now();
+ }
+ }).bind( touchEndEvt, function ( e ) {
+ var baseTime = 0,
+ recent = -1,
+ index = 0,
+ previous = 0,
+ baseTimeRatio = 0,
+ fx = 0,
+ lastX = 0,
+ velocityX = 0,
+ dx = 0,
+ isSwipe = true,
+ direction;
- // TODO: remove this line? _initList() calls reposition...
- this._reposition( o );
- },
+ e.preventDefault();
+ e.stopPropagation();
- _create: function ( args ) {
- // Extend instance variables
- $.extend( this, {
- _itemData : function ( idx ) { return null; },
- _numItemData : 0,
- _cacheItemData : function ( minIdx, maxIdx ) { },
- _title_h : 0,
- _container_w : 0,
- _minimum_row : 100,
- _direction : _NO_SCROLL,
- _first_index : 0,
- _last_index : 0,
- _num_top_items : 0 // By scroll move, number of hidden elements.
- } );
+ // Validation of swipe
+ baseTime = $.now() - self._swipeThresholdOfBasetimeGap;
+ lastX = $.support.touch ? e.originalEvent.changedTouches[0].pageX : e.pageX;
+ dx = startX - lastX;
+ startX = 0;
+ for ( i = 0; i < deltaMaxSteps; i += 1 ) {
+ index = ( deltaIndex + i ) % deltaMaxSteps;
+ if ( deltaTimes[index] > baseTime ) {
+ recent = index;
+ break;
+ }
+ }
+ if ( recent < 0 ) {
+ isSwipe = false;
+ }
- // local variables
- var t = this,
- o = this.options,
- $el = this.element,
- shortcutsContainer = $('<div class="ui-virtuallist"/>'),
- shortcutsList = $('<ul></ul>'),
- dividers = $el.find(':jqmData(role="virtuallistview" )'),
- lastListItem = null,
- shortcutscroll = this,
- dbtable_name,
- dbtable;
+ if ( isSwipe ) {
+ previous = recent;
+ for ( i = 0; i < deltaMaxSteps; i += 1 ) {
+ previous = ( previous - 1 + deltaMaxSteps ) % deltaMaxSteps;
+ if ( deltaTimes[previous] < deltaTimes[recent] ) {
+ break;
+ }
+ }
+ // too slow or too fast
+ if ( i === deltaMaxSteps || baseTime < deltaTimes[previous] ) {
+ isSwipe = false;
+ }
+ }
+
+ if ( isSwipe ) {
+ baseTimeRatio = ( baseTime - deltaTimes[previous] ) / ( deltaTimes[recent] - deltaTimes[previous] );
+ fx = ( 1.0 - baseTimeRatio ) * deltas[previous] + baseTimeRatio * deltas[recent];
+ if ( Math.abs( fx - lastX ) < self._swipeThresholdOfSensitivity ) {
+ fx = lastX;
+ }
+ velocityX = parseInt( ( lastX - fx ) / ( $.now() - baseTime ), 10 );
+ }
+
+ if ( isSwipe && velocityX ) {
+ direction = ( velocityX < 0 ) ? self._DIRECTION_LEFT : self._DIRECTION_RIGHT;
+ self._run( direction, Math.abs( velocityX ), dragValue );
+ } else if ( dragDirection !== 0 && dragValue ) {
+ self._animate( null, self._DURATION_DEFAULT * ( 1 - dragValue ), dragDirection, 0, dragValue );
+ }
+
+ view.unbind( ".gallery3d" );
+ }).bind( touchLeaveEvt, function ( e ) {
+ view.trigger( touchEndEvt );
+ });
+ });
+ },
+
+ // ----------------------------------------------------------
+ // WebGL
+ // ----------------------------------------------------------
+ _initGL: function ( canvas ) {
+ var self = this,
+ gl;
+ gl = getContext3D( canvas );
+ if ( !gl ) {
+ window.alert( "There's no WebGL context available!!!" );
+ return null;
+ }
- // Add CSS classes to $el (=virtuallistview)
- $el.addClass( function ( i, orig ) {
- return orig + " ui-listview ui-virtual-list-container" + ( t.options.inset ? " ui-listview-inset ui-corner-all ui-shadow " : "" );
- });
+ gl.enable( gl.BLEND );
+ gl.blendFunc( gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA );
- // keep the vlist's ID
- o.itemIDPrefix = $el.attr( "id" ) + '_';
- o.id = "#" + $el.attr( "id" );
+ gl.enable( gl.DEPTH_TEST );
+ gl.depthFunc( gl.LEQUAL );
- // when page hides, empty all child elements
- $( o.id ).bind( "pagehide", function ( e ) {
- $( o.id ).empty();
- });
+ canvas.width = self._VIEWPORT_WIDTH;
+ canvas.height = self._VIEWPORT_HEIGHT;
+ gl.viewportWidth = canvas.width;
+ gl.viewportHeight = canvas.height;
+ gl.viewport( 0, 0, gl.viewportWidth, gl.viewportHeight );
+ self._pMatrix = mat4.create();
+ mat4.perspective( 40, gl.viewportWidth / gl.viewportHeight, 0.1, 10000.0, self._pMatrix );
- // Find if scrollview is used
- if ( $( ".ui-scrollview-clip" ).size() > 0 ) {
- o.scrollview = true;
- } else {
- o.scrollview = false;
- }
+ gl.clearColor( 0.15, 0.15, 0.15, 1.0 );
+ gl.clear( gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT );
- // Calculate page buffer size
- if ( $el.data( "row" ) ) {
- o.row = $el.data( "row" );
+ return gl;
+ },
- if ( o.row < t._minimum_row ) {
- o.row = t._minimum_row;
- }
+ _initShader : function ( gl ) {
+ var self = this,
+ shaderProgram;
- o.page_buf = parseInt( ( o.row / 2 ), 10 );
- }
+ shaderProgram = $.webgl.shader.addShaderProgram( self._gl, VERTEX_SHADER, FRAGMENT_SHADER );
+ gl.useProgram( shaderProgram );
- // Get arguments
- if ( args ) {
- if ( args.itemData && typeof args.itemData == 'function' ) {
- t._itemData = args.itemData;
- } else {
- return;
- }
- if ( args.numItemData ) {
- if ( typeof args.numItemData == 'function' ) {
- t._numItemData = args.numItemData( );
- } else if ( typeof args.numItemData == 'number' ) {
- t._numItemData = args.numItemData;
- } else {
- return;
- }
- } else {
- return;
- }
- } else { // No option is given
- // Legacy support: dbtable
- console.warn( "WARNING: The data interface of virtuallist is changed. \nOld data interface(data-dbtable) is still supported, but will be removed in next version. \nPlease fix your code soon!" );
+ shaderProgram.vertexPositionAttr = gl.getAttribLocation( shaderProgram, "aVertexPosition" );
+ gl.enableVertexAttribArray( shaderProgram.vertexPositionAttr );
- /* After DB Load complete, Init Vritual list */
- if ( $( o.id ).hasClass( "vlLoadSuccess" ) ) {
- dbtable_name = $el.jqmData('dbtable');
- dbtable = window[ dbtable_name ];
+ shaderProgram.textureCoordAttr = gl.getAttribLocation( shaderProgram, "aTextureCoord" );
+ gl.enableVertexAttribArray( shaderProgram.textureCoordAttr );
- $( o.id ).empty();
+ // Set light normal vectors for lighting~
+ shaderProgram.vertexNormalAttr = gl.getAttribLocation( shaderProgram, "aVertexNormal" );
+ gl.enableVertexAttribArray( shaderProgram.vertexNormalAttr );
- if ( !dbtable ) {
- dbtable = { };
- }
+ shaderProgram.perspectiveMU = gl.getUniformLocation( shaderProgram, "uPerspectiveMatrix");
+ shaderProgram.transformMU = gl.getUniformLocation( shaderProgram, "uMoveMatrix");
+ shaderProgram.sampleUniform = gl.getUniformLocation( shaderProgram, "uSampler");
- t._itemData = function ( idx ) {
- return dbtable[ idx ];
- };
- t._numItemData = dbtable.length;
- } else {
- return; // Do nothing
- }
- }
+ // Set light variables~
+ shaderProgram.normalMU = gl.getUniformLocation( shaderProgram, "nNormalMatrix");
+ shaderProgram.ambientColorU = gl.getUniformLocation( shaderProgram, "uAmbientColor");
+ shaderProgram.lightDirU_first = gl.getUniformLocation( shaderProgram, "uLightDirection_first");
+ shaderProgram.lightDirU_second = gl.getUniformLocation( shaderProgram, "uLightDirection_second");
+ shaderProgram.directionColorU = gl.getUniformLocation( shaderProgram, "uDirectionColor");
- // Get template data
- if ( $el.data( "template" ) ) {
- o.template = $el.data( "template" );
+ return shaderProgram;
+ },
- /* to support swipe list, <li> or <ul> can be main node of virtual list. */
- if ( $el.data( "swipelist" ) == true ) {
- o.childSelector = " ul";
- } else {
- o.childSelector = " li";
- }
- }
+ _initBuffers: function ( gl, shaderProgram ) {
+ var self = this,
+ i = 0,
+ mashBase = 0,
+ vertices = [],
+ textureCoords = [],
+ normalVectors = [],
+ nodes = [],
+ maxDrawLength = self._MAX_ITEM_COUNT;
- // Set data's unique key
- // NOTE: Unnecessary?
- if ( $el.data( "dbkey" ) ) {
- o.dbkey = $el.data( "dbkey" );
- }
+ for ( i = 0; i < self._imageList.length + 1; i += 1 ) {
+ nodes[i] = new Node();
+ $.merge( vertices, nodes[i].vertices );
+ $.merge( textureCoords, nodes[i].textureCoords );
+ $.merge( normalVectors, nodes[i].normalVectors );
- t._first_index = 0; // initial top idx of <li> element.
- t._last_index = o.row - 1; // initial bottom idx of <li> element.
- t._initList(); // NOTE: Called at here only!
- },
+ nodes[i].textureBuffer = gl.createBuffer();
+ gl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, nodes[i].textureBuffer );
+ mashBase = i * 4;
+ nodes[i].meshOrder = [
+ mashBase, mashBase + 1, mashBase + 2,
+ mashBase + 2, mashBase + 3, mashBase
+ ];
+ gl.bufferData( gl.ELEMENT_ARRAY_BUFFER, new GlArray16( nodes[i].meshOrder ), gl.STATIC_DRAW );
+ gl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, null ); // release buffer memory
+ nodes[i].textureBufferItemSize = 6;
+ }
- destroy : function () {
- var o = this.options;
+ self._positionBuffer = $.webgl.buffer.attribBufferData( gl, new GlArray32( vertices ) );
+ self._positionBuffer.itemSize = 3;
- $( document ).unbind( "scrollstop" );
+ self._textureCoordBuffer = $.webgl.buffer.attribBufferData( gl, new GlArray32( textureCoords ) );
+ self._textureCoordBuffer.itemSize = 2;
- $( window ).unbind( "resize.virtuallist" );
+ self._normalVectorBuffer = $.webgl.buffer.attribBufferData( gl, new GlArray32( normalVectors ) ); // Vertex's normal vector for Direction light
+ self._normalVectorBuffer.itemSize = 3;
- $( o.id ).empty();
+ // Ambient light
+ gl.uniform3f( shaderProgram.ambientColorU, 0.1, 0.1, 0.1 );
+ // Direcntion light
+ gl.uniform3f( shaderProgram.directionColorU, 1.0, 1.0, 1.0 );
- if ( this.timerMoveID ) {
- clearTimeout( this.timerMoveID );
- this.timerMoveID = null;
- }
+ return nodes;
},
- _itemApply: function ( $list, item ) {
- var $countli = item.find( ".ui-li-count" );
+ // ----------------------------------------------------------
+ // Texture
+ // ----------------------------------------------------------
+ _initTextures: function ( gl, nodes ) {
+ var self = this;
- if ( $countli.length ) {
- item.addClass( "ui-li-has-count" );
- }
+ $( nodes ).each( function ( i ) {
+ var node = nodes[i],
+ url;
- $countli.addClass( "ui-btn-up-" + ( $list.jqmData( "counttheme" ) || this.options.countTheme ) + " ui-btn-corner-all" );
+ if ( !self._imageList[i] ) {
+ return false;
+ }
- // TODO class has to be defined in markup
- item.find( "h1, h2, h3, h4, h5, h6" ).addClass( "ui-li-heading" ).end()
- .find( "p, dl" ).addClass( "ui-li-desc" ).end()
- .find( ">img:eq(0), .ui-link-inherit>img:eq(0)" ).addClass( "ui-li-thumb" ).each( function () {
- item.addClass( $( this ).is( ".ui-li-icon" ) ? "ui-li-has-icon" : "ui-li-has-thumb" );
- }).end()
- .find( ".ui-li-aside" ).each(function () {
- var $this = $( this );
- $this.prependTo( $this.parent() ); //shift aside to front for css float
- } );
+ url = self._imageList[i].src;
+ node.texture = gl.createTexture();
+ self._loadImage( url, i, i, gl, nodes );
+ });
},
- _removeCorners: function ( li, which ) {
- var top = "ui-corner-top ui-corner-tr ui-corner-tl",
- bot = "ui-corner-bottom ui-corner-br ui-corner-bl";
+ _loadImage: function ( url, i, imageID, gl, nodes ) {
+ var self = this,
+ isMipmap = false,
+ image,
+ node;
- li = li.add( li.find( ".ui-btn-inner, .ui-li-link-alt, .ui-li-thumb" ) );
+ gl = gl || self._gl;
+ nodes = nodes || self._nodes;
+ isMipmap = isMipmap || false;
+ node = nodes[i];
+ node.image = node.image || new Image();
- if ( which === "top" ) {
- li.removeClass( top );
- } else if ( which === "bottom" ) {
- li.removeClass( bot );
+ $( node.image ).one( "load", function ( e ) {
+ self._bindTexture( gl, node, this, isMipmap );
+ node.imageID = imageID;
+
+ if ( !self._animationID ) {
+ self._setPosition( 0, 0 );
+ }
+ });
+
+ if ( self.options.thumbnailCache ) {
+ $.imageloader.getThumbnail( url, function ( result ) {
+ if ( result === "NOT_FOUND_ERR" ) {
+ $.imageloader.setThumbnail( url, function ( result ) {
+ if ( result && result.length > 30 ) {
+ node.image.src = result;
+ isMipmap = true;
+ } else {
+ node.image.src = url;
+ }
+ });
+ } else if ( result && result.length > 30 ) {
+ node.image.src = result;
+ isMipmap = true;
+ } else {
+ node.image.src = url;
+ }
+ });
} else {
- li.removeClass( top + " " + bot );
+ node.image.src = url;
}
},
- _refreshCorners: function ( create ) {
- var $li,
- $visibleli,
- $topli,
- $bottomli;
+ _bindTexture: function ( gl, node, image, isMipmap ) {
+ if ( !node || !node.texture ) {
+ return;
+ }
- if ( this.options.inset ) {
- $li = this.element.children( "li" );
- // at create time the li are not visible yet so we need to rely on .ui-screen-hidden
- $visibleli = create ? $li.not( ".ui-screen-hidden" ) : $li.filter( ":visible" );
+ gl.pixelStorei( gl.UNPACK_FLIP_Y_WEBGL, true );
- this._removeCorners( $li );
+ gl.bindTexture( gl.TEXTURE_2D, node.texture );
+ gl.texImage2D( gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image );
- // Select the first visible li element
- $topli = $visibleli.first()
- .addClass( "ui-corner-top" );
+ if ( isMipmap ) {
+ gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR );
+ gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_NEAREST );
+ gl.generateMipmap( gl.TEXTURE_2D );
+ } else {
+ gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR );
+ gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR );
+ }
- $topli.add( $topli.find( ".ui-btn-inner" ) )
- .find( ".ui-li-link-alt" )
- .addClass( "ui-corner-tr" )
- .end()
- .find( ".ui-li-thumb" )
- .not( ".ui-li-icon" )
- .addClass( "ui-corner-tl" );
+ gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE );
+ gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE );
- // Select the last visible li element
- $bottomli = $visibleli.last()
- .addClass( "ui-corner-bottom" );
+ node.texture.loaded = true;
- $bottomli.add( $bottomli.find( ".ui-btn-inner" ) )
- .find( ".ui-li-link-alt" )
- .addClass( "ui-corner-br" )
- .end()
- .find( ".ui-li-thumb" )
- .not( ".ui-li-icon" )
- .addClass( "ui-corner-bl" );
- }
+ // release texture memory
+ gl.bindTexture( gl.TEXTURE_2D, null );
},
- // this virtuallistview object
- refresh: function ( create ) {
- this.parentPage = this.element.closest( ".ui-page" );
- // Make sub page, and move the virtuallist into it...
- // NOTE: check this subroutine.
- this._createSubPages();
+ // ----------------------------------------------------------
+ // rendering
+ // ----------------------------------------------------------
+ _setPosition: function ( progress, direction ) {
+ var self = this,
+ nodes = self._nodes,
+ imageList = self._imageList,
+ imageListLength = imageList.length,
+ itemCount = self._MAX_ITEM_COUNT,
+ displayLength = ( imageListLength > itemCount ) ? itemCount : imageListLength,
+ nextLevelLenth = 0,
+ i = 0,
+ t = 0,
+ position = 0,
+ angle = 0,
+ current = 0,
+ next = 0,
+ nextLevel = 0,
+ path = self._path,
+ nextImageID = 0;
- var o = this.options,
- $list = this.element,
- self = this,
- dividertheme = $list.jqmData( "dividertheme" ) || o.dividerTheme,
- listsplittheme = $list.jqmData( "splittheme" ),
- listspliticon = $list.jqmData( "spliticon" ),
- li = $list.children( "li" ),
- counter = $.support.cssPseudoElement || !$.nodeName( $list[ 0 ], "ol" ) ? 0 : 1,
- item,
- itemClass,
- temTheme,
- a,
- last,
- splittheme,
- countParent,
- icon,
- pos,
- numli,
- itemTheme;
+ nextLevelLenth = ( direction >= 0 ) ? displayLength + 1 : displayLength;
- // TODO: ?
- if ( counter ) {
- $list.find( ".ui-li-dec" ).remove();
+ if ( !nodes[i].level ) {
+ nodes[i].level = displayLength;
}
- for ( pos = 0, numli = li.length; pos < numli; pos++ ) {
- item = li.eq( pos );
- itemClass = "ui-li";
+ for ( i = 0; i < displayLength; i += 1 ) {
+ if ( !nodes[i].mvMatrix ) {
+ nodes[i].mvMatrix = mat4.create();
+ }
- // If we're creating the element, we update it regardless
- if ( create || !item.hasClass( "ui-li" ) ) {
- itemTheme = item.jqmData( "theme" ) || o.theme;
- a = item.children( "a" );
+ if ( direction > 0 && nodes[i].level >= displayLength ) {
+ nodes[i].level = 0;
+ }
- if ( a.length ) {
- icon = item.jqmData( "icon" );
+ current = path.levels[nodes[i].level];
+ nextLevel = ( nodes[i].level + nextLevelLenth + direction ) % nextLevelLenth;
+ next = path.levels[nextLevel];
- item.buttonMarkup({
- wrapperEls: "div",
- shadow: false,
- corners: false,
- iconpos: "right",
- /* icon: a.length > 1 || icon === false ? false : icon || "arrow-r",*/
- icon: false, /* Remove unnecessary arrow icon */
- theme: itemTheme
- });
+ if ( imageListLength > itemCount ) {
+ if ( direction > 0 && nextLevel === 1
+ && self._firstImageNumber !== nodes[i].imageID ) {
+ self._loadImage( imageList[self._firstImageNumber].src, i, self._firstImageNumber );
+ } else if ( direction < 0 && nextLevel === nextLevelLenth - 1
+ && self._lastImageNumber !== nodes[i].imageID ) {
+ self._loadImage( imageList[self._lastImageNumber].src, i, self._lastImageNumber );
+ }
+ }
- if ( ( icon != false ) && ( a.length == 1 ) ) {
- item.addClass( "ui-li-has-arrow" );
- }
+ mat4.identity( nodes[i].mvMatrix );
+ mat4.translate( nodes[i].mvMatrix, [-2.0, -2.0, 1.0] );
+ mat4.rotate( nodes[i].mvMatrix, self._degreeToRadian( 19 ), [1, 0, 0] );
- a.first().addClass( "ui-link-inherit" );
+ t = ( current + ( next - current ) * ( ( progress > 1 ) ? 1 : progress ) );
- if ( a.length > 1 ) {
- itemClass += " ui-li-has-alt";
+ if ( progress >= self._ANIMATION_END ) {
+ nodes[i].level = nextLevel || displayLength;
+ t = path.levels[nodes[i].level];
+ }
- last = a.last();
- splittheme = listsplittheme || last.jqmData( "theme" ) || o.splitTheme;
+ if ( ( progress < self._ANIMATION_END )
+ && ( direction <= 0 && nodes[i].level < 1 ) ) {
+ nodes[i].drawable = false;
+ } else {
+ nodes[i].drawable = true;
+ }
- last.appendTo(item)
- .attr( "title", last.getEncodedText() )
- .addClass( "ui-li-link-alt" )
- .empty()
- .buttonMarkup({
- shadow: false,
- corners: false,
- theme: itemTheme,
- icon: false,
- iconpos: false
- })
- .find( ".ui-btn-inner" )
- .append(
- $( "<span />" ).buttonMarkup({
- shadow: true,
- corners: true,
- theme: splittheme,
- iconpos: "notext",
- icon: listspliticon || last.jqmData( "icon" ) || o.splitIcon
- })
- );
- }
- } else if ( item.jqmData( "role" ) === "list-divider" ) {
+ if ( progress === self._ANIMATION_END && nodes[i].level === 1 ) {
+ self.element.trigger( "select", imageList[ nodes[i].imageID ], nodes[i].imageID );
+ }
- itemClass += " ui-li-divider ui-btn ui-bar-" + dividertheme;
- item.attr( "role", "heading" );
+ position = path.getPosition( t );
+ angle = path.getAngle( t );
- //reset counter when a divider heading is encountered
- if ( counter ) {
- counter = 1;
- }
+ mat4.translate( nodes[i].mvMatrix, position );
+ mat4.rotate( nodes[i].mvMatrix, angle, [0, 1, 0] );
+ }
- } else {
- itemClass += " ui-li-static ui-body-" + itemTheme;
- }
+ if ( imageListLength > itemCount && progress >= self._ANIMATION_END ) {
+ self._firstImageNumber = ( self._firstImageNumber - direction ) % imageListLength;
+ if ( self._firstImageNumber < 0 ) {
+ self._firstImageNumber = imageListLength - 1;
}
- if ( counter && itemClass.indexOf( "ui-li-divider" ) < 0 ) {
- countParent = item.is( ".ui-li-static:first" ) ? item : item.find( ".ui-link-inherit" );
-
- countParent.addClass( "ui-li-jsnumbering" )
- .prepend( "<span class='ui-li-dec'>" + (counter++) + ". </span>" );
+ self._lastImageNumber = ( self._lastImageNumber - direction ) % imageListLength;
+ if ( self._lastImageNumber < 0 ) {
+ self._lastImageNumber = imageListLength - 1;
}
+ }
+ self._drawScene();
+ },
- item.add( item.children( ".ui-btn-inner" ) ).addClass( itemClass );
-
- self._itemApply( $list, item );
+ _drawScene: function () {
+ if ( !this._gl || !this._shaderProgram ) {
+ return;
}
- this._refreshCorners( create );
- },
+ var self = this,
+ gl = self._gl,
+ shaderProgram = self._shaderProgram,
+ nodes = self._nodes,
+ nodesLength = nodes.length,
+ i;
- //create a string for ID/subpage url creation
- _idStringEscape: function ( str ) {
- return str.replace(/\W/g , "-");
+ gl.clear( gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT );
+
+ gl.bindBuffer( gl.ARRAY_BUFFER, self._positionBuffer );
+ gl.vertexAttribPointer( shaderProgram.vertexPositionAttr, self._positionBuffer.itemSize, gl.FLOAT, false, 0, 0 );
+
+ gl.bindBuffer( gl.ARRAY_BUFFER, self._textureCoordBuffer );
+ gl.vertexAttribPointer( shaderProgram.textureCoordAttr, self._textureCoordBuffer.itemSize, gl.FLOAT, false, 0, 0 );
+
+ gl.bindBuffer( gl.ARRAY_BUFFER, self._normalVectorBuffer );
+ gl.vertexAttribPointer( shaderProgram.vertexNormalAttr, self._normalVectorBuffer.itemSize, gl.FLOAT, false, 0, 0 );
+
+ for ( i = 0; i < nodesLength; i += 1 ) {
+ if ( nodes[i].drawable ) {
+ self._drawElement( self._pMatrix, nodes[i] );
+ }
+ }
},
- // ?
- // this virtuallistview object
- _createSubPages: function () {
- var parentList = this.element,
- parentPage = parentList.closest( ".ui-page" ),
- parentUrl = parentPage.jqmData( "url" ),
- parentId = parentUrl || parentPage[ 0 ][ $.expando ],
- parentListId = parentList.attr( "id" ),
- o = this.options,
- dns = "data-" + $.mobile.ns,
- self = this,
- persistentFooterID = parentPage.find( ":jqmData(role='footer')" ).jqmData( "id" ),
- hasSubPages,
- newRemove;
+ _drawElement: function ( perspectiveMatrix, targetNode ) {
+ var self = this,
+ gl = self._gl,
+ shaderProgram = self._shaderProgram,
+ moveMatrix = targetNode.mvMatrix,
+ texture = targetNode.texture,
+ meshIndexBuffer = targetNode.textureBuffer,
+ meshIndexBufferItemSize = targetNode.textureBufferItemSize,
+ lightPositions = self._lightsPositionStack,
+ LightDir,
+ normalMatrix;
- if ( typeof listCountPerPage[ parentId ] === "undefined" ) {
- listCountPerPage[ parentId ] = -1;
+ if ( !moveMatrix ) {
+ return;
}
- parentListId = parentListId || ++listCountPerPage[ parentId ];
+ gl.activeTexture( gl.TEXTURE0 );
+ if ( texture && texture.loaded ) {
+ gl.bindTexture( gl.TEXTURE_2D, texture );
+ }
+ gl.uniform1i( shaderProgram.sampleUniform, 0 );
- $( parentList.find( "li>ul, li>ol" ).toArray().reverse() ).each(function ( i ) {
- var self = this,
- list = $( this ),
- listId = list.attr( "id" ) || parentListId + "-" + i,
- parent = list.parent(),
- nodeEls,
- title = nodeEls.first().getEncodedText(),//url limits to first 30 chars of text
- id = ( parentUrl || "" ) + "&" + $.mobile.subPageUrlKey + "=" + listId,
- theme = list.jqmData( "theme" ) || o.theme,
- countTheme = list.jqmData( "counttheme" ) || parentList.jqmData( "counttheme" ) || o.countTheme,
- newPage,
- anchor;
+ LightDir = vec3.create();
+ vec3.normalize( lightPositions[0], LightDir );
+ vec3.scale( LightDir, -8 );
+ gl.uniform3fv( shaderProgram.lightDirU_first, LightDir );
- nodeEls = $( list.prevAll().toArray().reverse() );
- nodeEls = nodeEls.length ? nodeEls : $( "<span>" + $.trim( parent.contents()[ 0 ].nodeValue ) + "</span>" );
+ vec3.normalize( lightPositions[1], LightDir );
+ vec3.scale( LightDir, -1 );
+ gl.uniform3fv( shaderProgram.lightDirU_second, LightDir );
+ gl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, meshIndexBuffer );
- //define hasSubPages for use in later removal
- hasSubPages = true;
+ gl.uniformMatrix4fv( shaderProgram.perspectiveMU, false, perspectiveMatrix );
+ gl.uniformMatrix4fv( shaderProgram.transformMU, false, moveMatrix );
- newPage = list.detach()
- .wrap( "<div " + dns + "role='page' " + dns + "url='" + id + "' " + dns + "theme='" + theme + "' " + dns + "count-theme='" + countTheme + "'><div " + dns + "role='content'></div></div>" )
- .parent()
- .before( "<div " + dns + "role='header' " + dns + "theme='" + o.headerTheme + "'><div class='ui-title'>" + title + "</div></div>" )
- .after( persistentFooterID ? $( "<div " + dns + "role='footer' " + dns + "id='" + persistentFooterID + "'>" ) : "" )
- .parent()
- .appendTo( $.mobile.pageContainer );
+ normalMatrix = mat3.create();
+ mat4.toInverseMat3( moveMatrix, normalMatrix );
+ mat3.transpose( normalMatrix );
+ gl.uniformMatrix3fv( shaderProgram.normalMU, false, normalMatrix );
- newPage.page();
+ gl.drawElements( gl.TRIANGLES, meshIndexBufferItemSize, gl.UNSIGNED_SHORT, 0 );
- anchor = parent.find('a:first');
+ // release buffer memory
+ gl.bindBuffer( gl.ARRAY_BUFFER, null );
+ gl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, null );
- if ( !anchor.length ) {
- anchor = $( "<a/>" ).html( nodeEls || title ).prependTo( parent.empty() );
- }
+ // release texture memory
+ gl.bindTexture( gl.TEXTURE_2D, null );
+ },
- anchor.attr( "href", "#" + id );
+ // ----------------------------------------------------------
+ // Animation
+ // ----------------------------------------------------------
+ _animate: function ( easingType, duration, direction, repeatCount, startValue, _removeCount ) {
+ var self = this,
+ timeNow = $.now(),
+ progress,
+ removeCount = 0;
- }).virtuallistview();
+ easingType = easingType || "linear";
+ startValue = startValue || 0;
+ _removeCount = _removeCount || 0;
- // on pagehide, remove any nested pages along with the parent page, as long as they aren't active
- // and aren't embedded
- if ( hasSubPages &&
- parentPage.is( ":jqmData(external-page='true')" ) &&
- parentPage.data( "page" ).options.domCache === false ) {
+ if ( self._sumTime >= duration ) {
+ self._setPosition( self._ANIMATION_END, direction );
+ self._stop();
+ return;
+ }
- newRemove = function ( e, ui ) {
- var nextPage = ui.nextPage, npURL;
+ if ( self._startTime === 0 ) {
+ self._startTime = timeNow;
+ } else {
+ self._sumTime = timeNow - self._startTime;
+ progress = $.easing[ easingType ]( self._sumTime / duration, self._sumTime, startValue, repeatCount + 1, duration );
+ removeCount = parseInt( Math.abs( progress ), 10 );
- if ( ui.nextPage ) {
- npURL = nextPage.jqmData( "url" );
- if ( npURL.indexOf( parentUrl + "&" + $.mobile.subPageUrlKey ) !== 0 ) {
- self.childPages().remove();
- parentPage.remove();
- }
+ if ( _removeCount !== removeCount ) {
+ self._setPosition( self._ANIMATION_END, direction );
+ _removeCount = removeCount;
+
+ if ( ( repeatCount - _removeCount ) >= 0 ) {
+ self._animate( easingType, duration, direction, repeatCount, startValue, _removeCount );
+ } else {
+ self._stop();
}
- };
+ return;
+ }
- // unbind the original page remove and replace with our specialized version
- parentPage
- .unbind( "pagehide.remove" )
- .bind( "pagehide.remove", newRemove );
+ self._setPosition( progress - _removeCount, direction );
}
- },
-
- // TODO sort out a better way to track sub pages of the virtuallistview this is brittle
- childPages: function () {
- var parentUrl = this.parentPage.jqmData( "url" );
-
- return $( ":jqmData(url^='" + parentUrl + "&" + $.mobile.subPageUrlKey + "')" );
- }
- });
-
- //auto self-init widgets
- $( document ).bind( "pagecreate create", function ( e ) {
- $( $.tizen.virtuallistview.prototype.options.initSelector, e.target ).virtuallistview();
- });
-} ( jQuery ) );
+ self._animationID = window.requestAnimationFrame( function () {
+ self._animate( easingType, duration, direction, repeatCount, startValue, _removeCount );
+ });
+ },
+ _run: function ( direction, repeatCount, startValue ) {
+ var self = this,
+ repeat = repeatCount || 0,
+ duration = self._DURATION_DEFAULT * ( repeat + 1 );
+ if ( self._imageList.length <= 1 ) {
+ return;
+ }
-/* ***************************************************************************
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software" ),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- *
- * Author: Minkyu Kang <mk7.kang@samsung.com>
- * Author: Koeun Choi <koeun.choi@samsung.com>
- */
+ startValue = startValue || 0;
+ duration = ( duration >= 0 ) ? duration : 0;
-/*
- * Progress widget
- *
- * HTML Attributes
- *
- * data-role: set to 'progress'.
- * data-style: 'circle' or 'pending'.
- *
- * APIs
- *
- * show(): show the progress.
- * hide(): hide the progress.
- * running(boolean): start or stop the running.
- *
- * Events
- *
- * N/A
- *
- * Examples
- *
- * <li data-role="list-divider">Progress Pending</li>
- * <li>
- * <div data-role="progress" data-style="pending" id="pending"></div>
- * </li>
- * <li data-role="list-divider">Progress ~ing</li>
- * <li>
- * <div data-role="progress" data-style="circle" id="progress"></div>Loading..
- * </li>
- *
- * $("#pending").progress( "running", true );
- * $("#progress").progress( "running", true );
- *
- */
+ if ( self._animationID ) {
+ self._setPosition( self._ANIMATION_END, direction );
+ self._stop();
+ }
-/**
- @class Progress
- The progress widget shows that an operation is in progress. <br/>To add a progress widget to the application, use the following code:
+ self._animate( "easeOutExpo", duration, direction, repeat, startValue );
+ },
- <div data-role="progress" data-style="circle"></div>
-*/
-/**
- @property {String} data-style
- Sets the style of the progress widget. The style options are pending (pending progress style) and circle (circular progress status style).
-*/
-/**
- @method running
- The running method is used to set the current running state of the pending or circular progress widget:
+ _reset: function () {
+ if ( !this._canvas || !this._gl ) {
+ return;
+ }
- <div id="foo" data-role="progress" data-style="pending"></div>
- $("#foo").progress("running", true);
-*/
-/**
- @method show
- The show method is used to show the pending or circular progress widget:
+ this._final();
+ this._init();
+ this.refresh();
+ },
- <div id="foo" data-role="progress" data-style="pending"></div>
- $("#foo").progress("show");
-*/
-/**
- @method hide
- The show method is used to hide the pending or circular progress widget:
+ _stop: function () {
+ if ( this._animationID ) {
+ window.cancelAnimationFrame( this._animationID );
+ }
+ this._animationID = 0;
- <div id="foo" data-role="progress" data-style="pending"></div>
- $("#foo").progress("hide");
-*/
+ this._startTime = 0;
+ this._sumTime = 0;
+ },
-(function ( $, window, undefined ) {
- $.widget( "tizen.progress", $.mobile.widget, {
- options: {
- style: "circle",
- running: false
+ _degreeToRadian: function ( degree ) {
+ return degree * Math.PI / 180;
},
- show: function () {
- $( this.element ).show();
+ next: function () {
+ this._run( this._DIRECTION_LEFT , 0 );
},
- hide: function () {
- $( this.element ).hide();
+ prev: function () {
+ this._run( this._DIRECTION_RIGHT, 0 );
},
- _start: function () {
- if ( !this.init ) {
- $( this.element ).append( this.html );
- this.init = true;
- }
+ refresh: function () {
+ var view = this.element,
+ canvas = view.find( "canvas.ui-gallery3d-canvas" );
- this.show();
+ if ( canvas.width() !== view.width() ) {
+ canvas.width( view.width() );
+ }
- $( this.element )
- .find( ".ui-progress-" + this.options.style )
- .addClass( this.runningClass );
+ if ( !this._animationID ) {
+ this._setPosition( 0, 0 );
+ }
},
- _stop: function () {
- $( this.element )
- .find( ".ui-progress-" + this.options.style )
- .removeClass( this.runningClass );
- },
+ select: function ( index ) {
+ var nodes = this._nodes,
+ repeat,
+ i,
+ imageID,
+ object = null,
+ target = 0,
+ direction = 0;
- running: function ( running ) {
- if ( running === undefined ) {
- return this.options.running;
+ if ( index && this._animationID ) {
+ this._stop();
}
- this._setOption( "running", running );
+ for ( i in nodes ) {
+ if ( nodes[i].level === 1 ) {
+ object = this._imageList[ nodes[i].imageID ];
+ imageID = nodes[i].imageID;
+ break;
+ }
+ }
+
+ if ( !index ) {
+ return object;
+ }
+
+ if ( index < 0 && index >= this._imageList.length ) {
+ return;
+ }
+
+ target = index - imageID;
+ direction = ( target > 0 ) ? this._DIRECTION_LEFT
+ : ( ( target < 0 ) ? this._DIRECTION_RIGHT : 0 );
+ if ( direction ) {
+ this._run( direction, Math.abs( target ) - 1 );
+ }
},
- _setOption: function ( key, value ) {
- if ( key === "running" ) {
- if ( typeof value !== "boolean" ) {
- window.alert( "running value MUST be boolean type!" );
- return;
- }
+ add: function ( item, index ) {
+ if ( !item ) {
+ return;
+ }
- this.options.running = value;
- this._refresh();
+ if ( typeof item === "string" ) {
+ item = { "src" : item };
+ }
+
+ index = index || 0;
+ if ( typeof index !== "number" && index < 0
+ && index >= this._imageList.length ) {
+ return;
+ }
+
+ this._imageList.splice( index, 0, item );
+ if ( this._gl ) {
+ this._reset();
}
},
- _refresh: function () {
- if ( this.options.running ) {
- this._start();
- } else {
- this._stop();
+ remove: function ( index ) {
+ index = index || 0;
+ if ( typeof index !== "number" && index < 0
+ && index >= this._imageList.length ) {
+ return;
+ }
+
+ this._imageList.splice( index, 1 );
+ if ( this._gl ) {
+ this._reset();
}
},
- _create: function () {
- var self = this,
- element = this.element,
- style = element.jqmData( "style" ),
- _html,
- runningClass;
+ clearThumbnailCache: function () {
+ if ( !this._nodes || ( this._nodes.length <= 0 ) ) {
+ return;
+ }
- if ( style ) {
- this.options.style = style;
- } else {
- style = this.options.style;
+ var i, url;
+ for ( i = 0; i < this._imageList.length; i += 1 ) {
+ url = this._imageList[i].src;
+ $.imageloader.removeThumbnail( url );
}
+ },
- if ( style == "circle" ) {
- $( this.element ).addClass("ui-progress-container-circle");
+ empty: function () {
+ this._imageList = [];
+ this._reset();
+ },
- _html = '<div class="ui-progress-circle"></div>';
- } else if ( style === "pending" ) {
- $( this.element ).addClass("ui-progressbar");
+ length: function () {
+ return this._imageList.length;
+ }
+ });
- _html = '<div class="ui-progressbar-bg">' +
- '<div class="ui-progress-pending"></div>' +
- '</div>';
- }
+ $( document ).bind( "pagecreate create", function ( e ) {
+ $( ":jqmData(role='gallery3d')" ).gallery3d();
+ });
- this.html = $( _html );
+} ( jQuery, document, window ) );
- runningClass = "ui-progress-" + style + "-running";
- $.extend( this, {
- init: false,
- runningClass: runningClass
- } );
- if ( style === "pending" ) {
- $( this.element ).append( this.html );
- this.init = true;
- }
+/**
+ @class Button
+ The button widget shows a control on the screen that you can use to generate an action event when it is pressed and released. This widget is coded with standard HTML anchor and input elements and then enhanced by jQueryMobile to make it more attractive and usable on a mobile device. Buttons can be used in Tizen as described in the jQueryMobile documentation for buttons.
- this._refresh();
+ To add a button widget to the application, use the following code
+
+ <div data-role="button" data-inline="true">Text Button Test</div>
+ <div data-role="button" data-inline="true" data-icon="plus" data-style="circle"></div>
+ <div data-role="button" data-inline="true" data-icon="plus" data-style="nobg"></div>
+
+ The button can define callbacks for events as described in the jQueryMobile documentation for button events.<br/>
+ You can use methods with the button as described in the jQueryMobile documentation for button methods.
+*/
+
+/**
+ @property {String} data-style
+ Defines the button style. <br/> The default value is box. If the value is set to circle, a circle-shaped button is created. If the value is set to nobg, a button is created without a background.
+
+*/
+/**
+ @property {String} data-icon
+ Defines an icon for a button. Tizen supports 12 icon styles: reveal, closed, opened, info, rename, call, warning, plus, minus, cancel, send, and favorite.
+
+*/
+
+
+
+/*
+ * jQuery Mobile Widget @VERSION
+ *
+ * TODO: remove unnecessary codes....
+ *
+ * This software is licensed under the MIT licence (as defined by the OSI at
+ * http://www.opensource.org/licenses/mit-license.php)
+ *
+ * ***************************************************************************
+ * Copyright (C) 2011 by Intel Corporation Ltd.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ * ***************************************************************************
+ *
+ * Authors: Kalyan Kondapally <kalyan.kondapally@intel.com>
+ */
+
+ensureNS("jQuery.mobile.tizen");
+
+(function () {
+jQuery.extend(jQuery.mobile.tizen, {
+ disableSelection: function (element) {
+ this.enableSelection(
+ $(element).find('*').not( 'input, [type="text"], textarea' ),
+ 'none'
+ );
+ return true;
+ },
+
+ enableSelection: function (element, value) {
+ var val;
+ switch ( value ) {
+ case 'text' :
+ case 'auto' :
+ case 'none' :
+ val = value;
+ break;
+ default :
+ val = 'auto';
+ break;
}
- } ); /* End of widget */
+ return $(element).css( {
+ 'user-select': val,
+ '-moz-user-select': val,
+ '-webkit-user-select': val,
+ '-o-user-select': val,
+ '-ms-transform': val
+ } );
+ },
- $( document ).bind( "pagecreate create", function ( e ) {
- $( e.target ).find( ":jqmData(role='progress')" ).progress();
+ disableContextMenu: function(element) {
+ var self = this;
+ $(element).find('*').each( function() {
+ if( ( $(this).get(0).tagName !== 'INPUT' &&
+ $(this).attr("type") !== 'text' ) &&
+ $(this).get(0).tagName !== 'TEXTAREA' ) {
+ self._disableContextMenu( this );
+ }
} );
-}( jQuery, this ));
-
-
-
-/**
- * @class core
- * loader.js
- *
- * Youmin Ha <youmin.ha@samsung.com>
- *
- *
- */
-/*
- Web UI scaling concept in Tizen Web UI
-
-Generally, web applications must be designed to be showed acceptable on various size and resolution of screens, and web winsets have to be scaled well. Tizen Web UI Framework supports various viewport settings, and Tizen Web UI widgets are designed to be scalable on various screen sizes. In order to make web applications scalable on many devices which have different screen size, it is necessary to understand how mobile web browsers deal with screen resolution, and how Tizen Web UI Framework supports scaling for web applications.
-
+ },
-* Viewport on mobile web browser
+ _disableContextMenu: function(element) {
-Viewport is an area showing web content on the browser. Unlike desktop browsers, mobile browsers support logical viewport seting, which means that application can set viewport width/height and zoom level by itself.
-The very important thing that to be remembered is that the viewport resolution in pixel is 'Logical', not physical. For example, if the viewport width is set to 480 on a mobile device having 720px screen width, the viewport width is considered to 480px logically. All elements put on right side from 480px horizontal position will not be shown on the viewport.
-Most mobile browsers set viewport with given content attribute with <meta name="viewport" content="..."> tag in <head> section in the application source html, whereas desktop browsers ignore the tag.
-Detailed usage of viewport meta tag is found in here: http://www.w3.org/TR/mwabp/#bp-viewport
+ $(element).each( function() {
+ $(this).bind("contextmenu", function( event ) {
+ return false;
+ } );
+ } );
+ },
+ enableContextMenu: function(element) {
+ $(element).each( function() {
+ $(this).unbind( "contextmenu" );
+ } );
+ },
-* Viewport setting by application developers
+ // Get document-relative mouse coordinates from a given event
+ // From: http://www.quirksmode.org/js/events_properties.html#position
+ documentRelativeCoordsFromEvent: function(ev) {
+ var e = ev ? ev : window.event,
+ client = { x: e.clientX, y: e.clientY },
+ page = { x: e.pageX, y: e.pageY },
+ posx = 0,
+ posy = 0;
-When developers write <meta name="viewport" content="..."> in the <head> section of the web application HTML file, Tizen Web UI Framework does not add another viewport meta tag, nor modify developer-defined viewport.
+ // Grab useful coordinates from touch events
+ if (e.type.match(/^touch/)) {
+ page = {
+ x: e.originalEvent.targetTouches[0].pageX,
+ y: e.originalEvent.targetTouches[0].pageY
+ };
+ client = {
+ x: e.originalEvent.targetTouches[0].clientX,
+ y: e.originalEvent.targetTouches[0].clientY
+ };
+ }
+ if (page.x || page.y) {
+ posx = page.x;
+ posy = page.y;
+ }
+ else
+ if (client.x || client.y) {
+ posx = client.x + document.body.scrollLeft + document.documentElement.scrollLeft;
+ posy = client.y + document.body.scrollTop + document.documentElement.scrollTop;
+ }
-* Automatic viewport setting by Tizen Web UI Framework
+ return { x: posx, y: posy };
+ },
-If developers do not give a viewport meta tag, Tizen Web UI Framework automatically add a viewport meta tag with default viewport setting.
+ // TODO : offsetX, offsetY. touch events don't have offsetX and offsetY. support for touch devices.
+ // check algorithm...
+ targetRelativeCoordsFromEvent: function(e) {
+ var coords = { x: e.offsetX, y: e.offsetY };
+ if (coords.x === undefined || isNaN(coords.x) ||
+ coords.y === undefined || isNaN(coords.y)) {
+ var offset = $(e.target).offset();
+ //coords = documentRelativeCoordsFromEvent(e); // Old code. Must be checked again.
+ coords = $.mobile.tizen.documentRelativeCoordsFromEvent(e);
+ coords.x -= offset.left;
+ coords.y -= offset.top;
+ }
-* Portrait/landscape mode
+ return coords;
+ }
+});
+})();
-* Tizen Web UI widgets scaling
+/* ***************************************************************************
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ * ***************************************************************************
+ *
+ * Author: Jinhyuk Jun <jinhyuk.jun@samsung.com>
*/
-( function ($, Globalize, window, undefined) {
-
- var tizen = {
- libFileName : "tizen-web-ui-fw(.min)?.js",
-
- frameworkData : {
- rootDir: '/usr/lib/tizen-web-ui-fw',
- version: '0.1',
- theme: "tizen-white",
- viewportWidth: "device-width",
- viewportScale: false,
-
- defaultFontSize: 22,
- minified: false,
-
- debug: false
- },
-
- log : {
- debug : function ( msg ) {
- if ( tizen.frameworkData.debug ) {
- console.log( msg );
- }
- },
- warn : function ( msg ) {
- console.warn( msg );
- },
- error : function ( msg ) {
- console.error( msg );
- },
- alert : function ( msg ) {
- window.alert( msg );
- }
- },
- util : {
+(function ( $, undefined ) {
- loadScriptSync : function ( scriptPath, successCB, errorCB ) {
- $.ajax( {
- url: scriptPath,
- dataType: 'script',
- async: false,
- crossDomain: false,
- success: successCB,
- error: function ( jqXHR, textStatus, errorThrown ) {
- if ( errorCB ) {
- errorCB( jqXHR, textStatus, errorThrown );
- } else {
- var ignoreStatusList = [ 404 ], // 404: not found
- errmsg = ( 'Error while loading ' + scriptPath + '\n' + jqXHR.status + ':' + jqXHR.statusText );
- if ( -1 == $.inArray( jqXHR.status, ignoreStatusList ) ) {
- tizen.log.alert( errmsg );
- } else {
- tizen.log.warn( errmsg );
- }
- }
- }
- } );
- },
- isMobileBrowser: function ( ) {
- var mobileIdx = window.navigator.appVersion.indexOf("Mobile"),
- isMobile = -1 < mobileIdx;
- return isMobile;
- }
- },
+ $.widget( "mobile.pagelayout", $.mobile.widget, {
+ options: {
+ visibleOnPageShow: true,
+ disablePageZoom: true,
+ transition: "slide", //can be none, fade, slide (slide maps to slideup or slidedown)
+ fullscreen: false,
+ tapToggle: true,
+ tapToggleBlacklist: "a, input, select, textarea, .ui-header-fixed, .ui-footer-fixed",
+ hideDuringFocus: "input, textarea, select",
+ updatePagePadding: true,
+ // Browser detection! Weeee, here we go...
+ // Unfortunately, position:fixed is costly, not to mention probably impossible, to feature-detect accurately.
+ // Some tests exist, but they currently return false results in critical devices and browsers, which could lead to a broken experience.
+ // Testing fixed positioning is also pretty obtrusive to page load, requiring injected elements and scrolling the window
+ // The following function serves to rule out some popular browsers with known fixed-positioning issues
+ // This is a plugin option like any other, so feel free to improve or overwrite it
+ supportBlacklist: function () {
+ var w = window,
+ ua = navigator.userAgent,
+ platform = navigator.platform,
+ // Rendering engine is Webkit, and capture major version
+ wkmatch = ua.match( /AppleWebKit\/([0-9]+)/ ),
+ wkversion = !!wkmatch && wkmatch[ 1 ],
+ ffmatch = ua.match( /Fennec\/([0-9]+)/ ),
+ ffversion = !!ffmatch && ffmatch[ 1 ],
+ operammobilematch = ua.match( /Opera Mobi\/([0-9]+)/ ),
+ omversion = !!operammobilematch && operammobilematch[ 1 ];
- css : {
- cacheBust: ( document.location.href.match( /debug=true/ ) ) ?
- '?cacheBust=' + ( new Date( ) ).getTime( ) :
- '',
- addElementToHead : function ( elem ) {
- var head = document.getElementsByTagName( 'head' )[0];
- if ( head ) {
- $( head ).prepend( elem );
- }
- },
- makeLink : function ( href ) {
- var cssLink = document.createElement( 'link' );
- cssLink.setAttribute( 'rel', 'stylesheet' );
- cssLink.setAttribute( 'href', href );
- cssLink.setAttribute( 'name', 'tizen-theme' );
- return cssLink;
- },
- load: function ( path ) {
- var head = document.getElementsByTagName( 'head' )[0],
- cssLinks = head.getElementsByTagName( 'link' ),
- idx,
- l = null;
- // Find css link element
- for ( idx = 0; idx < cssLinks.length; idx++ ) {
- if ( cssLinks[idx].getAttribute( 'rel' ) != "stylesheet" ) {
- continue;
- }
- if ( cssLinks[idx].getAttribute( 'name' ) == "tizen-theme"
- || cssLinks[idx].getAttribute( 'href' ) == path ) {
- l = cssLinks[idx];
- break;
- }
- }
- if ( l ) { // Found the link element!
- if ( l.getAttribute( 'href' ) == path ) {
- tizen.log.warn( "Theme is already loaded. Skip theme loading in the framework." );
- } else {
- l.setAttribute( 'href', path );
- }
- } else {
- this.addElementToHead( this.makeLink( path ) );
+ if (
+ // iOS 4.3 and older : Platform is iPhone/Pad/Touch and Webkit version is less than 534 (ios5)
+ ( ( platform.indexOf( "iPhone" ) > -1 || platform.indexOf( "iPad" ) > -1 || platform.indexOf( "iPod" ) > -1 ) && wkversion && wkversion < 534 ) ||
+ // Opera Mini
+ ( w.operamini && ({}).toString.call( w.operamini ) === "[object OperaMini]" ) ||
+ ( operammobilematch && omversion < 7458 ) ||
+ //Android lte 2.1: Platform is Android and Webkit version is less than 533 (Android 2.2)
+ ( ua.indexOf( "Android" ) > -1 && wkversion && wkversion < 533 ) ||
+ // Firefox Mobile before 6.0 -
+ ( ffversion && ffversion < 6 ) ||
+ // WebOS less than 3
+ ( window.palmGetResource !== undefined && wkversion && wkversion < 534 ) ||
+ // MeeGo
+ ( ua.indexOf( "MeeGo" ) > -1 && ua.indexOf( "NokiaBrowser/8.5.0" ) > -1 )
+ ) {
+ return true;
}
+
+ return false;
+ },
+ initSelector: ":jqmData(role='content')"
+ },
+
+ _create: function () {
+
+ var self = this,
+ o = self.options,
+ $el = self.element;
+
+ // Feature detecting support for
+ if ( o.supportBlacklist() ) {
+ self.destroy();
+ return;
}
+
+ self._addFixedClass();
+ self._addTransitionClass();
+ self._bindPageEvents();
+
+ // only content
+ self._bindContentControlEvents();
+
+ // Store back-button, to show again
+ self._backBtnQueue = [];
},
- getParams: function ( ) {
- /* Get data-* params from <script> tag, and set tizen.frameworkData.* values
- * Returns true if proper <script> tag is found, or false if not.
- */
- // Find current <script> tag element
- var scriptElems = document.getElementsByTagName( 'script' ),
- val = null,
- foundScriptTag = false,
- idx,
- elem,
- src,
- tokens,
- version_idx;
+ /* add minimum fixed css style to bar(header/footer) and content
+ * it need to update when core source modified(jquery.mobile.page.section.js)
+ * modified from core source cuz initSelector different */
+ _addFixedClass: function () {
+ var self = this,
+ o = self.options,
+ $el = self.element,
+ $elHeader = $el.siblings( ":jqmData(role='header')" ),
+ $elFooter = $el.siblings( ":jqmData(role='footer')" ),
+ $elPage = $el.closest(".ui-page");
- function getTizenTheme( ) {
- var t = navigator.theme ? navigator.theme.split( ':' )[0] : null;
- if ( t ) {
- t = t.replace('-hd', '');
- if ( ! t.match( /^tizen-/ ) ) {
- t = 'tizen-' + t;
- }
- }
- return t;
+ $elHeader.addClass( "ui-header-fixed" );
+ $elFooter.addClass( "ui-footer-fixed" );
+
+ // "fullscreen" overlay positioning
+ if ( o.fullscreen ) {
+ $elHeader.addClass( "ui-header-fullscreen" );
+ $elFooter.addClass( "ui-footer-fullscreen" );
+ $elPage
+ .addClass( "ui-page-header-fullscreen" )
+ .addClass( "ui-page-footer-fullscreen" );
+ } else {
+ // If not fullscreen, add class to page to set top or bottom padding
+ $elPage.addClass( "ui-page-header-fixed" )
+ .addClass( "ui-page-footer-fixed" );
}
+ },
- for ( idx in scriptElems ) {
- elem = scriptElems[idx];
- src = elem.src ? elem.getAttribute( 'src' ) : undefined;
- if (src && src.match( this.libFileName )) {
- // Set framework data, only when they are given.
- tokens = src.split(/[\/\\]/);
- version_idx = -3;
- this.frameworkData.rootDir = ( elem.getAttribute( 'data-framework-root' )
- || tokens.slice( 0, tokens.length + version_idx ).join( '/' )
- || this.frameworkData.rootDir ).replace( /^file:(\/\/)?/, '' );
- this.frameworkData.version = elem.getAttribute( 'data-framework-version' )
- || tokens[ tokens.length + version_idx ]
- || this.frameworkData.version;
- this.frameworkData.theme = elem.getAttribute( 'data-framework-theme' )
- || getTizenTheme( )
- || this.frameworkData.theme;
- this.frameworkData.viewportWidth = elem.getAttribute( 'data-framework-viewport-width' )
- || this.frameworkData.viewportWidth;
- this.frameworkData.viewportScale =
- "true" === elem.getAttribute( 'data-framework-viewport-scale' ) ? true
- : this.frameworkData.viewportScale;
- this.frameworkData.minified = src.search(/\.min\.js$/) > -1 ? true : false;
- this.frameworkData.debug = "true" === elem.getAttribute( 'data-framework-debug' ) ? true
- : this.frameworkData.debug;
- foundScriptTag = true;
- break;
+ /* original core source(jquery.mobile.fixedToolbar.js)
+ * never changed */
+ _addTransitionClass: function () {
+ var tclass = this.options.transition;
+
+ if ( tclass && tclass !== "none" ) {
+ // use appropriate slide for header or footer
+ if ( tclass === "slide" ) {
+ tclass = this.element.is( ".ui-header" ) ? "slidedown" : "slideup";
}
+
+ this.element.addClass( tclass );
}
- return foundScriptTag;
},
- loadTheme: function ( theme ) {
- var themePath,
- cssPath,
- jsPath;
- if ( ! theme ) {
- theme = tizen.frameworkData.theme;
+ /* Set default page positon
+ * 1. add title style to header
+ * 2. Set default header/footer position */
+ setHeaderFooter: function ( thisPage ) {
+ var $elPage = $( thisPage ),
+ $elHeader = $elPage.find( ":jqmData(role='header')" ).length ? $elPage.find( ":jqmData(role='header')") : $elPage.siblings( ":jqmData(role='header')"),
+ $elContent = $elPage.find( ".ui-content" ),
+ $elFooter = $elPage.find( ":jqmData(role='footer')" ),
+ $elFooterGroup = $elFooter.find( ":jqmData(role='fieldcontain')" ),
+ $elFooterControlGroup = $elFooter.find( ".ui-controlgroup" );
+
+ // divide content mode scrollview and non-scrollview
+ if ( !$elPage.is( ".ui-dialog" ) ) {
+ if ( $elHeader.jqmData("position") == "fixed" || ( $.support.scrollview && $.tizen.frameworkData.theme.match(/tizen/) ) ) {
+ $elHeader
+ .css( "position", "fixed" )
+ .css( "top", "0px" );
+ } else if ( !$.support.scrollview && $elHeader.jqmData("position") != "fixed" ) {
+ $elHeader.css( "position", "relative" );
+ }
}
- themePath = [
- tizen.frameworkData.rootDir,
- tizen.frameworkData.version,
- 'themes',
- theme
- ].join( '/' );
- jsPath = [ themePath, 'theme.js' ].join( '/' );
+ /* set Title style */
+ if ( $elHeader.find("span.ui-title-text-sub").length ) {
+ $elHeader.addClass( "ui-title-multiline");
+ }
- if ( tizen.frameworkData.minified ) {
- cssPath = [themePath, 'tizen-web-ui-fw-theme.min.css'].join( '/' );
- } else {
- cssPath = [themePath, 'tizen-web-ui-fw-theme.css'].join( '/' );
+ if ( $elFooterGroup.find( "div" ).is( ".ui-controlgroup-label" ) ) {
+ $elFooterGroup.find( "div.ui-controlgroup-label" ).remove();
+ }
+
+ if ( $elFooterControlGroup.length ) {
+ var anchorPer = 100 / $elFooterControlGroup.find( "a" ).length;
+ $elFooterControlGroup.find( "a" ).each( function ( i ) {
+ $elFooterControlGroup.find( "a" ).eq( i ).width( anchorPer + "%" );
+ });
}
- tizen.css.load( cssPath );
- tizen.util.loadScriptSync( jsPath );
},
- /** Load Globalize culture file, and set default culture.
- * @param[in] language (optional) Language code. ex) en-US, en, ko-KR, ko
- * If language is not given, read language from html 'lang' attribute,
- * or from system setting.
- * @param[in] cultureDic (optional) Dictionary having language code->
- */
- loadGlobalizeCulture: function ( language, cultureDic ) {
+ _bindPageEvents: function () {
var self = this,
- cFPath,
- lang,
- mockJSXHR;
+ o = self.options,
+ $el = self.element,
+ $elCurrentFooter;
- function getLang ( language ) {
- var lang = language
- || $( 'html' ).attr( 'lang' )
- || window.navigator.language.split( '.' )[0] // Webkit, Safari + workaround for Tizen
- || window.navigator.userLanguage // IE
- || 'en',
- countryCode = null,
- countryCodeIdx = lang.lastIndexOf('-'),
- ignoreCodes = ['Cyrl', 'Latn', 'Mong']; // Not country code!
- if ( countryCodeIdx != -1 ) { // Found country code!
- countryCode = lang.substr( countryCodeIdx + 1 );
- if ( ignoreCodes.join( '-' ).indexOf( countryCode ) < 0 ) {
- // countryCode is not found from ignoreCodes.
- // Make countryCode to uppercase.
- lang = [ lang.substr( 0, countryCodeIdx ), countryCode.toUpperCase( ) ].join( '-' );
+ //page event bindings
+ // Fixed toolbars require page zoom to be disabled, otherwise usability issues crop up
+ // This method is meant to disable zoom while a fixed-positioned toolbar page is visible
+ $el.closest( ".ui-page" )
+ .bind( "pagebeforeshow", function ( event ) {
+ var thisPage = this;
+ if ( o.disablePageZoom ) {
+ $.mobile.zoom.disable( true );
}
- }
- // NOTE: 'en' to 'en-US', because globalize has no 'en' culture file.
- lang = lang == 'en' ? 'en-US' : lang;
- return lang;
- }
+ if ( !o.visibleOnPageShow ) {
+ self.hide( true );
+ }
+ self.setHeaderFooter( thisPage );
+ self._setContentMinHeight( thisPage );
+ } )
+ .bind( "webkitAnimationStart animationstart updatelayout", function ( e, data ) {
+ var thisPage = this;
+ if ( o.updatePagePadding ) {
+ self.updatePagePadding(thisPage);
+ self.updatePageLayout( thisPage, data);
+ }
+ })
+
+ .bind( "pageshow", function ( event ) {
+ var thisPage = this;
+ self._setContentMinHeight( thisPage );
+ self.updatePagePadding( thisPage );
+ self._updateHeaderArea( thisPage );
+ if ( o.updatePagePadding ) {
+ $( window ).bind( "throttledresize." + self.widgetName, function () {
+ self.updatePagePadding(thisPage);
+
+ self.updatePageLayout( thisPage, false);
+ self._updateHeaderArea( thisPage );
+ self._setContentMinHeight( thisPage );
+ });
+ }
+ })
+
+ .bind( "pagebeforehide", function ( e, ui ) {
+ if ( o.disablePageZoom ) {
+ $.mobile.zoom.enable( true );
+ }
+ if ( o.updatePagePadding ) {
+ $( window ).unbind( "throttledresize." + self.widgetName );
+ }
+ });
- function getNeutralLang ( lang ) {
- var neutralLangIdx = lang.lastIndexOf( '-' ),
- neutralLang;
- if ( neutralLangIdx != -1 ) {
- neutralLang = lang.substr( 0, neutralLangIdx );
- }
- return neutralLang;
- }
+ window.addEventListener( "softkeyboardchange", function ( e ) {
+ var $elDownBtn = $( "<div class='ui-btn-footer-down'></div>" ),
+ $elPage = $( ".ui-page-active" ),
+ backBtn,
+ backBtnPosition = "footer";
- function getCultureFilePath ( lang, cFDic ) {
- var cFPath = null; // error value
+ if ( $elPage.data( "addBackBtn" ) ) {
+ $elPage.data( "addBackBtn" ) == "header" ? backBtnPosition = "header" : backBtnPosition = "footer";
- if ( "string" != typeof lang ) {
- return null;
- }
- if ( cFDic && cFDic[lang] ) {
- cFPath = cFDic[lang];
- } else {
- // Default Globalize culture file path
- cFPath = [
- self.frameworkData.rootDir,
- self.frameworkData.version,
- 'js',
- 'cultures',
- ['globalize.culture.', lang, '.js'].join( '' ),
- ].join( '/' );
- }
- return cFPath;
- }
+ if ( e.state == "on" ) {
+ if ( !$elPage.find( ".ui-" + backBtnPosition + " .ui-btn-footer-down" ).length ) {
+ $elDownBtn.buttonMarkup( { icon: "down" } ).appendTo( $elPage.find( ".ui-" + backBtnPosition ) );
+ }
- function printLoadError( cFPath, jqXHR ) {
- tizen.log.error( "Error " + jqXHR.status + ": " + jqXHR.statusText
- + "::Culture file (" + cFPath + ") is failed to load.");
- }
+ // N_SE-32900: If an app moves a page when the pop is shown, the .ui-page-active page
+ // is changed.
+ // In this case, the '.ui-page-active .ui-btn-back' selector indicates a
+ // new page's one, and the old page's .ui-btn-back button is still hidden.
+ // So, the current back button is remembered to be shown at the
+ // softkeyboardchange.off event.
+ backBtn = $( ".ui-page-active .ui-btn-back" );
+ backBtn.hide();
+ self._backBtnQueue.push( backBtn ); // Store hidden backBtn
+ } else if ( e.state == "off" ) {
+ self._backBtnQueue.forEach( function ( b ) {
+ b.show(); // Show each backBtn,
+ } );
+ self._backBtnQueue.length = 0; // and clear queue.
- function loadCultureFile ( cFPath, errCB ) {
- function _successCB ( ) {
- tizen.log.debug( "Culture file (" + cFPath + ") is loaded successfully." );
- }
- function _errCB ( jqXHR, textStatus, err ) {
- if ( errCB ) {
- errCB( jqXHR, textStatus, err );
- } else {
- printLoadError( cFPath, jqXHR );
+ $( ".ui-btn-footer-down" ).remove();
}
}
- if ( ! cFPath ) { // Invalid cFPath -> Regard it as '404 Not Found' error.
- mockJSXHR = {
- status: 404,
- statusText: "Not Found"
- };
- _errCB( mockJSXHR, null, null );
- } else {
- $.ajax( {
- url: cFPath,
- dataType: 'script',
- cache: true,
- async: false,
- success: _successCB,
- error: _errCB
- } );
- }
- }
+ });
+ },
- lang = getLang( language );
- cFPath = getCultureFilePath( lang, cultureDic );
- loadCultureFile( cFPath,
- function ( jqXHR, textStatus, err ) {
- if ( jqXHR.status == 404 ) {
- // If culture file is not found, try once more with neutral lang.
- var nLang = getNeutralLang( lang ),
- ncFPath = getCultureFilePath( nLang, cultureDic );
- loadCultureFile( ncFPath, null );
- } else {
- printLoadError( cFPath, jqXHR );
- }
- } );
+ _bindContentControlEvents: function () {
+ var self = this,
+ o = self.options,
+ $el = self.element;
- return lang;
+ $el.closest( ".ui-page" )
+ .bind( "pagebeforeshow", function ( event ) {
+
+ });
},
- setGlobalize: function ( ) {
- var lang = this.loadGlobalizeCulture( );
- // Set culture
- // NOTE: It is not needed to set with neutral lang.
- // Globalize automatically deals with it.
- Globalize.culture( lang );
+ _setContentMinHeight : function ( thisPage ) {
+ var $elPage = $( thisPage ),
+ $elHeader = $elPage.find( ":jqmData(role='header')" ),
+ $elFooter = $elPage.find( ":jqmData(role='footer')" ),
+ $elContent = $elPage.find( ":jqmData(role='content')" ),
+ resultMinHeight,
+ dpr = 1,
+ layoutInnerHeight = window.innerHeight;
+
+ if ( !$.support.scrollview ) {
+ dpr = window.outerWidth / window.innerWidth;
+ layoutInnerHeight = Math.floor( window.outerHeight / dpr );
+ }
+
+ resultMinHeight = layoutInnerHeight - $elHeader.height() - $elFooter.height();
+
+ $elContent.css( "min-height", resultMinHeight - parseFloat( $elContent.css("padding-top") ) - parseFloat( $elContent.css("padding-bottom") ) + "px" );
},
- /**
- * Load custom globalize culture file
- * Find current system language, and load appropriate culture file from given colture file list.
- *
- * @param[in] cultureDic collection of 'language':'culture file path' key-val pair.
- * @example
- * var myCultures = {
- * "en" : "culture/en.js",
- * "fr" : "culture/fr.js",
- * "ko-KR" : "culture/ko-KR.js"
- * };
- * loadCultomGlobalizeCulture( myCultures );
- *
- * ex) culture/fr.js
- * -------------------------------
- * Globalize.addCultureInfo( "fr", {
- * messages: {
- * "hello" : "bonjour",
- * "translate" : "traduire"
- * }
- * } );
- * -------------------------------
- */
- loadCustomGlobalizeCulture: function ( cultureDic ) {
- tizen.loadGlobalizeCulture( null, cultureDic );
+
+ _updateHeaderArea : function ( thisPage ) {
+ var $elPage = $( thisPage ),
+ $elHeader = $elPage.find( ":jqmData(role='header')" ).length ? $elPage.find( ":jqmData(role='header')") : $elPage.siblings( ":jqmData(role='header')"),
+ headerBtnNum = $elHeader.children("a").length,
+ headerSrcNum = $elHeader.children("img").length;
+
+ if ( !$elPage.is( ".ui-dialog" ) ) {
+ $elHeader.find( "h1" ).css( "width", window.innerWidth - parseInt( $elHeader.find( "h1" ).css( "margin-left" ), 10 ) * 2 - $elHeader.children( "a" ).width() * headerBtnNum - $elHeader.children( "a" ).width() / 4 - $elHeader.children( "img" ).width() * headerSrcNum * 4 );
+ }
+ /* add half width for default space between text and button, and img tag area is too narrow, so multiply three for img width*/
},
- /** Set viewport meta tag for mobile devices.
- *
- * @param[in] viewportWidth viewport width. "device-width" is OK.
- */
- setViewport: function ( viewportWidth ) {
- var meta = null,
- head,
- content;
+ _visible: true,
- // Do nothing if viewport setting code is already in the code.
- $( "meta[name=viewport]" ).each( function ( ) {
- meta = this;
+ // This will set the content element's top or bottom padding equal to the toolbar's height
+ updatePagePadding: function ( tbPage ) {
+ var $el = this.element,
+ header = $el.siblings( ".ui-header" ).length,
+ footer = $el.siblings( ".ui-footer" ).length;
+
+ // This behavior only applies to "fixed", not "fullscreen"
+ if ( this.options.fullscreen ) {
return;
- });
- if ( meta ) { // Found custom viewport!
- content = $( meta ).prop( "content" );
- viewportWidth = content.replace( /.*width=(device-width|\d+)\s*,?.*$/gi, "$1" );
- tizen.log.warn( "Viewport is set to '" + viewportWidth + "' in a meta tag. Framework skips viewport setting." );
- } else {
- // Create a meta tag
- meta = document.createElement( "meta" );
- if ( meta ) {
- meta.name = "viewport";
- content = [ "width=", viewportWidth, ", user-scalable=no" ].join( "" );
- if ( ! isNaN( viewportWidth ) ) {
- // Fix scale to 1.0, if viewport width is set to fixed value.
- // NOTE: Works wrong in Tizen browser!
- //content = [ content, ", initial-scale=1.0, maximum-scale=1.0" ].join( "" );
- }
- meta.content = content;
- tizen.log.debug( content );
- head = document.getElementsByTagName( 'head' ).item( 0 );
- head.insertBefore( meta, head.firstChild );
- }
}
- return viewportWidth;
- },
- /** Read body's font-size, scale it, and reset it.
- * param[in] desired font-size / base font-size.
- */
- scaleBaseFontSize: function ( themeDefaultFontSize, ratio ) {
- tizen.log.debug( "themedefaultfont size: " + themeDefaultFontSize + ", ratio: " + ratio );
- var scaledFontSize = Math.max( Math.floor( themeDefaultFontSize * ratio ), 4 );
+ tbPage = tbPage || $el.closest( ".ui-page" );
- $( 'html.ui-mobile' ).css( { 'font-size': scaledFontSize + "px" } );
- tizen.log.debug( 'html:font size is set to ' + scaledFontSize );
- $( document ).ready( function ( ) {
- $( '.ui-mobile' ).children( 'body' ).css( { 'font-size': scaledFontSize + "px" } );
- } );
+ if ( $el.siblings( ".ui-header" ).jqmData("position") == "fixed" || $.support.scrollview ) {
+ $( tbPage ).css( "padding-top", ( header ? $el.siblings( ".ui-header" ).outerHeight() : 0 ) );
+ }
+ $( tbPage ).css( "padding-bottom", ( footer ? $el.siblings( ".ui-footer" ).outerHeight() : 0 ) );
},
- setScaling: function ( ) {
- var viewportWidth = this.frameworkData.viewportWidth,
- themeDefaultFontSize = this.frameworkData.defaultFontSize, // comes from theme.js
- ratio = 1;
-
- // Keep original font size
- $( 'body' ).attr( 'data-tizen-theme-default-font-size', themeDefaultFontSize );
+ /* 1. Calculate and update content height */
+ updatePageLayout: function ( thisPage, receiveType ) {
+ var $elFooter,
+ $elPage = $( thisPage ),
+ $elHeader = $elPage.find( ":jqmData(role='header')" ),
+ $elContent = $elPage.find( ":jqmData(role='content')" ),
+ resultContentHeight = 0,
+ resultFooterHeight = 0,
+ resultHeaderHeight = 0,
+ layoutInnerHeight = window.innerHeight,
+ dpr = 1;
- if ( !tizen.util.isMobileBrowser() ) {
- return;
+ if ( $elPage.length ) {
+ $elFooter = $elPage.find( ":jqmData(role='footer')" );
+ } else {
+ $elFooter = $( document ).find( ":jqmData(role='footer')" ).eq( 0 );
}
- // Legacy support: tizen.frameworkData.viewportScale
- if ( this.frameworkData.viewportScale == true ) {
- viewportWidth = "screen-width";
+ // calculate footer height
+ resultFooterHeight = ( $elFooter.css( "display" ) == "none" || $elFooter.length == 0 ) ? 0 : $elFooter.height();
+ resultHeaderHeight = ( $elHeader.css( "display" ) == "none" || $elHeader.length == 0 ) ? 0 : $elHeader.height();
+
+ if (resultFooterHeight != 0 ) {
+ $elFooter.css( "bottom", 0 );
}
- // screen-width support
- if ( "screen-width" == viewportWidth ) {
- if ( window.self == window.top ) {
- // Top frame: for target. Use window.outerWidth.
- viewportWidth = window.outerWidth;
- } else {
- // iframe: for web simulator. Use clientWidth.
- viewportWidth = document.documentElement.clientWidth;
- }
+ if ( !$.support.scrollview ) {
+ dpr = window.outerWidth / window.innerWidth;
+ layoutInnerHeight = Math.floor( window.outerHeight / dpr );
}
- // set viewport meta tag
- viewportWidth = this.setViewport( viewportWidth ); // If custom viewport setting exists, get viewport width
+ resultContentHeight = layoutInnerHeight - resultFooterHeight - resultHeaderHeight;
- if ( viewportWidth == "device-width" ) {
- // Do nothing!
- } else { // fixed width!
- ratio = parseFloat( viewportWidth / this.frameworkData.defaultViewportWidth );
- this.scaleBaseFontSize( themeDefaultFontSize, ratio );
+ if ( $.support.scrollview ) {
+ $elContent.height( resultContentHeight -
+ parseFloat( $elContent.css("padding-top") ) -
+ parseFloat( $elContent.css("padding-bottom") ) );
}
- },
- };
- function export2TizenNS ( $, tizen ) {
- if ( !$.tizen ) {
- $.tizen = { };
- }
+ // External call page( "refresh") - in case title changed
+ if ( receiveType ) {
+ $elPage
+ .css( "min-height", resultContentHeight )
+ .css( "padding-top", resultHeaderHeight )
+ .css( "padding-bottom", resultFooterHeight );
+ }
+ },
- $.tizen.frameworkData = tizen.frameworkData;
- $.tizen.loadCustomGlobalizeCulture = tizen.loadCustomGlobalizeCulture;
- $.tizen.loadTheme = tizen.loadTheme;
+ show: function ( notransition ) {
+ /* blank function: deprecated */
+ },
- $.tizen.__tizen__ = tizen; // for unit-test
- }
+ hide: function ( notransition ) {
+ /* blank function: deprecated */
+ },
- export2TizenNS( $, tizen );
+ toggle: function () {
+ this[ this._visible ? "hide" : "show" ]();
+ },
- tizen.getParams( );
- tizen.loadTheme( );
- tizen.setScaling( ); // Run after loadTheme(), for the default font size.
- tizen.setGlobalize( );
- // Turn off JQM's auto initialization option.
- // NOTE: This job must be done before domready.
- $.mobile.autoInitializePage = false;
+ destroy: function () {
+ this.element.removeClass( "ui-header-fixed ui-footer-fixed ui-header-fullscreen ui-footer-fullscreen in out fade slidedown slideup ui-fixed-hidden" );
+ this.element.closest( ".ui-page" ).removeClass( "ui-page-header-fixed ui-page-footer-fixed ui-page-header-fullscreen ui-page-footer-fullscreen" );
+ },
- $(document).ready( function ( ) {
- $.mobile.initializePage( );
+ refresh: function () {
+ var $elPage = $( ".ui-page-active" );
+ this.setHeaderFooter( $elPage );
+ this._updateHeaderArea( $elPage );
+ }
});
-} ( jQuery, window.Globalize, window ) );
+ //auto self-init widgets
+ $( document )
+ .bind( "pagecreate create", function ( e ) {
+ // DEPRECATED in 1.1: support for data-fullscreen=true|false on the page element.
+ // This line ensures it still works, but we recommend moving the attribute to the toolbars themselves.
+ if ( $( e.target ).jqmData( "fullscreen" ) ) {
+ $( $.mobile.pagelayout.prototype.options.initSelector, e.target ).not( ":jqmData(fullscreen)" ).jqmData( "fullscreen", true );
+ }
+ $.mobile.pagelayout.prototype.enhanceWithin( e.target );
+ });
+
+}( jQuery ));
* DEALINGS IN THE SOFTWARE.
* ***************************************************************************
*
- * Author: Jinhyuk Jun <jinhyuk.jun@samsung.com>
+ * Author: Wongi Lee <wongi11.lee@samsung.com>
+ * Youmin Ha <youmin.ha@samsung.com>
+ */
+
+/**
+ * Virtual List Widget for unlimited data.
+ * To support more then 1,000 items, special list widget developed.
+ * Fast initialize and light DOM tree.
+ * DB connection and works like DB cursor.
+ *
+ * HTML Attributes:
+ *
+ * data-role: virtuallistview
+ * data-template : jQuery.template ID that populate into virtual list
+ * data-row : Optional. Set number of <li> elements that are used for data handling.
+ *
+ * ID : <UL> element that has "data-role=virtuallist" must have ID attribute.
+ *
+ * * APIs:
+ *
+ * create ( {
+ * itemData: function ( idx ) { return json_obj; },
+ * numItemData: number or function () { return number; },
+ * cacheItemData: function ( minIdx, maxIdx ) {}
+ * } )
+ * : Create a virtuallist widget. At this moment, _create method is called.
+ * args : A collection of options
+ * itemData: A function that returns JSON object for given index. Mandatory.
+ * numItemData: Total number of itemData. Mandatory.
+ * cacheItemData: Virtuallist will ask itemData between minIdx and maxIdx.
+ * Developers can implement this function for preparing data.
+ * Optional.
+ *
+ * Events:
+ *
+ * touchstart : Temporary preventDefault applied on touchstart event to avoid broken screen.
+ *
+ * Examples:
+ *
+ * <script id="tmp-3-2-7" type="text/x-jquery-tmpl">
+ * <li class="ui-li-3-2-7">
+ * <span class="ui-li-text-main">${NAME}</span>
+ * <img src="00_winset_icon_favorite_on.png" class="ui-li-icon-sub">
+ * <span class="ui-li-text-sub">${ACTIVE}</span>
+ * <span class="ui-li-text-sub2">${FROM}</span>
+ * </li>
+ * </script>
+ *
+ * <ul id="virtuallist-normal_3_2_7_ul" data-role="virtuallistview" data-template="tmp-3-2-7" data-dbtable="JSON_DATA" data-row="100">
+ * </ul>
+ *
*/
+/**
+ @class VirtualList
+ In the Web environment, it is challenging to display a large amount of data in a list, such as displaying a contact list of over 1000 list items. It takes time to display the entire list in HTML and the DOM manipulation is complex.
+
+ The virtual list widget is used to display a list of unlimited data elements on the screen for better performance. This widget provides easy access to databases to retrieve and display data. Virtual lists are based on the jQuery.template plugin as described in the jQuery documentation for jQuery.template plugin.
+
+ To add a virtual list widget to the application, use the following code:
+
+ <script id="tmp-3-2-7" type="text/x-jquery-tmpl">
+ <li class="ui-li-3-2-7">
+ <span class="ui-li-text-main">${NAME}</span>
+ <img src="00_winset_icon_favorite_on.png" class="ui-li-icon-sub"/>
+ <span class="ui-li-text-sub">${ACTIVE}</span>
+ <span class="ui-li-text-sub2">${FROM}</span>
+ </li>
+ </script>
+ <ul id="vlist" data-role="virtuallistview" data-template="tmp-3-2-7" data-dbtable="JSON_DATA" data-row="100"></ul>
+*/
+/**
+ @property {String} data-role
+ Creates the virtual list view. The value must be set to virtuallistview.
+ Only the >ul< element, which a id attribute defined, supports this option. Also, the vlLoadSuccess class attribute must be defined in the >ul< element to ensure that loading data from the database is complete.
+*/
+/**
+ @property {String} data-template
+ Defines the jQuery.template element ID.
+ The jQuery.template must be defined. The template style can use rem units to support scalability.
+*/
+/**
+ @property {Number} data-row
+ Defines the number of virtual list child elements.
+ The minimum value is 20 and the default value is 100. As the value gets higher, the loading time increases while the system performance improves. So you need to pick a value that provides the best performance without excessive loading time.
+*/
+/**
+ @method create
+ @param {function} itemData(index)
+ : function itemData(index) returns the JSON object matched with the given index. The index value is between 0 and numItemData-1.
+ @param {Number} numItemData
+ : number numItemData or function numItemData() defines or returns a static number of items.
+ @param {function} cacheItemData(minIndex, maxIndex)
+ : function cacheItemData(minIndex, maxIndex) prepares the JSON data. This method is called before calling the itemData() method with index values between minIndex and maxIndex.
+*/
+
(function ( $, undefined ) {
- $.widget( "mobile.pagelayout", $.mobile.widget, {
+ /* Code for Virtual List Demo */
+ var listCountPerPage = {}, /* Keeps track of the number of lists per page UID. This allows support for multiple nested list in the same page. https://github.com/jquery/jquery-mobile/issues/1617 */
+ _NO_SCROLL = 0, /* ENUM */
+ _SCROLL_DOWN = 1, /* ENUM */
+ _SCROLL_UP = -1; /* ENUM */
+
+ $.widget( "tizen.virtuallistview", $.mobile.widget, {
options: {
- visibleOnPageShow: true,
- disablePageZoom: true,
- transition: "slide", //can be none, fade, slide (slide maps to slideup or slidedown)
- fullscreen: false,
- tapToggle: true,
- tapToggleBlacklist: "a, input, select, textarea, .ui-header-fixed, .ui-footer-fixed",
- hideDuringFocus: "input, textarea, select",
- updatePagePadding: true,
- // Browser detection! Weeee, here we go...
- // Unfortunately, position:fixed is costly, not to mention probably impossible, to feature-detect accurately.
- // Some tests exist, but they currently return false results in critical devices and browsers, which could lead to a broken experience.
- // Testing fixed positioning is also pretty obtrusive to page load, requiring injected elements and scrolling the window
- // The following function serves to rule out some popular browsers with known fixed-positioning issues
- // This is a plugin option like any other, so feel free to improve or overwrite it
- supportBlacklist: function () {
- var w = window,
- ua = navigator.userAgent,
- platform = navigator.platform,
- // Rendering engine is Webkit, and capture major version
- wkmatch = ua.match( /AppleWebKit\/([0-9]+)/ ),
- wkversion = !!wkmatch && wkmatch[ 1 ],
- ffmatch = ua.match( /Fennec\/([0-9]+)/ ),
- ffversion = !!ffmatch && ffmatch[ 1 ],
- operammobilematch = ua.match( /Opera Mobi\/([0-9]+)/ ),
- omversion = !!operammobilematch && operammobilematch[ 1 ];
+ theme: "s",
+ countTheme: "s",
+ headerTheme: "s",
+ dividerTheme: "s",
+ splitIcon: "arrow-r",
+ splitTheme: "s",
+ inset: false,
+ id: "", /* Virtual list UL elemet's ID */
+ childSelector: " li", /* To support swipe list */
+ dbtable: "",
+ template : "",
+ dbkey: false, /* Data's unique Key */
+ scrollview: false,
+ row: 100,
+ page_buf: 30,
+ initSelector: ":jqmData(role='virtuallistview')"
+ },
- if (
- // iOS 4.3 and older : Platform is iPhone/Pad/Touch and Webkit version is less than 534 (ios5)
- ( ( platform.indexOf( "iPhone" ) > -1 || platform.indexOf( "iPad" ) > -1 || platform.indexOf( "iPod" ) > -1 ) && wkversion && wkversion < 534 ) ||
- // Opera Mini
- ( w.operamini && ({}).toString.call( w.operamini ) === "[object OperaMini]" ) ||
- ( operammobilematch && omversion < 7458 ) ||
- //Android lte 2.1: Platform is Android and Webkit version is less than 533 (Android 2.2)
- ( ua.indexOf( "Android" ) > -1 && wkversion && wkversion < 533 ) ||
- // Firefox Mobile before 6.0 -
- ( ffversion && ffversion < 6 ) ||
- // WebOS less than 3
- ( window.palmGetResource !== undefined && wkversion && wkversion < 534 ) ||
- // MeeGo
- ( ua.indexOf( "MeeGo" ) > -1 && ua.indexOf( "NokiaBrowser/8.5.0" ) > -1 )
- ) {
- return true;
- }
+ _stylerMouseUp: function () {
+ $( this ).addClass( "ui-btn-up-s" );
+ $( this ).removeClass( "ui-btn-down-s" );
+ },
+
+ _stylerMouseDown: function () {
+ $( this ).addClass( "ui-btn-down-s" );
+ $( this ).removeClass( "ui-btn-up-s" );
+ },
- return false;
- },
- initSelector: ":jqmData(role='content')"
+ _stylerMouseOver: function () {
+ $( this ).toggleClass( "ui-btn-hover-s" );
},
- _create: function () {
+ _stylerMouseOut: function () {
+ $( this ).toggleClass( "ui-btn-hover-s" );
+ $( this ).addClass( "ui-btn-up-s" );
+ $( this ).removeClass( "ui-btn-down-s" );
+ },
- var self = this,
- o = self.options,
- $el = self.element;
+ // ?
+ // this virtuallistview object
+ // @param[in] template template name(string)
+ _pushData: function ( template ) {
+ var o = this.options,
+ i,
+ myTemplate = $( "#" + template ), // Get template object
+ // NOTE: o.row = # of rows handled at once. Default value is 100.
+ lastIndex = ( o.row > this._numItemData ? this._numItemData : o.row ), // last index of handled data
+ htmlData;
- // Feature detecting support for
- if ( o.supportBlacklist() ) {
- self.destroy();
- return;
+ for ( i = 0; i < lastIndex; i++ ) {
+ htmlData = myTemplate.tmpl( this._itemData( i ) ); // Make rows with template,
+ $( o.id ).append( $( htmlData ).attr( 'id', o.itemIDPrefix + i ) ); // and append it to the vlist object
}
- self._addFixedClass();
- self._addTransitionClass();
- self._bindPageEvents();
-
- // only content
- self._bindContentControlEvents();
-
- // Store back-button, to show again
- self._backBtnQueue = [];
+ // After pushing data re-style virtuallist widget
+ $( o.id ).trigger( "create" );
},
- /* add minimum fixed css style to bar(header/footer) and content
- * it need to update when core source modified(jquery.mobile.page.section.js)
- * modified from core source cuz initSelector different */
- _addFixedClass: function () {
- var self = this,
- o = self.options,
- $el = self.element,
- $elHeader = $el.siblings( ":jqmData(role='header')" ),
- $elFooter = $el.siblings( ":jqmData(role='footer')" ),
- $elPage = $el.closest(".ui-page");
-
- $elHeader.addClass( "ui-header-fixed" );
- $elFooter.addClass( "ui-footer-fixed" );
+ // Set children <li> elements' position
+ //
+ // this: virtuallist element
+ // event: virtuallistview.options
+ // TODO: Why this arg name is 'event'? Not resonable.
+ // (this function is not called with event element as args!)
+ _reposition: function ( event ) {
+ var o,
+ t = this,
+ padding,
+ margin;
- // "fullscreen" overlay positioning
- if ( o.fullscreen ) {
- $elHeader.addClass( "ui-header-fullscreen" );
- $elFooter.addClass( "ui-footer-fullscreen" );
- $elPage
- .addClass( "ui-page-header-fullscreen" )
- .addClass( "ui-page-footer-fullscreen" );
+ if ( event.data ) {
+ o = event.data;
} else {
- // If not fullscreen, add class to page to set top or bottom padding
- $elPage.addClass( "ui-page-header-fixed" )
- .addClass( "ui-page-footer-fixed" );
+ o = event;
}
- },
+ if ( $( o.id + o.childSelector ).size() > 0 ) { // $("#vlistid li")
+ // first child's top position
+ // NOTE: the first element may not be '0'!!!
+ t._title_h = $( o.id + o.childSelector + ':first' ).position().top;
+ // first child's outer height (TODO: reuse selected items)
+ t._line_h = $( o.id + o.childSelector + ':first' ).outerHeight();
- /* original core source(jquery.mobile.fixedToolbar.js)
- * never changed */
- _addTransitionClass: function () {
- var tclass = this.options.transition;
+ // container(vlist element)'s innerwidth
+ t._container_w = $( o.id ).innerWidth();
- if ( tclass && tclass !== "none" ) {
- // use appropriate slide for header or footer
- if ( tclass === "slide" ) {
- tclass = this.element.is( ".ui-header" ) ? "slidedown" : "slideup";
- }
+ // get sum of container's left/right padding
+ padding = parseInt( $( o.id + o.childSelector ).css( "padding-left" ), 10 )
+ + parseInt( $( o.id + o.childSelector ).css( "padding-right" ), 10 );
- this.element.addClass( tclass );
+ // Add CSS to all <li> elements
+ // * absolute position
+ // * btn-up
+ // * mouse up/down/over/out styles
+ $( o.id + ">" + o.childSelector )
+ .addClass( "position_absolute" )
+ .addClass( "ui-btn-up-s" )
+ .bind( "mouseup", t._stylerMouseUp )
+ .bind( "mousedown", t._stylerMouseDown )
+ .bind( "mouseover", t._stylerMouseOver )
+ .bind( "mouseout", t._stylerMouseOut );
}
- },
+ // Set absolute top/left position of each <li>
+ $( o.id + ">" + o.childSelector ).each( function ( index ) {
+ margin = parseInt( $( this ).css( "margin-left" ), 10 )
+ + parseInt( $( this ).css( "margin-right" ), 10 );
- /* Set default page positon
- * 1. add title style to header
- * 2. Set default header/footer position */
- setHeaderFooter: function ( thisPage ) {
- var $elPage = $( thisPage ),
- $elHeader = $elPage.find( ":jqmData(role='header')" ).length ? $elPage.find( ":jqmData(role='header')") : $elPage.siblings( ":jqmData(role='header')"),
- $elContent = $elPage.find( ".ui-content" ),
- $elFooter = $elPage.find( ":jqmData(role='footer')" ),
- $elFooterGroup = $elFooter.find( ":jqmData(role='fieldcontain')" ),
- $elFooterControlGroup = $elFooter.find( ".ui-controlgroup" );
+ $( this ).css( "top", t._title_h + t._line_h * index + 'px' )
+ .css( "width", t._container_w - padding - margin );
+ } );
- // divide content mode scrollview and non-scrollview
- if ( !$elPage.is( ".ui-dialog" ) ) {
- if ( $elHeader.jqmData("position") == "fixed" || ( $.support.scrollview && $.tizen.frameworkData.theme.match(/tizen/) ) ) {
- $elHeader
- .css( "position", "fixed" )
- .css( "top", "0px" );
- } else if ( !$.support.scrollview && $elHeader.jqmData("position") != "fixed" ) {
- $elHeader.css( "position", "relative" );
- }
- }
+ // Set Max Listview Height
+ $( o.id ).height( t._numItemData * t._line_h );
+ },
- /* set Title style */
- if ( $elHeader.find("span.ui-title-text-sub").length ) {
- $elHeader.addClass( "ui-title-multiline");
- }
+ // Resize each listitem's width
+ _resize: function ( event ) {
+ var o, // 'ul'
+ t = this,
+ li,
+ padding,
+ margin;
- if ( $elFooterGroup.find( "div" ).is( ".ui-controlgroup-label" ) ) {
- $elFooterGroup.find( "div.ui-controlgroup-label" ).remove();
+ if ( event.data ) {
+ o = event.data;
+ } else {
+ o = event;
}
+ li = $( o ).children( o.childSelector )
- if ( $elFooterControlGroup.length ) {
- var anchorPer = 100 / $elFooterControlGroup.find( "a" ).length;
- $elFooterControlGroup.find( "a" ).each( function ( i ) {
- $elFooterControlGroup.find( "a" ).eq( i ).width( anchorPer + "%" );
- });
- }
+ t._container_w = $( o ).width();
+
+ padding = parseInt( li.css( "padding-left" ), 10 )
+ + parseInt( li.css( "padding-right" ), 10 );
+
+ li.each( function ( index, obj ) {
+ margin = parseInt( $( this ).css( "margin-left" ), 10 )
+ + parseInt( $( this ).css( "margin-right" ), 10 );
+ $( this ).css( "width", t._container_w - padding - margin );
+ } );
},
- _bindPageEvents: function () {
- var self = this,
- o = self.options,
- $el = self.element,
- $elCurrentFooter;
+ // New scrollmove function supporting scrollTo
+ _scrollmove: function ( ev ) {
+ var t = ev.data, // vlist (JQM object)
+ o = t.options, // options
+ prevTopBufLen = t._num_top_items, // Previous(remembered) top buf length
+ timerInterval = 100,
+ i,
+ _scrollView,
+ _normalScroll;
- //page event bindings
- // Fixed toolbars require page zoom to be disabled, otherwise usability issues crop up
- // This method is meant to disable zoom while a fixed-positioned toolbar page is visible
- $el.closest( ".ui-page" )
- .bind( "pagebeforeshow", function ( event ) {
- var thisPage = this;
- if ( o.disablePageZoom ) {
- $.mobile.zoom.disable( true );
- }
- if ( !o.visibleOnPageShow ) {
- self.hide( true );
- }
- self.setHeaderFooter( thisPage );
- self._setContentMinHeight( thisPage );
- } )
- .bind( "webkitAnimationStart animationstart updatelayout", function ( e, data ) {
- var thisPage = this;
- if ( o.updatePagePadding ) {
- self.updatePagePadding(thisPage);
- self.updatePageLayout( thisPage, data);
+ _scrollView = {
+ viewTop: function ( ) {
+ var sv = $( o.id ).parentsUntil( ".ui-page" ).find( ".ui-scrollview-view" ),
+ svTrans = sv.css( "-webkit-transform" ),
+ svTransVal = "0,0,0,0,0,0";
+ if ( svTrans ) {
+ svTransVal = svTrans.replace( /matrix\s*\((.*)\)/, "$1" ); // matrix(a,c,b,d,tx,ty)
}
- })
+ return - parseInt( svTransVal.split(',')[5], 10 );
+ }
+ };
+ _normalScroll = {
+ viewTop: function ( ) {
+ return $( window ).scrollTop( ); // TODO: - _line_h?
+ }
+ };
+ // Get current view top position
+ function viewTop ( ) {
+ return o.scrollview ? _scrollView.viewTop() : _normalScroll.viewTop();
+ }
+ // log function for debug
+ function log ( msg ) {
+ var debug = false;
+ if ( debug ) {
+ console.log( ">>virtualllist: " + msg );
+ }
+ }
+
+ // Timer interval function
+ // @param[in] vl virtuallist object (JQM object)
+ function timerMove ( vl, undefined ) {
+ var cy, // current y position
+ cti, // current top idx
+ cbi, // current bottom idx
+ oti = vl._first_index, // old top idx
+ obi = vl._last_index, // old botton idx
+ dti, // delta of top idx
+ fromIdx,
+ toIdx, // index range to be moved
+ delta, // moveItem delta
+ rowLen = vl.options.row, // max. # of items handled at once
+ bufSize, // top/bottom buffer size. unit: # of items
+ i;
+
+ // subroutine: Move itemContents in i2 into i1
+ function moveItemContents( vl, i1, i2 ) {
+ // TODO: Find a efficient way to replace data!
+ // Assumption: i1 and i2 has same children.
+ var NODETYPE = { ELEMENT_NODE: 1, TEXT_NODE: 3 },
+ c1, // child item 1 (old)
+ c2, // child item 2 (new)
+ newText,
+ newImg,
+ i;
- .bind( "pageshow", function ( event ) {
- var thisPage = this;
- self._setContentMinHeight( thisPage );
- self.updatePagePadding( thisPage );
- self._updateHeaderArea( thisPage );
- if ( o.updatePagePadding ) {
- $( window ).bind( "throttledresize." + self.widgetName, function () {
- self.updatePagePadding(thisPage);
+ $( i1 ).find( ".ui-li-text-main", ".ui-li-text-sub", ".ui-li-text-sub2", "ui-btn-text" ).each( function ( index ) {
+ c1 = $( this );
+ newText = $( i2 ).find( ".ui-li-text-main", ".ui-li-text-sub", "ui-btn-text" ).eq( index ).text();
- self.updatePageLayout( thisPage, false);
- self._updateHeaderArea( thisPage );
- self._setContentMinHeight( thisPage );
- });
- }
- })
+ $( c1 ).contents().filter( function () {
+ return ( this.nodeType == NODETYPE.TEXT_NODE );
+ } ).get( 0 ).data = newText;
+ } );
- .bind( "pagebeforehide", function ( e, ui ) {
- if ( o.disablePageZoom ) {
- $.mobile.zoom.enable( true );
- }
- if ( o.updatePagePadding ) {
- $( window ).unbind( "throttledresize." + self.widgetName );
- }
- });
+ $( i1 ).find( "img" ).each( function ( imgIdx ) {
+ var c1 = $( this );
+ newImg = $( i2 ).find( "img" ).eq( imgIdx ).attr( "src" );
- window.addEventListener( "softkeyboardchange", function ( e ) {
- var $elDownBtn = $( "<div class='ui-btn-footer-down'></div>" ),
- $elPage = $( ".ui-page-active" ),
- backBtn,
- backBtnPosition = "footer";
+ $( c1 ).attr( "src", newImg );
+ } );
- if ( $elPage.data( "addBackBtn" ) ) {
- $elPage.data( "addBackBtn" ) == "header" ? backBtnPosition = "header" : backBtnPosition = "footer";
+ $( i1 ).removeData( ); // Clear old data
+ }
- if ( e.state == "on" ) {
- if ( !$elPage.find( ".ui-" + backBtnPosition + " .ui-btn-footer-down" ).length ) {
- $elDownBtn.buttonMarkup( { icon: "down" } ).appendTo( $elPage.find( ".ui-" + backBtnPosition ) );
- }
+ // subroutine: Move item
+ function moveItem( vl, fromIdx, toIdx ) {
+ var itemData, // data from itemData()
+ item, // item element
+ newItem, // new item element
+ tmpl; // template
- // N_SE-32900: If an app moves a page when the pop is shown, the .ui-page-active page
- // is changed.
- // In this case, the '.ui-page-active .ui-btn-back' selector indicates a
- // new page's one, and the old page's .ui-btn-back button is still hidden.
- // So, the current back button is remembered to be shown at the
- // softkeyboardchange.off event.
- backBtn = $( ".ui-page-active .ui-btn-back" );
- backBtn.hide();
- self._backBtnQueue.push( backBtn ); // Store hidden backBtn
- } else if ( e.state == "off" ) {
- self._backBtnQueue.forEach( function ( b ) {
- b.show(); // Show each backBtn,
- } );
- self._backBtnQueue.length = 0; // and clear queue.
+ log( ">> move item: " + fromIdx + " --> " + toIdx );
- $( ".ui-btn-footer-down" ).remove();
+ // Find current item
+ item = $( '#' + vl.options.itemIDPrefix + fromIdx ); // TODO: refactor ID generation!
+ if ( ! item || ! item.length ) {
+ return false;
}
- }
- });
- },
-
- _bindContentControlEvents: function () {
- var self = this,
- o = self.options,
- $el = self.element;
+ // Get new item
+ tmpl = $( "#" + vl.options.template );
+ if ( tmpl ) {
+ newItem = tmpl.tmpl( vl._itemData( toIdx ) );
- $el.closest( ".ui-page" )
- .bind( "pagebeforeshow", function ( event ) {
+ // TODO: Consider touch block while moving?
- });
- },
+ // Move item contents
+ moveItemContents( vl, item, newItem );
- _setContentMinHeight : function ( thisPage ) {
- var $elPage = $( thisPage ),
- $elHeader = $elPage.find( ":jqmData(role='header')" ),
- $elFooter = $elPage.find( ":jqmData(role='footer')" ),
- $elContent = $elPage.find( ":jqmData(role='content')" ),
- resultMinHeight,
- dpr = 1,
- layoutInnerHeight = window.innerHeight;
+ // clean up temporary item
+ newItem.remove();
+ }
- if ( !$.support.scrollview ) {
- dpr = window.outerWidth / window.innerWidth;
- layoutInnerHeight = Math.floor( window.outerHeight / dpr );
- }
+ // Move position, and set id
+ item.css( 'top', toIdx * vl._line_h )
+ .attr( 'id' , vl.options.itemIDPrefix + toIdx ); // TODO: refactor ID generation!
- resultMinHeight = layoutInnerHeight - $elHeader.height() - $elFooter.height();
+ // TODO: Apply jqmdata? check following old code;
+ // $( oldItem ).removeData( ); // Clear old data
+ // if (key) { $( oldItem ).data( key, $( newItem ).data( key ) ); }
- $elContent.css( "min-height", resultMinHeight - parseFloat( $elContent.css("padding-top") ) - parseFloat( $elContent.css("padding-bottom") ) + "px" );
- },
+ return true;
+ }
- _updateHeaderArea : function ( thisPage ) {
- var $elPage = $( thisPage ),
- $elHeader = $elPage.find( ":jqmData(role='header')" ).length ? $elPage.find( ":jqmData(role='header')") : $elPage.siblings( ":jqmData(role='header')"),
- headerBtnNum = $elHeader.children("a").length,
- headerSrcNum = $elHeader.children("img").length;
- if ( !$elPage.is( ".ui-dialog" ) ) {
- $elHeader.find( "h1" ).css( "width", window.innerWidth - parseInt( $elHeader.find( "h1" ).css( "margin-left" ), 10 ) * 2 - $elHeader.children( "a" ).width() * headerBtnNum - $elHeader.children( "a" ).width() / 4 - $elHeader.children( "img" ).width() * headerSrcNum * 4 );
- }
- /* add half width for default space between text and button, and img tag area is too narrow, so multiply three for img width*/
- },
+ // Get current view position
+ cy = viewTop();
- _visible: true,
+ // Calculate bufSize: rowLen / 3
+ // NOTE: Assumption: total row length = visible items * 3 (upper+visible+lower)
+ bufSize = Math.ceil( rowLen / 3 );
- // This will set the content element's top or bottom padding equal to the toolbar's height
- updatePagePadding: function ( tbPage ) {
- var $el = this.element,
- header = $el.siblings( ".ui-header" ).length,
- footer = $el.siblings( ".ui-footer" ).length;
+ // Calculate current top/bottom index (to be applied)
+ // top index = current position / line height
+ cti = Math.floor( cy / vl._line_h ) - bufSize; // TODO: consider buffer!
+ cbi = cti + rowLen - 1;
- // This behavior only applies to "fixed", not "fullscreen"
- if ( this.options.fullscreen ) {
- return;
- }
+ if ( cti < 0 ) { // Top boundary check
+ cbi += ( - cti );
+ cti = 0;
+ } else if ( cbi > ( vl._numItemData - 1 ) ) { // Bottom boundary check
+ cti -= ( cbi - ( vl._numItemData - 1 ) );
+ cbi = ( vl._numItemData - 1 );
+ }
- tbPage = tbPage || $el.closest( ".ui-page" );
+ // Calculate dti
+ dti = cti - oti;
+ log( "cy=" + cy + ", oti=" + oti + ", obi=" + obi + ", cti=" + cti + ", cbi=" + cbi + ", dti=" + dti );
- if ( $el.siblings( ".ui-header" ).jqmData("position") == "fixed" || $.support.scrollview ) {
- $( tbPage ).css( "padding-top", ( header ? $el.siblings( ".ui-header" ).outerHeight() : 0 ) );
- }
- $( tbPage ).css( "padding-bottom", ( footer ? $el.siblings( ".ui-footer" ).outerHeight() : 0 ) );
- },
+ // switch: dti = 0 --> timer stop condition: delta=0 or scrollstop event comes. END.
+ if ( 0 == dti ) {
+ // Check timer runtime
+ vl.timerStillCount += 1;
+ if ( vl.timerStillCount < 12 ) { // check count ( TODO: test and adjust )
+ log("dti=0 " + vl.timerStillCount + " times");
+ vl.timerMoveID = setTimeout( timerMove, timerInterval, vl ); // run once more
+ return;
+ }
- /* 1. Calculate and update content height */
- updatePageLayout: function ( thisPage, receiveType ) {
- var $elFooter,
- $elPage = $( thisPage ),
- $elHeader = $elPage.find( ":jqmData(role='header')" ),
- $elContent = $elPage.find( ":jqmData(role='content')" ),
- resultContentHeight = 0,
- resultFooterHeight = 0,
- resultHeaderHeight = 0,
- layoutInnerHeight = window.innerHeight,
- dpr = 1;
+ log("dti=0 " + vl.timerStillCount + " times. End timer.");
+ vl.timerStillCount = 0;
+ // Stop timer
+ if ( vl.timerMoveID ) {
+ clearTimeout( vl.timerMoveID );
+ vl.timerMoveID = null;
+ }
+ } else {
+ // switch: dti >= # of max elements --> total replace.
+ vl.timerStillCount = 0; // Reset still counter
- if ( $elPage.length ) {
- $elFooter = $elPage.find( ":jqmData(role='footer')" );
- } else {
- $elFooter = $( document ).find( ":jqmData(role='footer')" ).eq( 0 );
- }
+ if ( Math.abs( dti ) >= rowLen ) {
+ fromIdx = oti;
+ toIdx = obi;
+ delta = dti;
+ log( ">>> WHOLE CHANGE! delta=" + delta );
+ } else {
+ // switch: dti < # of max elements --> move t2b or b2t until new top/bottom idx is covered
+ if ( dti > 0 ) {
+ fromIdx = oti;
+ toIdx = oti + dti - 1;
+ delta = rowLen;
+ } else {
+ fromIdx = obi + dti + 1; // dti < 0
+ toIdx = obi;
+ delta = -rowLen;
+ }
+ log( ">>> partial change. delta=" + delta );
+ }
- // calculate footer height
- resultFooterHeight = ( $elFooter.css( "display" ) == "none" || $elFooter.length == 0 ) ? 0 : $elFooter.height();
- resultHeaderHeight = ( $elHeader.css( "display" ) == "none" || $elHeader.length == 0 ) ? 0 : $elHeader.height();
+ // Move items
+ for ( i = fromIdx; i <= toIdx; i++ ) {
+ moveItem( vl, i, i + delta ); // Change data and position
+ }
- if (resultFooterHeight != 0 ) {
- $elFooter.css( "bottom", 0 );
- }
+ // Store current top/bottom idx into vl
+ vl._first_index = cti;
+ vl._last_index = cbi;
- if ( !$.support.scrollview ) {
- dpr = window.outerWidth / window.innerWidth;
- layoutInnerHeight = Math.floor( window.outerHeight / dpr );
+ // Register timer to check again
+ vl.timerMoveID = setTimeout( timerMove, timerInterval, vl );
+ }
+ return; // End of function
}
- resultContentHeight = layoutInnerHeight - resultFooterHeight - resultHeaderHeight;
+ // ==== function start ====
- if ( $.support.scrollview ) {
- $elContent.height( resultContentHeight -
- parseFloat( $elContent.css("padding-top") ) -
- parseFloat( $elContent.css("padding-bottom") ) );
- }
+ t.timerStillCount = 0; // Count do-nothing time. For behavior tuning.
- // External call page( "refresh") - in case title changed
- if ( receiveType ) {
- $elPage
- .css( "min-height", resultContentHeight )
- .css( "padding-top", resultHeaderHeight )
- .css( "padding-bottom", resultFooterHeight );
+ // If a timer function is alive, clear it
+ if ( t.timerMoveID ) {
+ clearTimeout( t.timerMoveID );
+ t.timerMoveID = null;
}
+ // run TimerMove()
+ timerMove( t );
},
- show: function ( notransition ) {
- /* blank function: deprecated */
- },
-
- hide: function ( notransition ) {
- /* blank function: deprecated */
- },
+ _recreate: function ( newArray ) {
+ var t = this,
+ o = this.options;
- toggle: function () {
- this[ this._visible ? "hide" : "show" ]();
- },
+ $( o.id ).empty();
- destroy: function () {
- this.element.removeClass( "ui-header-fixed ui-footer-fixed ui-header-fullscreen ui-footer-fullscreen in out fade slidedown slideup ui-fixed-hidden" );
- this.element.closest( ".ui-page" ).removeClass( "ui-page-header-fixed ui-page-footer-fixed ui-page-header-fullscreen ui-page-footer-fullscreen" );
- },
+ t._numItemData = newArray.length;
+ t._direction = _NO_SCROLL;
+ t._first_index = 0;
+ t._last_index = o.row - 1;
- refresh: function () {
- var $elPage = $( ".ui-page-active" );
- this.setHeaderFooter( $elPage );
- this._updateHeaderArea( $elPage );
- }
- });
+ t._pushData( o.template );
- //auto self-init widgets
- $( document )
- .bind( "pagecreate create", function ( e ) {
- // DEPRECATED in 1.1: support for data-fullscreen=true|false on the page element.
- // This line ensures it still works, but we recommend moving the attribute to the toolbars themselves.
- if ( $( e.target ).jqmData( "fullscreen" ) ) {
- $( $.mobile.pagelayout.prototype.options.initSelector, e.target ).not( ":jqmData(fullscreen)" ).jqmData( "fullscreen", true );
+ if (o.childSelector == " ul" ) {
+ $( o.id + " ul" ).swipelist();
}
- $.mobile.pagelayout.prototype.enhanceWithin( e.target );
- });
-
-}( jQuery ));
+ $( o.id ).virtuallistview();
+ t.refresh( true );
-/*
- * jQuery Mobile Widget @VERSION
- *
- * This software is licensed under the MIT licence (as defined by the OSI at
- * http://www.opensource.org/licenses/mit-license.php)
- *
- * ***************************************************************************
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
- * Copyright (c) 2011 by Intel Corporation Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- *
- * Authors: Max Waterman <max.waterman@intel.com>
- * Authors: Minkyu Kang <mk7.kang@samsung.com>
- */
+ t._reposition( o );
+ },
-/**
- * tizenslider modifies the JQuery Mobile slider and is created in the same way.
- *
- * See the JQuery Mobile slider widget for more information :
- * http://jquerymobile.com/demos/1.0a4.1/docs/forms/forms-slider.html
- *
- * The JQuery Mobile slider option:
- * theme: specify the theme using the 'data-theme' attribute
- *
- * Options:
- * theme: string; the theme to use if none is specified using the 'data-theme' attribute
- * default: 'c'
- * popup: boolean; controls whether the popup is displayed or not
- * specify if the popup is enabled using the 'data-popup' attribute
- * set from javascript using .tizenslider('option','popup',newValue)
- *
- * Events:
- * changed: triggers when the value is changed (rather than when the handle is moved)
- *
- * Examples:
- *
- * <a href="#" id="popupEnabler" data-role="button" data-inline="true">Enable popup</a>
- * <a href="#" id="popupDisabler" data-role="button" data-inline="true">Disable popup</a>
- * <div data-role="fieldcontain">
- * <input id="mySlider" data-theme='a' data-popup='false' type="range" name="slider" value="7" min="0" max="9" />
- * </div>
- * <div data-role="fieldcontain">
- * <input id="mySlider2" type="range" name="slider" value="77" min="0" max="777" />
- * </div>
- *
- * // disable popup from javascript
- * $('#mySlider').tizenslider('option','popup',false);
- *
- * // from buttons
- * $('#popupEnabler').bind('vclick', function() {
- * $('#mySlider').tizenslider('option','popup',true);
- * });
- * $('#popupDisabler').bind('vclick', function() {
- * $('#mySlider').tizenslider('option','popup',false);
- * });
- */
+ // Init virtuallistview
+ // this virtuallistview object
+ _initList: function () {
+ var t = this,
+ o = this.options;
-/**
- @class Slider
- The slider widget shows a control on the screen that you can use to change values by dragging a handle on a horizontal scale. Sliders can be used in Tizen as described in the jQueryMobile documentation for sliders.
+ /* After AJAX loading success */
- To add a slider widget to the application, use the following code:
+ // Put initial <li> elements
+ t._pushData( o.template );
- <input data-popup='false' type="range" name="slider" value="5" min="0" max="10" data-icon="text" data-text-left="Min" data-text-right="Max" />
+ // find a parent page, and run _reposition() at 'pageshow' event
+ // TODO: Consider replace parentsUntil().parent() to parent('.ui-page') ???
+ $( o.id ).parentsUntil( ".ui-page" ).parent().one( "pageshow", function () {
+ setTimeout( function () {
+ t._reposition( o );
+ }, 0);
+ });
- The slider can define callbacks for events as described in the jQueryMobile documentation for slider events.
- You can use methods with the slider as described in the jQueryMobile documentation for slider methods.
-*/
-/**
- @property {String} data-icon
- Defines the icon style for the slider ends. The icon options are bright, volume, and text.
- The default value is text.
-*/
-/**
- @property {Boolean} data-popup
- Enables or disables a pop-up showing the current value while the handle is dragged.
- The default value is true.
-*/
-/**
- @property {String} data-text-left
- Defines the text displayed on the left side of the slider.
- The data-icon option must be set to text.
-*/
-/**
- @property {String} data-text-right
- Defines the text displayed on the right side of the slider.
- The data-icon option must be set to text.
-*/
+ // Bind _scrollmove() at 'scrollstart.virtuallist' event
+ $( document ).bind( "scrollstart.virtuallist scrollstop.vrituallist", t, t._scrollmove );
-(function ($, window, undefined) {
- $.widget("tizen.tizenslider", $.mobile.widget, {
- options: {
- popup: true
- },
+ // Bind _resize()
+ $( window ).on( "throttledresize", $( o.id ), t._resize );
- popup: null,
- handle: null,
- handleText: null,
+ // when ul is a childselector, assume that this is also a swipelist,
+ // and run swipelist constructor
+ if ( o.childSelector == " ul" ) {
+ $( o.id + " ul" ).swipelist();
+ }
- _create: function () {
- this.currentValue = null;
- this.popupVisible = false;
+ t.refresh( true );
+ },
- var self = this,
- inputElement = $( this.element ),
- slider,
- handle_press,
- popupEnabledAttr,
- icon,
- text_right,
- text_left,
- text_length,
- elem_left,
- elem_right,
- margin_left,
- margin_right;
+ create: function () {
+ var o = this.options;
- // apply jqm slider
- inputElement.slider();
+ /* external API for AJAX callback */
+ this._create.apply( this, arguments );
- // hide the slider input element proper
- inputElement.hide();
+ // TODO: remove this line? _initList() calls reposition...
+ this._reposition( o );
+ },
- self.popup = $('<div class="ui-slider-popup"></div>');
+ _create: function ( args ) {
+ // Extend instance variables
+ $.extend( this, {
+ _itemData : function ( idx ) { return null; },
+ _numItemData : 0,
+ _cacheItemData : function ( minIdx, maxIdx ) { },
+ _title_h : 0,
+ _container_w : 0,
+ _minimum_row : 100,
+ _direction : _NO_SCROLL,
+ _first_index : 0,
+ _last_index : 0,
+ _num_top_items : 0 // By scroll move, number of hidden elements.
+ } );
- // set the popup according to the html attribute
- popupEnabledAttr = inputElement.jqmData('popup');
- if ( popupEnabledAttr !== undefined ) {
- self.options.popup = ( popupEnabledAttr == true );
- }
+ // local variables
+ var t = this,
+ o = this.options,
+ $el = this.element,
+ shortcutsContainer = $('<div class="ui-virtuallist"/>'),
+ shortcutsList = $('<ul></ul>'),
+ dividers = $el.find(':jqmData(role="virtuallistview" )'),
+ lastListItem = null,
+ shortcutscroll = this,
+ dbtable_name,
+ dbtable;
- // get the actual slider added by jqm
- slider = inputElement.next('.ui-slider');
- icon = inputElement.attr('data-icon');
+ // Add CSS classes to $el (=virtuallistview)
+ $el.addClass( function ( i, orig ) {
+ return orig + " ui-listview ui-virtual-list-container" + ( t.options.inset ? " ui-listview-inset ui-corner-all ui-shadow " : "" );
+ });
- // wrap the background
- slider.wrap('<div class="ui-slider-container"></div>');
+ // keep the vlist's ID
+ o.itemIDPrefix = $el.attr( "id" ) + '_';
+ o.id = "#" + $el.attr( "id" );
- // get the handle
- self.handle = slider.find('.ui-slider-handle');
+ // when page hides, empty all child elements
+ $( o.id ).bind( "pagehide", function ( e ) {
+ $( o.id ).empty();
+ });
- // remove the rounded corners from the slider and its children
- slider.removeClass('ui-btn-corner-all');
- slider.find('*').removeClass('ui-btn-corner-all');
+ // Find if scrollview is used
+ if ( $( ".ui-scrollview-clip" ).size() > 0 ) {
+ o.scrollview = true;
+ } else {
+ o.scrollview = false;
+ }
- // add icon
- switch ( icon ) {
- case 'bright':
- case 'volume':
- elem_left = $('<div class="ui-slider-left-' + icon + '"></div>');
- elem_right = $('<div class="ui-slider-right-' + icon + '"></div>');
+ // Calculate page buffer size
+ if ( $el.data( "row" ) ) {
+ o.row = $el.data( "row" );
- slider.before( elem_left );
- slider.after( elem_right );
+ if ( o.row < t._minimum_row ) {
+ o.row = t._minimum_row;
+ }
- margin_left = elem_left.width() + 16;
- margin_right = elem_right.width() + 16;
- break;
+ o.page_buf = parseInt( ( o.row / 2 ), 10 );
+ }
- case 'text':
- text_left = ( inputElement.attr('data-text-left') === undefined ) ? '' :
- inputElement.attr('data-text-left').substring( 0, 3 );
- text_right = ( inputElement.attr('data-text-right') === undefined ) ? '' :
- inputElement.attr('data-text-right').substring( 0, 3 );
+ // Get arguments
+ if ( args ) {
+ if ( args.itemData && typeof args.itemData == 'function' ) {
+ t._itemData = args.itemData;
+ } else {
+ return;
+ }
+ if ( args.numItemData ) {
+ if ( typeof args.numItemData == 'function' ) {
+ t._numItemData = args.numItemData( );
+ } else if ( typeof args.numItemData == 'number' ) {
+ t._numItemData = args.numItemData;
+ } else {
+ return;
+ }
+ } else {
+ return;
+ }
+ } else { // No option is given
+ // Legacy support: dbtable
+ console.warn( "WARNING: The data interface of virtuallist is changed. \nOld data interface(data-dbtable) is still supported, but will be removed in next version. \nPlease fix your code soon!" );
- text_length = Math.max( text_left.length, text_right.length ) + 1;
+ /* After DB Load complete, Init Vritual list */
+ if ( $( o.id ).hasClass( "vlLoadSuccess" ) ) {
+ dbtable_name = $el.jqmData('dbtable');
+ dbtable = window[ dbtable_name ];
- margin_left = text_length + "rem";
- margin_right = text_length + "rem";
+ $( o.id ).empty();
- elem_left = $('<div class="ui-slider-left-text" style="left:' +
- -( text_length ) + 'rem; width:' + text_length + 'rem;">' +
- '<span style="position:relative;top:0.4em;">' +
- text_left +
- '</span></div>');
- elem_right = $('<div class="ui-slider-right-text" style="right:' +
- -( text_length ) + 'rem; width:' + text_length + 'rem;">' +
- '<span style="position:relative;top:0.4em;">' +
- text_right +
- '</span></div>');
+ if ( !dbtable ) {
+ dbtable = { };
+ }
- slider.before( elem_left );
- slider.after( elem_right );
- break;
+ t._itemData = function ( idx ) {
+ return dbtable[ idx ];
+ };
+ t._numItemData = dbtable.length;
+ } else {
+ return; // Do nothing
+ }
}
- if ( icon ) {
- slider.parent('.ui-slider-container').css({
- "margin-left": margin_left,
- "margin-right": margin_right
- });
- }
+ // Get template data
+ if ( $el.data( "template" ) ) {
+ o.template = $el.data( "template" );
- // handle press
- slider.append($('<div class="ui-slider-handle-press"></div>'));
- self.handle_press = slider.find('.ui-slider-handle-press');
- self.handle_press.css('display', 'none');
+ /* to support swipe list, <li> or <ul> can be main node of virtual list. */
+ if ( $el.data( "swipelist" ) == true ) {
+ o.childSelector = " ul";
+ } else {
+ o.childSelector = " li";
+ }
+ }
- // add a popup element (hidden initially)
- slider.parents(".ui-page").append( self.popup );
- self.popup.hide();
+ // Set data's unique key
+ // NOTE: Unnecessary?
+ if ( $el.data( "dbkey" ) ) {
+ o.dbkey = $el.data( "dbkey" );
+ }
- // get the element where value can be displayed
- self.handleText = slider.find('.ui-btn-text');
+ t._first_index = 0; // initial top idx of <li> element.
+ t._last_index = o.row - 1; // initial bottom idx of <li> element.
+ t._initList(); // NOTE: Called at here only!
+ },
- // set initial value
- self.updateSlider();
+ destroy : function () {
+ var o = this.options;
- // bind to changes in the slider's value to update handle text
- this.element.bind('change', function () {
- self.updateSlider();
- });
+ $( document ).unbind( "scrollstop" );
- // bind clicks on the handle to show the popup
- self.handle.bind('vmousedown', function () {
- self.showPopup();
- });
+ $( window ).off( "throttledresize", this._resize );
- // watch events on the document to turn off the slider popup
- slider.add( document ).bind('vmouseup', function () {
- self.hidePopup();
- });
- },
+ $( o.id ).empty();
- _handle_press_show: function () {
- this.handle_press.css('display', '');
+ if ( this.timerMoveID ) {
+ clearTimeout( this.timerMoveID );
+ this.timerMoveID = null;
+ }
},
- _handle_press_hide: function () {
- this.handle_press.css('display', 'none');
- },
+ _itemApply: function ( $list, item ) {
+ var $countli = item.find( ".ui-li-count" );
- // position the popup
- positionPopup: function () {
- var dstOffset = this.handle.offset();
+ if ( $countli.length ) {
+ item.addClass( "ui-li-has-count" );
+ }
- this.popup.offset({
- left: dstOffset.left + ( this.handle.width() - this.popup.width() ) / 2,
- top: dstOffset.top - this.popup.height()
- });
+ $countli.addClass( "ui-btn-up-" + ( $list.jqmData( "counttheme" ) || this.options.countTheme ) + " ui-btn-corner-all" );
- this.handle_press.offset({
- left: dstOffset.left,
- top: dstOffset.top
- });
+ // TODO class has to be defined in markup
+ item.find( "h1, h2, h3, h4, h5, h6" ).addClass( "ui-li-heading" ).end()
+ .find( "p, dl" ).addClass( "ui-li-desc" ).end()
+ .find( ">img:eq(0), .ui-link-inherit>img:eq(0)" ).addClass( "ui-li-thumb" ).each( function () {
+ item.addClass( $( this ).is( ".ui-li-icon" ) ? "ui-li-has-icon" : "ui-li-has-thumb" );
+ }).end()
+ .find( ".ui-li-aside" ).each(function () {
+ var $this = $( this );
+ $this.prependTo( $this.parent() ); //shift aside to front for css float
+ } );
},
- // show value on the handle and in popup
- updateSlider: function () {
- var font_size,
- font_length,
- font_top,
- padding_size,
- newValue,
- get_value_length = function ( v ) {
- var val = Math.abs( v ),
- len;
+ _removeCorners: function ( li, which ) {
+ var top = "ui-corner-top ui-corner-tr ui-corner-tl",
+ bot = "ui-corner-bottom ui-corner-br ui-corner-bl";
- if ( val > 999 ) {
- len = 4;
- } else if ( val > 99 ) {
- len = 3;
- } else if ( val > 9 ) {
- len = 2;
- } else {
- len = 1;
- }
+ li = li.add( li.find( ".ui-btn-inner, .ui-li-link-alt, .ui-li-thumb" ) );
- if ( v < 0 ) {
- len++;
- }
+ if ( which === "top" ) {
+ li.removeClass( top );
+ } else if ( which === "bottom" ) {
+ li.removeClass( bot );
+ } else {
+ li.removeClass( top + " " + bot );
+ }
+ },
- return len;
- };
+ _refreshCorners: function ( create ) {
+ var $li,
+ $visibleli,
+ $topli,
+ $bottomli;
- // remove the title attribute from the handle (which is
- // responsible for the annoying tooltip); NB we have
- // to do it here as the jqm slider sets it every time
- // the slider's value changes :(
- this.handle.removeAttr('title');
+ if ( this.options.inset ) {
+ $li = this.element.children( "li" );
+ // at create time the li are not visible yet so we need to rely on .ui-screen-hidden
+ $visibleli = create ? $li.not( ".ui-screen-hidden" ) : $li.filter( ":visible" );
- newValue = this.element.val();
+ this._removeCorners( $li );
- font_length = get_value_length( newValue );
+ // Select the first visible li element
+ $topli = $visibleli.first()
+ .addClass( "ui-corner-top" );
- if ( this.popupVisible ) {
- this.positionPopup();
+ $topli.add( $topli.find( ".ui-btn-inner" ) )
+ .find( ".ui-li-link-alt" )
+ .addClass( "ui-corner-tr" )
+ .end()
+ .find( ".ui-li-thumb" )
+ .not( ".ui-li-icon" )
+ .addClass( "ui-corner-tl" );
- switch ( font_length ) {
- case 1:
- case 2:
- font_size = '1.5rem';
- padding_size = '0.15rem';
- break;
- case 3:
- font_size = '1rem';
- padding_size = '0.5rem';
- break;
- default:
- font_size = '0.8rem';
- padding_size = '0.5rem';
- break;
- }
+ // Select the last visible li element
+ $bottomli = $visibleli.last()
+ .addClass( "ui-corner-bottom" );
- this.popup.css({
- "font-size": font_size,
- "padding-top": padding_size
- });
+ $bottomli.add( $bottomli.find( ".ui-btn-inner" ) )
+ .find( ".ui-li-link-alt" )
+ .addClass( "ui-corner-br" )
+ .end()
+ .find( ".ui-li-thumb" )
+ .not( ".ui-li-icon" )
+ .addClass( "ui-corner-bl" );
}
+ },
- if ( newValue === this.currentValue ) {
- return;
- }
+ // this virtuallistview object
+ refresh: function ( create ) {
+ this.parentPage = this.element.closest( ".ui-page" );
+ // Make sub page, and move the virtuallist into it...
+ // NOTE: check this subroutine.
+ this._createSubPages();
- switch ( font_length ) {
- case 1:
- font_size = '0.95rem';
- font_top = '0';
- break;
- case 2:
- font_size = '0.85rem';
- font_top = '-0.01rem';
- break;
- case 3:
- font_size = '0.65rem';
- font_top = '-0.05rem';
- break;
- default:
- font_size = '0.45rem';
- font_top = '-0.15rem';
- break;
- }
+ var o = this.options,
+ $list = this.element,
+ self = this,
+ dividertheme = $list.jqmData( "dividertheme" ) || o.dividerTheme,
+ listsplittheme = $list.jqmData( "splittheme" ),
+ listspliticon = $list.jqmData( "spliticon" ),
+ li = $list.children( "li" ),
+ counter = $.support.cssPseudoElement || !$.nodeName( $list[ 0 ], "ol" ) ? 0 : 1,
+ item,
+ itemClass,
+ temTheme,
+ a,
+ last,
+ splittheme,
+ countParent,
+ icon,
+ pos,
+ numli,
+ itemTheme;
- if ( font_size != this.handleText.css('font-size') ) {
- this.handleText.css({
- 'font-size': font_size,
- 'top': font_top
- });
+ // TODO: ?
+ if ( counter ) {
+ $list.find( ".ui-li-dec" ).remove();
}
- this.currentValue = newValue;
- this.handleText.text( newValue );
- this.popup.html( newValue );
-
- this.element.trigger( 'update', newValue );
- },
+ for ( pos = 0, numli = li.length; pos < numli; pos++ ) {
+ item = li.eq( pos );
+ itemClass = "ui-li";
- // show the popup
- showPopup: function () {
- if ( !this.options.popup || this.popupVisible ) {
- return;
- }
+ // If we're creating the element, we update it regardless
+ if ( create || !item.hasClass( "ui-li" ) ) {
+ itemTheme = item.jqmData( "theme" ) || o.theme;
+ a = item.children( "a" );
- this.popup.show();
- this.popupVisible = true;
- this._handle_press_show();
- },
+ if ( a.length ) {
+ icon = item.jqmData( "icon" );
- // hide the popup
- hidePopup: function () {
- if ( !this.options.popup || !this.popupVisible ) {
- return;
- }
+ item.buttonMarkup({
+ wrapperEls: "div",
+ shadow: false,
+ corners: false,
+ iconpos: "right",
+ /* icon: a.length > 1 || icon === false ? false : icon || "arrow-r",*/
+ icon: false, /* Remove unnecessary arrow icon */
+ theme: itemTheme
+ });
- this.popup.hide();
- this.popupVisible = false;
- this._handle_press_hide();
- },
+ if ( ( icon != false ) && ( a.length == 1 ) ) {
+ item.addClass( "ui-li-has-arrow" );
+ }
- _setOption: function (key, value) {
- var needToChange = ( value !== this.options[key] );
+ a.first().addClass( "ui-link-inherit" );
- if ( !needToChange ) {
- return;
- }
+ if ( a.length > 1 ) {
+ itemClass += " ui-li-has-alt";
- switch ( key ) {
- case 'popup':
- this.options.popup = value;
+ last = a.last();
+ splittheme = listsplittheme || last.jqmData( "theme" ) || o.splitTheme;
- if ( this.options.popup) {
- this.updateSlider();
- } else {
- this.hidePopup();
- }
+ last.appendTo(item)
+ .attr( "title", last.getEncodedText() )
+ .addClass( "ui-li-link-alt" )
+ .empty()
+ .buttonMarkup({
+ shadow: false,
+ corners: false,
+ theme: itemTheme,
+ icon: false,
+ iconpos: false
+ })
+ .find( ".ui-btn-inner" )
+ .append(
+ $( "<span />" ).buttonMarkup({
+ shadow: true,
+ corners: true,
+ theme: splittheme,
+ iconpos: "notext",
+ icon: listspliticon || last.jqmData( "icon" ) || o.splitIcon
+ })
+ );
+ }
+ } else if ( item.jqmData( "role" ) === "list-divider" ) {
- break;
- }
- }
- });
+ itemClass += " ui-li-divider ui-btn ui-bar-" + dividertheme;
+ item.attr( "role", "heading" );
- // stop jqm from initialising sliders
- $( document ).bind( "pagebeforecreate", function ( e ) {
- if ( $.data( window, "jqmSliderInitSelector" ) === undefined ) {
- $.data( window, "jqmSliderInitSelector",
- $.mobile.slider.prototype.options.initSelector );
- $.mobile.slider.prototype.options.initSelector = null;
- }
- });
+ //reset counter when a divider heading is encountered
+ if ( counter ) {
+ counter = 1;
+ }
- // initialise sliders with our own slider
- $( document ).bind( "pagecreate create", function ( e ) {
- var jqmSliderInitSelector = $.data( window, "jqmSliderInitSelector" );
- $( e.target ).find(jqmSliderInitSelector).not('select').tizenslider();
- $( e.target ).find(jqmSliderInitSelector).filter('select').slider();
- });
+ } else {
+ itemClass += " ui-li-static ui-body-" + itemTheme;
+ }
+ }
-}( jQuery, this ));
+ if ( counter && itemClass.indexOf( "ui-li-divider" ) < 0 ) {
+ countParent = item.is( ".ui-li-static:first" ) ? item : item.find( ".ui-link-inherit" );
+ countParent.addClass( "ui-li-jsnumbering" )
+ .prepend( "<span class='ui-li-dec'>" + (counter++) + ". </span>" );
+ }
+ item.add( item.children( ".ui-btn-inner" ) ).addClass( itemClass );
-/*
- * jQuery UI Progressbar @VERSION
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- * Original file:
- * jquery.ui.progressbar.js
- */
-/* This is from jquery ui plugin - progressbar 11/16/2011 */
+ self._itemApply( $list, item );
+ }
+ this._refreshCorners( create );
+ },
-/**
- @class ProgressBar
- The progress bar widget shows a control that indicates the progress percentage of an on-going operation. This widget can be scaled to fit inside a parent container.
+ //create a string for ID/subpage url creation
+ _idStringEscape: function ( str ) {
+ return str.replace(/\W/g , "-");
+ },
- To add a progress bar widget to the application, use the following code:
+ // ?
+ // this virtuallistview object
+ _createSubPages: function () {
+ var parentList = this.element,
+ parentPage = parentList.closest( ".ui-page" ),
+ parentUrl = parentPage.jqmData( "url" ),
+ parentId = parentUrl || parentPage[ 0 ][ $.expando ],
+ parentListId = parentList.attr( "id" ),
+ o = this.options,
+ dns = "data-" + $.mobile.ns,
+ self = this,
+ persistentFooterID = parentPage.find( ":jqmData(role='footer')" ).jqmData( "id" ),
+ hasSubPages,
+ newRemove;
- <div id="foo" data-role="progressbar"</div>
-*/
-/**
- @event change
- The progress bar can define a callback for the change event, which is fired when the progress value is changed:
- <div id="foo" data-role="progressbar"></div>
- $("#foo").bind("change", function (ev, val) {
- Console.log("Value is changed to " + val);
- });
-*/
-/**
- @method value
- You can use the value method with the pickers to set or get the current default progress bar value:
+ if ( typeof listCountPerPage[ parentId ] === "undefined" ) {
+ listCountPerPage[ parentId ] = -1;
+ }
- <div id="foo" data-role="progressbar"></div>
- var oldVal = $("#foo").progressbar("value");
- $("#foo").progressbar("value", 50);
-*/
+ parentListId = parentListId || ++listCountPerPage[ parentId ];
-(function ( $, window, undefined ) {
+ $( parentList.find( "li>ul, li>ol" ).toArray().reverse() ).each(function ( i ) {
+ var self = this,
+ list = $( this ),
+ listId = list.attr( "id" ) || parentListId + "-" + i,
+ parent = list.parent(),
+ nodeEls,
+ title = nodeEls.first().getEncodedText(),//url limits to first 30 chars of text
+ id = ( parentUrl || "" ) + "&" + $.mobile.subPageUrlKey + "=" + listId,
+ theme = list.jqmData( "theme" ) || o.theme,
+ countTheme = list.jqmData( "counttheme" ) || parentList.jqmData( "counttheme" ) || o.countTheme,
+ newPage,
+ anchor;
- $.widget( "tizen.progressbar", $.mobile.widget, {
- options: {
- value: 0,
- max: 100
- },
+ nodeEls = $( list.prevAll().toArray().reverse() );
+ nodeEls = nodeEls.length ? nodeEls : $( "<span>" + $.trim( parent.contents()[ 0 ].nodeValue ) + "</span>" );
- min: 0,
+ //define hasSubPages for use in later removal
+ hasSubPages = true;
- _create: function () {
- this.element
- .addClass( "ui-progressbar" )
- .attr( {
- role: "progressbar",
- "aria-valuemin": this.min,
- "aria-valuemax": this.options.max,
- "aria-valuenow": this._value()
- } );
+ newPage = list.detach()
+ .wrap( "<div " + dns + "role='page' " + dns + "url='" + id + "' " + dns + "theme='" + theme + "' " + dns + "count-theme='" + countTheme + "'><div " + dns + "role='content'></div></div>" )
+ .parent()
+ .before( "<div " + dns + "role='header' " + dns + "theme='" + o.headerTheme + "'><div class='ui-title'>" + title + "</div></div>" )
+ .after( persistentFooterID ? $( "<div " + dns + "role='footer' " + dns + "id='" + persistentFooterID + "'>" ) : "" )
+ .parent()
+ .appendTo( $.mobile.pageContainer );
- this.valueDiv = $( "<div class='ui-progressbar-value'></div>" )
- .appendTo( this.element );
+ newPage.page();
- this.valueDiv.wrap("<div class='ui-progressbar-bg'></div>");
+ anchor = parent.find('a:first');
- this.oldValue = this._value();
- this._refreshValue();
- },
+ if ( !anchor.length ) {
+ anchor = $( "<a/>" ).html( nodeEls || title ).prependTo( parent.empty() );
+ }
- _destroy: function () {
- this.element
- .removeClass( "ui-progressbar" )
- .removeAttr( "role" )
- .removeAttr( "aria-valuemin" )
- .removeAttr( "aria-valuemax" )
- .removeAttr( "aria-valuenow" );
+ anchor.attr( "href", "#" + id );
- this.valueDiv.remove();
- },
+ }).virtuallistview();
- value: function ( newValue ) {
- if ( newValue === undefined ) {
- return this._value();
- }
+ // on pagehide, remove any nested pages along with the parent page, as long as they aren't active
+ // and aren't embedded
+ if ( hasSubPages &&
+ parentPage.is( ":jqmData(external-page='true')" ) &&
+ parentPage.data( "page" ).options.domCache === false ) {
- this._setOption( "value", newValue );
- return this;
- },
+ newRemove = function ( e, ui ) {
+ var nextPage = ui.nextPage, npURL;
- _setOption: function ( key, value ) {
- if ( key === "value" ) {
- this.options.value = value;
- this._refreshValue();
- if ( this._value() === this.options.max ) {
- this.element.trigger( "complete" );
- }
- }
- // jquery.ui.widget.js MUST be updated to new version!
- //this._super( "_setOption", key, value );
- },
+ if ( ui.nextPage ) {
+ npURL = nextPage.jqmData( "url" );
+ if ( npURL.indexOf( parentUrl + "&" + $.mobile.subPageUrlKey ) !== 0 ) {
+ self.childPages().remove();
+ parentPage.remove();
+ }
+ }
+ };
- _value: function () {
- var val = this.options.value;
- // normalize invalid value
- if ( typeof val !== "number" ) {
- val = 0;
+ // unbind the original page remove and replace with our specialized version
+ parentPage
+ .unbind( "pagehide.remove" )
+ .bind( "pagehide.remove", newRemove );
}
- return Math.min( this.options.max, Math.max( this.min, val ) );
- },
-
- _percentage: function () {
- return 100 * this._value() / this.options.max;
},
- _refreshValue: function () {
- var value = this.value(),
- percentage = this._percentage();
-
- if ( this.oldValue !== value ) {
- this.oldValue = value;
- this.element.trigger( "change" );
- }
+ // TODO sort out a better way to track sub pages of the virtuallistview this is brittle
+ childPages: function () {
+ var parentUrl = this.parentPage.jqmData( "url" );
- this.valueDiv
- .toggle( value > this.min )
- .width( percentage.toFixed(0) + "%" );
- this.element.attr( "aria-valuenow", value );
+ return $( ":jqmData(url^='" + parentUrl + "&" + $.mobile.subPageUrlKey + "')" );
}
- } );
+ });
- // auto self-init widgets
- $( document ).bind( "pagecreate", function ( e ) {
- $( e.target ).find( ":jqmData(role='progressbar')" ).progressbar();
- } );
+ //auto self-init widgets
+ $( document ).bind( "pagecreate create", function ( e ) {
+ $( $.tizen.virtuallistview.prototype.options.initSelector, e.target ).virtuallistview();
+ });
-}( jQuery, this ) );
+} ( jQuery ) );
-/* ***************************************************************************
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+/**
+ * @class core
+ * loader.js
*
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
+ * Youmin Ha <youmin.ha@samsung.com>
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
*
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
*/
/*
-* jQuery Mobile Framework : "textinput" plugin for text inputs, textareas
-* Copyright (c) jQuery Project
-* Dual licensed under the MIT or GPL Version 2 licenses.
-* http://jquery.org/license
-* Authors: Jinhyuk Jun <jinhyuk.jun@samsung.com>
-* Wongi Lee <wongi11.lee@samsung.com>
-*/
+ Web UI scaling concept in Tizen Web UI
-/**
- * Searchbar can be created using <input> element with type=search
- * <input type="search" name="search" id="search1" value="" />
- *
- * Searchbar can be inserted 3 cases
- * content : seachbar behave same as content element
- * header : searchbar placed below title(header), It doesn't move when scrolling page
- * inside optionheader : Searchbar placed inside optionheader, searchbar can be seen only expand optionheader
- *
- * Examples:
- *
- * HTML markup for creating Searchbar
- * <input type="search"/>
- *
- * How to make searchbar in content
- * <input type="search" name="" id="" value="" />
- *
- * How to make cancel button in searchbar
- * <div data-role="header" data-position ="fixed" >
- * <h1>Searchbar</h1>
- * <input type="search" data-cancel-btn=true name="" id="" value="" />
- * </div>
- *
- * How to make icon in front of searchbar
- * <div data-role="header" data-position ="fixed" >
- * <h1>Searchbar</h1>
- * <input type="search" data-icon="call" name="" id="" value="" />
- * </div>
-*/
+Generally, web applications must be designed to be showed acceptable on various size and resolution of screens, and web winsets have to be scaled well. Tizen Web UI Framework supports various viewport settings, and Tizen Web UI widgets are designed to be scalable on various screen sizes. In order to make web applications scalable on many devices which have different screen size, it is necessary to understand how mobile web browsers deal with screen resolution, and how Tizen Web UI Framework supports scaling for web applications.
-/**
- @class SearchBar
- The search bar widget is used to search for page content. This widget can be placed in the header, option header, or page content.
- To add a search bar widget to the application, use the following code:
+* Viewport on mobile web browser
- <label for="search-basic">Search Input:</label>
- <input type="search" name="search" id="searc-basic" value="" data-mini="true" />
+Viewport is an area showing web content on the browser. Unlike desktop browsers, mobile browsers support logical viewport seting, which means that application can set viewport width/height and zoom level by itself.
+The very important thing that to be remembered is that the viewport resolution in pixel is 'Logical', not physical. For example, if the viewport width is set to 480 on a mobile device having 720px screen width, the viewport width is considered to 480px logically. All elements put on right side from 480px horizontal position will not be shown on the viewport.
+Most mobile browsers set viewport with given content attribute with <meta name="viewport" content="..."> tag in <head> section in the application source html, whereas desktop browsers ignore the tag.
+Detailed usage of viewport meta tag is found in here: http://www.w3.org/TR/mwabp/#bp-viewport
- Tizen supports many search bar options as described in the jQueryMobile documentation for search bar options.
- The search bar can define callbacks for events as described in the jQueryMobile documentation for search bar events.
- You can use methods with the search bar as described in the jQueryMobile documentation for search bar methods.
-*/
-(function ( $, undefined ) {
+* Viewport setting by application developers
- $.widget( "tizen.searchbar", $.mobile.widget, {
- options: {
- theme: null,
- initSelector: "input[type='search'],:jqmData(type='search'), input[type='tizen-search'],:jqmData(type='tizen-search')"
- },
+When developers write <meta name="viewport" content="..."> in the <head> section of the web application HTML file, Tizen Web UI Framework does not add another viewport meta tag, nor modify developer-defined viewport.
- _create: function () {
- var input = this.element,
- o = this.options,
- theme = o.theme || $.mobile.getInheritedTheme( this.element, "c" ),
- themeclass = " ui-body-" + theme,
- focusedEl,
- clearbtn,
- cancelbtn,
- defaultText,
- defaultTextClass,
- trimedText,
- newClassName,
- newStyle,
- newDiv,
- searchimage,
- inputedText,
- useCancelBtn = false,
- frontIcon = false;
- $( "label[for='" + input.attr( "id" ) + "']" ).addClass( "ui-input-text" );
+* Automatic viewport setting by Tizen Web UI Framework
+
+If developers do not give a viewport meta tag, Tizen Web UI Framework automatically add a viewport meta tag with default viewport setting.
+
+
+* Portrait/landscape mode
+
+
+* Tizen Web UI widgets scaling
+
+
+ */
+( function ($, Globalize, window, undefined) {
+
+ var tizen = {
+ libFileName : "tizen-web-ui-fw(.min)?.js",
+
+ frameworkData : {
+ rootDir: '/usr/lib/tizen-web-ui-fw',
+ version: '0.1',
+ theme: "tizen-white",
+ viewportWidth: "device-width",
+ viewportScale: false,
+
+ defaultFontSize: 22,
+ minified: false,
+
+ debug: false
+ },
- if ( typeof input[0].autocorrect !== "undefined" && !$.support.touchOverflow ) {
- // Set the attribute instead of the property just in case there
- // is code that attempts to make modifications via HTML.
- input[0].setAttribute( "autocorrect", "off" );
- input[0].setAttribute( "autocomplete", "off" );
+ log : {
+ debug : function ( msg ) {
+ if ( tizen.frameworkData.debug ) {
+ console.log( msg );
+ }
+ },
+ warn : function ( msg ) {
+ console.warn( msg );
+ },
+ error : function ( msg ) {
+ console.error( msg );
+ },
+ alert : function ( msg ) {
+ window.alert( msg );
}
+ },
- focusedEl = input.wrap( "<div class='ui-input-search ui-shadow-inset ui-corner-all ui-btn-shadow" + themeclass + "'></div>" ).parent();
+ util : {
- if ( $( this.element ).data( "cancel-btn" ) === true ) {
- useCancelBtn = true;
- focusedEl.addClass( "ui-input-search-default" );
+ loadScriptSync : function ( scriptPath, successCB, errorCB ) {
+ $.ajax( {
+ url: scriptPath,
+ dataType: 'script',
+ async: false,
+ crossDomain: false,
+ success: successCB,
+ error: function ( jqXHR, textStatus, errorThrown ) {
+ if ( errorCB ) {
+ errorCB( jqXHR, textStatus, errorThrown );
+ } else {
+ var ignoreStatusList = [ 404 ], // 404: not found
+ errmsg = ( 'Error while loading ' + scriptPath + '\n' + jqXHR.status + ':' + jqXHR.statusText );
+ if ( -1 == $.inArray( jqXHR.status, ignoreStatusList ) ) {
+ tizen.log.alert( errmsg );
+ } else {
+ tizen.log.warn( errmsg );
+ }
+ }
+ }
+ } );
+ },
+ isMobileBrowser: function ( ) {
+ var mobileIdx = window.navigator.appVersion.indexOf("Mobile"),
+ isMobile = -1 < mobileIdx;
+ return isMobile;
}
- if ( $( this.element ).data( "icon" ) != undefined ) {
- frontIcon = true;
- focusedEl.addClass( "ui-search-bar-icon" );
+ },
+
+ css : {
+ cacheBust: ( document.location.href.match( /debug=true/ ) ) ?
+ '?cacheBust=' + ( new Date( ) ).getTime( ) :
+ '',
+ addElementToHead : function ( elem ) {
+ var head = document.getElementsByTagName( 'head' )[0];
+ if ( head ) {
+ $( head ).prepend( elem );
+ }
+ },
+ makeLink : function ( href ) {
+ var cssLink = document.createElement( 'link' );
+ cssLink.setAttribute( 'rel', 'stylesheet' );
+ cssLink.setAttribute( 'href', href );
+ cssLink.setAttribute( 'name', 'tizen-theme' );
+ return cssLink;
+ },
+ load: function ( path ) {
+ var head = document.getElementsByTagName( 'head' )[0],
+ cssLinks = head.getElementsByTagName( 'link' ),
+ idx,
+ l = null;
+ // Find css link element
+ for ( idx = 0; idx < cssLinks.length; idx++ ) {
+ if ( cssLinks[idx].getAttribute( 'rel' ) != "stylesheet" ) {
+ continue;
+ }
+ if ( cssLinks[idx].getAttribute( 'name' ) == "tizen-theme"
+ || cssLinks[idx].getAttribute( 'href' ) == path ) {
+ l = cssLinks[idx];
+ break;
+ }
+ }
+ if ( l ) { // Found the link element!
+ if ( l.getAttribute( 'href' ) == path ) {
+ tizen.log.warn( "Theme is already loaded. Skip theme loading in the framework." );
+ } else {
+ l.setAttribute( 'href', path );
+ }
+ } else {
+ this.addElementToHead( this.makeLink( path ) );
+ }
}
+ },
- clearbtn = $( "<a href='#' class='ui-input-clear' title='clear text'>clear text</a>" )
- .bind('click', function ( event ) {
- if ( input.attr( "disabled" ) == "disabled" ) {
- return false;
+ getParams: function ( ) {
+ /* Get data-* params from <script> tag, and set tizen.frameworkData.* values
+ * Returns true if proper <script> tag is found, or false if not.
+ */
+ // Find current <script> tag element
+ var scriptElems = document.getElementsByTagName( 'script' ),
+ val = null,
+ foundScriptTag = false,
+ idx,
+ elem,
+ src,
+ tokens,
+ version_idx;
+
+ function getTizenTheme( ) {
+ var t = navigator.theme ? navigator.theme.split( ':' )[0] : null;
+ if ( t ) {
+ t = t.replace('-hd', '');
+ if ( ! t.match( /^tizen-/ ) ) {
+ t = 'tizen-' + t;
}
- input
- .val( "" )
- .focus()
- .trigger( "change" );
- clearbtn.addClass( "ui-input-clear-hidden" );
- event.preventDefault();
- })
- .appendTo( focusedEl )
- .buttonMarkup({
- icon: "deleteSearch",
- iconpos: "notext",
- corners: true,
- shadow: true
- });
+ }
+ return t;
+ }
- function toggleClear() {
- setTimeout(function () {
- clearbtn.toggleClass( "ui-input-clear-hidden", !input.val() );
- }, 0);
+ for ( idx in scriptElems ) {
+ elem = scriptElems[idx];
+ src = elem.src ? elem.getAttribute( 'src' ) : undefined;
+ if (src && src.match( this.libFileName )) {
+ // Set framework data, only when they are given.
+ tokens = src.split(/[\/\\]/);
+ version_idx = -3;
+ this.frameworkData.rootDir = ( elem.getAttribute( 'data-framework-root' )
+ || tokens.slice( 0, tokens.length + version_idx ).join( '/' )
+ || this.frameworkData.rootDir ).replace( /^file:(\/\/)?/, '' );
+ this.frameworkData.version = elem.getAttribute( 'data-framework-version' )
+ || tokens[ tokens.length + version_idx ]
+ || this.frameworkData.version;
+ this.frameworkData.theme = elem.getAttribute( 'data-framework-theme' )
+ || getTizenTheme( )
+ || this.frameworkData.theme;
+ this.frameworkData.viewportWidth = elem.getAttribute( 'data-framework-viewport-width' )
+ || this.frameworkData.viewportWidth;
+ this.frameworkData.viewportScale =
+ "true" === elem.getAttribute( 'data-framework-viewport-scale' ) ? true
+ : this.frameworkData.viewportScale;
+ this.frameworkData.minified = src.search(/\.min\.js$/) > -1 ? true : false;
+ this.frameworkData.debug = "true" === elem.getAttribute( 'data-framework-debug' ) ? true
+ : this.frameworkData.debug;
+ foundScriptTag = true;
+ break;
+ }
}
+ return foundScriptTag;
+ },
- function showCancel() {
- focusedEl
- .addClass( "ui-input-search-default" )
- .removeClass( "ui-input-search-wide" );
- cancelbtn
- .addClass( "ui-btn-cancel-show" )
- .removeClass( "ui-btn-cancel-hide" );
+ loadTheme: function ( theme ) {
+ var themePath,
+ cssPath,
+ jsPath;
+
+ if ( ! theme ) {
+ theme = tizen.frameworkData.theme;
}
+ themePath = [
+ tizen.frameworkData.rootDir,
+ tizen.frameworkData.version,
+ 'themes',
+ theme
+ ].join( '/' );
- function hideCancel() {
- focusedEl
- .addClass( "ui-input-search-wide" )
- .removeClass( "ui-input-search-default" );
- cancelbtn
- .addClass( "ui-btn-cancel-hide" )
- .removeClass( "ui-btn-cancel-show" );
- toggleClear();
+ jsPath = [ themePath, 'theme.js' ].join( '/' );
+
+ if ( tizen.frameworkData.minified ) {
+ cssPath = [themePath, 'tizen-web-ui-fw-theme.min.css'].join( '/' );
+ } else {
+ cssPath = [themePath, 'tizen-web-ui-fw-theme.css'].join( '/' );
}
+ tizen.css.load( cssPath );
+ tizen.util.loadScriptSync( jsPath );
+ },
- function makeFrontIcon() {
- var IconStyle = $( input ).jqmData( "icon" ),
- frontIcon = $( "<div data-role='button' data-style='circle'></div>" );
+ /** Load Globalize culture file, and set default culture.
+ * @param[in] language (optional) Language code. ex) en-US, en, ko-KR, ko
+ * If language is not given, read language from html 'lang' attribute,
+ * or from system setting.
+ * @param[in] cultureDic (optional) Dictionary having language code->
+ */
+ loadGlobalizeCulture: function ( language, cultureDic ) {
+ var self = this,
+ cFPath,
+ lang,
+ mockJSXHR;
- frontIcon
- .appendTo( focusedEl.parent() )
- .buttonMarkup( {
- icon: IconStyle,
- iconpos: "notext",
- corners: true,
- shadow: true
- } );
- frontIcon.addClass( "ui-btn-search-front-icon" );
+ function getLang ( language ) {
+ var lang = language
+ || $( 'html' ).attr( 'lang' )
+ || window.navigator.language.split( '.' )[0] // Webkit, Safari + workaround for Tizen
+ || window.navigator.userLanguage // IE
+ || 'en',
+ countryCode = null,
+ countryCodeIdx = lang.lastIndexOf('-'),
+ ignoreCodes = ['Cyrl', 'Latn', 'Mong']; // Not country code!
+ if ( countryCodeIdx != -1 ) { // Found country code!
+ countryCode = lang.substr( countryCodeIdx + 1 );
+ if ( ignoreCodes.join( '-' ).indexOf( countryCode ) < 0 ) {
+ // countryCode is not found from ignoreCodes.
+ // Make countryCode to uppercase.
+ lang = [ lang.substr( 0, countryCodeIdx ), countryCode.toUpperCase( ) ].join( '-' );
+ }
+ }
+ // NOTE: 'en' to 'en-US', because globalize has no 'en' culture file.
+ lang = lang == 'en' ? 'en-US' : lang;
+ return lang;
}
- toggleClear();
-
- input.bind( 'paste cut keyup focus change blur', toggleClear );
+ function getNeutralLang ( lang ) {
+ var neutralLangIdx = lang.lastIndexOf( '-' ),
+ neutralLang;
+ if ( neutralLangIdx != -1 ) {
+ neutralLang = lang.substr( 0, neutralLangIdx );
+ }
+ return neutralLang;
+ }
- //SLP --start search bar with cancel button
- focusedEl.wrapAll( "<div class='input-search-bar'></div>" );
- searchimage = $("<div class='ui-image-search'></div>").appendTo( focusedEl );
+ function getCultureFilePath ( lang, cFDic ) {
+ var cFPath = null; // error value
- if ( frontIcon ) {
- makeFrontIcon();
+ if ( "string" != typeof lang ) {
+ return null;
+ }
+ if ( cFDic && cFDic[lang] ) {
+ cFPath = cFDic[lang];
+ } else {
+ // Default Globalize culture file path
+ cFPath = [
+ self.frameworkData.rootDir,
+ self.frameworkData.version,
+ 'js',
+ 'cultures',
+ ['globalize.culture.', lang, '.js'].join( '' ),
+ ].join( '/' );
+ }
+ return cFPath;
}
- if ( useCancelBtn ) {
- cancelbtn = $( "<div data-role='button' class='ui-input-cancel' title='clear text'>Cancel</div>" )
- .bind('click', function ( event ) {
- if ( input.attr( "disabled" ) == "disabled" ) {
- return false;
- }
- event.preventDefault();
- event.stopPropagation();
+ function printLoadError( cFPath, jqXHR ) {
+ tizen.log.error( "Error " + jqXHR.status + ": " + jqXHR.statusText
+ + "::Culture file (" + cFPath + ") is failed to load.");
+ }
- input
- .val( "" )
- .blur()
- .trigger( "change" );
+ function loadCultureFile ( cFPath, errCB ) {
+ function _successCB ( ) {
+ tizen.log.debug( "Culture file (" + cFPath + ") is loaded successfully." );
+ }
+ function _errCB ( jqXHR, textStatus, err ) {
+ if ( errCB ) {
+ errCB( jqXHR, textStatus, err );
+ } else {
+ printLoadError( cFPath, jqXHR );
+ }
+ }
- if ( useCancelBtn ) {
- hideCancel();
- }
- } )
- .appendTo( focusedEl.parent() )
- .buttonMarkup( {
- iconpos: "cancel",
- corners: true,
- shadow: true
+ if ( ! cFPath ) { // Invalid cFPath -> Regard it as '404 Not Found' error.
+ mockJSXHR = {
+ status: 404,
+ statusText: "Not Found"
+ };
+ _errCB( mockJSXHR, null, null );
+ } else {
+ $.ajax( {
+ url: cFPath,
+ dataType: 'script',
+ cache: true,
+ async: false,
+ success: _successCB,
+ error: _errCB
} );
+ }
}
- // Input Focused
- input
- .focus( function () {
- if ( input.attr( "disabled" ) == "disabled" ) {
- return false;
- }
- if ( useCancelBtn ) {
- showCancel();
+ lang = getLang( language );
+ cFPath = getCultureFilePath( lang, cultureDic );
+ loadCultureFile( cFPath,
+ function ( jqXHR, textStatus, err ) {
+ if ( jqXHR.status == 404 ) {
+ // If culture file is not found, try once more with neutral lang.
+ var nLang = getNeutralLang( lang ),
+ ncFPath = getCultureFilePath( nLang, cultureDic );
+ loadCultureFile( ncFPath, null );
+ } else {
+ printLoadError( cFPath, jqXHR );
}
- focusedEl.addClass( $.mobile.focusClass );
- })
- .blur(function () {
- focusedEl.removeClass( $.mobile.focusClass );
- });
+ } );
- // Default Text
- defaultText = input.jqmData( "default-text" );
+ return lang;
+ },
+ setGlobalize: function ( ) {
+ var lang = this.loadGlobalizeCulture( );
- if ( ( defaultText != undefined ) && ( defaultText.length > 0 ) ) {
- defaultTextClass = "ui-input-default-text";
- trimedText = defaultText.replace(/\s/g, "");
+ // Set culture
+ // NOTE: It is not needed to set with neutral lang.
+ // Globalize automatically deals with it.
+ Globalize.culture( lang );
+ },
+ /**
+ * Load custom globalize culture file
+ * Find current system language, and load appropriate culture file from given colture file list.
+ *
+ * @param[in] cultureDic collection of 'language':'culture file path' key-val pair.
+ * @example
+ * var myCultures = {
+ * "en" : "culture/en.js",
+ * "fr" : "culture/fr.js",
+ * "ko-KR" : "culture/ko-KR.js"
+ * };
+ * loadCultomGlobalizeCulture( myCultures );
+ *
+ * ex) culture/fr.js
+ * -------------------------------
+ * Globalize.addCultureInfo( "fr", {
+ * messages: {
+ * "hello" : "bonjour",
+ * "translate" : "traduire"
+ * }
+ * } );
+ * -------------------------------
+ */
+ loadCustomGlobalizeCulture: function ( cultureDic ) {
+ tizen.loadGlobalizeCulture( null, cultureDic );
+ },
- /* Make new class for default text string */
- newClassName = defaultTextClass + "-" + trimedText;
- newStyle = $( "<style>" + '.' + newClassName + ":after" + "{content:" + "'" + defaultText + "'" + "}" + "</style>" );
- $( 'html > head' ).append( newStyle );
+ /** Set viewport meta tag for mobile devices.
+ *
+ * @param[in] viewportWidth viewport width. "device-width" is OK.
+ */
+ setViewport: function ( viewportWidth ) {
+ var meta = null,
+ head,
+ content;
- /* Make new empty <DIV> for default text */
- newDiv = $( "<div></div>" );
+ // Do nothing if viewport setting code is already in the code.
+ $( "meta[name=viewport]" ).each( function ( ) {
+ meta = this;
+ return;
+ });
+ if ( meta ) { // Found custom viewport!
+ content = $( meta ).prop( "content" );
+ viewportWidth = content.replace( /.*width=(device-width|\d+)\s*,?.*$/gi, "$1" );
+ tizen.log.warn( "Viewport is set to '" + viewportWidth + "' in a meta tag. Framework skips viewport setting." );
+ } else {
+ // Create a meta tag
+ meta = document.createElement( "meta" );
+ if ( meta ) {
+ meta.name = "viewport";
+ content = [ "width=", viewportWidth, ", user-scalable=no" ].join( "" );
+ if ( ! isNaN( viewportWidth ) ) {
+ // Fix scale to 1.0, if viewport width is set to fixed value.
+ // NOTE: Works wrong in Tizen browser!
+ //content = [ content, ", initial-scale=1.0, maximum-scale=1.0" ].join( "" );
+ }
+ meta.content = content;
+ tizen.log.debug( content );
+ head = document.getElementsByTagName( 'head' ).item( 0 );
+ head.insertBefore( meta, head.firstChild );
+ }
+ }
+ return viewportWidth;
+ },
- /* Add class and append new div */
- newDiv.addClass( defaultTextClass );
- newDiv.addClass( newClassName );
- newDiv.tap( function ( event ) {
- input.blur();
- input.focus();
- } );
+ /** Read body's font-size, scale it, and reset it.
+ * param[in] desired font-size / base font-size.
+ */
+ scaleBaseFontSize: function ( themeDefaultFontSize, ratio ) {
+ tizen.log.debug( "themedefaultfont size: " + themeDefaultFontSize + ", ratio: " + ratio );
+ var scaledFontSize = Math.max( Math.floor( themeDefaultFontSize * ratio ), 4 );
- input.parent().append( newDiv );
+ $( 'html.ui-mobile' ).css( { 'font-size': scaledFontSize + "px" } );
+ tizen.log.debug( 'html:font size is set to ' + scaledFontSize );
+ $( document ).ready( function ( ) {
+ $( '.ui-mobile' ).children( 'body' ).css( { 'font-size': scaledFontSize + "px" } );
+ } );
+ },
- /* When focus, default text will be hide. */
- input
- .focus( function () {
- input.parent().find( "div.ui-input-default-text" ).addClass( "ui-input-default-hidden" );
- } )
- .blur( function () {
- var inputedText = input.val();
- if ( inputedText.length > 0 ) {
- input.parent().find( "div.ui-input-default-text" ).addClass( "ui-input-default-hidden" );
- } else {
- input.parent().find( "div.ui-input-default-text" ).removeClass( "ui-input-default-hidden" );
- }
- } );
+ setScaling: function ( ) {
+ var viewportWidth = this.frameworkData.viewportWidth,
+ themeDefaultFontSize = this.frameworkData.defaultFontSize, // comes from theme.js
+ ratio = 1;
+
+ // Keep original font size
+ $( 'body' ).attr( 'data-tizen-theme-default-font-size', themeDefaultFontSize );
+
+ if ( !tizen.util.isMobileBrowser() ) {
+ return;
}
- if ( !input.attr("placeholder") ) {
- input.attr( "placeholder", "Search" );
+ // Legacy support: tizen.frameworkData.viewportScale
+ if ( this.frameworkData.viewportScale == true ) {
+ viewportWidth = "screen-width";
}
- },
- disable: function () {
- this.element.attr( "disabled", true );
- this.element.parent().addClass( "ui-disabled" );
- $( this.element ).blur();
- this.element.parent().parent().find(".ui-input-cancel").addClass( "ui-disabled" );
+ // screen-width support
+ if ( "screen-width" == viewportWidth ) {
+ if ( window.self == window.top ) {
+ // Top frame: for target. Use window.outerWidth.
+ viewportWidth = window.outerWidth;
+ } else {
+ // iframe: for web simulator. Use clientWidth.
+ viewportWidth = document.documentElement.clientWidth;
+ }
+ }
+
+ // set viewport meta tag
+ viewportWidth = this.setViewport( viewportWidth ); // If custom viewport setting exists, get viewport width
+
+ if ( viewportWidth == "device-width" ) {
+ // Do nothing!
+ } else { // fixed width!
+ ratio = parseFloat( viewportWidth / this.frameworkData.defaultViewportWidth );
+ this.scaleBaseFontSize( themeDefaultFontSize, ratio );
+ }
},
+ };
- enable: function () {
- this.element.attr( "disabled", false );
- this.element.parent().removeClass( "ui-disabled" );
- this.element.parent().parent().find(".ui-input-cancel").removeClass( "ui-disabled" );
- $( this.element ).focus();
+ function export2TizenNS ( $, tizen ) {
+ if ( !$.tizen ) {
+ $.tizen = { };
}
- } );
- //auto self-init widgets
- $( document ).bind( "pagecreate create", function ( e ) {
- $.tizen.searchbar.prototype.enhanceWithin( e.target );
- } );
+ $.tizen.frameworkData = tizen.frameworkData;
+ $.tizen.loadCustomGlobalizeCulture = tizen.loadCustomGlobalizeCulture;
+ $.tizen.loadTheme = tizen.loadTheme;
-}( jQuery ) );
+ $.tizen.__tizen__ = tizen; // for unit-test
+ }
+
+ export2TizenNS( $, tizen );
+
+ tizen.getParams( );
+ tizen.loadTheme( );
+ tizen.setScaling( ); // Run after loadTheme(), for the default font size.
+ tizen.setGlobalize( );
+ // Turn off JQM's auto initialization option.
+ // NOTE: This job must be done before domready.
+ $.mobile.autoInitializePage = false;
+
+ $(document).ready( function ( ) {
+ $.mobile.initializePage( );
+ });
+
+} ( jQuery, window.Globalize, window ) );
* DEALINGS IN THE SOFTWARE.
* ***************************************************************************
*
- * Author: Kangsik Kim <kangsik81.kim@samsung.com>
- * Youmin Ha <youmin.ha@samsung.com>
-*/
+ * Author: Minkyu Kang <mk7.kang@samsung.com>
+ */
-/**
- * In the web environment, it is challenging to display a large amount of data in a grid.
- * When an application needs to show, for example, image gallery with over 1,000 images,
- * the same enormous data must be inserted into a HTML document.
- * It takes a long time to display the data and manipulating DOM is complex.
- * The virtual grid widget supports storing unlimited data without performance issues
- * by reusing a limited number of grid elements.
- * The virtual grid widget is based on the jQuery.template plug-in
- * For more information, see jQuery.template.
- *
- * HTML Attributes:
+/*
+ * Notification widget
*
- * data-role: virtualgrid
- * data-template : Has the ID of the jQuery.template element.
- * jQuery.template for a virtual grid must be defined.
- * Style for template would use rem unit to support scalability.
- * data-direction : This option define the direction of the scroll.
- * You must choose one of the 'x' and 'y' (Default : y)
- * data-rotation : This option defines whether or not the circulation of the data.
- * If option is 'true' and scroll is reached the last data,
- * Widget will present the first data on the screen.
- * If option is ‘false’, Widget will operate like a scrollview.
+ * HTML Attributes
*
- * ID : <DIV> element that has "data-role=virtualgrid" must have ID attribute.
+ * data-role: set to 'notification'.
+ * data-type: 'ticker' or 'popup'.
+ * data-interval: time to showing. If don't set, will show infinitely.
*
- * APIs:
+ * APIs
*
- * create ( {
- * itemData: function ( idx ) { return json_obj; },
- * numItemData: number or function () { return number; },
- * cacheItemData: function ( minIdx, maxIdx ) {}
- * } )
- * : Create VirtualGrid widget. At this moment, _create method is called.
- * args : A collection of options
- * itemData: A function that returns JSON object for given index. Mandatory.
- * numItemData: Total number of itemData. Mandatory.
- * cacheItemData: Virtuallist will ask itemData between minIdx and maxIdx.
- * Developers can implement this function for preparing data.
- * Optional.
+ * open(): open the notification.
+ * close(): close the notification.
+ * text(text0, text1): set texts or get texts
+ * icon(src): set the icon (tickernoti only)
*
- * centerTo ( selector )
- * : Center the particular item with the class name on the VirtualGrid's display area.;
- * i.e., this method selects an item in the data elements of grid using the class name and
- * moves the data elements inside the widget to display the row containing the selected item
- * in the middle of the screen.
- * If multiple items are matched with the class name, the first matched item will be selected.
- * This method is only available when "data-rotation" attribute is "true".
+ * Events
*
- * resize ()
- * : Rearrange items to fit a new widget size.
+ * N/A
*
- * Events:
- * scrollstart : : This event triggers when a user begin to move the scroll on VirtualGrid.
- * scrollupdate : : This event triggers while a user moves the scroll on VirtualGrid.
- * scrollstop : This event triggers when a user stop the scroll on VirtualGrid.
- * select : This event triggers when a cell is selected.
+ * Examples
*
- * Examples:
+ * // tickernoti
+ * <div data-role="notification" id="notification" data-type="ticker" data-interval="3000">
+ * <img src="icon01.png">
+ * <p>Hello World</p>
+ * <p>Denis</p>
+ * </div>
*
- * <script id="tizen-demo-namecard" type="text/x-jquery-tmpl">
- * <div class="ui-demo-namecard">
- * <div class="ui-demo-namecard-pic">
- * <img class="ui-demo-namecard-pic-img" src="${TEAM_LOGO}" />
- * </div>
- * <div class="ui-demo-namecard-contents">
- * <span class="name ui-li-text-main">${NAME}</span>
- * <span class="active ui-li-text-sub">${ACTIVE}</span>
- * <span class="from ui-li-text-sub">${FROM}</span>
- * </div>
- * </div>
- * </script>
- * <div id="virtualgrid-demo" data-role="virtualgrid" data-template="tizen-demo-namecard" >
- * </div>
+ * // smallpopup
+ * <div data-role="notification" id="notification" data-type="popup" data-interval="3000">
+ * <p>Hello World</p>
+ * </div>
*
*/
-// most of following codes are derived from jquery.mobile.scrollview.js
-
/**
- @class VirtualGrid
- In the Web environment, it is challenging to display large amount of data in a list, such as displaying a contact list of over 1000 list items. It takes time to display the entire list in HTML and the DOM manipulation is complex.
-
- The virtual grid widget is used to display a list of unlimited data elements on the screen for better performance. This widget displays the data in the grid format by reusing the existing grid control space. Virtual grids are based on the jQuery.template plugin as described in the jQuery documentation for jQuery.template plugin.
-
- To add a virtual grid widget to the application, use the following code:
+ @class Notification
+ The notification widget shows a pop-up window on the screen to provide notifications.
+ To add a notification widget to the application, use the following code:
- <script id="tizen-demo-namecard" type="text/x-jquery-tmpl">
- <div class="ui-demo-namecard">
- <div class="ui-demo-namecard-pic">
- <img class="ui-demo-namecard-pic-img" src="${TEAM_LOGO}" />
- </div>
- <div class="ui-demo-namecard-contents">
- <span class="name ui-li-text-main">${NAME}</span>
- </div>
+ <div data-role="page">
+ <div data-role="notification" data-type="smallpopup">
+ <p>text1</p>
</div>
- </script>
- <div id="virtualgrid-demo" data-role="virtualgrid" data-template="tizen-demo-namecard">
+ <div data-role="header"></div>
+ <div data-role="content"></div>
+ <div data-role="footer"></div>
</div>
*/
/**
- @property {String} data-template
- Specifies the jQuery.template element ID.
- The jQuery.template must be defined. The template style can use rem units to support scalability.
-*/
-/**
- @property {String} data-direction
- Defines the scroll direction. The direction options are x (horizontal) and y (vertical).
- The default value is y.
-*/
-/**
- @property {Boolean} data-rotation
- Defines whether the data elements are displayed from the beginning of the list again once the end of file is reached.
- The default value is false.
-*/
-/**
- @event scrollstart
- The scrollstart event is fired when the user starts scrolling through the grid:
-
- <div data-role="virtualgrid" data-scroll="y" data-template="tizen-demo-namecard"></div>
- $(".selector").on("scrollstart", function(event, ui)
- {
- // Handle the scrollstart event
- });
-*/
-/**
- @event scrollupdate
- The scrollupdate event is fired when the user moves the scroll bar in the grid:
-
- <div data-role="virtualgrid" data-scroll="y" data-template="tizen-demo-namecard"></div>
- $(".selector").on("scrollupdate", function(event, ui)
- {
- // Handle the scrollupdate event
- });
-*/
-/**
- @event scrollstop
- The scrollstop event is fired when the user stops scrolling:
+ @property {String} data-type
+ Defines the notification type. The type options are tickernoti and smallpopup. <br/>The default value is smallpopup.
- <div data-role="virtualgrid" data-scroll="y" data-template="tizen-demo-namecard"></div>
- $(".selector").on("scrollstop", function(event, ui)
- {
- // Handle the scrollstop event
- });
*/
/**
- @event select
- The select event is fired when a virtual grid cell is selected:
+ @property {Integer} data-interval
+ Defines the time to showing a notification widget. <br/>The default is infinitely.
- <div data-role="virtualgrid" data-scroll="y" data-template="tizen-demo-namecard"></div>
- $(".selector").on("select", function(event, ui)
- {
- // Handle the select event
- });
*/
/**
- @method create
- @param {function} itemData(index)
- @param {Number} numItemData
- @param {function} cacheItemData(minIndex, maxIndex)
- The create method is used to call the jQuery _create method. In the method parameters:
-
- function itemData(index) returns the JSON object matched with the given index. The index value is between 0 and numItemData-1.<br/>
- number numItemData or function numItemData() defines or returns a static number of items.<br/>
- function cacheItemData(minIndex, maxIndex) prepares the JSON data. This method is called before calling the itemData() method with index values between minIndex and maxIndex.<br/>
+ @method open
+ The open method is used to open the notification widget:
- <div data-role="virtualgrid" data-scroll="y" data-template="tizen-demo-namecard"></div>
- function itemData(idx)
- {
- return DATA[idx];
- }
- function cacheItemData(minIdx, maxIdx)
- {
- // Prepare JSON data between minIdx and maxIdx
- }
- var numItemData = DATA.length;
- $(".selector").virtualgrid("create",
- {
- itemData, numItemData, cacheItemData
- });
+ <div data-role="notification" data-type="smallpopup" data-interval="3000"></div>
+ $('#notification').notification('open');
*/
/**
- @method centerTo
- The centerTo method is used to center the particular item with the class name on the VirtualGrid's display area. If multiple items are matched with the class name, the first matched item will be selected. This method is only available when "data-rotation" attribute is "true".
+ @method close
+ The close method is used to close the notification widget:
- <div data-role="virtualgrid" data-scroll="y" data-rotation="true" data-template="tizen-demo-namecard"></div>
- $(".selector").virtualgrid("centerTo", selector);
+ <div data-role="notification" data-type="smallpopup" data-interval="3000"></div>
+ $('#notification').notification('close');
*/
/**
- @method resize
- The resize method is used to rearrange items to fit a new widget size. :
-
- <div data-role="virtualgrid" data-scroll="y" data-template="tizen-demo-namecard"></div>
- $(".selector").virtualgrid("resize");
+ @method text
+ The text method is used to set or get the notification text:
+ <div data-role="notification" data-type="smallpopup" data-interval="3000"></div>
+ // Set notification text
+ $('#notification').notification('text', 'setThisText');
+ // Get notification text
+ texts = $('#notification').notification('text');
@since Tizen2.0
*/
+/**
+ @method icon
+ The setIcon method is used to set the ticker notification icon. The icon can be set only if the notification type is set to tickernoti.
-( function ( $, window, document, undefined ) {
+ <div data-role="notification" data-type="ticker" data-interval="3000"></div>
+ $('#notification').notification('icon', './test.png');
+*/
+(function ( $, window ) {
+ $.widget( "tizen.notification", $.mobile.widget, {
+ btn: null,
+ text_bg: [],
+ icon_img: [],
+ interval: null,
+ seconds: null,
+ running: false,
- function circularNum ( num, total ) {
- var n = num % total;
- if ( n < 0 ) {
- n = total + n;
- }
- return n;
- }
+ _get_text: function () {
+ var text = new Array( 2 );
- function MomentumTracker ( options ) {
- this.options = $.extend( {}, options );
- this.easing = "easeOutQuad";
- this.reset();
- }
+ if ( this.type === 'ticker' ) {
+ text[0] = $( this.text_bg[0] ).text();
+ text[1] = $( this.text_bg[1] ).text();
+ } else {
+ text[0] = $( this.text_bg[0] ).text();
+ }
- var tstates = {
- scrolling : 0,
- done : 1
+ return text;
},
- _OVERFLOW_DIR_NONE = 0, /* ENUM */
- _OVERFLOW_DIR_UP = 1, /* ENUM */
- _OVERFLOW_DIR_DOWN = -1, /* ENUM */
- imgTagSrcAttrRE = /src\s*=\s*[\"\'][\w\/.]+.[A-z]+[\"\']/;
-
- function getCurrentTime () {
- return Date.now();
- }
-
- $.extend( MomentumTracker.prototype, {
- start : function ( pos, speed, duration ) {
- this.state = ( speed !== 0 ) ? tstates.scrolling : tstates.done;
- this.pos = pos;
- this.speed = speed;
- this.duration = duration;
-
- this.fromPos = 0;
- this.toPos = 0;
- this.startTime = getCurrentTime();
- },
+ _set_text: function ( text0, text1 ) {
+ var _set = function ( elem, text ) {
+ if ( !text ) {
+ return;
+ }
+ elem.text( text );
+ };
- reset : function () {
- this.state = tstates.done;
- this.pos = 0;
- this.speed = 0;
- this.duration = 0;
+ if ( this.type === 'ticker' ) {
+ _set( $( this.text_bg[0] ), text0 );
+ _set( $( this.text_bg[1] ), text1 );
+ } else {
+ _set( $( this.text_bg[0] ), text0 );
+ }
},
- update : function () {
- var state = this.state, duration, elapsed, dx, x;
-
- if ( state == tstates.done ) {
- return this.pos;
+ text: function ( text0, text1 ) {
+ if ( text0 === undefined && text1 === undefined ) {
+ return this._get_text();
}
- duration = this.duration;
- elapsed = getCurrentTime () - this.startTime;
- elapsed = elapsed > duration ? duration : elapsed;
- dx = this.speed * ( 1 - $.easing[this.easing]( elapsed / duration, elapsed, 0, 1, duration ) );
- x = this.pos + ( dx / 2 );
- this.pos = x;
- if ( elapsed >= duration ) {
- this.state = tstates.done;
- }
- return this.pos;
+ this._set_text( text0, text1 );
},
- done : function () {
- return this.state == tstates.done;
+ icon: function ( src ) {
+ if ( src === undefined ) {
+ return;
+ }
+
+ this.icon_img.detach();
+ this.icon_img = $( "<img src='" + src + "' class='ui-ticker-icon'>" );
+ $( this.element ).find(".ui-ticker").append( this.icon_img );
},
- getPosition : function () {
- return this.pos;
- }
- });
+ _refresh: function () {
+ var container = this._get_container();
- jQuery.widget ( "mobile.virtualgrid", jQuery.mobile.widget, {
- options : {
- // virtualgrid option
- template : "",
- direction : "y",
- rotation : false
- },
+ $( container ).addClass("fix")
+ .removeClass("show")
+ .removeClass("hide");
- create : function () {
- this._create.apply( this, arguments );
+ this._set_interval();
},
- _create : function ( args ) {
- $.extend( this, {
- // view
- _$view : null,
- _$clip : null,
- _$rows : null,
- _tracker : null,
- _viewSize : 0,
- _clipSize : 0,
- _cellSize : undefined,
- _currentItemCount : 0,
- _itemCount : 1,
- _inheritedSize : null,
-
- // timer
- _timerInterval : 0,
- _timerID : 0,
- _timerCB : null,
- _lastMove : null,
+ open: function () {
+ var container = this._get_container();
- // Data
- _itemData : function ( idx ) { return null; },
- _numItemData : 0,
- _cacheItemData : function ( minIdx, maxIdx ) { },
- _totalRowCnt : 0,
- _templateText : null,
- _maxViewSize : 0,
- _modifyViewPos : 0,
- _maxSizeExceptClip : 0,
- _maxSize : 0,
+ if ( this.running ) {
+ this._refresh();
+ return;
+ }
- // axis - ( true : x , false : y )
- _direction : false,
- _didDrag : true,
- _reservedPos : 0,
- _scalableSize : 0,
- _eventPos : 0,
- _nextPos : 0,
- _movePos : 0,
- _lastY : 0,
- _speedY : 0,
- _lastX : 0,
- _speedX : 0,
- _rowsPerView : 0,
- _fragment : null,
+ $( container ).addClass("show")
+ .removeClass("hide")
+ .removeClass("fix");
- _filterRatio : 0.9,
+ this.running = true;
- _overflowStartPos : 0,
- _overflowDir : 0,
- _overflowMaxDragDist : 100
- });
+ if ( this.type === 'popup' ) {
+ this._set_position();
+ }
- var self = this,
- $dom = $( self.element ),
- opts = self.options,
- $item = null;
+ this._set_interval();
+ },
- // itemData
- // If mandatory options are not given, Do nothing.
- if ( !args ) {
- return ;
- }
+ close: function () {
+ var container = this._get_container();
- if ( !self._loadData( args ) ) {
+ if ( !this.running ) {
return;
}
- // make a fragment.
- self._fragment = document.createDocumentFragment();
-
- // read defined properties(width and height) from dom element.
- self._inheritedSize = self._getinheritedSize( self.element );
+ $( container ).addClass("hide")
+ .removeClass("show")
+ .removeClass("fix");
- // set a scroll direction.
- self._direction = opts.direction === 'x' ? true : false;
+ this.running = false;
+ clearInterval( this.interval );
+ },
- // make view layer
- self._$clip = $dom.addClass( "ui-scrollview-clip" ).addClass( "ui-virtualgrid-view" );
- $item = $( document.createElement( "div" ) ).addClass( "ui-scrollview-view" );
- self._clipSize = self._calculateClipSize();
- self._$clip.append( $item );
- self._$view = $item;
- self._$clip.css( "overflow", "hidden" );
- self._$view.css( "overflow", "hidden" );
+ destroy: function () {
+ var container = this._get_container();
- // inherit from scrollview widget.
- self._scrollView = $.tizen.scrollview.prototype;
- self._initScrollView();
+ $( container ).removeClass("show")
+ .removeClass("hide")
+ .removeClass("fix");
- // create tracker.
- self._createTracker();
- self._makePositioned( self._$clip );
- self._timerInterval = 1000 / self.options.fps;
+ this._del_event();
- self._timerID = 0;
- self._timerCB = function () {
- self._handleMomentumScroll();
- };
- $dom.closest( ".ui-content" ).addClass( "ui-virtualgrid-content" ).css( "overflow", "hidden" );
+ this.running = false;
+ },
- // add event handler.
- self._addBehaviors();
+ _get_container: function () {
+ if ( this.type === 'ticker' ) {
+ return $( this.element ).find(".ui-ticker");
+ }
- self._currentItemCount = 0;
- self._createOverflowArea();
- self._createScrollBar();
- self.refresh();
+ return $( this.element ).find(".ui-smallpopup");
},
- // The argument is checked for compliance with the specified format.
- // @param args : Object
- // @return boolean
- _loadData : function ( args ) {
+ _set_interval: function () {
var self = this;
- if ( args.itemData && typeof args.itemData == 'function' ) {
- self._itemData = args.itemData;
- } else {
- return false;
- }
- if ( args.numItemData ) {
- if ( typeof args.numItemData == 'function' ) {
- self._numItemData = args.numItemData( );
- } else if ( typeof args.numItemData == 'number' ) {
- self._numItemData = args.numItemData;
- } else {
- return false;
- }
- } else {
- return false;
+ clearInterval( this.interval );
+
+ if ( this.seconds !== undefined && this.second !== 0 ) {
+ this.interval = setInterval( function () {
+ self.close();
+ }, this.seconds );
}
- self._getObjectNames( self._itemData( 0 ) );
- return true;
},
- // Make up the first screen.
- _initLayout: function () {
+ _add_event: function () {
var self = this,
- opts = self.options,
- i,
- $row;
+ container = this._get_container();
- for ( i = -1; i < self._rowsPerView + 1; i += 1 ) {
- $row = self._$rows[ circularNum( i, self._$rows.length ) ];
- self._$view.append( $row );
- }
- self._setElementTransform( -self._cellSize );
+ if ( this.type === 'ticker' ) {
+ container.find(".ui-ticker-btn").append( this.btn ).trigger("create");
- self._replaceRow( self._$view[0].firstChild, self._totalRowCnt - 1 );
- if ( opts.rotation && self._rowsPerView >= self._totalRowCnt ) {
- self._replaceRow( self._$view[0].lastChild, 0 );
+ this.btn.bind( "vmouseup", function () {
+ self.close();
+ });
}
- self._setViewSize();
+
+ container.bind( 'vmouseup', function () {
+ self.close();
+ });
},
- _setViewSize : function () {
- var self = this,
- height = 0,
- width = 0;
+ _del_event: function () {
+ var container = this._get_container();
- if ( self._direction ) {
- width = self._cellSize * ( self._rowsPerView + 2 );
- width = parseInt( width, 10 ) + 1;
- self._$view.width( width );
- self._viewSize = self._$view.width();
- } else {
- self._$view.height( self._cellSize * ( self._rowsPerView + 2 ) );
- self._$clip.height( self._clipSize );
- self._viewSize = self._$view.height();
+ if ( this.type === 'ticker' ) {
+ this.btn.unbind("vmouseup");
}
+ container.unbind('vmouseup');
+ clearInterval( this.interval );
},
- _getViewWidth : function () {
- var self = this;
- return self._maxSize;
- },
+ _set_position: function () {
+ var container = this._get_container(),
+ $footer = $('.ui-page-active').children('.ui-footer'),
+ footer_h = $footer.outerHeight() || 0;
- _getViewHeight : function () {
- var self = this;
- return self._maxSize;
+ container.css( 'bottom', footer_h);
},
- refresh : function () {
+ _create: function () {
var self = this,
- opts = self.options,
- width = 0,
- height = 0,
- $template = null;
+ elem = $( this.element ),
+ i;
- $template = $( "#" + opts.template );
- if ( !$template ) {
- return ;
- }
- self._templateText = self._insertAriaAttrToTmpl( $template.text() );
+ this.btn = $('<div data-role="button" data-inline="true">Close</div>');
- width = self._calculateClipWidth();
- height = self._calculateClipHeight();
- self._$view.width( width ).height( height );
- self._$clip.width( width ).height( height );
+ this.seconds = elem.jqmData('interval');
+ this.type = elem.jqmData('type') || 'popup';
- self._clipSize = self._calculateClipSize();
- self._calculateColumnSize();
- self._initPageProperty();
- self._setScrollBarSize();
- },
+ if ( this.type === 'ticker' ) {
+ elem.wrapInner("<div class='ui-ticker'></div>");
+ elem.find(".ui-ticker").append("<div class='ui-ticker-body'></div>" +
+ "<div class='ui-ticker-btn'></div>");
+ this.text_bg = elem.find("p");
- _initPageProperty : function () {
- var self = this,
- rowsPerView = 0,
- $child,
- columnCount = 0,
- totalRowCnt = 0,
- attributeName = self._direction ? "width" : "height";
+ if ( this.text_bg.length < 2 ) {
+ elem.find(".ui-ticker").append("<p></p><p></p>");
+ this.text_bg = elem.find("p");
+ } else if ( this.text_bg.length > 2 ) {
+ for ( i = 2; i < this.text_bg.length; i++ ) {
+ $( this.text_bg[i] ).css( "display", "none" );
+ }
+ }
- columnCount = self._calculateColumnCount();
+ $( this.text_bg[0] ).addClass("ui-ticker-text1-bg");
+ $( this.text_bg[1] ).addClass("ui-ticker-text2-bg");
- totalRowCnt = parseInt( self._numItemData / columnCount, 10 );
- self._totalRowCnt = self._numItemData % columnCount === 0 ? totalRowCnt : totalRowCnt + 1;
- self._itemCount = columnCount;
+ this.icon_img = elem.find("img");
- if ( self._cellSize <= 0 ) {
- return ;
+ if ( this.icon_img.length ) {
+ $( this.icon_img ).addClass("ui-ticker-icon");
+
+ for ( i = 1; i < this.icon_img.length; i++ ) {
+ $( this.icon_img[i] ).css( "display", "none" );
+ }
+ }
+ } else {
+ elem.wrapInner("<div class='ui-smallpopup'></div>");
+ this.text_bg = elem.find("p").addClass("ui-smallpopup-text-bg");
+
+ if ( this.text_bg.length < 1 ) {
+ elem.find(".ui-smallpopup")
+ .append("<p class='ui-smallpopup-text-bg'></p>");
+ this.text_bg = elem.find("p");
+ } else if ( this.text_bg.length > 1 ) {
+ for ( i = 1; i < this.text_bg.length; i++ ) {
+ $( this.text_bg[i] ).css( "display", "none" );
+ }
+ }
+
+ this._set_position();
}
- rowsPerView = self._clipSize / self._cellSize;
- rowsPerView = Math.ceil( rowsPerView );
- self._rowsPerView = parseInt( rowsPerView, 10 );
+ this._add_event();
+
+ $( window ).bind( "resize", function () {
+ if ( !self.running ) {
+ return;
+ }
+
+ self._refresh();
+
+ if ( self.type === 'popup' ) {
+ self._set_position();
+ }
+ });
+ }
+ }); // End of widget
+
+ // auto self-init widgets
+ $( document ).bind( "pagecreate create", function ( e ) {
+ $( e.target ).find(":jqmData(role='notification')").notification();
+ });
+
+ $( document ).bind( "pagebeforehide", function ( e ) {
+ $( e.target ).find(":jqmData(role='notification')").notification('destroy');
+ });
+}( jQuery, this ));
+
+
+
+/*
+ * jQuery Mobile Widget @VERSION
+ *
+ * This software is licensed under the MIT licence (as defined by the OSI at
+ * http://www.opensource.org/licenses/mit-license.php)
+ *
+ * ***************************************************************************
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2011 by Intel Corporation Ltd.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ * ***************************************************************************
+ *
+ * Authors: Max Waterman <max.waterman@intel.com>
+ * Authors: Minkyu Kang <mk7.kang@samsung.com>
+ */
+
+/**
+ * tizenslider modifies the JQuery Mobile slider and is created in the same way.
+ *
+ * See the JQuery Mobile slider widget for more information :
+ * http://jquerymobile.com/demos/1.0a4.1/docs/forms/forms-slider.html
+ *
+ * The JQuery Mobile slider option:
+ * theme: specify the theme using the 'data-theme' attribute
+ *
+ * Options:
+ * theme: string; the theme to use if none is specified using the 'data-theme' attribute
+ * default: 'c'
+ * popup: boolean; controls whether the popup is displayed or not
+ * specify if the popup is enabled using the 'data-popup' attribute
+ * set from javascript using .tizenslider('option','popup',newValue)
+ *
+ * Events:
+ * changed: triggers when the value is changed (rather than when the handle is moved)
+ *
+ * Examples:
+ *
+ * <a href="#" id="popupEnabler" data-role="button" data-inline="true">Enable popup</a>
+ * <a href="#" id="popupDisabler" data-role="button" data-inline="true">Disable popup</a>
+ * <div data-role="fieldcontain">
+ * <input id="mySlider" data-theme='a' data-popup='false' type="range" name="slider" value="7" min="0" max="9" />
+ * </div>
+ * <div data-role="fieldcontain">
+ * <input id="mySlider2" type="range" name="slider" value="77" min="0" max="777" />
+ * </div>
+ *
+ * // disable popup from javascript
+ * $('#mySlider').tizenslider('option','popup',false);
+ *
+ * // from buttons
+ * $('#popupEnabler').bind('vclick', function() {
+ * $('#mySlider').tizenslider('option','popup',true);
+ * });
+ * $('#popupDisabler').bind('vclick', function() {
+ * $('#mySlider').tizenslider('option','popup',false);
+ * });
+ */
+
+/**
+ @class Slider
+ The slider widget shows a control on the screen that you can use to change values by dragging a handle on a horizontal scale. Sliders can be used in Tizen as described in the jQueryMobile documentation for sliders.
- $child = $( self._makeRows( rowsPerView + 2 ) );
- self._$view.append( $child.children() );
- self._$view.children().css( attributeName, self._cellSize + "px" );
- self._$rows = self._$view.children().detach();
+ To add a slider widget to the application, use the following code:
- self._reservedPos = -self._cellSize;
- self._scalableSize = -self._cellSize;
+ <input data-popup='false' type="range" name="slider" value="5" min="0" max="10" data-icon="text" data-text-left="Min" data-text-right="Max" />
- self._initLayout();
+ The slider can define callbacks for events as described in the jQueryMobile documentation for slider events.
+ You can use methods with the slider as described in the jQueryMobile documentation for slider methods.
+*/
+/**
+ @property {String} data-icon
+ Defines the icon style for the slider ends. The icon options are bright, volume, and text.
+ The default value is text.
+*/
+/**
+ @property {Boolean} data-popup
+ Enables or disables a pop-up showing the current value while the handle is dragged.
+ The default value is true.
+*/
+/**
+ @property {String} data-text-left
+ Defines the text displayed on the left side of the slider.
+ The data-icon option must be set to text.
+*/
+/**
+ @property {String} data-text-right
+ Defines the text displayed on the right side of the slider.
+ The data-icon option must be set to text.
+*/
- self._blockScroll = self._rowsPerView > self._totalRowCnt;
- self._maxSizeExceptClip = ( self._totalRowCnt - self._rowsPerView ) * self._cellSize;
- self._maxSize = self._totalRowCnt * self._cellSize;
- self._maxViewSize = ( self._rowsPerView ) * self._cellSize;
- self._modifyViewPos = -self._cellSize;
- if ( self._clipSize < self._maxViewSize ) {
- self._modifyViewPos = ( -self._cellSize ) + ( self._clipSize - self._maxViewSize );
- }
+(function ($, window, undefined) {
+ $.widget("tizen.tizenslider", $.mobile.widget, {
+ options: {
+ popup: true
},
- _getinheritedSize : function ( elem ) {
- var $target = $( elem ),
- height,
- width,
- NODETYPE = { ELEMENT_NODE : 1, TEXT_NODE : 3 },
- ret = {
- isDefinedWidth : false,
- isDefinedHeight : false,
- width : 0,
- height : 0
- };
-
- while ( $target[0].nodeType === NODETYPE.ELEMENT_NODE && ( ret.isDefinedWidth === false || ret.isHeightDefined === false ) ) {
- height = $target[0].style.height;
- width = $target[0].style.width;
-
- if ( ret.isDefinedHeight === false && height !== "" ) {
- // Size was defined
- ret.isDefinedHeight = true;
- ret.height = parseInt( height, 10 );
- }
+ popup: null,
+ handle: null,
+ handleText: null,
- if ( ret.isDefinedWidth === false && width !== "" ) {
- // Size was defined
- ret.isDefinedWidth = true;
- ret.width = parseInt( width, 10 );
- }
- $target = $target.parent();
- if ( $target.hasClass( "ui-content" ) ) {
- break;
- }
- }
- return ret;
- },
+ _create: function () {
+ this.currentValue = null;
+ this.popupVisible = false;
- _resize : function () {
var self = this,
- ret = null,
- rowsPerView = 0,
- itemCount = 0,
- totalRowCnt = 0,
- diffRowCnt = 0,
- clipSize = 0,
- prevcnt = 0,
- clipPosition = 0,
- rowsLength = 0,
- row = null,
- size = 0;
-
- if ( self._direction ) {
- size = self._calculateClipHeight();
- self._$view.height( size );
- self._$clip.height( size );
- } else {
- size = self._calculateClipWidth();
- self._$view.width( size );
- self._$clip.width( size );
- }
-
- itemCount = self._calculateColumnCount();
- if ( itemCount != self._itemCount ) {
- totalRowCnt = parseInt( self._numItemData / itemCount, 10 );
- self._totalRowCnt = self._numItemData % itemCount === 0 ? totalRowCnt : totalRowCnt + 1;
- prevcnt = self._itemCount;
- self._itemCount = itemCount;
- clipPosition = self._getClipPosition();
- self._$view.hide();
-
- diffRowCnt = self._replaceRows( itemCount, prevcnt, self._totalRowCnt, clipPosition );
- self._maxSizeExceptClip = ( self._totalRowCnt - self._rowsPerView ) * self._cellSize;
- self._maxSize = self._totalRowCnt * self._cellSize;
- self._scalableSize += ( -diffRowCnt ) * self._cellSize;
- self._reservedPos += ( -diffRowCnt ) * self._cellSize;
- self._setScrollBarSize();
- self._setScrollBarPosition( diffRowCnt );
+ inputElement = $( this.element ),
+ slider,
+ handle_press,
+ popupEnabledAttr,
+ icon,
+ text_right,
+ text_left,
+ text_length,
+ elem_left,
+ elem_right,
+ margin_left,
+ margin_right;
- self._$view.show();
- }
+ // apply jqm slider
+ inputElement.slider();
- clipSize = self._calculateClipSize();
- if ( clipSize !== self._clipSize ) {
- rowsPerView = clipSize / self._cellSize;
- rowsPerView = parseInt( Math.ceil( rowsPerView ), 10 );
+ // hide the slider input element proper
+ inputElement.hide();
- if ( rowsPerView > self._rowsPerView ) {
- // increase row.
- self._increaseRow( rowsPerView - self._rowsPerView );
- } else if ( rowsPerView < self._rowsPerView ) {
- // decrease row.
- self._decreaseRow( self._rowsPerView - rowsPerView );
- }
- self._$rows = self._$view.children();
- self._$rows.sort( function ( a, b ) {
- return a.getAttribute( "row-index" ) - b.getAttribute( "row-index" );
- });
+ self.popup = $('<div class="ui-slider-popup"></div>');
- self._rowsPerView = rowsPerView;
- self._clipSize = clipSize;
- self._blockScroll = self._rowsPerView > self._totalRowCnt;
- self._maxSizeExceptClip = ( self._totalRowCnt - self._rowsPerView ) * self._cellSize;
- self._maxSize = self._totalRowCnt * self._cellSize;
- self._maxViewSize = ( self._rowsPerView ) * self._cellSize;
- if ( self._clipSize < self._maxViewSize ) {
- self._modifyViewPos = ( -self._cellSize ) + ( self._clipSize - self._maxViewSize );
- }
- if ( self._direction ) {
- self._$clip.width( self._clipSize );
- } else {
- self._$clip.height( self._clipSize );
- }
- self._setScrollBarSize();
- self._setScrollBarPosition( 0 );
- self._setViewSize();
+ // set the popup according to the html attribute
+ popupEnabledAttr = inputElement.jqmData('popup');
+ if ( popupEnabledAttr !== undefined ) {
+ self.options.popup = ( popupEnabledAttr == true );
}
- },
- resize : function () {
- var self = this,
- height = 0,
- $virtualgrid = $( ".ui-virtualgrid-view" );
-
- self._inheritedSize = self._getinheritedSize( self.element );
+ // get the actual slider added by jqm
+ slider = inputElement.next('.ui-slider');
- if ( $virtualgrid.length !== 0 ) {
- self._resize();
- }
- },
+ icon = inputElement.attr('data-icon');
- _initScrollView : function () {
- var self = this,
- oldDirection = self.options.direction;
- $.extend( self.options, self._scrollView.options );
- self.options.direction = oldDirection;
- self.options.moveThreshold = 10;
- self.options.showScrollBars = false;
- self._getScrollHierarchy = self._scrollView._getScrollHierarchy;
- self._makePositioned = self._scrollView._makePositioned;
- self._set_scrollbar_size = self._scrollView._set_scrollbar_size;
- self._setStyleTransform = self._scrollView._setElementTransform;
- self._hideOverflowIndicator = self._scrollView._hideOverflowIndicator;
- self._showOverflowIndicator = self._scrollView._showOverflowIndicator;
- self._setGestureScroll = self._scrollView._setGestureScroll;
- },
+ // wrap the background
+ slider.wrap('<div class="ui-slider-container"></div>');
- _createTracker : function () {
- var self = this;
+ // get the handle
+ self.handle = slider.find('.ui-slider-handle');
- self._tracker = new MomentumTracker( self.options );
- if ( self._direction ) {
- self._hTracker = self._tracker;
- self._$clip.width( self._clipSize );
- } else {
- self._vTracker = self._tracker;
- self._$clip.height( self._clipSize );
- }
- },
+ // remove the rounded corners from the slider and its children
+ slider.removeClass('ui-btn-corner-all');
+ slider.find('*').removeClass('ui-btn-corner-all');
- //----------------------------------------------------//
- // Overflow effect
- //----------------------------------------------------//
- _createOverflowArea : function () {
- var self = this,
- prefix = "<div class=\"ui-virtualgrid-overflow-indicator-",
- suffixTop = "-top\"></div>",
- suffixBottom = "-bottom\"></div>";
+ // add icon
+ switch ( icon ) {
+ case 'bright':
+ case 'volume':
+ elem_left = $('<div class="ui-slider-left-' + icon + '"></div>');
+ elem_right = $('<div class="ui-slider-right-' + icon + '"></div>');
- if ( self.options.rotation ) {
- return;
- }
+ slider.before( elem_left );
+ slider.after( elem_right );
- if ( self._direction ) {
- self._overflowTop = $( prefix + "x" + suffixTop );
- self._overflowBottom = $( prefix + "x" + suffixBottom );
- } else {
- self._overflowTop = $( prefix + "y" + suffixTop );
- self._overflowBottom = $( prefix + "y" + suffixBottom );
- }
+ margin_left = elem_left.width() + 16;
+ margin_right = elem_right.width() + 16;
+ break;
- self._$clip.append( self._overflowTop );
- self._$clip.append( self._overflowBottom );
- self._overflowDisplayed = false;
- },
+ case 'text':
+ text_left = ( inputElement.attr('data-text-left') === undefined ) ? '' :
+ inputElement.attr('data-text-left').substring( 0, 3 );
+ text_right = ( inputElement.attr('data-text-right') === undefined ) ? '' :
+ inputElement.attr('data-text-right').substring( 0, 3 );
- _hideVGOverflowIndicator : function () {
- if ( this._overflowDisplayed === false ) {
- return;
- }
+ text_length = Math.max( text_left.length, text_right.length ) + 1;
- this._overflowTop.animate( { opacity: 0 }, 300 );
- this._overflowBottom.animate( { opacity: 0 }, 300 );
- this._overflowDisplayed = false;
- },
+ margin_left = text_length + "rem";
+ margin_right = text_length + "rem";
- //----------------------------------------------------//
- // Scrollbar //
- //----------------------------------------------------//
- _createScrollBar : function () {
- var self = this,
- prefix = "<div class=\"ui-scrollbar ui-scrollbar-",
- suffix = "\"><div class=\"ui-scrollbar-track\"><div class=\"ui-scrollbar-thumb\"></div></div></div>";
+ elem_left = $('<div class="ui-slider-left-text" style="left:' +
+ -( text_length ) + 'rem; width:' + text_length + 'rem;">' +
+ '<span style="position:relative;top:0.4em;">' +
+ text_left +
+ '</span></div>');
+ elem_right = $('<div class="ui-slider-right-text" style="right:' +
+ -( text_length ) + 'rem; width:' + text_length + 'rem;">' +
+ '<span style="position:relative;top:0.4em;">' +
+ text_right +
+ '</span></div>');
- if ( self.options.rotation ) {
- return ;
+ slider.before( elem_left );
+ slider.after( elem_right );
+ break;
}
- if ( self._direction ) {
- self._$clip.append( prefix + "x" + suffix );
- self._hScrollBar = self._$clip.children( ".ui-scrollbar-x" );
- self._hScrollBar.find( ".ui-scrollbar-thumb" ).addClass( "ui-scrollbar-thumb-x" );
- } else {
- self._$clip.append( prefix + "y" + suffix );
- self._vScrollBar = self._$clip.children( ".ui-scrollbar-y" );
- self._vScrollBar.find( ".ui-scrollbar-thumb" ).addClass( "ui-scrollbar-thumb-y" );
+ if ( icon ) {
+ slider.parent('.ui-slider-container').css({
+ "margin-left": margin_left,
+ "margin-right": margin_right
+ });
}
- },
-
- _setScrollBarSize: function () {
- var self = this,
- scrollBarSize = 0,
- currentSize = 0,
- $scrollBar,
- attrName,
- className;
- if ( self.options.rotation ) {
- return ;
- }
+ // handle press
+ slider.append($('<div class="ui-slider-handle-press"></div>'));
+ self.handle_press = slider.find('.ui-slider-handle-press');
+ self.handle_press.css('display', 'none');
- scrollBarSize = parseInt( self._maxViewSize / self._clipSize, 10 );
- if ( self._direction ) {
- $scrollBar = self._hScrollBar.find( ".ui-scrollbar-thumb" );
- attrName = "width";
- currentSize = $scrollBar.width();
- className = "ui-scrollbar-thumb-x";
- self._hScrollBar.css( "width", self._clipSize );
- } else {
- $scrollBar = self._vScrollBar.find( ".ui-scrollbar-thumb" );
- attrName = "height";
- className = "ui-scrollbar-thumb-y";
- currentSize = $scrollBar.height();
- self._vScrollBar.css( "height", self._clipSize );
- }
+ // add a popup element (hidden initially)
+ slider.parents(".ui-page").append( self.popup );
+ self.popup.hide();
- if ( scrollBarSize > currentSize ) {
- $scrollBar.removeClass( className );
- $scrollBar.css( attrName, scrollBarSize );
- } else {
- scrollBarSize = currentSize;
- }
+ // get the element where value can be displayed
+ self.handleText = slider.find('.ui-btn-text');
- self._itemScrollSize = parseFloat( ( self._clipSize - scrollBarSize ) / ( self._totalRowCnt - self._rowsPerView ) );
- self._itemScrollSize = Math.round( self._itemScrollSize * 100 ) / 100;
- },
+ // set initial value
+ self.updateSlider();
- _setScrollBarPosition : function ( di, duration ) {
- var self = this,
- $sbt = null,
- x = "0px",
- y = "0px",
- translate;
+ // bind to changes in the slider's value to update handle text
+ this.element.bind('change', function () {
+ self.updateSlider();
+ });
- if ( self.options.rotation ) {
- return ;
- }
+ // bind clicks on the handle to show the popup
+ self.handle.bind('vmousedown', function () {
+ self.showPopup();
+ });
- self._currentItemCount = self._currentItemCount + di;
- if ( self._vScrollBar ) {
- $sbt = self._vScrollBar.find( ".ui-scrollbar-thumb" );
- y = ( self._currentItemCount * self._itemScrollSize ) + "px";
- } else {
- $sbt = self._hScrollBar.find( ".ui-scrollbar-thumb" );
- x = ( self._currentItemCount * self._itemScrollSize ) + "px";
- }
- self._setStyleTransform( $sbt, x, y, duration );
+ // watch events on the document to turn off the slider popup
+ slider.add( document ).bind('vmouseup', function () {
+ self.hidePopup();
+ });
},
- _hideScrollBars : function () {
- var self = this,
- vclass = "ui-scrollbar-visible";
-
- if ( self.options.rotation ) {
- return ;
- }
+ _handle_press_show: function () {
+ this.handle_press.css('display', '');
+ },
- if ( self._vScrollBar ) {
- self._vScrollBar.removeClass( vclass );
- } else {
- self._hScrollBar.removeClass( vclass );
- }
+ _handle_press_hide: function () {
+ this.handle_press.css('display', 'none');
},
- _showScrollBars : function () {
- var self = this,
- vclass = "ui-scrollbar-visible";
+ // position the popup
+ positionPopup: function () {
+ var dstOffset = this.handle.offset();
- if ( self.options.rotation ) {
- return ;
- }
+ this.popup.offset({
+ left: dstOffset.left + ( this.handle.width() - this.popup.width() ) / 2,
+ top: dstOffset.top - this.popup.height()
+ });
- if ( self._vScrollBar ) {
- self._vScrollBar.addClass( vclass );
- } else {
- self._hScrollBar.addClass( vclass );
- }
+ this.handle_press.offset({
+ left: dstOffset.left,
+ top: dstOffset.top
+ });
},
- //----------------------------------------------------//
- // scroll process //
- //----------------------------------------------------//
- centerTo : function ( selector ) {
- var self = this,
- row = null,
- targetItem = null,
- targetRowIndex = -1,
- rowsLength = self._$rows.length,
- newPosition,
- i;
+ // show value on the handle and in popup
+ updateSlider: function () {
+ var font_size,
+ font_length,
+ font_top,
+ padding_size,
+ newValue,
+ get_value_length = function ( v ) {
+ var val = Math.abs( v ),
+ len;
- if ( !self.options.rotation ) {
- return;
- }
+ if ( val > 999 ) {
+ len = 4;
+ } else if ( val > 99 ) {
+ len = 3;
+ } else if ( val > 9 ) {
+ len = 2;
+ } else {
+ len = 1;
+ }
- for ( i = 0; i < rowsLength; ++i ) {
- row = $( self._$rows[ i ] );
- targetItem = row.children( "." + selector );
- if ( targetItem.length ) {
- targetRowIndex = parseInt( row.attr( "row-index" ), 10 );
- break;
- }
- }
+ if ( v < 0 ) {
+ len++;
+ }
- if ( targetRowIndex === -1 ) {
- targetRowIndex = self._getTargetRowIndex( selector );
- if ( targetRowIndex === -1 ) {
- return;
- }
- }
+ return len;
+ };
- newPosition = -( targetRowIndex * self._cellSize - ( self._clipSize - self._cellSize ) / 2 );
- if ( self._direction ) {
- self.scrollTo( newPosition, 0 );
- } else {
- self.scrollTo( 0, newPosition );
- }
- },
+ // remove the title attribute from the handle (which is
+ // responsible for the annoying tooltip); NB we have
+ // to do it here as the jqm slider sets it every time
+ // the slider's value changes :(
+ this.handle.removeAttr('title');
+
+ newValue = this.element.val();
+
+ font_length = get_value_length( newValue );
- _getTargetRowIndex: function ( selector ) {
- var self = this,
- dataCount = self._numItemData,
- itemCount = self._itemCount,
- attrName = self._direction ? "top" : "left",
- html = "",
- targetRowIndex = self._totalRowCnt,
- i;
+ if ( this.popupVisible ) {
+ this.positionPopup();
- for ( i = 0; i < dataCount; ++i ) {
- html = self._makeHtmlData( i, i % itemCount, attrName );
- if ( self._hasClassItem( html, selector ) ) {
- targetRowIndex = parseInt( i / itemCount, 10 );
+ switch ( font_length ) {
+ case 1:
+ case 2:
+ font_size = '1.5rem';
+ padding_size = '0.15rem';
+ break;
+ case 3:
+ font_size = '1rem';
+ padding_size = '0.5rem';
+ break;
+ default:
+ font_size = '0.8rem';
+ padding_size = '0.5rem';
break;
}
- }
- if ( targetRowIndex === self._totalRowCnt ) {
- return -1;
+ this.popup.css({
+ "font-size": font_size,
+ "padding-top": padding_size
+ });
}
- return targetRowIndex;
- },
-
- _hasClassItem: function ( html, selector ) {
- var self = this,
- classString = self._getItemClass( html );
-
- if ( classString.indexOf( selector ) === -1 ) {
- return false;
+ if ( newValue === this.currentValue ) {
+ return;
}
- if ( classString.indexOf( "virtualgrid-item" ) === -1 ) {
- return false;
+ switch ( font_length ) {
+ case 1:
+ font_size = '0.95rem';
+ font_top = '0';
+ break;
+ case 2:
+ font_size = '0.85rem';
+ font_top = '-0.01rem';
+ break;
+ case 3:
+ font_size = '0.65rem';
+ font_top = '-0.05rem';
+ break;
+ default:
+ font_size = '0.45rem';
+ font_top = '-0.15rem';
+ break;
}
- return true;
- },
+ if ( font_size != this.handleText.css('font-size') ) {
+ this.handleText.css({
+ 'font-size': font_size,
+ 'top': font_top
+ });
+ }
- _getItemClass: function ( html ) {
- var classIndex = html.indexOf( "class" ),
- classBeginIndex = Math.min( html.indexOf( "\"", classIndex ), html.indexOf( "'", classIndex ) ),
- classEndIndex = Math.min( html.indexOf( "\"", classBeginIndex + 1 ), html.indexOf( "'", classBeginIndex + 1 ) );
+ this.currentValue = newValue;
+ this.handleText.text( newValue );
+ this.popup.html( newValue );
- return html.slice( classBeginIndex + 1, classEndIndex );
+ this.element.trigger( 'update', newValue );
},
- scrollTo: function ( x, y, duration ) {
- var self = this;
- if ( self._direction ) {
- x -= self._cellSize;
- self._sx = self._reservedPos;
- self._reservedPos = x;
- } else {
- y -= self._cellSize;
- self._sy = self._reservedPos;
- self._reservedPos = y;
+ // show the popup
+ showPopup: function () {
+ if ( !this.options.popup || this.popupVisible ) {
+ return;
}
- self._scrollView.scrollTo.apply( this, [ x, y, duration ] );
+
+ this.popup.show();
+ this.popupVisible = true;
+ this._handle_press_show();
},
- getScrollPosition: function () {
- if ( this.direction ) {
- return { x: -this._ry, y: 0 };
+ // hide the popup
+ hidePopup: function () {
+ if ( !this.options.popup || !this.popupVisible ) {
+ return;
}
- return { x: 0, y: -this._ry };
+
+ this.popup.hide();
+ this.popupVisible = false;
+ this._handle_press_hide();
},
- _setScrollPosition: function ( x, y ) {
- var self = this,
- sy = self._scalableSize,
- distance = self._direction ? x : y,
- dy = distance - sy,
- di = parseInt( dy / self._cellSize, 10 ),
- i = 0,
- idx = 0,
- replaceStartIdx = 0,
- realRowCount = self._rowsPerView + 2,
- rawView = self._$view[0];
+ _setOption: function (key, value) {
+ var needToChange = ( value !== this.options[key] );
- if ( self._blockScroll ) {
- if ( dy > 0 && distance >= -self._cellSize && self._scalableSize >= -self._cellSize ) {
- self._overflowDir = _OVERFLOW_DIR_UP;
- }
- if ( dy < 0 && self._scalableSize <= -( self._maxSizeExceptClip + self._cellSize ) ) {
- self._overflowDir = _OVERFLOW_DIR_DOWN;
- }
+ if ( !needToChange ) {
return;
}
- if ( ! self.options.rotation ) {
- if ( dy > 0 && distance >= -self._cellSize && self._scalableSize >= -self._cellSize ) {
- // top
- self._stopMScroll();
- self._scalableSize = -self._cellSize;
- self._setElementTransform( -self._cellSize );
- if ( self._overflowDir === _OVERFLOW_DIR_NONE ) {
- self._overflowDir = _OVERFLOW_DIR_UP;
- }
- return;
- }
- if ( dy < 0 && self._scalableSize <= -( self._maxSizeExceptClip + self._cellSize ) ) {
- // bottom
- self._stopMScroll();
- self._scalableSize = -( self._maxSizeExceptClip + self._cellSize );
- self._setElementTransform( self._modifyViewPos );
- if ( self._overflowDir === _OVERFLOW_DIR_NONE ) {
- self._overflowDir = _OVERFLOW_DIR_DOWN;
- }
- return;
- }
- }
+ switch ( key ) {
+ case 'popup':
+ this.options.popup = value;
- replaceStartIdx = ( Math.abs( di ) < realRowCount ) ? 0 : ( di > 0 ) ? di - realRowCount : di + realRowCount;
- if ( di > 0 ) { // scroll up
- for ( i = replaceStartIdx; i < di; ++i ) {
- idx = -parseInt( ( sy / self._cellSize ) + i + 3, 10 );
- self._replaceRow( rawView.lastChild, circularNum( idx, self._totalRowCnt ) );
- rawView.insertBefore( rawView.lastChild, rawView.firstChild );
- }
- } else if ( di < 0 ) { // scroll down
- for ( i = replaceStartIdx; i > di; --i ) {
- idx = self._rowsPerView - parseInt( ( sy / self._cellSize ) + i, 10 );
- self._replaceRow( rawView.firstChild, circularNum( idx, self._totalRowCnt ) );
- rawView.insertBefore( rawView.firstChild, rawView.lastChild.nextSibling );
+ if ( this.options.popup) {
+ this.updateSlider();
+ } else {
+ this.hidePopup();
}
+
+ break;
}
- self._setScrollBarPosition( -di );
- self._scalableSize += di * self._cellSize;
- self._setElementTransform( distance - self._scalableSize - self._cellSize );
- },
+ }
+ });
- _setElementTransform : function ( value ) {
- var self = this,
- x = 0,
- y = 0;
+ // stop jqm from initialising sliders
+ $( document ).bind( "pagebeforecreate", function ( e ) {
+ if ( $.data( window, "jqmSliderInitSelector" ) === undefined ) {
+ $.data( window, "jqmSliderInitSelector",
+ $.mobile.slider.prototype.options.initSelector );
+ $.mobile.slider.prototype.options.initSelector = null;
+ }
+ });
- if ( self._direction ) {
- x = value + "px";
+ // initialise sliders with our own slider
+ $( document ).bind( "pagecreate create", function ( e ) {
+ var jqmSliderInitSelector = $.data( window, "jqmSliderInitSelector" );
+ $( e.target ).find(jqmSliderInitSelector).each(function () {
+ var $this = $( this );
+ if ( $this.is("select") ) {
+ $this.slider();
} else {
- y = value + "px";
+ $this.tizenslider();
}
- self._setStyleTransform( self._$view, x, y );
- },
+ });
+ });
+
+}( jQuery, this ));
+
+
+
+/* ***************************************************************************
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ * ***************************************************************************
+ *
+ * Authors: Wonseop Kim ( wonseop.kim@samsung.com )
+*/
+
+/**
+ * "Handler" is a widget helping a user to scroll a window or panel.
+ * It is different from the scrollview feature in that the handler has a fixed size
+ * and disappears when a scroll size is smaller than a parent window's size.
+ * If the handler widget is activated, a scroll bar on the screen will be deactivated.
+ * The handler widget supports scrolling up and down and indicates the position of the scrolled window.
+ *
+ * HTML Attributes:
+ *
+ * data-handler : This attribute is indicating that whether enable.
+ * If you want to use, you will set 'true'.
+ * data-handler-theme : Set the widget theme ( optional )
+ *
+ * APIs:
+ *
+ * enableHandler ( boolean )
+ * : Get or set the use of handler widget.
+ * If the value is "true", it will be run handler widget.
+ * If the value is "false", it will be not run handler widget.
+ * If no value is specified, will act as a getter.
+ *
+ * Events:
+ *
+ * Examples:
+ *
+ * <div data-role="content" data-scroll="y" data-handler="true">
+ * <ul data-role="listview">
+ * <li data-role="list-divider">A</li>
+ * <li><a href="#">Adam Kinkaid</a></li>
+ * ...
+ * </ul>
+ * </div>
+ */
- //----------------------------------------------------//
- // Event handler //
- //----------------------------------------------------//
- _handleMomentumScroll: function () {
- var self = this,
- opts = self.options,
- keepGoing = false,
- v = this._$view,
- x = 0,
- y = 0,
- t = self._tracker;
+/**
+ @class handler
+ The handler widget enables the user to vertically scroll through a page or panel using a fixed-size handle. The widget indicates the position of the scrolled window, and only appears on the screen if the parent page or panel's scroll size is larger than the screen size. <br/> To add a handler widget to the application, use the following code:
- if ( t ) {
- t.update();
- if ( self._direction ) {
- x = t.getPosition();
- } else {
- y = t.getPosition();
- }
- keepGoing = !t.done();
- }
+ <div data-role="content" data-scroll="y" data-handler="true">
+ <ul data-role="listview">
+ <li data-role="list-divider">A</li>
+ <li><a href="#">Adam Kinkaid</a></li>
+ ...
+ </ul>
+ </div>
+
+ You can use the enableHandler method with the handler widget to get (if no value is defined) or set the handler usage status. If the [enable] value is true, the handler is enabled; otherwise the handler is not used.
- self._setScrollPosition( x, y );
- if ( !opts.rotation ) {
- keepGoing = !t.done();
- self._reservedPos = self._direction ? x : y;
- // bottom
- self._reservedPos = self._reservedPos <= (-(self._maxSizeExceptClip - self._modifyViewPos)) ? ( - ( self._maxSizeExceptClip + self._cellSize) ) : self._reservedPos;
- // top
- self._reservedPos = self._reservedPos > -self._cellSize ? -self._cellSize : self._reservedPos;
- } else {
- self._reservedPos = self._direction ? x : y;
- }
- self._$clip.trigger( self.options.updateEventName, [ { x: x, y: y } ] );
+ $("#.selector").scrollview("enableHandler", [enable]);
+*/
+/**
+ @property {Boolean} data-handler
+ Enables the handler widget. The value must be set to true.
+*/
+/**
+ @property {String} data-handler-theme
+ Sets the handler widget theme.
+*/
+( function ( $, document, undefined ) {
+ // The options of handler in scrollview
+ $.tizen.scrollview.prototype.options.handler = false;
+ $.tizen.scrollview.prototype.options.handlerTheme = "s";
- if ( keepGoing ) {
- self._timerID = setTimeout( self._timerCB, self._timerInterval );
- } else {
- self._stopMScroll();
- }
- },
+ var originSetOption = $.tizen.scrollview.prototype._setOption,
+ createHandler = function ( target ) {
+ var $view = target,
+ prefix = "<div class=\"ui-handler ui-handler-direction-",
+ suffix = "\"><div class=\"ui-handler-track\"><div class=\"ui-handler-thumb\"></div></div></div>",
+ scrollview = $view.data( "scrollview" ),
+ options = scrollview.options,
+ direction = options.direction,
+ parentTheme = $.mobile.getInheritedTheme( scrollview, "s" ),
+ theme = options.theme || parentTheme,
+ isHorizontal = ( scrollview.options.direction === "x" ),
+ _$view = scrollview._$view,
+ _$clip = scrollview._$clip,
+ scrollbar = $view.find( ".ui-scrollbar" ),
+ handler = null,
+ handlerThumb = null,
+ viewLength = 0,
+ clipLength = 0,
+ handlerHeight = 0,
+ handlerMargin = 0,
+ trackLength = 0,
+ moveTimer,
+ isTouchable = $.support.touch,
+ dragStartEvt = ( isTouchable ? "touchstart" : "mousedown" ) + ".handler",
+ dragMoveEvt = ( isTouchable ? "touchmove" : "mousemove" ) + ".handler",
+ dragStopEvt = ( isTouchable ? "touchend" : "mouseup" ) + ".handler",
+ dragLeaveEvt = ( isTouchable ? " touchleave" : " mouseleave" ) + ".handler",
+ calculateLength = function () {
+ clipLength = ( isHorizontal ? _$clip.width() : _$clip.height() );
+ viewLength = ( isHorizontal ? _$view.width() : _$view.height() ) - clipLength;
+ trackLength = clipLength - handlerHeight - handlerMargin * 2;
+ },
+ setHanderPostion = function ( scrollPos ) {
+ var handlerPos = Math.round( ( isHorizontal ? scrollPos.x : scrollPos.y ) / viewLength * trackLength );
+ handlerThumb[0].style[ ( isHorizontal ? "left" : "top" ) ] = handlerPos + "px";
+ },
+ stopHandlerScroll = function () {
+ $( document ).unbind( ".handler" );
+ $view.moveData = null;
+ _$view.trigger( "scrollstop" );
+ };
- _startMScroll: function ( speedX, speedY ) {
- var self = this;
- if ( self._direction ) {
- self._sx = self._reservedPos;
- } else {
- self._sy = self._reservedPos;
+ if ( $view.find( ".ui-handler-thumb" ).length !== 0 || typeof direction !== "string" ) {
+ return;
}
- self._scrollView._startMScroll.apply( self, [ speedX, speedY ] );
- },
-
- _stopMScroll: function () {
- this._scrollView._stopMScroll.apply( this );
- },
- _enableTracking: function () {
- var self = this;
- self._$view.bind( self._dragMoveEvt, self._dragMoveCB );
- self._$view.bind( self._dragStopEvt, self._dragStopCB );
- self._scrollView._enableTracking.apply( self );
- },
+ handler = $( [ prefix, direction, suffix ].join( "" ) ).appendTo( $view.addClass( " ui-handler-" + theme ) );
+ handlerThumb = $view.find( ".ui-handler-thumb" ).attr( {
+ "tabindex" : "0",
+ "aria-label" : ( isHorizontal ? "Horizontal handler, double tap and move to scroll" : "Verticalhandler, double tap and move to scroll" )
+ }).hide();
+ handlerHeight = ( isHorizontal ? handlerThumb.width() : handlerThumb.height() );
+ handlerMargin = ( isHorizontal ? parseInt( handler.css( "right" ), 10 ) : parseInt( handler.css( "bottom" ), 10 ) );
- _disableTracking: function () {
- var self = this;
- self._$view.unbind( self._dragMoveEvt, self._dragMoveCB );
- self._$view.unbind( self._dragStopEvt, self._dragStopCB );
- self._scrollView._disableTracking.apply( self );
- },
+ $.extend( $view, {
+ moveData : null
+ });
- _handleDragStart: function ( e, ex, ey ) {
- var self = this;
- self._scrollView._handleDragStart.apply( this, [ e, ex, ey ] );
- self._eventPos = self._direction ? ex : ey;
- self._nextPos = self._reservedPos;
- },
+ // handler drag
+ handlerThumb.bind( dragStartEvt, {
+ e : handlerThumb[0]
+ }, function ( event ) {
+ scrollview._stopMScroll();
- _handleDragMove: function ( e, ex, ey ) {
- var self = this,
- dx = ex - self._lastX,
- dy = ey - self._lastY,
- x = 0,
- y = 0,
- diffFromStartPos = 0,
- diffFromLastPos = 0,
- opacity = 0,
- overflowPos = 0,
- overFlowTarget = null;
+ var target = event.data.e,
+ t = ( isTouchable ? event.originalEvent.targetTouches[0] : event );
- self._lastMove = getCurrentTime();
- self._speedX = dx;
- self._speedY = dy;
+ target.style.opacity = 1.0;
- self._didDrag = true;
+ $view.moveData = {
+ target : target,
+ X : parseInt( target.style.left, 10 ) || 0,
+ Y : parseInt( target.style.top, 10 ) || 0,
+ pX : t.pageX,
+ pY : t.pageY
+ };
+ calculateLength();
- self._lastX = ex;
- self._lastY = ey;
+ _$view.trigger( "scrollstart" );
- if ( self._direction ) {
- self._movePos = ex - self._eventPos;
- x = self._nextPos + self._movePos;
- overflowPos = ex;
- } else {
- self._movePos = ey - self._eventPos;
- y = self._nextPos + self._movePos;
- overflowPos = ey;
- }
- self._showScrollBars();
- self._setScrollPosition( x, y );
- if ( self._overflowDir !== _OVERFLOW_DIR_NONE ) {
- overFlowTarget = ( self._overflowDir === _OVERFLOW_DIR_UP ) ? self._overflowTop : self._overflowBottom;
- if ( !self._overflowDisplayed ) {
- self._overflowDisplayed = true;
- self._overflowStartPos = overflowPos;
+ if ( !isTouchable ) {
+ event.preventDefault();
}
- diffFromStartPos = ( overflowPos - self._overflowStartPos ) * self._overflowDir;
- opacity = ( diffFromStartPos < 0 ) ?
- 0 : ( diffFromStartPos > self._overflowMaxDragDist ) ?
- 1 : ( diffFromStartPos / self._overflowMaxDragDist );
- overFlowTarget.css( "opacity", opacity );
- }
- return false;
- },
+ $( document ).bind( dragMoveEvt, function ( event ) {
+ var moveData = $view.moveData,
+ target = moveData.target,
+ handlePos = 0,
+ scrollPos = 0,
+ t = ( isTouchable ? event.originalEvent.targetTouches[0] : event );
- _handleDragStop: function ( e ) {
- var self = this;
+ handlePos = ( isHorizontal ? moveData.X + t.pageX - moveData.pX : moveData.Y + t.pageY - moveData.pY );
- self._reservedPos = self._movePos ? self._nextPos + self._movePos : self._reservedPos;
- self._scrollView._handleDragStop.apply( this, [ e ] );
- if ( self._overflowDir !== _OVERFLOW_DIR_NONE ) {
- self._overflowDir = _OVERFLOW_DIR_NONE;
- self._hideVGOverflowIndicator();
- }
- return self._didDrag ? false : undefined;
- },
+ if ( handlePos < 0 ) {
+ handlePos = 0;
+ }
- _addBehaviors: function () {
- var self = this;
+ if ( handlePos > trackLength ) {
+ handlePos = trackLength;
+ }
+ scrollPos = - Math.round( handlePos / trackLength * viewLength );
- // scroll event handler.
- if ( self.options.eventType === "mouse" ) {
- self._dragStartEvt = "mousedown";
- self._dragStartCB = function ( e ) {
- return self._handleDragStart( e, e.clientX, e.clientY );
- };
+ if ( isHorizontal ) {
+ scrollview._setScrollPosition( scrollPos, 0 );
+ target.style.left = handlePos + "px";
+ } else {
+ scrollview._setScrollPosition( 0, scrollPos );
+ target.style.top = handlePos + "px";
+ }
- self._dragMoveEvt = "mousemove";
- self._dragMoveCB = function ( e ) {
- return self._handleDragMove( e, e.clientX, e.clientY );
- };
+ event.preventDefault();
+ }).bind( dragStopEvt + dragLeaveEvt, function ( event ) {
+ stopHandlerScroll();
+ });
+ });
- self._dragStopEvt = "mouseup";
- self._dragStopCB = function ( e ) {
- return self._handleDragStop( e, e.clientX, e.clientY );
- };
+ _$view.bind( dragStopEvt, function ( event ) {
+ stopHandlerScroll();
+ });
- self._$view.bind( "vclick", function ( e ) {
- return !self._didDrag;
- } );
- } else { //touch
- self._dragStartEvt = "touchstart";
- self._dragStartCB = function ( e ) {
- var t = e.originalEvent.targetTouches[0];
- return self._handleDragStart( e, t.pageX, t.pageY );
- };
+ $view.bind( "scrollstart", function ( event ) {
+ if ( !scrollview.enableHandler() ) {
+ return;
+ }
- self._dragMoveEvt = "touchmove";
- self._dragMoveCB = function ( e ) {
- var t = e.originalEvent.targetTouches[0];
- return self._handleDragMove( e, t.pageX, t.pageY );
- };
+ calculateLength();
- self._dragStopEvt = "touchend";
- self._dragStopCB = function ( e ) {
- return self._handleDragStop( e );
- };
- }
- self._$view.bind( self._dragStartEvt, self._dragStartCB );
+ if ( viewLength < 0 || clipLength < handlerHeight ) {
+ if ( scrollbar.is( ":hidden" ) ) {
+ scrollbar.show();
+ }
+ return;
+ }
- // other events.
- self._$view.delegate( ".virtualgrid-item", "click", function ( event ) {
- var $selectedItem = $( this );
- $selectedItem.trigger( "select", this );
- } );
+ if ( scrollbar.is( ":visible" ) ) {
+ scrollbar.hide();
+ }
- $( window ).bind( "resize", function ( e ) {
- var height = 0,
- $virtualgrid = $( ".ui-virtualgrid-view" );
- if ( $virtualgrid.length !== 0 ) {
- self._resize();
+ if ( moveTimer ) {
+ clearInterval( moveTimer );
+ moveTimer = undefined;
}
- } );
- $( document ).one( "pageshow", function ( event ) {
- var $page = $( self.element ).parents( ".ui-page" ),
- $header = $page.find( ":jqmData(role='header')" ),
- $footer = $page.find( ":jqmData(role='footer')" ),
- $content = $page.find( ":jqmData(role='content')" ),
- footerHeight = $footer ? $footer.height() : 0,
- headerHeight = $header ? $header.height() : 0;
+ handler.addClass( "ui-handler-visible" );
+ handlerThumb.stop( true, true )
+ .fadeIn();
+ }).bind( "scrollupdate", function ( event, data ) {
+ if ( !scrollview.enableHandler() || viewLength < 0 || clipLength < handlerHeight ) {
+ return;
+ }
- if ( $page && $content ) {
- $content.height( window.innerHeight - headerHeight - footerHeight ).css( "overflow", "hidden" );
- $content.addClass( "ui-virtualgrid-content" );
+ setHanderPostion( scrollview.getScrollPosition() );
+ }).bind( "scrollstop", function ( event ) {
+ if ( !scrollview.enableHandler() || viewLength < 0 || clipLength < handlerHeight ) {
+ return;
}
- } );
- },
- //----------------------------------------------------//
- // Calculate size about dom element. //
- //----------------------------------------------------//
- _calculateClipSize : function () {
- var self = this,
- clipSize = 0;
+ moveTimer = setInterval( function () {
+ setHanderPostion( scrollview.getScrollPosition() );
+ if ( !scrollview._gesture_timer ) {
+ clearInterval( moveTimer );
+ moveTimer = undefined;
+ }
+ }, 10 );
- if ( self._direction ) {
- clipSize = self._calculateClipWidth();
- } else {
- clipSize = self._calculateClipHeight();
+ if ( scrollview._handlerTimer ) {
+ clearTimeout( scrollview._handlerTimer );
+ scrollview._handlerTimer = 0;
+ }
+ scrollview._handlerTimer = setTimeout( function () {
+ if ( scrollview._timerID === 0 && $view.moveData === null ) {
+ handlerThumb.stop( true, true )
+ .css( "opacity", 1.0 )
+ .fadeOut( function () {
+ handler.removeClass( "ui-handler-visible" );
+ });
+ scrollview._handlerTimer = 0;
+ }
+ }, 1000 );
+ }).bind( "mousewheel", function ( event ) {
+ handler.removeClass( "ui-handler-visible" );
+ setHanderPostion( scrollview.getScrollPosition() );
+ });
+ };
+
+ $.extend( $.tizen.scrollview.prototype, {
+ enableHandler: function ( enabled ) {
+ if ( typeof enabled === 'undefined' ) {
+ return this.options.handler;
}
- return clipSize;
- },
- _calculateClipWidth : function () {
- var self = this,
- $parent = self._$clip.parent(),
- paddingValue = 0,
- clipSize = $( window ).width();
+ this.options.handler = !!enabled;
- if ( self._inheritedSize.isDefinedWidth ) {
- return self._inheritedSize.width;
- }
+ var $view = this.element;
+ if ( this.options.handler ) {
+ if ( $view.find( ".ui-handler" ).length === 0 ) {
+ createHandler( $view );
+ }
- if ( $parent.hasClass( "ui-content" ) ) {
- paddingValue = parseInt( $parent.css( "padding-left" ), 10 );
- clipSize = clipSize - ( paddingValue || 0 );
- paddingValue = parseInt( $parent.css( "padding-right" ), 10 );
- clipSize = clipSize - ( paddingValue || 0 );
+ $view.find( ".ui-scrollbar" ).hide();
+ $view.find( ".ui-handler" ).show();
} else {
- clipSize = self._$clip.width();
+ $view.find( ".ui-handler" ).removeClass( "ui-handler-visible" ).hide();
+ $view.find( ".ui-scrollbar" ).show();
}
- return clipSize;
},
- _calculateClipHeight : function () {
- var self = this,
- $parent = self._$clip.parent(),
- header = null,
- footer = null,
- paddingValue = 0,
- clipSize = $( window ).height();
-
- if ( self._inheritedSize.isDefinedHeight ) {
- return self._inheritedSize.height;
+ _setHandlerTheme: function ( handlerTheme ) {
+ if ( !handlerTheme ) {
+ return;
}
- if ( $parent.hasClass( "ui-content" ) ) {
- paddingValue = parseInt( $parent.css( "padding-top" ), 10 );
- clipSize = clipSize - ( paddingValue || 0 );
- paddingValue = parseInt( $parent.css( "padding-bottom" ), 10 );
- clipSize = clipSize - ( paddingValue || 0 );
- header = $parent.siblings( ".ui-header" );
- footer = $parent.siblings( ".ui-footer" );
+ var oldClass = "ui-handler-" + this.options.handlerTheme,
+ newClass = "ui-handler-" + handlerTheme;
- if ( header ) {
- if ( header.outerHeight( true ) === null ) {
- clipSize = clipSize - ( $( ".ui-header" ).outerHeight() || 0 );
- } else {
- clipSize = clipSize - header.outerHeight( true );
- }
- }
- if ( footer ) {
- clipSize = clipSize - footer.outerHeight( true );
- }
- } else {
- clipSize = self._$clip.height();
- }
- return clipSize;
+ this.element.removeClass( oldClass ).addClass( newClass );
+ this.options.handlerTheme = handlerTheme;
},
- _calculateColumnSize : function () {
- var self = this,
- $tempBlock,
- $cell;
-
- $tempBlock = $( self._makeRows( 1 ) );
- self._$view.append( $tempBlock.children().first() );
- if ( self._direction ) {
- // x-axis
- self._viewSize = self._$view.width();
- $cell = self._$view.children().first().children().first();
- self._cellSize = $cell.outerWidth( true );
- self._cellOtherSize = $cell.outerHeight( true );
- } else {
- // y-axis
- self._viewSize = self._$view.height();
- $cell = self._$view.children().first().children().first();
- self._cellSize = $cell.outerHeight( true );
- self._cellOtherSize = $cell.outerWidth( true );
+ _setOption: function ( key, value ) {
+ switch ( key ) {
+ case "handler":
+ this.enableHandler( value );
+ break;
+ case "handlerTheme":
+ this._setHandlerTheme( value );
+ break;
+ default:
+ originSetOption.call( this, key, value );
}
- $tempBlock.remove();
- self._$view.children().remove();
},
- _calculateColumnCount : function ( ) {
- var self = this,
- $view = self._$clip,
- viewSize = self._direction ? $view.innerHeight() : $view.innerWidth(),
- itemCount = 0 ;
-
- if ( self._direction ) {
- viewSize = viewSize - ( parseInt( $view.css( "padding-top" ), 10 ) + parseInt( $view.css( "padding-bottom" ), 10 ) );
- } else {
- viewSize = viewSize - ( parseInt( $view.css( "padding-left" ), 10 ) + parseInt( $view.css( "padding-right" ), 10 ) );
- }
-
- itemCount = parseInt( ( viewSize / self._cellOtherSize ), 10 );
- return itemCount > 0 ? itemCount : 1 ;
- },
+ _handlerTimer : 0
+ });
- // Read the position of clip form property ('webkit-transform').
- // @return : number - position of clip.
- _getClipPosition : function () {
- var self = this,
- matrix = null,
- contents = null,
- result = -self._cellSize,
- $scrollview = self._$view.closest( ".ui-scrollview-view" );
+ $( document ).delegate( ":jqmData(scroll)", "scrollviewcreate", function () {
+ var widget = $( this );
+ if ( widget.attr( "data-" + $.mobile.ns + "scroll" ) === "none"
+ || widget.attr( "data-" + $.mobile.ns + "handler" ) !== "true" ) {
+ return;
+ }
+ widget.scrollview( "enableHandler", "true" );
+ });
+} ( jQuery, document ) );
- if ( $scrollview ) {
- matrix = $scrollview.css( "-webkit-transform" );
- contents = matrix.substr( 7 );
- contents = contents.substr( 0, contents.length - 1 );
- contents = contents.split( ', ' );
- result = Math.abs( contents [5] );
- }
- return result;
- },
- //----------------------------------------------------//
- // DOM Element handle //
- //----------------------------------------------------//
- _makeRows : function ( count ) {
- var self = this,
- index = 0,
- row = null,
- wrapper = null;
- wrapper = self._createElement( "div" );
- wrapper.setAttribute( "class", "ui-scrollview-view" );
- for ( index = 0; index < count ; index += 1 ) {
- row = self._makeRow( index );
- if ( self._direction ) {
- row.style.top = 0;
- row.style.left = index * self._cellSize;
- }
- wrapper.appendChild( row );
- }
- return wrapper;
- },
+/* ***************************************************************************
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ * ***************************************************************************
+ *
+ * Author: Kangsik Kim <kangsik81.kim@samsung.com>
+ * Minkyeong Kim <minkyeong.kim@samsung.com>
+*/
- // make a single row block
- _makeRow : function ( rowIndex ) {
- var self = this,
- index = rowIndex * self._itemCount,
- colIndex = 0,
- blockClassName = self._direction ? "ui-virtualgrid-wrapblock-x" : "ui-virtualgrid-wrapblock-y",
- wrapBlock = self._createElement( "div" ),
- strWrapInner = "",
- attrName = self._direction ? "top" : "left";
+/**
+ * The TokenTextArea widget changes a text item to a button. It can be comprised of a number of button widgets.
+ * When a user types text and the text gets a specific event to change from a text to a button,
+ * the input text is changed to a TokenTextArea widget.
+ * A user can add the TokenTextArea widget to a contact list, email list, or another list.
+ * The typical use of this widget is composing a number of contacts or phone numbers in a specific area of the screen.
+ *
+ * HTML Attributes:
+ *
+ * data-link : Represents the id of the page or the URL of other HTML file.
+ * The page contains data for the user, for example, an address book.
+ * If the value is null, anchor button doesn't work. (Default : null)
+ * data-label: Provide a label for a user-guide. (Default : 'To : ')
+ * data-description : This attribute is managing message format.
+ * This message is displayed when widget status was changed to 'focusout'. (Default : '+ {0}')
+ *
+ * APIs:
+ *
+ * inputtext ( [string] )
+ * : If argument is not exist, will get a string from inputbox.
+ * If argument is exist, will set a string to inputbox.
+ * select ( [number] )
+ * : If no argument exists, gets a string of the selected block.
+ * If any button isn't selected on a token text area widget, this method returns "null" value.
+ * When a user call this method with an argument which is a number type,
+ * this method selects the button which is matched with the argument.
+ * add ( text, [number] )
+ * : If second argument does not exist, will insert to a new button at last position.
+ * Insert a new button at indexed position. The position is decided by the second argument.
+ * "index of position" means that the position of inserting a new button is decided by the second argument on "add" method.
+ * For example, if a user call the method like this "add("Tizen", 2)",
+ * new button labed "Tizen" will be inserted on the third position.
+ * remove ( [number] )
+ * : If no argument exists, all buttons are removed.
+ * Remove a button at indexed position.
+ * The position is decided by the second argument. (index: index of button)
+ * length ( void )
+ * : Get a number of buttons.
+ * foucsIn ( void )
+ * : This method change a status to 'focusin'.
+ * This status is able to manage a widget.
+ * focusOut ( void )
+ * : Changes the focus status to 'focus out'.
+ * The status is not able to manage a widget.
+ * All buttons that contained in the widget are removed and
+ * summarized message is displayed.
+ * destroy ( void )
+ * : Remove all of the new DOM elements for the current widget that you created.
+ *
+ * Events:
+ *
+ * select : Occur when a button is selected.
+ * add : Occur when new button is inserted. (@since Tizen 2.1 deprecated, You can still use this event. But not recommended.)
+ * remove : Occur when a button is removed. (@since Tizen 2.1 deprecated, You can still use this event. But not recommended.)
+ *
+ * Examples:
+ *
+ * <div data-role="tokentextarea" data-label="To : " data-link="#pageId" data-description="+ {0}">
+ * </div>
+ *
+ */
- for ( colIndex = 0; colIndex < self._itemCount; colIndex++ ) {
- strWrapInner += self._makeHtmlData( index, colIndex, attrName );
- index += 1;
- }
- wrapBlock.innerHTML = strWrapInner;
- wrapBlock.setAttribute( "class", blockClassName );
- wrapBlock.setAttribute( "row-index", String( rowIndex ) );
- self._fragment.appendChild( wrapBlock );
- return wrapBlock;
- },
- _makeHtmlData : function ( dataIndex, colIndex, attrName ) {
- var self = this,
- htmlStr = "",
- itemData = null;
+/**
+ @class TokenTextArea
+ The TokenTextArea widget enables the user to enter text and convert it to a button. Each button that is created from entered text as a result of a change event forms a token text area widget. This widget is useful in composing an e-mail or SMS message to a group of addresses, each of which is a clickable item for more actions, such as copying, editing, or removing the address.
- itemData = self._itemData( dataIndex );
- if ( itemData ) {
- htmlStr = self._getConvertedTmplStr( itemData );
- htmlStr = self._insertPosToTmplStr( htmlStr, attrName, ( colIndex * self._cellOtherSize ) );
- }
+ To add a token text area widget to the application, use the following code:
- return htmlStr;
- },
+ <div data-role="tokentextarea" data-label="To : " data-link="#pageId">
+ </div>
+*/
- _insertPosToTmplStr : function ( tmplStr, attrName, posVal ) {
- var tagCloseIdx = tmplStr.indexOf( '>' ),
- classIdx = -1,
- firstPart,
- lastPart,
- result,
- found = false,
- targetIdx = 0,
- firstPartLen,
- i = 0;
+/**
+ @property {String} data-label
+ Sets a label as a guide for the user.
+ For example, while composing an e-mail message, the 'To : ' label is a guide for the user to enter e-mail addresses.
- if ( tagCloseIdx === -1 ) {
- return;
- }
+ <div data-role="tokentextarea" data-label="To : ">
+ </div>
+*/
- firstPart = tmplStr.slice( 0, tagCloseIdx );
- lastPart = tmplStr.slice( tagCloseIdx, tmplStr.length );
+/**
+ @property {String} data-decription
+ Manages the message format.
+ The message is displayed when the widget status changes to focus out
- classIdx = firstPart.indexOf( 'class' );
+ <div data-role="tokentextarea" data-description=" + {0}">
+ </div>
+ */
+/**
+ @property {String} data-link
+ Sets the ID of the page or the URL of other HTML file to which the button links.
+ If the data-link is set with the URL of other HTML file, the 'dom-cache' option of both page - a page containing a Tokentextarea and a page in the target HTML file - must be set as 'true'.
- if ( classIdx !== -1 ) {
- firstPartLen = firstPart.length;
- for ( i = classIdx + 6; i < firstPartLen; i++ ) {
- if ( firstPart.charAt( i ) === "\"" || firstPart.charAt( i ) === "\'" ) {
- if ( found === false ) {
- found = true;
- } else {
- targetIdx = i;
- break;
- }
- }
- }
- result = firstPart.slice( 0, targetIdx ) + " virtualgrid-item" + firstPart.slice( targetIdx, firstPartLen ) + lastPart;
- } else {
- result = firstPart + " class=\"virtualgrid-item\"" + lastPart;
- }
+ <div data-role="tokentextarea" data-link="#pageId">
+ </div>
- if ( !isNaN( posVal ) ) {
- result = result.replace( '>', " style=\"" + attrName + ": " + String( posVal ) + "px\">");
- }
+ <div data-role="tokentextarea" data-link="fileName.html" data-dom-cache="true">
+ </div>
+*/
+/**
+ @event select
+ The select event is fired when a token text area widget button is selected:
- return result;
- },
+ <div data-role="tokentextarea">
+ </div>
+ $(".selector").on("select", function(event, ui)
+ {
+ // Handle the select event
+ });
+*/
+/**
+ @event add (@since Tizen 2.1 deprecated, You can still use this event. But not recommended.)
+ The add event is fired when a token text area widget button is created:
- _increaseRow : function ( num ) {
- var self = this,
- rotation = self.options.rotation,
- totalRowCnt = self._totalRowCnt,
- rowView = self._$view[ 0 ],
- firstRow = null,
- lastRow = rowView.lastChild,
- row = null,
- headRowIndex = 0,
- tailRowIndex = 0,
- i;
+ <div data-role="tokentextarea">
+ </div>
+ $(".selector").on("add", function(event, ui)
+ {
+ // Handle the add event
+ });
+*/
+/**
+ @event remove (@since Tizen 2.1 deprecated, You can still use this event. But not recommended.)
+ The remove event is fired when a token text area widget button is removed:
+ Restriction : "remove" event works under only "bind" event handling.
+
+ <div data-role="tokentextarea">
+ </div>
+ $(".selector").bind("remove", function(event, ui)
+ {
+ // Handle the remove event
+ });
+*/
+/**
+ @method destroy
+ The destroy method is used to remove in the current widget all the new DOM elements that you have created.
- if ( !lastRow ) {
- return;
- }
+ <div data-role="tokentextarea">
+ </div>
+ $(".selector").tokentextarea("destroy");
- tailRowIndex = parseInt( lastRow.getAttribute( "row-index" ), 10 );
- if ( !rotation ) {
- firstRow = rowView.firstChild;
- headRowIndex = parseInt( firstRow.getAttribute( "row-index" ), 10 );
- }
+ @since Tizen2.0
+*/
+/**
+ @method inputText
+ The inputText method is used to manage the widget input box text. If no parameter is set, the method gets the input box text. If a parameter is set, the parameter text is set in the input box.
+
+ <div data-role="tokentextarea">
+ </div>
+ $(".selector").tokentextarea("inputText", [text]);
+*/
+/**
+ @method select
+ The select method is used to select a token text area widget button based on its index value. If no index value is defined, the method returns the string of the selected block. If there are no buttons present in the widget, the method returns null.
- for ( i = 0 ; i < num ; ++i ) {
- if ( tailRowIndex >= totalRowCnt - 1 && !rotation ) {
- if ( headRowIndex == 0 ) {
- break;
- }
+ <div data-role="tokentextarea">
+ </div>
+ $(".selector").tokentextarea("select", [index]);
+*/
+/**
+ @method add
+ The add method is used to add a new token text area widget button with the specified label text at the specified index position. If the index parameter is not defined, the widget button is added at the bottom of the list. For example, the $(".selector").tokentextarea("add", "Tizen", 2) method call creates a new widget button labeled 'Tizen' at the third position in the widget.
- row = self._makeRow( --headRowIndex );
- rowView.insertBefore( row, firstRow );
- firstRow = row;
- } else {
- row = self._makeRow( circularNum( ++tailRowIndex, totalRowCnt ) );
- rowView.appendChild( row );
- }
+ <div data-role="tokentextarea">
+ </div>
+ $(".selector").tokentextarea("add", [text], [index]);
+*/
+/**
+ @method remove
+ The remove method is used to remove a token text area widget button at the specified index position. If the parameter is not defined, all the widget buttons are removed.
- if ( self._direction ) {
- $( row ).width( self._cellSize );
- } else {
- $( row ).height( self._cellSize );
- }
- }
- },
+ <div data-role="tokentextarea">
+ </div>
+ $(".selector").tokentextarea("remove", [index]);
+*/
+/**
+ @method length
+ The length method is used to retrieve the number of buttons in the token text area widget:
+ <div data-role="tokentextarea">
+ </div>
+ $(".selector").tokentextarea("length");
+*/
+/**
+ @method focusIn
+ The focusIn method is used to set the focus status to "focus in". This focus state enables the user to add or remove buttons in the token text area widget.
- _decreaseRow : function ( num ) {
- var self = this,
- rowView = self._$view[ 0 ],
- i;
+ <div data-role="tokentextarea">
+ </div>
+ $(".selector").tokentextarea("focusIn");
+*/
+/**
+ @method focusOut
+ The focusOut method is used to set the focus status to "focus out". In this focus state, the user cannot manage the buttons in the widget, all the buttons are removed, and a message is displayed.
- for ( i = 0 ; i < num ; ++i ) {
- rowView.removeChild( rowView.lastChild );
- }
+ <div data-role="tokentextarea">
+ </div>
+ $(".selector").tokentextarea("focusOut");
+*/
+( function ( $, window, document, undefined ) {
+ $.widget( "tizen.tokentextarea", $.mobile.widget, {
+ _focusStatus : null,
+ _items : null,
+ _viewWidth : 0,
+ _reservedWidth : 0,
+ _currentWidth : 0,
+ _fontSize : 0,
+ _anchorWidth : 0,
+ _labelWidth : 0,
+ _marginWidth : 0,
+ options : {
+ label : "To : ",
+ link : null,
+ description : "+ {0}"
},
- _replaceRows : function ( curCnt, prevCnt, maxCnt, clipPosition ) {
+ _create : function () {
var self = this,
- $rows = self._$view.children(),
- prevRowIndex = 0,
- rowIndex = 0,
- diffRowCnt = 0,
- targetCnt = 1,
- filterCondition = ( self._filterRatio * self._cellSize ) + self._cellSize,
- idx = 0;
+ $view = this.element,
+ role = $view.jqmData( "role" ),
+ option = this.options,
+ className = "ui-tokentextarea-link",
+ inputbox = $( document.createElement( "input" ) ),
+ labeltag = $( document.createElement( "span" ) ),
+ moreBlock = $( document.createElement( "a" ) );
- if ( filterCondition < clipPosition ) {
- targetCnt += 1;
- }
+ $view.hide().empty().addClass( "ui-" + role );
- prevRowIndex = parseInt( $( $rows[targetCnt] ).attr( "row-index" ), 10 );
- if ( prevRowIndex === 0 ) {
- // only top.
- rowIndex = maxCnt - targetCnt;
- } else {
- rowIndex = Math.round( ( prevRowIndex * prevCnt ) / curCnt );
- if ( rowIndex + self._rowsPerView >= maxCnt ) {
- // only bottom.
- rowIndex = maxCnt - self._rowsPerView;
- }
- diffRowCnt = prevRowIndex - rowIndex;
- rowIndex -= targetCnt;
- }
+ // create a label tag.
+ $( labeltag ).text( option.label ).addClass( "ui-tokentextarea-label" ).attr( "tabindex", 0 );
+ $view.append( labeltag );
- for ( idx = 0 ; idx < $rows.length ; idx += 1 ) {
- self._replaceRow( $rows[idx], circularNum( rowIndex, self._totalRowCnt ) );
- rowIndex++;
+ // create a input tag
+ $( inputbox ).addClass( "ui-tokentextarea-input ui-tokentextarea-input-visible ui-input-text ui-body-s" ).attr( "role", "textbox" );
+ $view.append( inputbox );
+
+ // create a anchor tag.
+ if ( option.link === null || $.trim( option.link ).length < 1 || $( option.link ).length === 0 ) {
+ className += "-dim";
}
- return -diffRowCnt;
- },
+ $( moreBlock ).attr( "data-role", "button" )
+ .buttonMarkup( {
+ inline: true,
+ icon: "plus",
+ style: "circle"
+ })
+ .attr( { "href" : $.trim( option.link ), "tabindex" : 0 } )
+ .addClass( "ui-tokentextarea-link-base" )
+ .addClass( className )
+ .find( "span.ui-btn-text" )
+ .text( "Add recipient" );
- _replaceRow : function ( block, index ) {
- var self = this,
- tempBlocks = null;
+ // append default htmlelements to main widget.
+ $view.append( moreBlock );
- while ( block.hasChildNodes() ) {
- block.removeChild( block.lastChild );
- }
+ // bind a event
+ this._bindEvents();
+ self._focusStatus = "init";
+ // display widget
+ $view.show();
- tempBlocks = self._makeRow( index );
- while ( tempBlocks.children.length ) {
- block.appendChild( tempBlocks.children[0] );
- }
- block.setAttribute( "row-index", tempBlocks.getAttribute( "row-index" ) );
- tempBlocks.parentNode.removeChild( tempBlocks );
+ // assign global variables
+ self._viewWidth = $view.innerWidth();
+ self._reservedWidth += self._calcBlockWidth( moreBlock );
+ self._reservedWidth += self._calcBlockWidth( labeltag );
+ self._fontSize = parseInt( $( moreBlock ).css( "font-size" ), 10 );
+ self._currentWidth = self._reservedWidth;
+ self._modifyInputBoxWidth();
},
- _createElement : function ( tag ) {
- var element = document.createElement( tag );
+ // bind events
+ _bindEvents : function () {
+ var self = this,
+ $view = self.element,
+ option = self.options,
+ inputbox = $view.find( ".ui-tokentextarea-input" ),
+ moreBlock = $view.find( ".ui-tokentextarea-link-base" );
- this._fragment.appendChild( element );
- return element;
- },
+ // delegate a event to HTMLDivElement(each block).
+ $view.delegate( "div", "click", function ( event ) {
+ if ( $( this ).hasClass( "ui-tokentextarea-sblock" ) ) {
+ // If block is selected, it will be removed.
+ self._removeTextBlock();
+ }
- _getObjectNames : function ( obj ) {
- var properties = [],
- name = "";
+ var lockBlock = $view.find( "div.ui-tokentextarea-sblock" );
+ if ( typeof lockBlock !== "undefined" ) {
+ lockBlock.removeClass( "ui-tokentextarea-sblock" ).addClass( "ui-tokentextarea-block" );
+ }
+ $( this ).removeClass( "ui-tokentextarea-block" ).addClass( "ui-tokentextarea-sblock" );
+ $view.trigger( "select" );
+ });
- for ( name in obj ) {
- properties.push( name );
- }
- this._properties = properties;
- },
+ inputbox.bind( "keyup", function ( event ) {
+ // 8 : backspace
+ // 13 : Enter
+ // 186 : semi-colon
+ // 188 : comma
+ var keyValue = event.keyCode,
+ valueString = $( inputbox ).val(),
+ valueStrings = [],
+ index,
+ isSeparator = false;
- _getConvertedTmplStr : function ( data ) {
- var self = this,
- dataProperties = self._properties,
- i = 0,
- plainMsg,
- ret = "";
+ if ( keyValue === 8 ) {
+ if ( valueString.length === 0 ) {
+ self._validateTargetBlock();
+ }
+ } else if ( keyValue === 13 || keyValue === 186 || keyValue === 188 ) {
+ if ( valueString.length !== 0 ) {
+ // split content by separators(',', ';')
+ valueStrings = valueString.split ( /[,;]/ );
+ for ( index = 0; index < valueStrings.length; index++ ) {
+ if ( valueStrings[index].length !== 0 && valueStrings[index].replace( /\s/g, "" ).length !== 0 ) {
+ self._addTextBlock( valueStrings[index] );
+ }
+ }
+ }
+ inputbox.val( "" );
+ isSeparator = true;
+ } else {
+ self._unlockTextBlock();
+ }
- if ( !data ) {
- return ;
- }
+ return !isSeparator;
+ });
- plainMsg = self._templateText;
- for ( i = 0; i < dataProperties.length; i++ ) {
- plainMsg = self._strReplace( plainMsg, "${" + dataProperties[ i ] + "}" , data[ dataProperties[ i ] ] );
- }
- plainMsg = self._changeImgSrcAriaAttrFromTmpl( plainMsg );
+ moreBlock.click( function () {
+ if ( $( moreBlock ).hasClass( "ui-tokentextarea-link-dim" ) ) {
+ return;
+ }
- return plainMsg;
- },
+ $( inputbox ).removeClass( "ui-tokentextarea-input-visible" ).addClass( "ui-tokentextarea-input-invisible" );
- _changeImgSrcAriaAttrFromTmpl : function ( plainMsg ) {
- var self = this,
- ret = "",
- targetTagIdx,
- beforeTargetTag = "",
- afterTargetTag = "",
- imgFileName,
- imgSrcSlashIdx,
- temp,
- srcRegExpResult;
+ $.mobile.changePage( option.link, {
+ transition: "slide",
+ reverse: false,
+ changeHash: false
+ });
+ });
- temp = plainMsg;
- targetTagIdx = temp.indexOf( "$ARIA-IMG-SRC-ALT$" );
- while ( targetTagIdx !== -1 ) {
- imgFileName = "";
- beforeTargetTag = beforeTargetTag + temp.slice( 0, targetTagIdx + 19 );
- afterTargetTag = temp.slice( targetTagIdx + 19, temp.length );
- srcRegExpResult = afterTargetTag.match( imgTagSrcAttrRE );
- if ( srcRegExpResult ) {
- imgSrcSlashIdx = srcRegExpResult[0].lastIndexOf( "/" );
- if ( imgSrcSlashIdx !== -1 ) {
- imgFileName = srcRegExpResult[0].slice( imgSrcSlashIdx + 1, -1 );
- }
+ $( document ).bind( "pagechange.mbe", function ( event ) {
+ if ( $view.innerWidth() === 0 ) {
+ return ;
}
- beforeTargetTag = beforeTargetTag.replace( "$ARIA-IMG-SRC-ALT$", imgFileName );
- temp = afterTargetTag;
- targetTagIdx = temp.indexOf( "$ARIA-IMG-SRC-ALT$" );
- ret = beforeTargetTag + afterTargetTag;
- }
-
- if ( ret === "" ) {
- ret = plainMsg;
- }
+ self.refresh();
+ $( inputbox ).removeClass( "ui-tokentextarea-input-invisible" ).addClass( "ui-tokentextarea-input-visible" );
+ });
- return ret;
+ $view.bind( "click", function ( event ) {
+ if ( self._focusStatus === "focusOut" ) {
+ self.focusIn();
+ }
+ });
},
- _insertAriaAttrToTmpl : function ( plainMsg ) {
- var ret = "",
- targetTagIdx,
- beforeTargetTag = "",
- afterTargetTag = "",
- temp;
+ // create a textbutton and append this button to parent layer.
+ // @param arg1 : string
+ // @param arg2 : index
+ _addTextBlock : function ( messages, blockIndex ) {
+ if ( arguments.length === 0 ) {
+ return;
+ }
- temp = plainMsg.replace( "<div", "<div tabindex=\"0\" aria-selected=\"true\"" );
- targetTagIdx = temp.indexOf( "<img" );
- if ( targetTagIdx !== -1 ) {
- while ( targetTagIdx !== -1 ) {
- beforeTargetTag = beforeTargetTag + temp.slice( 0, targetTagIdx + 4 );
- afterTargetTag = temp.slice( targetTagIdx + 4, temp.length );
- beforeTargetTag = beforeTargetTag + " role=\"img\" alt=\"$ARIA-IMG-SRC-ALT$\"";
- temp = afterTargetTag;
- targetTagIdx = temp.indexOf( "<img" );
- ret = beforeTargetTag + afterTargetTag;
- }
- temp = ret;
- targetTagIdx = temp.indexOf( "<span" );
- beforeTargetTag = "";
- while ( targetTagIdx !== -1 ) {
- beforeTargetTag = beforeTargetTag + temp.slice( 0, targetTagIdx + 5 );
- afterTargetTag = temp.slice( targetTagIdx + 5, temp.length );
- beforeTargetTag = beforeTargetTag + " aria-hidden=\"true\" tabindex=\"-1\"";
- temp = afterTargetTag;
- targetTagIdx = temp.indexOf( "<span" );
- ret = beforeTargetTag + afterTargetTag;
- }
+ if ( !messages ) {
+ return ;
}
- if ( ret === "" ) {
- ret = plainMsg;
+ var self = this,
+ $view = self.element,
+ content = messages,
+ index = blockIndex,
+ blocks = null,
+ textBlock = null;
+
+ if ( self._viewWidth === 0 ) {
+ self._viewWidth = $view.innerWidth();
}
- return ret;
- },
+ // Create a new text HTMLDivElement.
+ textBlock = $( document.createElement( 'div' ) );
- _strReplace : function ( plainMsg, stringToFind, stringToReplace ) {
- var temp = plainMsg,
- index = plainMsg.indexOf( stringToFind );
- while ( index !== -1 ) {
- temp = temp.replace( stringToFind, stringToReplace );
- index = temp.indexOf( stringToFind );
+ textBlock.text( content ).addClass( "ui-tokentextarea-block" ).attr( { "aria-label" : "double tap to edit", "tabindex" : 0 } );
+ textBlock.css( {'visibility': 'hidden'} );
+
+ blocks = $view.find( "div" );
+ if ( index !== null && index <= blocks.length ) {
+ $( blocks[index] ).before( textBlock );
+ } else {
+ $view.find( ".ui-tokentextarea-input" ).before( textBlock );
}
- return temp;
- }
- } );
+ textBlock = self._ellipsisTextBlock( textBlock );
+ textBlock.css( {'visibility': 'visible'} );
- $( document ).bind( "pagecreate create", function ( e ) {
- $( ":jqmData(role='virtualgrid')" ).virtualgrid();
- } );
-} ( jQuery, window, document ) );
+ self._modifyInputBoxWidth();
+ textBlock.hide();
+ textBlock.fadeIn( "fast", function () {
+ self._currentWidth += self._calcBlockWidth( textBlock );
+ $view.trigger( "add" );
+ });
+ },
+ _removeTextBlock : function () {
+ var self = this,
+ $view = this.element,
+ lockBlock = $view.find( "div.ui-tokentextarea-sblock" ),
+ _temp = null,
+ _dummy = function () {};
+ if ( lockBlock !== null && lockBlock.length > 0 ) {
+ self._currentWidth -= self._calcBlockWidth( lockBlock );
-/* ***************************************************************************
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- *
- * Authors: Hyunsook Park <hyunsook.park@samsung.com>
- * Wonseop Kim <wonseop.kim@samsung.com>
- */
+ lockBlock.fadeOut( "fast", function () {
+ lockBlock.remove();
+ self._modifyInputBoxWidth();
+ });
-/**
- * The gallery3d widget displays images along a curved path on a 3-dimensional coordinate system.
- * To improve performance, the size of image(s) displayed on the screen should be a square(under
- * 128X128 pixel) as possible. But if a user can't resize the images, this widget supports an image
- * resizing feature and he/she can use it with "data-thumbnail-cache" option. ("data-thumbnail-cache"
- * option resizes the gallery images under 128x128 pixels and stores the images on a local storage.
- * So when a gallery3D widget is re-launched, the widget reuse the storage and a user can improve
- * launching time. A browser or web runtime engine should support "Web Storage" feature to use that
- * option.)
- *
- * HTML Attributes:
- *
- * data-thumbnail-cache : Determines whether to cache and resize images.
- *
- * APIs:
- *
- * next ( void )
- * : This method moves each image forward one by one.
- * prev ( void )
- * : This method moves each image backward one by one.
- * select ( [number] )
- * : When the "select" method is called with an argument, the method selects the image of given index.
- * If the method is called with no argument, it will return the Javascript object having "src"
- * attribute having the selected image’s URL.
- * add ( object or string [, number] )
- * This method adds an image to Gallery3D widget.
- * If the second argument isn't inputted, the image is added at the 0th position.
- * remove ( [number] )
- * : This method deletes an image from Gallery3d widget.
- * The argument defines the index of the image to be deleted.
- * If an argument isn't inputted, it removes current image.
- * clearThumbnailCache ( void )
- * : This method clears the cache data of all images when thumbnailCache option is set as 'true'.
- * refresh ( void )
- * : This method updates and redraws current widget.
- * empty ( void )
- * : This method removes all of images from Gallery3D widget.
- * length ( void )
- * : This method gets the number of images.
- *
- * Events:
- *
- * select : Triggered when an image is selected.
- *
- * Examples:
- *
- * <script>
- * $( "#gallery3d" ).on( "gallery3dcreate", function () {
- * $( "#gallery3d" ).gallery3d( "add", "01.jpg" );
- * });
- * </script>
- * <div id="gallery3d" data-role="gallery3d"></div>
- */
+ this._eventRemoveCall = true;
+ if ( $view[0].remove ) {
+ _temp = $view[0].remove;
+ $view[0].remove = _dummy;
+ }
+ $view.triggerHandler( "remove" );
+ if ( _temp) {
+ $view[0].remove = _temp;
+ }
+ this._eventRemoveCall = false;
+ } else {
+ $view.find( "div:last" ).removeClass( "ui-tokentextarea-block" ).addClass( "ui-tokentextarea-sblock" );
+ }
+ },
-/**
- @class Gallery3D
- The gallery3d widget displays images along a curved path on a 3-dimensional coordinate system.
- <br/><br/>To add an gallery3d widget to the application, use the following code:
+ _calcBlockWidth : function ( block ) {
+ return $( block ).outerWidth( true );
+ },
- <script>
- $( "#gallery3d" ).on( "gallery3dcreate", function () {
- $( "#gallery3d" ).gallery3d( "add", "01.jpg" );
- });
- </script>
- <div id="gallery3d" data-role="gallery3d"></div>
-*/
-/**
- @property {Boolean} data-thumbnail-cache
- Determines whether to cache and resize images.
- To improve performance, the size of image(s) displayed on the screen should be a square (under 128X128 pixels).
- "data-thumbnail-cache" option resizes the gallery images under 128x128 pixels and stores the images on a local storage.
- So when a gallery3D widget is re-launched, the widget reuses the storage and the launching time can be improved.
- A browser or web runtime engine must support "Web Storage" feature to use this option.
-*/
-/**
- @event select
- Triggered when an image is selected.
+ _unlockTextBlock : function () {
+ var $view = this.element,
+ lockBlock = $view.find( "div.ui-tokentextarea-sblock" );
+ if ( lockBlock ) {
+ lockBlock.removeClass( "ui-tokentextarea-sblock" ).addClass( "ui-tokentextarea-block" );
+ }
+ },
- <script>
- $( "#gallery3d" ).on( "gallery3dcreate", function () {
- $( "#gallery3d" ).gallery3d( "add", { src: "1.jpg" } )
- .gallery3d( "add", { src: "2.jpg" } )
- .gallery3d( "add", { src: "3.jpg" } );
- }).on( "select", function ( event, data, index ) {
- // Handle the select event
- var urlOfImage = data.src, indexOfImage = index;
- });
- </script>
- <div id="gallery3d" data-role="gallery3d"></div>
-*/
-/**
- @method next
- This method moves each image forward one by one.
+ // call when remove text block by backspace key.
+ _validateTargetBlock : function () {
+ var self = this,
+ $view = self.element,
+ lastBlock = $view.find( "div:last" ),
+ tmpBlock = null;
- <script>
- $( "#gallery3d" ).on( "gallery3dcreate", function () {
- $( "#gallery3d" ).gallery3d( "add", { src: "1.jpg" } )
- .gallery3d( "add", { src: "2.jpg" } )
- .gallery3d( "add", { src: "3.jpg" } )
- .gallery3d( "next" );
- });
- </script>
- <div id="gallery3d" data-role="gallery3d"></div>
-*/
-/**
- @method prev
- This method moves each image backward one by one.
+ if ( lastBlock.hasClass( "ui-tokentextarea-sblock" ) ) {
+ self._removeTextBlock();
+ } else {
+ tmpBlock = $view.find( "div.ui-tokentextarea-sblock" );
+ tmpBlock.removeClass( "ui-tokentextarea-sblock" ).addClass( "ui-tokentextarea-block" );
+ lastBlock.removeClass( "ui-tokentextarea-block" ).addClass( "ui-tokentextarea-sblock" );
+ }
+ },
- <script>
- $( "#gallery3d" ).on( "gallery3dcreate", function () {
- $( "#gallery3d" ).gallery3d( "add", { src: "1.jpg" } )
- .gallery3d( "add", { src: "2.jpg" } )
- .gallery3d( "add", { src: "3.jpg" } )
- .gallery3d( "prev" );
- });
- </script>
- <div id="gallery3d" data-role="gallery3d"></div>
-*/
-/**
- @method select
- When the "select" method is called with an argument, the method selects the image of given index.
- If the method is called with no argument, it will return the Javascript object having "src" attribute having the selected image’s URL.
+ _ellipsisTextBlock : function ( textBlock ) {
+ var self = this,
+ $view = self.element,
+ maxWidth = self._viewWidth / 2;
- <script>
- $( "#gallery3d" ).on( "gallery3dcreate", function () {
- $( "#gallery3d" ).gallery3d( "add", { src: "1.jpg" } )
- .gallery3d( "add", { src: "2.jpg" } )
- .gallery3d( "add", { src: "3.jpg" } );
- var selectedImage = $("#gallery3d"). gallery3d( "select" );
- // selectedImage = { src: "3.jpg" };
- });
- </script>
- <div id="gallery3d" data-role="gallery3d"></div>
-*/
-/**
- @method add
- This method adds an image to Gallery3D widget.
- The first argument is a Javascript object having a "src" attribute or a string of image's path.
- The second argument is an index of images.
- If second argument isn't inputted, the image is added at the 0th position.
+ if ( self._calcBlockWidth( textBlock ) > maxWidth ) {
+ $( textBlock ).width( maxWidth - self._marginWidth );
+ }
- <script>
- $( "#gallery3d" ).on( "gallery3dcreate", function () {
- $( "#gallery3d" ).gallery3d( "add", { src: "1.jpg" } )
- .gallery3d( "add", "2.jpg", 1 );
- });
- </script>
- <div id="gallery3d" data-role="gallery3d"></div>
-*/
-/**
- @method remove
- This method deletes an image from Gallery3d widget.
- The argument defines the index of the image to be deleted.
- If an argument isn't inputted, it removes current image.
+ return textBlock;
+ },
- <script>
- $( "#gallery3d" ).on( "gallery3dcreate", function () {
- $( "#gallery3d" ).gallery3d( "add", { src: "1.jpg" } )
- .gallery3d( "add", { src: "2.jpg" } )
- .gallery3d( "add", { src: "3.jpg" } );
+ _modifyInputBoxWidth : function () {
+ var self = this,
+ $view = self.element,
+ margin = 0,
+ labelWidth = 0,
+ anchorWidth = 0,
+ inputBoxWidth = 0,
+ blocks = $view.find( "div" ),
+ blockWidth = 0,
+ index = 0,
+ inputBoxMargin = 10,
+ inputBox = $view.find( ".ui-tokentextarea-input" );
- $( "#gallery3d" ).gallery3d( "remove" );
- $( "#gallery3d" ).gallery3d( "remove", 1 );
- });
- </script>
- <div id="gallery3d" data-role="gallery3d"></div>
-*/
-/**
- @method clearThumbnailCache
- This method clears the cache data of all images when thumbnailCache option is set as 'true'
+ if ( $view.width() === 0 ) {
+ return;
+ }
- <script>
- $( "#gallery3d" ).on( "gallery3dcreate", function () {
- $( "#gallery3d" ).gallery3d( "add", { src: "1.jpg" } )
- .gallery3d( "add", { src: "2.jpg" } )
- .gallery3d( "add", { src: "3.jpg" } );
+ if ( self._labelWidth === 0 ) {
+ self._labelWidth = $view.find( ".ui-tokentextarea-label" ).outerWidth( true );
+ self._anchorWidth = $view.find( ".ui-tokentextarea-link-base" ).outerWidth( true );
+ self._marginWidth = parseInt( ( $( inputBox ).css( "margin-left" ) ), 10 );
+ self._marginWidth += parseInt( ( $( inputBox ).css( "margin-right" ) ), 10 );
+ self._viewWidth = $view.innerWidth();
+ }
- $( "#gallery3d" ).gallery3d( "clearThumbnailCache" );
- });
- </script>
- <div id="gallery3d" data-role="gallery3d" data-thumbnail-cache="true"></div>
-*/
-/**
- @method refresh
- This method updates and redraws current widget.
+ margin = self._marginWidth;
+ labelWidth = self._labelWidth;
+ anchorWidth = self._anchorWidth;
+ inputBoxWidth = self._viewWidth - labelWidth;
- <script>
- $( "#gallery3d" ).on( "gallery3dcreate", function () {
- $( "#gallery3d" ).gallery3d( "add", { src: "1.jpg" } )
- .gallery3d( "add", { src: "2.jpg" } )
- .gallery3d( "add", { src: "3.jpg" } );
+ for ( index = 0; index < blocks.length; index += 1 ) {
+ blockWidth = self._calcBlockWidth( blocks[index] );
- $( "#gallery3d" ).gallery3d( "refresh" );
- });
- </script>
- <div id="gallery3d" data-role="gallery3d"></div>
-*/
-/**
- @method empty
- This method removes all of images from Gallery3D widget.
+ if ( blockWidth >= inputBoxWidth + anchorWidth ) {
+ if ( blockWidth >= inputBoxWidth ) {
+ inputBoxWidth = self._viewWidth - blockWidth;
+ } else {
+ inputBoxWidth = self._viewWidth;
+ }
+ } else {
+ if ( blockWidth > inputBoxWidth ) {
+ inputBoxWidth = self._viewWidth - blockWidth;
+ } else {
+ inputBoxWidth -= blockWidth;
+ }
+ }
+ }
- <script>
- $( "#gallery3d" ).on( "gallery3dcreate", function () {
- $( "#gallery3d" ).gallery3d( "add", { src: "1.jpg" } )
- .gallery3d( "add", { src: "2.jpg" } )
- .gallery3d( "add", { src: "3.jpg" } );
+ inputBoxWidth -= margin;
+ if ( inputBoxWidth < anchorWidth * 2 ) {
+ inputBoxWidth = self._viewWidth - margin;
+ }
+ $( inputBox ).width( inputBoxWidth - anchorWidth - inputBoxMargin );
+ },
+
+ _stringFormat : function ( expression ) {
+ var pattern = null,
+ message = expression,
+ i = 0;
+ for ( i = 1; i < arguments.length; i += 1 ) {
+ pattern = "{" + ( i - 1 ) + "}";
+ message = message.replace( pattern, arguments[i] );
+ }
+ return message;
+ },
+
+ _resizeBlocks : function () {
+ var self = this,
+ $view = self.element,
+ blocks = $view.find( "div" ),
+ index = 0;
+
+ for ( index = 0 ; index < blocks.length ; index += 1 ) {
+ $( blocks[index] ).css( "width", "auto" );
+ blocks[index] = self._ellipsisTextBlock( blocks[index] );
+ }
+ },
+
+ //---------------------------------------------------- //
+ // Public Method //
+ //----------------------------------------------------//
+ //
+ // Focus In Event
+ //
+ focusIn : function () {
+ if ( this._focusStatus === "focusIn" ) {
+ return;
+ }
+
+ var $view = this.element;
- $( "#gallery3d" ).gallery3d( "empty" );
- });
- </script>
- <div id="gallery3d" data-role="gallery3d"></div>
-*/
-/**
- @method length
- This method gets the number of images.
+ $view.find( ".ui-tokentextarea-label" ).attr( "tabindex", 0 ).show();
+ $view.find( ".ui-tokentextarea-desclabel" ).remove();
+ $view.find( "div.ui-tokentextarea-sblock" ).removeClass( "ui-tokentextarea-sblock" ).addClass( "ui-tokentextarea-block" );
+ $view.find( "div" ).attr( { "aria-label" : "double tap to edit", "tabindex" : 0 } ).show();
+ $view.find( ".ui-tokentextarea-input" ).removeClass( "ui-tokentextarea-input-invisible" ).addClass( "ui-tokentextarea-input-visible" ).attr( "tabindex", 0 );
+ $view.find( "a" ).attr( "tabindex", 0 ).show();
- <script>
- $( "#gallery3d" ).on( "gallery3dcreate", function () {
- $( "#gallery3d" ).gallery3d( "add", { src: "1.jpg" } )
- .gallery3d( "add", { src: "2.jpg" } )
- .gallery3d( "add", { src: "3.jpg" } );
+ // change focus state.
+ this._modifyInputBoxWidth();
+ this._focusStatus = "focusIn";
+ $view.removeClass( "ui-tokentextarea-focusout" ).addClass( "ui-tokentextarea-focusin" ).removeAttr( "tabindex" );
+ $view.find( ".ui-tokentextarea-input" ).focus();
+ },
- var imagesLength = $( "#gallery3d" ).gallery3d( "length" );
- // imagesLength = 3;
- });
- </script>
- <div id="gallery3d" data-role="gallery3d"></div>
-*/
+ focusOut : function () {
+ if ( this._focusStatus === "focusOut" ) {
+ return;
+ }
-( function ( $, document, window, undefined ) {
- window.requestAnimationFrame = ( function () {
- return function ( callback ) {
- var id = window.setTimeout( callback, 1000 / 60 );
- return id;
- };
- } () );
+ var self = this,
+ $view = self.element,
+ tempBlock = null,
+ stateBlock = null,
+ numBlock = null,
+ statement = "",
+ index = 0,
+ lastIndex = 10,
+ label = $view.find( ".ui-tokentextarea-label" ),
+ more = $view.find( "span" ),
+ blocks = $view.find( "div" ),
+ currentWidth = $view.outerWidth( true ) - more.outerWidth( true ) - label.outerWidth( true ),
+ blockWidth = 0;
- window.cancelAnimationFrame = ( function () {
- return function ( id ) {
- window.clearTimeout( id );
- };
- } () );
+ label.removeAttr( "tabindex" );
+ $view.find( ".ui-tokentextarea-input" ).removeClass( "ui-tokentextarea-input-visible" ).addClass( "ui-tokentextarea-input-invisible" ).removeAttr( "tabindex" );
+ $view.find( "a" ).removeAttr( "tabindex" ).hide();
+ blocks.removeAttr( "aria-label" ).removeAttr( "tabindex" ).hide();
- var vec3 = window.vec3,
- mat3 = window.mat3,
- mat4 = window.mat4,
- GlArray32 = ( typeof window.Float32Array !== "undefined" ? window.Float32Array : ( typeof window.WebGLFloatArray !== "undefined" ? window.WebGLFloatArray : Array ) ),
- GlArray16 = ( typeof window.Uint16Array !== "undefined" ? window.Uint16Array : Array ),
- getContext3D = function ( canvas ) {
- var gl, i,
- contextNames = [ "experimental-webgl", "webkit-3d", "webgl", "moz-webgl" ];
+ currentWidth = currentWidth - self._reservedWidth;
- for ( i = 0; i < contextNames.length; i += 1 ) {
- try {
- gl = canvas.getContext( contextNames[i] );
- if ( gl ) {
- break;
- }
- } catch ( e ) {
- window.alert( "Unfortunately, there's a WebGL compatibility problem. </br> You may want to check your system settings." );
- return;
+ for ( index = 0; index < blocks.length; index++ ) {
+ blockWidth = $( blocks[index] ).outerWidth( true );
+ if ( currentWidth - blockWidth <= 0 ) {
+ lastIndex = index - 1;
+ break;
}
- }
- return gl;
- },
- VERTEX_SHADER = [
- "attribute vec3 aVertexPosition;",
- "attribute vec2 aTextureCoord;",
- "attribute vec3 aVertexNormal;",
- "uniform mat4 uMoveMatrix;",
- "uniform mat4 uPerspectiveMatrix;",
- "uniform mat3 nNormalMatrix;",
- "uniform vec3 uAmbientColor;",
- "uniform vec3 uLightDirection;",
- "uniform vec3 uDirectionColor;",
- "uniform vec3 uLightDirection_first;",
- "uniform vec3 uLightDirection_second;",
- "varying vec2 vTextureCoord;",
- "varying vec3 vLightWeight;",
- "varying vec4 vFogWeight;",
-
- "void main(void) {",
- " vec4 v_Position = uMoveMatrix * vec4(aVertexPosition, 1.0);",
- " gl_Position = uPerspectiveMatrix * v_Position;",
- " vTextureCoord = aTextureCoord;",
- " float fog = 1.0 - ((gl_Position.z + 1.5) / 60.0);",
- " vFogWeight = clamp( vec4( fog, fog, fog, 1.0), 0.6, 1.0);",
- " vec3 transNormalVector = nNormalMatrix * aVertexNormal;",
- " float vLightWeightFirst = 0.0;",
- " float vLightWeightSecond = max( dot(transNormalVector, uLightDirection_second), 0.0 );",
+ $( blocks[index] ).show();
+ currentWidth -= blockWidth;
+ }
- " vLightWeight = uAmbientColor + uDirectionColor * vLightWeightSecond;",
- "}"
- ].join( "\n" ),
- FRAGMENT_SHADER = [
- "precision mediump float;",
- "varying vec2 vTextureCoord;",
- "varying vec3 vLightWeight;",
- "uniform sampler2D uSampler;",
- "varying vec4 vFogWeight;",
+ if ( lastIndex !== blocks.length ) {
+ statement = self._stringFormat( self.options.description, blocks.length - lastIndex - 1 );
+ tempBlock = $( document.createElement( 'span' ) );
+ tempBlock.addClass( "ui-tokentextarea-desclabel" ).attr( { "aria-label" : "more, double tap to edit", "tabindex" : "-1" } );
+ stateBlock = $( document.createElement( 'span' ) ).text( statement ).attr( "aria-hidden", "true" );
+ numBlock = $( document.createElement( 'span' ) ).text( blocks.length - lastIndex - 1 ).attr( "aria-label", "and" ).css( "visibility", "hidden" );
+ tempBlock.append( stateBlock );
+ tempBlock.append( numBlock );
+ $( blocks[lastIndex] ).after( tempBlock );
+ }
- "void main(void) {",
- " vec4 TextureColor;",
- " if ( vTextureCoord.s <= 0.01 || vTextureCoord.s >= 0.99 || vTextureCoord.t <= 0.01 || vTextureCoord.t >= 0.99 ) {",
- " TextureColor = vec4(1.0, 1.0, 1.0, 0.5);",
- " } else {",
- " TextureColor = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));",
- " }",
- " TextureColor *= vFogWeight;",
- " gl_FragColor = vec4(TextureColor.rgb * vLightWeight, TextureColor.a);",
- "}"
- ].join( "\n" );
+ // update focus state
+ this._focusStatus = "focusOut";
+ $view.removeClass( "ui-tokentextarea-focusin" ).addClass( "ui-tokentextarea-focusout" ).attr( "tabindex", 0 );
+ },
- function Node() {
- this.vertices = [
- -1.0, -1.0, 0.0,
- 1.0, -1.0, 0.0,
- 1.0, 1.0, 0.0,
- -1.0, 1.0, 0.0
- ];
- this.textureCoords = [
- 1.0, 0.0,
- 0.0, 0.0,
- 0.0, 1.0,
- 1.0, 1.0
- ];
- this.normalVectors = [
- 0.0, 0.0, 1.0,
- 0.0, 0.0, 1.0,
- 0.0, 0.0, 1.0,
- 0.0, 0.0, 1.0
- ];
- this.texture = null;
- this.textureBuffer = null;
- this.textureBufferItemSize = 0;
- this.mashOrder = [];
- this.mvMatrix = null;
- this.level = -1;
- this.targetLevel = 0;
- this.drawable = false;
- this.image = null;
- this.imageID = 0;
- }
+ inputText : function ( message ) {
+ var $view = this.element;
- $.widget( "tizen.gallery3d", $.mobile.widget, {
- options: {
- thumbnailCache: false
+ if ( arguments.length === 0 ) {
+ return $view.find( ".ui-tokentextarea-input" ).val();
+ }
+ $view.find( ".ui-tokentextarea-input" ).val( message );
+ return message;
},
- _MAX_ITEM_COUNT: 28,
- _ANIMATION_END: 999,
- _DURATION_DEFAULT: 300,
- _DURATION_FIRST: 1600,
- _VIEWPORT_WIDTH: 1024,
- _VIEWPORT_HEIGHT: 456,
- _DIRECTION_LEFT: -1,
- _DIRECTION_RIGHT: +1,
+ select : function ( index ) {
+ var $view = this.element,
+ lockBlock = null,
+ blocks = null;
- _gl: null,
- _shaderProgram : null,
- _positionBuffer : null,
- _textureCoordBuffer : null,
- _normalVectorBuffer : null,
- _nodes: null,
- _pMatrix : null,
- _animationID: 0,
- _dragInterval : 0,
- _startTime : 0,
- _sumTime : 0,
- _lightsPositionStack : [
- [0.0, 0.0, -1.0], // back
- [-0.2, 0.0, 0.7] // front
- ],
- _path: null,
- _swipeThresholdOfBasetimeGap: ( $.support.touch ? 30 : 70 ),
- _swipeThresholdOfSensitivity: ( $.support.touch ? 2.0 : 10.0 ),
- _canvas: null,
- _imageList: [],
- _maxDrawLength: 0,
- _firstImageNumber: 0,
- _lastImageNumber: 0,
+ if ( this._focusStatus === "focusOut" ) {
+ return;
+ }
- _create: function () {
- var self = this,
- view = self.element,
- option = self.options;
+ if ( arguments.length === 0 ) {
+ // return a selected block.
+ lockBlock = $view.find( "div.ui-tokentextarea-sblock" );
+ if ( lockBlock ) {
+ return lockBlock.text();
+ }
+ return null;
+ }
+ // 1. unlock all blocks.
+ this._unlockTextBlock();
+ // 2. select pointed block.
+ blocks = $view.find( "div" );
+ if ( blocks.length > index ) {
+ $( blocks[index] ).removeClass( "ui-tokentextarea-block" ).addClass( "ui-tokentextarea-sblock" );
+ $view.trigger( "select" );
+ }
+ return null;
+ },
+
+ add : function ( message, position ) {
+ if ( this._focusStatus === "focusOut" ) {
+ return;
+ }
- self._canvas = $( "<canvas class='ui-gallery3d-canvas'></canvas>" );
+ this._addTextBlock( message, position );
+ },
- view.addClass( "ui-gallery3d" ).append( self._canvas );
- self._addBehavier();
+ remove : function ( position ) {
+ var self = this,
+ $view = this.element,
+ blocks = $view.find( "div" ),
+ index = 0,
+ _temp = null,
+ _dummy = function () {};
- self._dragInterval = 1000 / 30; // 30fps
+ if ( this._focusStatus === "focusOut" ) {
+ return;
+ }
- $.each( self.options, function ( key, value ) {
- self.options[ key ] = undefined;
- self._setOption( key, value );
- });
+ if ( arguments.length === 0 ) {
+ blocks.fadeOut( "fast", function () {
+ blocks.remove();
+ self._modifyInputBoxWidth();
+ self._trigger( "clear" );
+ });
+ } else if ( !isNaN( position ) ) {
+ // remove selected button
+ index = ( ( position < blocks.length ) ? position : ( blocks.length - 1 ) );
- },
+ $( blocks[index] ).fadeOut( "fast", function () {
+ $( blocks[index] ).remove();
+ self._modifyInputBoxWidth();
+ });
- _setOption: function ( key, value ) {
- switch ( key ) {
- case "thumbnailCache" :
- if ( typeof value === "string" ) {
- value = ( value === "true" ) ? true : false;
- } else {
- value = !!value;
+ this._eventRemoveCall = true;
+ if ( $view[0].remove ) {
+ _temp = $view[0].remove;
+ $view[0].remove = _dummy;
}
- this._reset();
- break;
+ $view.triggerHandler( "remove" );
+ if ( _temp) {
+ $view[0].remove = _temp;
+ }
+ this._eventRemoveCall = false;
}
+ },
- $.mobile.widget.prototype._setOption.call( this, key, value );
+ length : function () {
+ return this.element.find( "div" ).length;
},
- _init: function ( canvas ) {
+ refresh : function () {
var self = this,
- pathPoints = [
- [40, 0, -48],
- [-12, 0, -40], // contorl Point of Point1
- [24, 0, -9], // contorl Point of Point2
- [-5, 0, -5]
- ],
- i;
-
- canvas = canvas || self._canvas;
+ viewWidth = this.element.innerWidth();
- if ( !canvas ) {
- return;
+ if ( viewWidth && self._viewWidth !== viewWidth ) {
+ self._viewWidth = viewWidth;
}
+ self._resizeBlocks();
+ self._modifyInputBoxWidth();
+ },
- self._gl = self._gl || self._initGL( canvas[0] );
- if ( !self._gl ) {
- return;
- }
+ destroy : function () {
+ var $view = this.element,
+ _temp = null,
+ _dummy = function () {};
- if ( !self._imageList ) {
+ if ( this._eventRemoveCall ) {
return;
}
- self._shaderProgram = self._shaderProgram || self._initShader( self._gl );
- if ( !self._shaderProgram ) {
- return;
- }
+ $view.find( ".ui-tokentextarea-label" ).remove();
+ $view.find( "div" ).undelegate( "click" ).remove();
+ $view.find( "a" ).remove();
+ $view.find( ".ui-tokentextarea-input" ).unbind( "keyup" ).remove();
- if ( self._imageList.length > self._MAX_ITEM_COUNT ) {
- self._firstImageNumber = self._imageList.length - 1;
- self._lastImageNumber = self._MAX_ITEM_COUNT - 1;
+ this._eventRemoveCall = true;
+ if ( $view[0].remove ) {
+ _temp = $view[0].remove;
+ $view[0].remove = _dummy;
+ }
+ $view.remove();
+ if ( _temp) {
+ $view[0].remove = _temp;
}
+ this._eventRemoveCall = false;
- self._nodes = self._initBuffers( self._gl, self._shaderProgram );
+ this._trigger( "destroy" );
+ }
+ });
- self._initTextures( self._gl, self._nodes );
+ $( document ).bind( "pagecreate create", function () {
+ $( ":jqmData(role='tokentextarea')" ).tokentextarea();
+ });
- self._path = $.motionpath( "bezier2d", {
- points: pathPoints,
- maxLevel: self._MAX_ITEM_COUNT
- } );
- for ( i = 0; i < self._nodes.length; i += 1 ) {
- self._path.levels[i] = self._path.levels[i + 1] || 0;
- self._nodes[i].level = i;
- }
- },
+ $( window ).bind( "resize", function () {
+ $( ":jqmData(role='tokentextarea')" ).tokentextarea( "refresh" );
+ });
+} ( jQuery, window, document ) );
- _final: function ( canvas ) {
- var self = this,
- gl = self._gl;
- if ( !gl ) {
- return;
- }
- canvas = canvas || self._canvas;
+/* ***************************************************************************
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ * ***************************************************************************
+ */
+/*
+* jQuery Mobile Framework : "textinput" plugin for text inputs, textareas
+* Copyright (c) jQuery Project
+* Dual licensed under the MIT or GPL Version 2 licenses.
+* http://jquery.org/license
+* Authors: Jinhyuk Jun <jinhyuk.jun@samsung.com>
+* Wongi Lee <wongi11.lee@samsung.com>
+*/
- $( self._nodes ).each( function ( i ) {
- var node = self._nodes[i];
- gl.deleteTexture( node.texture );
- node.texture = null;
- });
- self._nodes = null;
+/**
+ * Searchbar can be created using <input> element with type=search
+ * <input type="search" name="search" id="search1" value="" />
+ *
+ * Searchbar can be inserted 3 cases
+ * content : seachbar behave same as content element
+ * header : searchbar placed below title(header), It doesn't move when scrolling page
+ * inside optionheader : Searchbar placed inside optionheader, searchbar can be seen only expand optionheader
+ *
+ * Examples:
+ *
+ * HTML markup for creating Searchbar
+ * <input type="search"/>
+ *
+ * How to make searchbar in content
+ * <input type="search" name="" id="" value="" />
+ *
+ * How to make cancel button in searchbar
+ * <div data-role="header" data-position ="fixed" >
+ * <h1>Searchbar</h1>
+ * <input type="search" data-cancel-btn=true name="" id="" value="" />
+ * </div>
+ *
+ * How to make icon in front of searchbar
+ * <div data-role="header" data-position ="fixed" >
+ * <h1>Searchbar</h1>
+ * <input type="search" data-icon="call" name="" id="" value="" />
+ * </div>
+*/
- gl.deleteBuffer( self._positionBuffer );
- self._positionBuffer = null;
- gl.deleteBuffer( self._textureCoordBuffer );
- self._textureCoordBuffer = null;
- gl.deleteBuffer( self._normalVectorBuffer );
- self._normalVectorBuffer = null;
+/**
+ @class SearchBar
+ The search bar widget is used to search for page content. This widget can be placed in the header, option header, or page content.
- $.webgl.shader.deleteShaders( gl );
- gl.deleteProgram( self._shaderProgram );
- self._shaderProgram = null;
+ To add a search bar widget to the application, use the following code:
- self._gl = gl = null;
- },
+ <label for="search-basic">Search Input:</label>
+ <input type="search" name="search" id="searc-basic" value="" data-mini="true" />
- _addBehavier : function () {
- var self = this,
- view = self.element,
- canvas = self._canvas,
- touchStartEvt = ( $.support.touch ? "touchstart" : "mousedown" ),
- touchMoveEvt = ( $.support.touch ? "touchmove" : "mousemove" ) + ".gallery3d",
- touchEndEvt = ( $.support.touch ? "touchend" : "mouseup" ) + ".gallery3d",
- touchLeaveEvt = ( $.support.touch ? "touchleave" : "mouseout" ) + ".gallery3d";
+ Tizen supports many search bar options as described in the jQueryMobile documentation for search bar options.
+ The search bar can define callbacks for events as described in the jQueryMobile documentation for search bar events.
+ You can use methods with the search bar as described in the jQueryMobile documentation for search bar methods.
+*/
- $( document ).unbind( ".gallery3d" ).bind( "pagechange.gallery3d", function ( e ) {
- $( e.target ).find( ".ui-gallery3d" ).gallery3d( "refresh" );
- }).bind( "pageremove.gallery3d", function ( e ) {
- $( e.target ).find( ".ui-gallery3d" ).trigger( "_destory" );
- });
+(function ( $, undefined ) {
- $( window ).unbind( ".gallery3d" ).bind( "resize.gallery3d orientationchange.gallery3d", function ( e ) {
- $( ".ui-page-active" ).find( ".ui-gallery3d" ).gallery3d( "refresh" );
- }).bind( "unload.gallery3d", function ( e ) {
- $( e.target ).find( ".ui-gallery3d" ).trigger( "_destory" );
- });
+ $.widget( "tizen.searchbar", $.mobile.widget, {
+ options: {
+ theme: null,
+ initSelector: "input[type='search'],:jqmData(type='search'), input[type='tizen-search'],:jqmData(type='tizen-search')"
+ },
+
+ _create: function () {
+ var input = this.element,
+ o = this.options,
+ theme = o.theme || $.mobile.getInheritedTheme( this.element, "c" ),
+ themeclass = " ui-body-" + theme,
+ focusedEl,
+ clearbtn,
+ cancelbtn,
+ defaultText,
+ defaultTextClass,
+ trimedText,
+ newClassName,
+ newStyle,
+ newDiv,
+ searchimage,
+ inputedText,
+ useCancelBtn = false,
+ frontIcon = false;
- view.bind( "_destory", function ( e ) {
- self._final();
- });
+ $( "label[for='" + input.attr( "id" ) + "']" ).addClass( "ui-input-text" );
- canvas.bind( "webglcontextlost", function ( e ) {
- e.preventDefault();
- }).bind( "webglcontextrestored", function ( e ) {
- self._init();
- }).bind( touchStartEvt, function ( e ) {
- var i = 0,
- startX = 0,
- deltaMaxSteps = 20,
- deltas = [ deltaMaxSteps ],
- deltaTimes = [ deltaMaxSteps ],
- deltaIndex = 0,
- dragValue = 0,
- dragDirection = false,
- prevTime = 0;
+ if ( typeof input[0].autocorrect !== "undefined" && !$.support.touchOverflow ) {
+ // Set the attribute instead of the property just in case there
+ // is code that attempts to make modifications via HTML.
+ input[0].setAttribute( "autocorrect", "off" );
+ input[0].setAttribute( "autocomplete", "off" );
+ }
- e.preventDefault();
- e.stopPropagation();
+ focusedEl = input.wrap( "<div class='ui-input-search ui-shadow-inset ui-corner-all ui-btn-shadow" + themeclass + "'></div>" ).parent();
- if ( self._imageList.length <= 1 ) {
- return;
- }
+ if ( $( this.element ).data( "cancel-btn" ) === true ) {
+ useCancelBtn = true;
+ focusedEl.addClass( "ui-input-search-default" );
+ }
+ if ( $( this.element ).data( "icon" ) != undefined ) {
+ frontIcon = true;
+ focusedEl.addClass( "ui-search-bar-icon" );
+ }
- self._stop();
+ clearbtn = $( "<a href='#' class='ui-input-clear' title='clear text'>clear text</a>" )
+ .bind('click', function ( event ) {
+ if ( input.attr( "disabled" ) == "disabled" ) {
+ return false;
+ }
+ input
+ .val( "" )
+ .focus()
+ .trigger( "change" );
+ clearbtn.addClass( "ui-input-clear-hidden" );
+ event.preventDefault();
+ })
+ .appendTo( focusedEl )
+ .buttonMarkup({
+ icon: "deleteSearch",
+ iconpos: "notext",
+ corners: true,
+ shadow: true
+ });
- startX = $.support.touch ? e.originalEvent.changedTouches[0].pageX : e.pageX;
- prevTime = $.now();
+ function toggleClear() {
+ setTimeout(function () {
+ clearbtn.toggleClass( "ui-input-clear-hidden", !input.val() );
+ }, 0);
+ }
- for ( i = 0; i < deltaMaxSteps; i += 1 ) {
- deltas[i] = startX;
- deltaTimes[i] = $.now();
- }
+ function showCancel() {
+ focusedEl
+ .addClass( "ui-input-search-default" )
+ .removeClass( "ui-input-search-wide" );
+ cancelbtn
+ .addClass( "ui-btn-cancel-show" )
+ .removeClass( "ui-btn-cancel-hide" );
+ }
- deltaIndex += 1;
+ function hideCancel() {
+ focusedEl
+ .addClass( "ui-input-search-wide" )
+ .removeClass( "ui-input-search-default" );
+ cancelbtn
+ .addClass( "ui-btn-cancel-hide" )
+ .removeClass( "ui-btn-cancel-show" );
+ toggleClear();
+ }
- view.bind( touchMoveEvt, function ( e ) {
- var x, dx, interval;
+ function makeFrontIcon() {
+ var IconStyle = $( input ).jqmData( "icon" ),
+ frontIcon = $( "<div data-role='button' data-style='circle'></div>" );
- e.preventDefault();
- e.stopPropagation();
+ frontIcon
+ .appendTo( focusedEl.parent() )
+ .buttonMarkup( {
+ icon: IconStyle,
+ iconpos: "notext",
+ corners: true,
+ shadow: true
+ } );
+ frontIcon.addClass( "ui-btn-search-front-icon" );
+ }
- x = $.support.touch ? e.originalEvent.changedTouches[0].pageX : e.pageX;
- dx = startX - x;
+ toggleClear();
- deltas[deltaIndex] = x;
- deltaTimes[deltaIndex] = $.now();
- interval = deltaTimes[deltaIndex] - prevTime;
+ input.bind( 'paste cut keyup focus change blur', toggleClear );
- deltaIndex = ( deltaIndex + 1 ) % deltaMaxSteps;
+ //SLP --start search bar with cancel button
+ focusedEl.wrapAll( "<div class='input-search-bar'></div>" );
+ searchimage = $("<div class='ui-image-search'></div>").appendTo( focusedEl );
- // Validation of drag
- if ( Math.abs( dx ) >= 10 && interval >= self._dragInterval ) {
- if ( dragDirection !== ( ( dx < 0 ) ? self._DIRECTION_RIGHT : self._DIRECTION_LEFT ) ) {
- dragValue = 0;
- dragDirection = ( dx < 0 ) ? self._DIRECTION_RIGHT : self._DIRECTION_LEFT;
- }
+ if ( frontIcon ) {
+ makeFrontIcon();
+ }
- dragValue += Math.abs( dx ) / 100;
- if ( dragValue >= 1 ) {
- self._setPosition( self._ANIMATION_END, dragDirection );
- dragValue = 0;
- } else {
- self._setPosition( dragValue, dragDirection );
+ if ( useCancelBtn ) {
+ cancelbtn = $( "<div data-role='button' class='ui-input-cancel' title='clear text'>Cancel</div>" )
+ .bind('click', function ( event ) {
+ if ( input.attr( "disabled" ) == "disabled" ) {
+ return false;
}
- self._drawScene();
- startX = x;
- prevTime = $.now();
- }
- }).bind( touchEndEvt, function ( e ) {
- var baseTime = 0,
- recent = -1,
- index = 0,
- previous = 0,
- baseTimeRatio = 0,
- fx = 0,
- lastX = 0,
- velocityX = 0,
- dx = 0,
- isSwipe = true,
- direction;
-
- e.preventDefault();
- e.stopPropagation();
+ event.preventDefault();
+ event.stopPropagation();
- // Validation of swipe
- baseTime = $.now() - self._swipeThresholdOfBasetimeGap;
- lastX = $.support.touch ? e.originalEvent.changedTouches[0].pageX : e.pageX;
- dx = startX - lastX;
- startX = 0;
- for ( i = 0; i < deltaMaxSteps; i += 1 ) {
- index = ( deltaIndex + i ) % deltaMaxSteps;
- if ( deltaTimes[index] > baseTime ) {
- recent = index;
- break;
- }
- }
- if ( recent < 0 ) {
- isSwipe = false;
- }
+ input
+ .val( "" )
+ .blur()
+ .trigger( "change" );
- if ( isSwipe ) {
- previous = recent;
- for ( i = 0; i < deltaMaxSteps; i += 1 ) {
- previous = ( previous - 1 + deltaMaxSteps ) % deltaMaxSteps;
- if ( deltaTimes[previous] < deltaTimes[recent] ) {
- break;
- }
- }
- // too slow or too fast
- if ( i === deltaMaxSteps || baseTime < deltaTimes[previous] ) {
- isSwipe = false;
+ if ( useCancelBtn ) {
+ hideCancel();
}
- }
+ } )
+ .appendTo( focusedEl.parent() )
+ .buttonMarkup( {
+ iconpos: "cancel",
+ corners: true,
+ shadow: true
+ } );
+ }
- if ( isSwipe ) {
- baseTimeRatio = ( baseTime - deltaTimes[previous] ) / ( deltaTimes[recent] - deltaTimes[previous] );
- fx = ( 1.0 - baseTimeRatio ) * deltas[previous] + baseTimeRatio * deltas[recent];
- if ( Math.abs( fx - lastX ) < self._swipeThresholdOfSensitivity ) {
- fx = lastX;
- }
- velocityX = parseInt( ( lastX - fx ) / ( $.now() - baseTime ), 10 );
+ // Input Focused
+ input
+ .focus( function () {
+ if ( input.attr( "disabled" ) == "disabled" ) {
+ return false;
}
-
- if ( isSwipe && velocityX ) {
- direction = ( velocityX < 0 ) ? self._DIRECTION_LEFT : self._DIRECTION_RIGHT;
- self._run( direction, Math.abs( velocityX ), dragValue );
- } else if ( dragDirection !== 0 && dragValue ) {
- self._animate( null, self._DURATION_DEFAULT * ( 1 - dragValue ), dragDirection, 0, dragValue );
+ if ( useCancelBtn ) {
+ showCancel();
}
-
- view.unbind( ".gallery3d" );
- }).bind( touchLeaveEvt, function ( e ) {
- view.trigger( touchEndEvt );
+ focusedEl.addClass( $.mobile.focusClass );
+ })
+ .blur(function () {
+ focusedEl.removeClass( $.mobile.focusClass );
});
- });
- },
- // ----------------------------------------------------------
- // WebGL
- // ----------------------------------------------------------
- _initGL: function ( canvas ) {
- var self = this,
- gl;
+ // Default Text
+ defaultText = input.jqmData( "default-text" );
- gl = getContext3D( canvas );
- if ( !gl ) {
- window.alert( "There's no WebGL context available!!!" );
- return null;
- }
+ if ( ( defaultText != undefined ) && ( defaultText.length > 0 ) ) {
+ defaultTextClass = "ui-input-default-text";
+ trimedText = defaultText.replace(/\s/g, "");
- gl.enable( gl.BLEND );
- gl.blendFunc( gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA );
+ /* Make new class for default text string */
+ newClassName = defaultTextClass + "-" + trimedText;
+ newStyle = $( "<style>" + '.' + newClassName + ":after" + "{content:" + "'" + defaultText + "'" + "}" + "</style>" );
+ $( 'html > head' ).append( newStyle );
+
+ /* Make new empty <DIV> for default text */
+ newDiv = $( "<div></div>" );
- gl.enable( gl.DEPTH_TEST );
- gl.depthFunc( gl.LEQUAL );
+ /* Add class and append new div */
+ newDiv.addClass( defaultTextClass );
+ newDiv.addClass( newClassName );
+ newDiv.tap( function ( event ) {
+ input.blur();
+ input.focus();
+ } );
- canvas.width = self._VIEWPORT_WIDTH;
- canvas.height = self._VIEWPORT_HEIGHT;
- gl.viewportWidth = canvas.width;
- gl.viewportHeight = canvas.height;
- gl.viewport( 0, 0, gl.viewportWidth, gl.viewportHeight );
- self._pMatrix = mat4.create();
- mat4.perspective( 40, gl.viewportWidth / gl.viewportHeight, 0.1, 10000.0, self._pMatrix );
+ input.parent().append( newDiv );
- gl.clearColor( 0.15, 0.15, 0.15, 1.0 );
- gl.clear( gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT );
+ /* When focus, default text will be hide. */
+ input
+ .focus( function () {
+ input.parent().find( "div.ui-input-default-text" ).addClass( "ui-input-default-hidden" );
+ } )
+ .blur( function () {
+ var inputedText = input.val();
+ if ( inputedText.length > 0 ) {
+ input.parent().find( "div.ui-input-default-text" ).addClass( "ui-input-default-hidden" );
+ } else {
+ input.parent().find( "div.ui-input-default-text" ).removeClass( "ui-input-default-hidden" );
+ }
+ } );
+ }
- return gl;
+ if ( !input.attr("placeholder") ) {
+ input.attr( "placeholder", "Search" );
+ }
},
- _initShader : function ( gl ) {
- var self = this,
- shaderProgram;
-
- shaderProgram = $.webgl.shader.addShaderProgram( self._gl, VERTEX_SHADER, FRAGMENT_SHADER );
- gl.useProgram( shaderProgram );
+ disable: function () {
+ this.element.attr( "disabled", true );
+ this.element.parent().addClass( "ui-disabled" );
+ $( this.element ).blur();
+ this.element.parent().parent().find(".ui-input-cancel").addClass( "ui-disabled" );
+ },
- shaderProgram.vertexPositionAttr = gl.getAttribLocation( shaderProgram, "aVertexPosition" );
- gl.enableVertexAttribArray( shaderProgram.vertexPositionAttr );
+ enable: function () {
+ this.element.attr( "disabled", false );
+ this.element.parent().removeClass( "ui-disabled" );
+ this.element.parent().parent().find(".ui-input-cancel").removeClass( "ui-disabled" );
+ $( this.element ).focus();
+ }
+ } );
- shaderProgram.textureCoordAttr = gl.getAttribLocation( shaderProgram, "aTextureCoord" );
- gl.enableVertexAttribArray( shaderProgram.textureCoordAttr );
+ //auto self-init widgets
+ $( document ).bind( "pagecreate create", function ( e ) {
+ $.tizen.searchbar.prototype.enhanceWithin( e.target );
+ } );
- // Set light normal vectors for lighting~
- shaderProgram.vertexNormalAttr = gl.getAttribLocation( shaderProgram, "aVertexNormal" );
- gl.enableVertexAttribArray( shaderProgram.vertexNormalAttr );
+}( jQuery ) );
- shaderProgram.perspectiveMU = gl.getUniformLocation( shaderProgram, "uPerspectiveMatrix");
- shaderProgram.transformMU = gl.getUniformLocation( shaderProgram, "uMoveMatrix");
- shaderProgram.sampleUniform = gl.getUniformLocation( shaderProgram, "uSampler");
- // Set light variables~
- shaderProgram.normalMU = gl.getUniformLocation( shaderProgram, "nNormalMatrix");
- shaderProgram.ambientColorU = gl.getUniformLocation( shaderProgram, "uAmbientColor");
- shaderProgram.lightDirU_first = gl.getUniformLocation( shaderProgram, "uLightDirection_first");
- shaderProgram.lightDirU_second = gl.getUniformLocation( shaderProgram, "uLightDirection_second");
- shaderProgram.directionColorU = gl.getUniformLocation( shaderProgram, "uDirectionColor");
- return shaderProgram;
- },
+/* ***************************************************************************
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ * ***************************************************************************
+ *
+ * Author: Kangsik Kim <kangsik81.kim@samsung.com>
+ * Youmin Ha <youmin.ha@samsung.com>
+*/
- _initBuffers: function ( gl, shaderProgram ) {
- var self = this,
- i = 0,
- mashBase = 0,
- vertices = [],
- textureCoords = [],
- normalVectors = [],
- nodes = [],
- maxDrawLength = self._MAX_ITEM_COUNT;
+/**
+ * In the web environment, it is challenging to display a large amount of data in a grid.
+ * When an application needs to show, for example, image gallery with over 1,000 images,
+ * the same enormous data must be inserted into a HTML document.
+ * It takes a long time to display the data and manipulating DOM is complex.
+ * The virtual grid widget supports storing unlimited data without performance issues
+ * by reusing a limited number of grid elements.
+ * The virtual grid widget is based on the jQuery.template plug-in
+ * For more information, see jQuery.template.
+ *
+ * HTML Attributes:
+ *
+ * data-role: virtualgrid
+ * data-template : Has the ID of the jQuery.template element.
+ * jQuery.template for a virtual grid must be defined.
+ * Style for template would use rem unit to support scalability.
+ * data-direction : This option define the direction of the scroll.
+ * You must choose one of the 'x' and 'y' (Default : y)
+ * data-rotation : This option defines whether or not the circulation of the data.
+ * If option is 'true' and scroll is reached the last data,
+ * Widget will present the first data on the screen.
+ * If option is ‘false’, Widget will operate like a scrollview.
+ *
+ * ID : <DIV> element that has "data-role=virtualgrid" must have ID attribute.
+ *
+ * APIs:
+ *
+ * create ( {
+ * itemData: function ( idx ) { return json_obj; },
+ * numItemData: number or function () { return number; },
+ * cacheItemData: function ( minIdx, maxIdx ) {}
+ * } )
+ * : Create VirtualGrid widget. At this moment, _create method is called.
+ * args : A collection of options
+ * itemData: A function that returns JSON object for given index. Mandatory.
+ * numItemData: Total number of itemData. Mandatory.
+ * cacheItemData: Virtuallist will ask itemData between minIdx and maxIdx.
+ * Developers can implement this function for preparing data.
+ * Optional.
+ *
+ * centerTo ( selector )
+ * : Center the particular item with the class name on the VirtualGrid's display area.;
+ * i.e., this method selects an item in the data elements of grid using the class name and
+ * moves the data elements inside the widget to display the row containing the selected item
+ * in the middle of the screen.
+ * If multiple items are matched with the class name, the first matched item will be selected.
+ * This method is only available when "data-rotation" attribute is "true".
+ *
+ * resize ()
+ * : Rearrange items to fit a new widget size.
+ *
+ * Events:
+ * scrollstart : : This event triggers when a user begin to move the scroll on VirtualGrid.
+ * scrollupdate : : This event triggers while a user moves the scroll on VirtualGrid.
+ * scrollstop : This event triggers when a user stop the scroll on VirtualGrid.
+ * select : This event triggers when a cell is selected.
+ *
+ * Examples:
+ *
+ * <script id="tizen-demo-namecard" type="text/x-jquery-tmpl">
+ * <div class="ui-demo-namecard">
+ * <div class="ui-demo-namecard-pic">
+ * <img class="ui-demo-namecard-pic-img" src="${TEAM_LOGO}" />
+ * </div>
+ * <div class="ui-demo-namecard-contents">
+ * <span class="name ui-li-text-main">${NAME}</span>
+ * <span class="active ui-li-text-sub">${ACTIVE}</span>
+ * <span class="from ui-li-text-sub">${FROM}</span>
+ * </div>
+ * </div>
+ * </script>
+ * <div id="virtualgrid-demo" data-role="virtualgrid" data-template="tizen-demo-namecard" >
+ * </div>
+ *
+ */
- for ( i = 0; i < self._imageList.length + 1; i += 1 ) {
- nodes[i] = new Node();
- $.merge( vertices, nodes[i].vertices );
- $.merge( textureCoords, nodes[i].textureCoords );
- $.merge( normalVectors, nodes[i].normalVectors );
+// most of following codes are derived from jquery.mobile.scrollview.js
- nodes[i].textureBuffer = gl.createBuffer();
- gl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, nodes[i].textureBuffer );
- mashBase = i * 4;
- nodes[i].meshOrder = [
- mashBase, mashBase + 1, mashBase + 2,
- mashBase + 2, mashBase + 3, mashBase
- ];
- gl.bufferData( gl.ELEMENT_ARRAY_BUFFER, new GlArray16( nodes[i].meshOrder ), gl.STATIC_DRAW );
- gl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, null ); // release buffer memory
- nodes[i].textureBufferItemSize = 6;
- }
+/**
+ @class VirtualGrid
+ In the Web environment, it is challenging to display large amount of data in a list, such as displaying a contact list of over 1000 list items. It takes time to display the entire list in HTML and the DOM manipulation is complex.
- self._positionBuffer = $.webgl.buffer.attribBufferData( gl, new GlArray32( vertices ) );
- self._positionBuffer.itemSize = 3;
+ The virtual grid widget is used to display a list of unlimited data elements on the screen for better performance. This widget displays the data in the grid format by reusing the existing grid control space. Virtual grids are based on the jQuery.template plugin as described in the jQuery documentation for jQuery.template plugin.
- self._textureCoordBuffer = $.webgl.buffer.attribBufferData( gl, new GlArray32( textureCoords ) );
- self._textureCoordBuffer.itemSize = 2;
+ To add a virtual grid widget to the application, use the following code:
- self._normalVectorBuffer = $.webgl.buffer.attribBufferData( gl, new GlArray32( normalVectors ) ); // Vertex's normal vector for Direction light
- self._normalVectorBuffer.itemSize = 3;
+ <script id="tizen-demo-namecard" type="text/x-jquery-tmpl">
+ <div class="ui-demo-namecard">
+ <div class="ui-demo-namecard-pic">
+ <img class="ui-demo-namecard-pic-img" src="${TEAM_LOGO}" />
+ </div>
+ <div class="ui-demo-namecard-contents">
+ <span class="name ui-li-text-main">${NAME}</span>
+ </div>
+ </div>
+ </script>
+ <div id="virtualgrid-demo" data-role="virtualgrid" data-template="tizen-demo-namecard">
+ </div>
+*/
+/**
+ @property {String} data-template
+ Specifies the jQuery.template element ID.
+ The jQuery.template must be defined. The template style can use rem units to support scalability.
+*/
+/**
+ @property {String} data-direction
+ Defines the scroll direction. The direction options are x (horizontal) and y (vertical).
+ The default value is y.
+*/
+/**
+ @property {Boolean} data-rotation
+ Defines whether the data elements are displayed from the beginning of the list again once the end of file is reached.
+ The default value is false.
+*/
+/**
+ @event scrollstart
+ The scrollstart event is fired when the user starts scrolling through the grid:
- // Ambient light
- gl.uniform3f( shaderProgram.ambientColorU, 0.1, 0.1, 0.1 );
- // Direcntion light
- gl.uniform3f( shaderProgram.directionColorU, 1.0, 1.0, 1.0 );
+ <div data-role="virtualgrid" data-scroll="y" data-template="tizen-demo-namecard"></div>
+ $(".selector").on("scrollstart", function(event, ui)
+ {
+ // Handle the scrollstart event
+ });
+*/
+/**
+ @event scrollupdate
+ The scrollupdate event is fired when the user moves the scroll bar in the grid:
- return nodes;
- },
+ <div data-role="virtualgrid" data-scroll="y" data-template="tizen-demo-namecard"></div>
+ $(".selector").on("scrollupdate", function(event, ui)
+ {
+ // Handle the scrollupdate event
+ });
+*/
+/**
+ @event scrollstop
+ The scrollstop event is fired when the user stops scrolling:
- // ----------------------------------------------------------
- // Texture
- // ----------------------------------------------------------
- _initTextures: function ( gl, nodes ) {
- var self = this;
+ <div data-role="virtualgrid" data-scroll="y" data-template="tizen-demo-namecard"></div>
+ $(".selector").on("scrollstop", function(event, ui)
+ {
+ // Handle the scrollstop event
+ });
+*/
+/**
+ @event select
+ The select event is fired when a virtual grid cell is selected:
- $( nodes ).each( function ( i ) {
- var node = nodes[i],
- url;
+ <div data-role="virtualgrid" data-scroll="y" data-template="tizen-demo-namecard"></div>
+ $(".selector").on("select", function(event, ui)
+ {
+ // Handle the select event
+ });
+*/
+/**
+ @method create
+ @param {function} itemData(index)
+ @param {Number} numItemData
+ @param {function} cacheItemData(minIndex, maxIndex)
+ The create method is used to call the jQuery _create method. In the method parameters:
- if ( !self._imageList[i] ) {
- return false;
- }
+ function itemData(index) returns the JSON object matched with the given index. The index value is between 0 and numItemData-1.<br/>
+ number numItemData or function numItemData() defines or returns a static number of items.<br/>
+ function cacheItemData(minIndex, maxIndex) prepares the JSON data. This method is called before calling the itemData() method with index values between minIndex and maxIndex.<br/>
- url = self._imageList[i].src;
- node.texture = gl.createTexture();
- self._loadImage( url, i, i, gl, nodes );
+ <div data-role="virtualgrid" data-scroll="y" data-template="tizen-demo-namecard"></div>
+ function itemData(idx)
+ {
+ return DATA[idx];
+ }
+ function cacheItemData(minIdx, maxIdx)
+ {
+ // Prepare JSON data between minIdx and maxIdx
+ }
+ var numItemData = DATA.length;
+ $(".selector").virtualgrid("create",
+ {
+ itemData, numItemData, cacheItemData
});
- },
-
- _loadImage: function ( url, i, imageID, gl, nodes ) {
- var self = this,
- isMipmap = false,
- image,
- node;
+*/
+/**
+ @method centerTo
+ The centerTo method is used to center the particular item with the class name on the VirtualGrid's display area. If multiple items are matched with the class name, the first matched item will be selected. This method is only available when "data-rotation" attribute is "true".
- gl = gl || self._gl;
- nodes = nodes || self._nodes;
- isMipmap = isMipmap || false;
- node = nodes[i];
- node.image = node.image || new Image();
+ <div data-role="virtualgrid" data-scroll="y" data-rotation="true" data-template="tizen-demo-namecard"></div>
+ $(".selector").virtualgrid("centerTo", selector);
+*/
+/**
+ @method resize
+ The resize method is used to rearrange items to fit a new widget size. :
- $( node.image ).one( "load", function ( e ) {
- self._bindTexture( gl, node, this, isMipmap );
- node.imageID = imageID;
+ <div data-role="virtualgrid" data-scroll="y" data-template="tizen-demo-namecard"></div>
+ $(".selector").virtualgrid("resize");
- if ( !self._animationID ) {
- self._setPosition( 0, 0 );
- }
- });
+ @since Tizen2.0
+*/
- if ( self.options.thumbnailCache ) {
- $.imageloader.getThumbnail( url, function ( result ) {
- if ( result === "NOT_FOUND_ERR" ) {
- $.imageloader.setThumbnail( url, function ( result ) {
- if ( result && result.length > 30 ) {
- node.image.src = result;
- isMipmap = true;
- } else {
- node.image.src = url;
- }
- });
- } else if ( result && result.length > 30 ) {
- node.image.src = result;
- isMipmap = true;
- } else {
- node.image.src = url;
- }
- });
- } else {
- node.image.src = url;
- }
- },
+( function ( $, window, document, undefined ) {
- _bindTexture: function ( gl, node, image, isMipmap ) {
- if ( !node || !node.texture ) {
- return;
- }
+ function circularNum ( num, total ) {
+ var n = num % total;
+ if ( n < 0 ) {
+ n = total + n;
+ }
+ return n;
+ }
- gl.pixelStorei( gl.UNPACK_FLIP_Y_WEBGL, true );
+ function MomentumTracker ( options ) {
+ this.options = $.extend( {}, options );
+ this.easing = "easeOutQuad";
+ this.reset();
+ }
- gl.bindTexture( gl.TEXTURE_2D, node.texture );
- gl.texImage2D( gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image );
+ var tstates = {
+ scrolling : 0,
+ done : 1
+ },
+ _OVERFLOW_DIR_NONE = 0, /* ENUM */
+ _OVERFLOW_DIR_UP = 1, /* ENUM */
+ _OVERFLOW_DIR_DOWN = -1, /* ENUM */
+ imgTagSrcAttrRE = /src\s*=\s*[\"\'][\w\/.]+.[A-z]+[\"\']/;
- if ( isMipmap ) {
- gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR );
- gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_NEAREST );
- gl.generateMipmap( gl.TEXTURE_2D );
- } else {
- gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR );
- gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR );
- }
+ function getCurrentTime () {
+ return Date.now();
+ }
- gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE );
- gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE );
+ $.extend( MomentumTracker.prototype, {
+ start : function ( pos, speed, duration ) {
+ this.state = ( speed !== 0 ) ? tstates.scrolling : tstates.done;
+ this.pos = pos;
+ this.speed = speed;
+ this.duration = duration;
- node.texture.loaded = true;
+ this.fromPos = 0;
+ this.toPos = 0;
- // release texture memory
- gl.bindTexture( gl.TEXTURE_2D, null );
+ this.startTime = getCurrentTime();
},
- // ----------------------------------------------------------
- // rendering
- // ----------------------------------------------------------
- _setPosition: function ( progress, direction ) {
- var self = this,
- nodes = self._nodes,
- imageList = self._imageList,
- imageListLength = imageList.length,
- itemCount = self._MAX_ITEM_COUNT,
- displayLength = ( imageListLength > itemCount ) ? itemCount : imageListLength,
- nextLevelLenth = 0,
- i = 0,
- t = 0,
- position = 0,
- angle = 0,
- current = 0,
- next = 0,
- nextLevel = 0,
- path = self._path,
- nextImageID = 0;
+ reset : function () {
+ this.state = tstates.done;
+ this.pos = 0;
+ this.speed = 0;
+ this.duration = 0;
+ },
- nextLevelLenth = ( direction >= 0 ) ? displayLength + 1 : displayLength;
+ update : function () {
+ var state = this.state, duration, elapsed, dx, x;
- if ( !nodes[i].level ) {
- nodes[i].level = displayLength;
+ if ( state == tstates.done ) {
+ return this.pos;
}
+ duration = this.duration;
+ elapsed = getCurrentTime () - this.startTime;
+ elapsed = elapsed > duration ? duration : elapsed;
+ dx = this.speed * ( 1 - $.easing[this.easing]( elapsed / duration, elapsed, 0, 1, duration ) );
+ x = this.pos + ( dx / 2 );
+ this.pos = x;
- for ( i = 0; i < displayLength; i += 1 ) {
- if ( !nodes[i].mvMatrix ) {
- nodes[i].mvMatrix = mat4.create();
- }
+ if ( elapsed >= duration ) {
+ this.state = tstates.done;
+ }
+ return this.pos;
+ },
- if ( direction > 0 && nodes[i].level >= displayLength ) {
- nodes[i].level = 0;
- }
+ done : function () {
+ return this.state == tstates.done;
+ },
- current = path.levels[nodes[i].level];
- nextLevel = ( nodes[i].level + nextLevelLenth + direction ) % nextLevelLenth;
- next = path.levels[nextLevel];
+ getPosition : function () {
+ return this.pos;
+ }
+ });
- if ( imageListLength > itemCount ) {
- if ( direction > 0 && nextLevel === 1
- && self._firstImageNumber !== nodes[i].imageID ) {
- self._loadImage( imageList[self._firstImageNumber].src, i, self._firstImageNumber );
- } else if ( direction < 0 && nextLevel === nextLevelLenth - 1
- && self._lastImageNumber !== nodes[i].imageID ) {
- self._loadImage( imageList[self._lastImageNumber].src, i, self._lastImageNumber );
- }
- }
+ jQuery.widget ( "mobile.virtualgrid", jQuery.mobile.widget, {
+ options : {
+ // virtualgrid option
+ template : "",
+ direction : "y",
+ rotation : false
+ },
- mat4.identity( nodes[i].mvMatrix );
- mat4.translate( nodes[i].mvMatrix, [-2.0, -2.0, 1.0] );
- mat4.rotate( nodes[i].mvMatrix, self._degreeToRadian( 19 ), [1, 0, 0] );
+ create : function () {
+ this._create.apply( this, arguments );
+ },
- t = ( current + ( next - current ) * ( ( progress > 1 ) ? 1 : progress ) );
+ _create : function ( args ) {
+ $.extend( this, {
+ // view
+ _$view : null,
+ _$clip : null,
+ _$rows : null,
+ _tracker : null,
+ _viewSize : 0,
+ _clipSize : 0,
+ _cellSize : undefined,
+ _currentItemCount : 0,
+ _itemCount : 1,
+ _inheritedSize : null,
- if ( progress >= self._ANIMATION_END ) {
- nodes[i].level = nextLevel || displayLength;
- t = path.levels[nodes[i].level];
- }
+ // timer
+ _timerInterval : 0,
+ _timerID : 0,
+ _timerCB : null,
+ _lastMove : null,
- if ( ( progress < self._ANIMATION_END )
- && ( direction <= 0 && nodes[i].level < 1 ) ) {
- nodes[i].drawable = false;
- } else {
- nodes[i].drawable = true;
- }
+ // Data
+ _itemData : function ( idx ) { return null; },
+ _numItemData : 0,
+ _cacheItemData : function ( minIdx, maxIdx ) { },
+ _totalRowCnt : 0,
+ _templateText : null,
+ _maxViewSize : 0,
+ _modifyViewPos : 0,
+ _maxSizeExceptClip : 0,
+ _maxSize : 0,
- if ( progress === self._ANIMATION_END && nodes[i].level === 1 ) {
- self.element.trigger( "select", imageList[ nodes[i].imageID ], nodes[i].imageID );
- }
+ // axis - ( true : x , false : y )
+ _direction : false,
+ _didDrag : true,
+ _reservedPos : 0,
+ _scalableSize : 0,
+ _eventPos : 0,
+ _nextPos : 0,
+ _movePos : 0,
+ _lastY : 0,
+ _speedY : 0,
+ _lastX : 0,
+ _speedX : 0,
+ _rowsPerView : 0,
+ _fragment : null,
- position = path.getPosition( t );
- angle = path.getAngle( t );
+ _filterRatio : 0.9,
- mat4.translate( nodes[i].mvMatrix, position );
- mat4.rotate( nodes[i].mvMatrix, angle, [0, 1, 0] );
- }
+ _overflowStartPos : 0,
+ _overflowDir : 0,
+ _overflowMaxDragDist : 100
+ });
- if ( imageListLength > itemCount && progress >= self._ANIMATION_END ) {
- self._firstImageNumber = ( self._firstImageNumber - direction ) % imageListLength;
- if ( self._firstImageNumber < 0 ) {
- self._firstImageNumber = imageListLength - 1;
- }
+ var self = this,
+ $dom = $( self.element ),
+ opts = self.options,
+ $item = null;
- self._lastImageNumber = ( self._lastImageNumber - direction ) % imageListLength;
- if ( self._lastImageNumber < 0 ) {
- self._lastImageNumber = imageListLength - 1;
- }
+ // itemData
+ // If mandatory options are not given, Do nothing.
+ if ( !args ) {
+ return ;
}
- self._drawScene();
- },
- _drawScene: function () {
- if ( !this._gl || !this._shaderProgram ) {
+ if ( !self._loadData( args ) ) {
return;
}
- var self = this,
- gl = self._gl,
- shaderProgram = self._shaderProgram,
- nodes = self._nodes,
- nodesLength = nodes.length,
- i;
+ // make a fragment.
+ self._fragment = document.createDocumentFragment();
- gl.clear( gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT );
+ // read defined properties(width and height) from dom element.
+ self._inheritedSize = self._getinheritedSize( self.element );
- gl.bindBuffer( gl.ARRAY_BUFFER, self._positionBuffer );
- gl.vertexAttribPointer( shaderProgram.vertexPositionAttr, self._positionBuffer.itemSize, gl.FLOAT, false, 0, 0 );
+ // set a scroll direction.
+ self._direction = opts.direction === 'x' ? true : false;
- gl.bindBuffer( gl.ARRAY_BUFFER, self._textureCoordBuffer );
- gl.vertexAttribPointer( shaderProgram.textureCoordAttr, self._textureCoordBuffer.itemSize, gl.FLOAT, false, 0, 0 );
+ // make view layer
+ self._$clip = $dom.addClass( "ui-scrollview-clip" ).addClass( "ui-virtualgrid-view" );
+ $item = $( document.createElement( "div" ) ).addClass( "ui-scrollview-view" );
+ self._clipSize = self._calculateClipSize();
+ self._$clip.append( $item );
+ self._$view = $item;
+ self._$clip.css( "overflow", "hidden" );
+ self._$view.css( "overflow", "hidden" );
- gl.bindBuffer( gl.ARRAY_BUFFER, self._normalVectorBuffer );
- gl.vertexAttribPointer( shaderProgram.vertexNormalAttr, self._normalVectorBuffer.itemSize, gl.FLOAT, false, 0, 0 );
+ // inherit from scrollview widget.
+ self._scrollView = $.tizen.scrollview.prototype;
+ self._initScrollView();
- for ( i = 0; i < nodesLength; i += 1 ) {
- if ( nodes[i].drawable ) {
- self._drawElement( self._pMatrix, nodes[i] );
+ // create tracker.
+ self._createTracker();
+ self._makePositioned( self._$clip );
+ self._timerInterval = 1000 / self.options.fps;
+
+ self._timerID = 0;
+ self._timerCB = function () {
+ self._handleMomentumScroll();
+ };
+ $dom.closest( ".ui-content" ).addClass( "ui-virtualgrid-content" ).css( "overflow", "hidden" );
+
+ // add event handler.
+ self._addBehaviors();
+
+ self._currentItemCount = 0;
+ self._createOverflowArea();
+ self._createScrollBar();
+ self.refresh();
+ },
+
+ // The argument is checked for compliance with the specified format.
+ // @param args : Object
+ // @return boolean
+ _loadData : function ( args ) {
+ var self = this;
+
+ if ( args.itemData && typeof args.itemData == 'function' ) {
+ self._itemData = args.itemData;
+ } else {
+ return false;
+ }
+ if ( args.numItemData ) {
+ if ( typeof args.numItemData == 'function' ) {
+ self._numItemData = args.numItemData( );
+ } else if ( typeof args.numItemData == 'number' ) {
+ self._numItemData = args.numItemData;
+ } else {
+ return false;
}
+ } else {
+ return false;
}
+ self._getObjectNames( self._itemData( 0 ) );
+ return true;
},
- _drawElement: function ( perspectiveMatrix, targetNode ) {
+ // Make up the first screen.
+ _initLayout: function () {
var self = this,
- gl = self._gl,
- shaderProgram = self._shaderProgram,
- moveMatrix = targetNode.mvMatrix,
- texture = targetNode.texture,
- meshIndexBuffer = targetNode.textureBuffer,
- meshIndexBufferItemSize = targetNode.textureBufferItemSize,
- lightPositions = self._lightsPositionStack,
- LightDir,
- normalMatrix;
+ opts = self.options,
+ i,
+ $row;
- if ( !moveMatrix ) {
- return;
+ for ( i = -1; i < self._rowsPerView + 1; i += 1 ) {
+ $row = self._$rows[ circularNum( i, self._$rows.length ) ];
+ self._$view.append( $row );
}
+ self._setElementTransform( -self._cellSize );
- gl.activeTexture( gl.TEXTURE0 );
- if ( texture && texture.loaded ) {
- gl.bindTexture( gl.TEXTURE_2D, texture );
+ self._replaceRow( self._$view[0].firstChild, self._totalRowCnt - 1 );
+ if ( opts.rotation && self._rowsPerView >= self._totalRowCnt ) {
+ self._replaceRow( self._$view[0].lastChild, 0 );
}
- gl.uniform1i( shaderProgram.sampleUniform, 0 );
-
- LightDir = vec3.create();
- vec3.normalize( lightPositions[0], LightDir );
- vec3.scale( LightDir, -8 );
- gl.uniform3fv( shaderProgram.lightDirU_first, LightDir );
-
- vec3.normalize( lightPositions[1], LightDir );
- vec3.scale( LightDir, -1 );
- gl.uniform3fv( shaderProgram.lightDirU_second, LightDir );
- gl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, meshIndexBuffer );
-
- gl.uniformMatrix4fv( shaderProgram.perspectiveMU, false, perspectiveMatrix );
- gl.uniformMatrix4fv( shaderProgram.transformMU, false, moveMatrix );
-
- normalMatrix = mat3.create();
- mat4.toInverseMat3( moveMatrix, normalMatrix );
- mat3.transpose( normalMatrix );
- gl.uniformMatrix3fv( shaderProgram.normalMU, false, normalMatrix );
-
- gl.drawElements( gl.TRIANGLES, meshIndexBufferItemSize, gl.UNSIGNED_SHORT, 0 );
-
- // release buffer memory
- gl.bindBuffer( gl.ARRAY_BUFFER, null );
- gl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, null );
-
- // release texture memory
- gl.bindTexture( gl.TEXTURE_2D, null );
+ self._setViewSize();
},
- // ----------------------------------------------------------
- // Animation
- // ----------------------------------------------------------
- _animate: function ( easingType, duration, direction, repeatCount, startValue, _removeCount ) {
+ _setViewSize : function () {
var self = this,
- timeNow = $.now(),
- progress,
- removeCount = 0;
-
- easingType = easingType || "linear";
- startValue = startValue || 0;
- _removeCount = _removeCount || 0;
+ height = 0,
+ width = 0;
- if ( self._sumTime >= duration ) {
- self._setPosition( self._ANIMATION_END, direction );
- self._stop();
- return;
+ if ( self._direction ) {
+ width = self._cellSize * ( self._rowsPerView + 2 );
+ width = parseInt( width, 10 ) + 1;
+ self._$view.width( width );
+ self._viewSize = self._$view.width();
+ } else {
+ self._$view.height( self._cellSize * ( self._rowsPerView + 2 ) );
+ self._$clip.height( self._clipSize );
+ self._viewSize = self._$view.height();
}
+ },
- if ( self._startTime === 0 ) {
- self._startTime = timeNow;
- } else {
- self._sumTime = timeNow - self._startTime;
- progress = $.easing[ easingType ]( self._sumTime / duration, self._sumTime, startValue, repeatCount + 1, duration );
- removeCount = parseInt( Math.abs( progress ), 10 );
+ _getViewWidth : function () {
+ var self = this;
+ return self._maxSize;
+ },
- if ( _removeCount !== removeCount ) {
- self._setPosition( self._ANIMATION_END, direction );
- _removeCount = removeCount;
+ _getViewHeight : function () {
+ var self = this;
+ return self._maxSize;
+ },
- if ( ( repeatCount - _removeCount ) >= 0 ) {
- self._animate( easingType, duration, direction, repeatCount, startValue, _removeCount );
- } else {
- self._stop();
- }
- return;
- }
+ refresh : function () {
+ var self = this,
+ opts = self.options,
+ width = 0,
+ height = 0,
+ $template = null;
- self._setPosition( progress - _removeCount, direction );
+ $template = $( "#" + opts.template );
+ if ( !$template ) {
+ return ;
}
+ self._templateText = self._insertAriaAttrToTmpl( $template.text() );
- self._animationID = window.requestAnimationFrame( function () {
- self._animate( easingType, duration, direction, repeatCount, startValue, _removeCount );
- });
+ width = self._calculateClipWidth();
+ height = self._calculateClipHeight();
+ self._$view.width( width ).height( height );
+ self._$clip.width( width ).height( height );
+
+ self._clipSize = self._calculateClipSize();
+ self._calculateColumnSize();
+ self._initPageProperty();
+ self._setScrollBarSize();
},
- _run: function ( direction, repeatCount, startValue ) {
+ _initPageProperty : function () {
var self = this,
- repeat = repeatCount || 0,
- duration = self._DURATION_DEFAULT * ( repeat + 1 );
+ rowsPerView = 0,
+ $child,
+ columnCount = 0,
+ totalRowCnt = 0,
+ attributeName = self._direction ? "width" : "height";
- if ( self._imageList.length <= 1 ) {
- return;
- }
+ columnCount = self._calculateColumnCount();
- startValue = startValue || 0;
- duration = ( duration >= 0 ) ? duration : 0;
+ totalRowCnt = parseInt( self._numItemData / columnCount, 10 );
+ self._totalRowCnt = self._numItemData % columnCount === 0 ? totalRowCnt : totalRowCnt + 1;
+ self._itemCount = columnCount;
- if ( self._animationID ) {
- self._setPosition( self._ANIMATION_END, direction );
- self._stop();
+ if ( self._cellSize <= 0 ) {
+ return ;
}
- self._animate( "easeOutExpo", duration, direction, repeat, startValue );
- },
+ rowsPerView = self._clipSize / self._cellSize;
+ rowsPerView = Math.ceil( rowsPerView );
+ self._rowsPerView = parseInt( rowsPerView, 10 );
- _reset: function () {
- if ( !this._canvas || !this._gl ) {
- return;
- }
+ $child = $( self._makeRows( rowsPerView + 2 ) );
+ self._$view.append( $child.children() );
+ self._$view.children().css( attributeName, self._cellSize + "px" );
+ self._$rows = self._$view.children().detach();
- this._final();
- this._init();
- this.refresh();
- },
+ self._reservedPos = -self._cellSize;
+ self._scalableSize = -self._cellSize;
- _stop: function () {
- if ( this._animationID ) {
- window.cancelAnimationFrame( this._animationID );
- }
- this._animationID = 0;
+ self._initLayout();
- this._startTime = 0;
- this._sumTime = 0;
+ self._blockScroll = self._rowsPerView > self._totalRowCnt;
+ self._maxSizeExceptClip = ( self._totalRowCnt - self._rowsPerView ) * self._cellSize;
+ self._maxSize = self._totalRowCnt * self._cellSize;
+ self._maxViewSize = ( self._rowsPerView ) * self._cellSize;
+ self._modifyViewPos = -self._cellSize;
+ if ( self._clipSize < self._maxViewSize ) {
+ self._modifyViewPos = ( -self._cellSize ) + ( self._clipSize - self._maxViewSize );
+ }
},
- _degreeToRadian: function ( degree ) {
- return degree * Math.PI / 180;
- },
+ _getinheritedSize : function ( elem ) {
+ var $target = $( elem ),
+ height,
+ width,
+ NODETYPE = { ELEMENT_NODE : 1, TEXT_NODE : 3 },
+ ret = {
+ isDefinedWidth : false,
+ isDefinedHeight : false,
+ width : 0,
+ height : 0
+ };
- next: function () {
- this._run( this._DIRECTION_LEFT , 0 );
- },
+ while ( $target[0].nodeType === NODETYPE.ELEMENT_NODE && ( ret.isDefinedWidth === false || ret.isHeightDefined === false ) ) {
+ height = $target[0].style.height;
+ width = $target[0].style.width;
- prev: function () {
- this._run( this._DIRECTION_RIGHT, 0 );
+ if ( ret.isDefinedHeight === false && height !== "" ) {
+ // Size was defined
+ ret.isDefinedHeight = true;
+ ret.height = parseInt( height, 10 );
+ }
+
+ if ( ret.isDefinedWidth === false && width !== "" ) {
+ // Size was defined
+ ret.isDefinedWidth = true;
+ ret.width = parseInt( width, 10 );
+ }
+ $target = $target.parent();
+ if ( $target.hasClass( "ui-content" ) ) {
+ break;
+ }
+ }
+ return ret;
},
- refresh: function () {
- var view = this.element,
- canvas = view.find( "canvas.ui-gallery3d-canvas" );
+ _resize : function () {
+ var self = this,
+ ret = null,
+ rowsPerView = 0,
+ itemCount = 0,
+ totalRowCnt = 0,
+ diffRowCnt = 0,
+ clipSize = 0,
+ prevcnt = 0,
+ clipPosition = 0,
+ rowsLength = 0,
+ row = null,
+ size = 0;
- if ( canvas.width() !== view.width() ) {
- canvas.width( view.width() );
+ if ( self._direction ) {
+ size = self._calculateClipHeight();
+ self._$view.height( size );
+ self._$clip.height( size );
+ } else {
+ size = self._calculateClipWidth();
+ self._$view.width( size );
+ self._$clip.width( size );
}
- if ( !this._animationID ) {
- this._setPosition( 0, 0 );
- }
- },
+ itemCount = self._calculateColumnCount();
+ if ( itemCount != self._itemCount ) {
+ totalRowCnt = parseInt( self._numItemData / itemCount, 10 );
+ self._totalRowCnt = self._numItemData % itemCount === 0 ? totalRowCnt : totalRowCnt + 1;
+ prevcnt = self._itemCount;
+ self._itemCount = itemCount;
+ clipPosition = self._getClipPosition();
+ self._$view.hide();
- select: function ( index ) {
- var nodes = this._nodes,
- repeat,
- i,
- imageID,
- object = null,
- target = 0,
- direction = 0;
+ diffRowCnt = self._replaceRows( itemCount, prevcnt, self._totalRowCnt, clipPosition );
+ self._maxSizeExceptClip = ( self._totalRowCnt - self._rowsPerView ) * self._cellSize;
+ self._maxSize = self._totalRowCnt * self._cellSize;
+ self._scalableSize += ( -diffRowCnt ) * self._cellSize;
+ self._reservedPos += ( -diffRowCnt ) * self._cellSize;
+ self._setScrollBarSize();
+ self._setScrollBarPosition( diffRowCnt );
- if ( index && this._animationID ) {
- this._stop();
+ self._$view.show();
}
- for ( i in nodes ) {
- if ( nodes[i].level === 1 ) {
- object = this._imageList[ nodes[i].imageID ];
- imageID = nodes[i].imageID;
- break;
+ clipSize = self._calculateClipSize();
+ if ( clipSize !== self._clipSize ) {
+ rowsPerView = clipSize / self._cellSize;
+ rowsPerView = parseInt( Math.ceil( rowsPerView ), 10 );
+
+ if ( rowsPerView > self._rowsPerView ) {
+ // increase row.
+ self._increaseRow( rowsPerView - self._rowsPerView );
+ } else if ( rowsPerView < self._rowsPerView ) {
+ // decrease row.
+ self._decreaseRow( self._rowsPerView - rowsPerView );
+ }
+ self._$rows = self._$view.children();
+ self._$rows.sort( function ( a, b ) {
+ return a.getAttribute( "row-index" ) - b.getAttribute( "row-index" );
+ });
+
+ self._rowsPerView = rowsPerView;
+ self._clipSize = clipSize;
+ self._blockScroll = self._rowsPerView > self._totalRowCnt;
+ self._maxSizeExceptClip = ( self._totalRowCnt - self._rowsPerView ) * self._cellSize;
+ self._maxSize = self._totalRowCnt * self._cellSize;
+ self._maxViewSize = ( self._rowsPerView ) * self._cellSize;
+ if ( self._clipSize < self._maxViewSize ) {
+ self._modifyViewPos = ( -self._cellSize ) + ( self._clipSize - self._maxViewSize );
+ }
+ if ( self._direction ) {
+ self._$clip.width( self._clipSize );
+ } else {
+ self._$clip.height( self._clipSize );
}
+ self._setScrollBarSize();
+ self._setScrollBarPosition( 0 );
+ self._setViewSize();
}
+ },
- if ( !index ) {
- return object;
+ resize : function () {
+ var self = this,
+ height = 0,
+ $virtualgrid = $( ".ui-virtualgrid-view" );
+
+ self._inheritedSize = self._getinheritedSize( self.element );
+
+ if ( $virtualgrid.length !== 0 ) {
+ self._resize();
}
+ },
+
+ _initScrollView : function () {
+ var self = this,
+ oldDirection = self.options.direction;
+ $.extend( self.options, self._scrollView.options );
+ self.options.direction = oldDirection;
+ self.options.moveThreshold = 10;
+ self.options.showScrollBars = false;
+ self._getScrollHierarchy = self._scrollView._getScrollHierarchy;
+ self._makePositioned = self._scrollView._makePositioned;
+ self._set_scrollbar_size = self._scrollView._set_scrollbar_size;
+ self._setStyleTransform = self._scrollView._setElementTransform;
+ self._hideOverflowIndicator = self._scrollView._hideOverflowIndicator;
+ self._showOverflowIndicator = self._scrollView._showOverflowIndicator;
+ self._setGestureScroll = self._scrollView._setGestureScroll;
+ },
- if ( index < 0 && index >= this._imageList.length ) {
- return;
- }
+ _createTracker : function () {
+ var self = this;
- target = index - imageID;
- direction = ( target > 0 ) ? this._DIRECTION_LEFT
- : ( ( target < 0 ) ? this._DIRECTION_RIGHT : 0 );
- if ( direction ) {
- this._run( direction, Math.abs( target ) - 1 );
+ self._tracker = new MomentumTracker( self.options );
+ if ( self._direction ) {
+ self._hTracker = self._tracker;
+ self._$clip.width( self._clipSize );
+ } else {
+ self._vTracker = self._tracker;
+ self._$clip.height( self._clipSize );
}
},
- add: function ( item, index ) {
- if ( !item ) {
- return;
- }
-
- if ( typeof item === "string" ) {
- item = { "src" : item };
- }
+ //----------------------------------------------------//
+ // Overflow effect
+ //----------------------------------------------------//
+ _createOverflowArea : function () {
+ var self = this,
+ prefix = "<div class=\"ui-virtualgrid-overflow-indicator-",
+ suffixTop = "-top\"></div>",
+ suffixBottom = "-bottom\"></div>";
- index = index || 0;
- if ( typeof index !== "number" && index < 0
- && index >= this._imageList.length ) {
+ if ( self.options.rotation ) {
return;
}
- this._imageList.splice( index, 0, item );
- if ( this._gl ) {
- this._reset();
+ if ( self._direction ) {
+ self._overflowTop = $( prefix + "x" + suffixTop );
+ self._overflowBottom = $( prefix + "x" + suffixBottom );
+ } else {
+ self._overflowTop = $( prefix + "y" + suffixTop );
+ self._overflowBottom = $( prefix + "y" + suffixBottom );
}
+
+ self._$clip.append( self._overflowTop );
+ self._$clip.append( self._overflowBottom );
+ self._overflowDisplayed = false;
},
- remove: function ( index ) {
- index = index || 0;
- if ( typeof index !== "number" && index < 0
- && index >= this._imageList.length ) {
+ _hideVGOverflowIndicator : function () {
+ if ( this._overflowDisplayed === false ) {
return;
}
- this._imageList.splice( index, 1 );
- if ( this._gl ) {
- this._reset();
- }
+ this._overflowTop.animate( { opacity: 0 }, 300 );
+ this._overflowBottom.animate( { opacity: 0 }, 300 );
+ this._overflowDisplayed = false;
},
- clearThumbnailCache: function () {
- if ( !this._nodes || ( this._nodes.length <= 0 ) ) {
- return;
- }
+ //----------------------------------------------------//
+ // Scrollbar //
+ //----------------------------------------------------//
+ _createScrollBar : function () {
+ var self = this,
+ prefix = "<div class=\"ui-scrollbar ui-scrollbar-",
+ suffix = "\"><div class=\"ui-scrollbar-track\"><div class=\"ui-scrollbar-thumb\"></div></div></div>";
- var i, url;
- for ( i = 0; i < this._imageList.length; i += 1 ) {
- url = this._imageList[i].src;
- $.imageloader.removeThumbnail( url );
+ if ( self.options.rotation ) {
+ return ;
}
- },
- empty: function () {
- this._imageList = [];
- this._reset();
+ if ( self._direction ) {
+ self._$clip.append( prefix + "x" + suffix );
+ self._hScrollBar = self._$clip.children( ".ui-scrollbar-x" );
+ self._hScrollBar.find( ".ui-scrollbar-thumb" ).addClass( "ui-scrollbar-thumb-x" );
+ } else {
+ self._$clip.append( prefix + "y" + suffix );
+ self._vScrollBar = self._$clip.children( ".ui-scrollbar-y" );
+ self._vScrollBar.find( ".ui-scrollbar-thumb" ).addClass( "ui-scrollbar-thumb-y" );
+ }
},
- length: function () {
- return this._imageList.length;
- }
- });
-
- $( document ).bind( "pagecreate create", function ( e ) {
- $( ":jqmData(role='gallery3d')" ).gallery3d();
- });
-
-} ( jQuery, document, window ) );
-
-
-
-/*
- * jQuery Mobile Widget @VERSION
- *
- * This software is licensed under the MIT licence (as defined by the OSI at
- * http://www.opensource.org/licenses/mit-license.php)
- *
- * ***************************************************************************
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
- * Copyright (c) 2011 by Intel Corporation Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- *
- * Authors: Kalyan Kondapally <kalyan.kondapally@intel.com>,
- * Elliot Smith <elliot.smith@intel.com>
- * Hyunjung Kim <hjnim.kim@samsung.com>
- */
-
-// Widget which turns a html element into a "swipe":
-// i.e. each list item has a sliding "cover" which can be swiped
-// to the right (to reveal buttons underneath) or left (to
-// cover the buttons again). Clicking on a button under a swipe
-// also moves the cover back to the left.
-//
-// In this case, the cover is over a grid of buttons;
-// but it is should also be possible to use other types of markup under the
-// list items.
-//
-// WARNING: This doesn't work well inside a scrollview widget, as
-// the touch events currently interfere with each other badly (e.g.
-// a swipe will work but cause a scroll as well).
-//
-// Theme: default is to use the theme on the target element,
-// theme passed in options, parent theme, or 'c' if none of the above.
-// If list items are themed individually, the cover will pick up the
-// theme of the list item which is its parent.
-//
-
-/**
- @class Swipe
- The swipe widget shows a view on the screen where the items can be swiped vertically to show a menu.
- To add a swipe widget to the application, use the following code:
-
- <ul data-role="listview">
- <li data-role="swipe">
- <div data-role="swipe-cover">
- <div data-role="button" data-inline="true">OK</div>
- <div data-role="button" data-inline="true">Cancel</div>
- </div>
- <div data-role="swipe-item-cover">
- <p>This is a swipe item cover.<br>
- This will be swiped out when swipe event comes.</p>
- </div>
- </li>
- </ul>
+ _setScrollBarSize: function () {
+ var self = this,
+ scrollBarSize = 0,
+ currentSize = 0,
+ $scrollBar,
+ attrName,
+ className;
- You can use methods with the swipe as described in the jQueryMobile documentation for view methods.
-*/
-/**
- @property {String} data-role
- Creates a swipe using the HTML unordered view (>ul<) element.
- The default value is swipe.
+ if ( self.options.rotation ) {
+ return ;
+ }
- Creates a swipe item cover using an HTML $gt;div$lt; element. This cover can be swiped to show the content beneath it.
- The default value is swipe-item-cover.
-*/
-/**
- @method open
- uncover swipe item
-*/
-/**
- @method close
- cover swipe item
-*/
-/**
- @method opened
- return coveritem status( coverd or uncovred )
-*/
-/**
- @event animationstart
- The swipe can define a callback for the animationstart event, which is fired after a item is swipe and the swipe animation is start:
-*/
-/**
- @event animationend
- The swipe can define a callback for the animationend event, which is fired after a item is swiped and the swipe animation is complete:
+ scrollBarSize = parseInt( self._maxViewSize / self._clipSize, 10 );
+ if ( self._direction ) {
+ $scrollBar = self._hScrollBar.find( ".ui-scrollbar-thumb" );
+ attrName = "width";
+ currentSize = $scrollBar.width();
+ className = "ui-scrollbar-thumb-x";
+ self._hScrollBar.css( "width", self._clipSize );
+ } else {
+ $scrollBar = self._vScrollBar.find( ".ui-scrollbar-thumb" );
+ attrName = "height";
+ className = "ui-scrollbar-thumb-y";
+ currentSize = $scrollBar.height();
+ self._vScrollBar.css( "height", self._clipSize );
+ }
- <ul data-role="listview">
- <li data-role="swipe">
- <div data-role="swipe-cover">
- <div data-role="button" data-inline="true">OK</div>
- <div data-role="button" data-inline="true">Cancel</div>
- </div>
- <div data-role="swipe-item-cover" id="foo">
- <p>This is a swipe item cover.<br>
- This will be swiped out when swipe event comes.</p>
- </div>
- </li>
- </ul>
- $("#foo").bind("animationend", function (ev)
- {
- Console.log("Swipe cover's animation is complete.");
- });
-*/
-(function ($) {
+ if ( scrollBarSize > currentSize ) {
+ $scrollBar.removeClass( className );
+ $scrollBar.css( attrName, scrollBarSize );
+ } else {
+ scrollBarSize = currentSize;
+ }
- $.widget("tizen.swipe", $.mobile.widget, {
- options: {
- theme: null
+ self._itemScrollSize = parseFloat( ( self._clipSize - scrollBarSize ) / ( self._totalRowCnt - self._rowsPerView ) );
+ self._itemScrollSize = Math.round( self._itemScrollSize * 100 ) / 100;
},
- _create: function () {
- // use the theme set on the element, set in options,
- // the parent theme, or 'c' (in that order of preference)
- var theme = this.element.jqmData('theme') ||
- this.options.theme ||
- this.element.parent().jqmData('theme') ||
- 's';
+ _setScrollBarPosition : function ( di, duration ) {
+ var self = this,
+ $sbt = null,
+ x = "0px",
+ y = "0px",
+ translate;
- this.options.theme = theme;
- this._isopen = false;
- this.refresh();
- },
+ if ( self.options.rotation ) {
+ return ;
+ }
- refresh: function () {
- this._cleanupDom();
+ self._currentItemCount = self._currentItemCount + di;
+ if ( self._vScrollBar ) {
+ $sbt = self._vScrollBar.find( ".ui-scrollbar-thumb" );
+ y = ( self._currentItemCount * self._itemScrollSize ) + "px";
+ } else {
+ $sbt = self._hScrollBar.find( ".ui-scrollbar-thumb" );
+ x = ( self._currentItemCount * self._itemScrollSize ) + "px";
+ }
+ self._setStyleTransform( $sbt, x, y, duration );
+ },
+ _hideScrollBars : function () {
var self = this,
- defaultCoverTheme,
- covers,
- coverTheme,
- item,
- itemHasThemeClass;
+ vclass = "ui-scrollbar-visible";
- defaultCoverTheme = 'ui-body-' + this.options.theme;
+ if ( self.options.rotation ) {
+ return ;
+ }
- if ( !this.element.parent().hasClass('ui-listview') ) {
- this.element.parent().listview();
+ if ( self._vScrollBar ) {
+ self._vScrollBar.removeClass( vclass );
+ } else {
+ self._hScrollBar.removeClass( vclass );
}
- this.element.addClass('ui-swipe');
+ },
- // get the item covers
- covers = this.element.find(':jqmData(role="swipe-item-cover")');
- item = this.element.find(':jqmData(role="swipe-item")');
+ _showScrollBars : function () {
+ var self = this,
+ vclass = "ui-scrollbar-visible";
- this._covers = covers;
- this._item = item;
- item.addClass('ui-swipe-item');
- coverTheme = defaultCoverTheme;
- itemHasThemeClass = item.parent().attr('class')
- .match(/ui\-body\-[a-z]|ui\-bar\-[a-z]/);
+ if ( self.options.rotation ) {
+ return ;
+ }
- covers.each( function () {
- var cover = $( this );
+ if ( self._vScrollBar ) {
+ self._vScrollBar.addClass( vclass );
+ } else {
+ self._hScrollBar.addClass( vclass );
+ }
+ },
- if ( itemHasThemeClass ) {
- coverTheme = itemHasThemeClass[0];
- }
+ //----------------------------------------------------//
+ // scroll process //
+ //----------------------------------------------------//
+ centerTo : function ( selector ) {
+ var self = this,
+ row = null,
+ targetItem = null,
+ targetRowIndex = -1,
+ rowsLength = self._$rows.length,
+ newPosition,
+ i;
- cover.addClass('ui-swipe-item-cover');
- cover.addClass( coverTheme );
+ if ( !self.options.rotation ) {
+ return;
+ }
- if ( cover.has('.ui-swipe-item-cover-inner').length === 0 ) {
- cover.wrapInner( $('<span/>').addClass('ui-swipe-item-cover-inner') );
+ for ( i = 0; i < rowsLength; ++i ) {
+ row = $( self._$rows[ i ] );
+ targetItem = row.children( "." + selector );
+ if ( targetItem.length ) {
+ targetRowIndex = parseInt( row.attr( "row-index" ), 10 );
+ break;
}
+ }
- if ( !( cover.data('animateRight') && cover.data('animateLeft') ) ) {
- cover.data('animateRight', function () {
- self._animateCover( cover, 110, item );
- });
+ if ( targetRowIndex === -1 ) {
+ targetRowIndex = self._getTargetRowIndex( selector );
+ if ( targetRowIndex === -1 ) {
+ return;
+ }
+ }
- cover.data('animateLeft', function () {
- self._animateCover( cover, 0, item );
- });
+ newPosition = -( targetRowIndex * self._cellSize - ( self._clipSize - self._cellSize ) / 2 );
+ if ( self._direction ) {
+ self.scrollTo( newPosition, 0 );
+ } else {
+ self.scrollTo( 0, newPosition );
+ }
+ },
+
+ _getTargetRowIndex: function ( selector ) {
+ var self = this,
+ dataCount = self._numItemData,
+ itemCount = self._itemCount,
+ attrName = self._direction ? "top" : "left",
+ html = "",
+ targetRowIndex = self._totalRowCnt,
+ i;
+
+ for ( i = 0; i < dataCount; ++i ) {
+ html = self._makeHtmlData( i, i % itemCount, attrName );
+ if ( self._hasClassItem( html, selector ) ) {
+ targetRowIndex = parseInt( i / itemCount, 10 );
+ break;
}
+ }
- // bind to synthetic events
- item.bind( 'swipeleft', cover.data('animateLeft') );
- cover.bind( 'swiperight', cover.data('animateRight') );
- item.find( '.ui-btn' ).bind( 'vclick', cover.data('animateLeft') );
- } );
+ if ( targetRowIndex === self._totalRowCnt ) {
+ return -1;
+ }
+ return targetRowIndex;
},
- _cleanupDom: function () {
+ _hasClassItem: function ( html, selector ) {
var self = this,
- defaultCoverTheme,
- cover,
- coverTheme = defaultCoverTheme,
- item,
- itemClass,
- itemHasThemeClass,
- text,
- wrapper;
+ classString = self._getItemClass( html );
- defaultCoverTheme = 'ui-body-' + this.options.theme;
+ if ( classString.indexOf( selector ) === -1 ) {
+ return false;
+ }
- this.element.removeClass('ui-swipe');
+ if ( classString.indexOf( "virtualgrid-item" ) === -1 ) {
+ return false;
+ }
- // get the item covers
- cover = this.element.find(':jqmData(role="swipe-item-cover")');
- item = this.element.find(':jqmData(role="swipe-item")');
+ return true;
+ },
- item.removeClass('ui-swipe-item');
- cover.removeClass('ui-swipe-item-cover');
+ _getItemClass: function ( html ) {
+ var classIndex = html.indexOf( "class" ),
+ classBeginIndex = Math.min( html.indexOf( "\"", classIndex ), html.indexOf( "'", classIndex ) ),
+ classEndIndex = Math.min( html.indexOf( "\"", classBeginIndex + 1 ), html.indexOf( "'", classBeginIndex + 1 ) );
- itemClass = item.attr('class');
- itemHasThemeClass = itemClass &&
- itemClass.match(/ui\-body\-[a-z]|ui\-bar\-[a-z]/);
+ return html.slice( classBeginIndex + 1, classEndIndex );
+ },
- if ( itemHasThemeClass ) {
- coverTheme = itemHasThemeClass[0];
+ scrollTo: function ( x, y, duration ) {
+ var self = this;
+ if ( self._direction ) {
+ x -= self._cellSize;
+ self._sx = self._reservedPos;
+ self._reservedPos = x;
+ } else {
+ y -= self._cellSize;
+ self._sy = self._reservedPos;
+ self._reservedPos = y;
}
+ self._scrollView.scrollTo.apply( this, [ x, y, duration ] );
+ },
- cover.removeClass(coverTheme);
+ getScrollPosition: function () {
+ if ( this.direction ) {
+ return { x: -this._ry, y: 0 };
+ }
+ return { x: 0, y: -this._ry };
+ },
- // remove wrapper HTML
- wrapper = cover.find('.ui-swipe-item-cover-inner');
- wrapper.children().unwrap();
- text = wrapper.text();
+ _setScrollPosition: function ( x, y ) {
+ var self = this,
+ sy = self._scalableSize,
+ distance = self._direction ? x : y,
+ dy = distance - sy,
+ di = parseInt( dy / self._cellSize, 10 ),
+ i = 0,
+ idx = 0,
+ replaceStartIdx = 0,
+ realRowCount = self._rowsPerView + 2,
+ rawView = self._$view[0];
- if ( text ) {
- cover.append( text );
- wrapper.remove();
+ if ( self._blockScroll ) {
+ if ( dy > 0 && distance >= -self._cellSize && self._scalableSize >= -self._cellSize ) {
+ self._overflowDir = _OVERFLOW_DIR_UP;
+ }
+ if ( dy < 0 && self._scalableSize <= -( self._maxSizeExceptClip + self._cellSize ) ) {
+ self._overflowDir = _OVERFLOW_DIR_DOWN;
+ }
+ return;
+ }
+
+ if ( ! self.options.rotation ) {
+ if ( dy > 0 && distance >= -self._cellSize && self._scalableSize >= -self._cellSize ) {
+ // top
+ self._stopMScroll();
+ self._scalableSize = -self._cellSize;
+ self._setElementTransform( -self._cellSize );
+ if ( self._overflowDir === _OVERFLOW_DIR_NONE ) {
+ self._overflowDir = _OVERFLOW_DIR_UP;
+ }
+ return;
+ }
+ if ( dy < 0 && self._scalableSize <= -( self._maxSizeExceptClip + self._cellSize ) ) {
+ // bottom
+ self._stopMScroll();
+ self._scalableSize = -( self._maxSizeExceptClip + self._cellSize );
+ self._setElementTransform( self._modifyViewPos );
+ if ( self._overflowDir === _OVERFLOW_DIR_NONE ) {
+ self._overflowDir = _OVERFLOW_DIR_DOWN;
+ }
+ return;
+ }
}
- // unbind swipe events
- if ( cover.data('animateRight') && cover.data('animateLeft') ) {
- cover.unbind( 'swiperight', cover.data('animateRight') );
- item.unbind( 'swipeleft', cover.data('animateLeft') );
+ replaceStartIdx = ( Math.abs( di ) < realRowCount ) ? 0 : ( di > 0 ) ? di - realRowCount : di + realRowCount;
+ if ( di > 0 ) { // scroll up
+ for ( i = replaceStartIdx; i < di; ++i ) {
+ idx = -parseInt( ( sy / self._cellSize ) + i + 3, 10 );
+ self._replaceRow( rawView.lastChild, circularNum( idx, self._totalRowCnt ) );
+ rawView.insertBefore( rawView.lastChild, rawView.firstChild );
+ }
+ } else if ( di < 0 ) { // scroll down
+ for ( i = replaceStartIdx; i > di; --i ) {
+ idx = self._rowsPerView - parseInt( ( sy / self._cellSize ) + i, 10 );
+ self._replaceRow( rawView.firstChild, circularNum( idx, self._totalRowCnt ) );
+ rawView.insertBefore( rawView.firstChild, rawView.lastChild.nextSibling );
+ }
+ }
+ self._setScrollBarPosition( -di );
+ self._scalableSize += di * self._cellSize;
+ self._setElementTransform( distance - self._scalableSize - self._cellSize );
+ },
- // unbind clicks on buttons inside the item
- item.find('.ui-btn').unbind( 'vclick', cover.data('animateLeft') );
+ _setElementTransform : function ( value ) {
+ var self = this,
+ x = 0,
+ y = 0;
- cover.data( 'animateRight', null );
- cover.data( 'animateLeft', null );
+ if ( self._direction ) {
+ x = value + "px";
+ } else {
+ y = value + "px";
}
+ self._setStyleTransform( self._$view, x, y );
},
- // NB I tried to use CSS animations for this, but the performance
- // and appearance was terrible on Android 2.2 browser;
- // so I reverted to jQuery animations
- //
- // once the cover animation is done, the cover emits an
- // animationComplete event
- _animateCover: function ( cover, leftPercentage, item ) {
+ //----------------------------------------------------//
+ // Event handler //
+ //----------------------------------------------------//
+ _handleMomentumScroll: function () {
var self = this,
- animationOptions = {
- easing: 'linear',
- duration: 'normal',
- queue: true,
- complete: function () {
- cover.trigger('animationend');
- }
- };
+ opts = self.options,
+ keepGoing = false,
+ v = this._$view,
+ x = 0,
+ y = 0,
+ t = self._tracker;
- $( this.element.parent() )
- .find(":jqmData(role='swipe')")
- .each(
- function () {
- if ( this !== self.element.get(0) &&
- $( this ).swipe("opened") ) {
- $( this ).swipe("close");
- }
- }
- );
+ if ( t ) {
+ t.update();
+ if ( self._direction ) {
+ x = t.getPosition();
+ } else {
+ y = t.getPosition();
+ }
+ keepGoing = !t.done();
+ }
- if ( leftPercentage == 110 ) {
- this._isopen = true;
+ self._setScrollPosition( x, y );
+ if ( !opts.rotation ) {
+ keepGoing = !t.done();
+ self._reservedPos = self._direction ? x : y;
+ // bottom
+ self._reservedPos = self._reservedPos <= (-(self._maxSizeExceptClip - self._modifyViewPos)) ? ( - ( self._maxSizeExceptClip + self._cellSize) ) : self._reservedPos;
+ // top
+ self._reservedPos = self._reservedPos > -self._cellSize ? -self._cellSize : self._reservedPos;
} else {
- this._isopen = false;
+ self._reservedPos = self._direction ? x : y;
}
+ self._$clip.trigger( self.options.updateEventName, [ { x: x, y: y } ] );
- cover.stop();
- cover.clearQueue();
- cover.trigger('animationstart');
- cover.animate( { left: leftPercentage + '%' }, animationOptions );
- if ( leftPercentage == 0 ) {
- item.animate({ opacity: 0 }, "slow");
+ if ( keepGoing ) {
+ self._timerID = setTimeout( self._timerCB, self._timerInterval );
} else {
- item.animate({ opacity: 1 }, "slow");
+ self._stopMScroll();
}
+ },
+ _startMScroll: function ( speedX, speedY ) {
+ var self = this;
+ if ( self._direction ) {
+ self._sx = self._reservedPos;
+ } else {
+ self._sy = self._reservedPos;
+ }
+ self._scrollView._startMScroll.apply( self, [ speedX, speedY ] );
},
- destroy: function () {
- this._cleanupDom();
+ _stopMScroll: function () {
+ this._scrollView._stopMScroll.apply( this );
},
- open: function () {
+ _enableTracking: function () {
var self = this;
+ self._$view.bind( self._dragMoveEvt, self._dragMoveCB );
+ self._$view.bind( self._dragStopEvt, self._dragStopCB );
+ self._scrollView._enableTracking.apply( self );
+ },
- $( self._covers ).each( function () {
- var cover = $( this );
- self._animateCover( cover, 110, self._item);
- } );
+ _disableTracking: function () {
+ var self = this;
+ self._$view.unbind( self._dragMoveEvt, self._dragMoveCB );
+ self._$view.unbind( self._dragStopEvt, self._dragStopCB );
+ self._scrollView._disableTracking.apply( self );
},
- opened: function () {
- return this._isopen;
+ _handleDragStart: function ( e, ex, ey ) {
+ var self = this;
+ self._scrollView._handleDragStart.apply( this, [ e, ex, ey ] );
+ self._eventPos = self._direction ? ex : ey;
+ self._nextPos = self._reservedPos;
},
- close: function () {
+ _handleDragMove: function ( e, ex, ey ) {
+ var self = this,
+ dx = ex - self._lastX,
+ dy = ey - self._lastY,
+ x = 0,
+ y = 0,
+ diffFromStartPos = 0,
+ diffFromLastPos = 0,
+ opacity = 0,
+ overflowPos = 0,
+ overFlowTarget = null;
+
+ self._lastMove = getCurrentTime();
+ self._speedX = dx;
+ self._speedY = dy;
+
+ self._didDrag = true;
+
+ self._lastX = ex;
+ self._lastY = ey;
+
+ if ( self._direction ) {
+ self._movePos = ex - self._eventPos;
+ x = self._nextPos + self._movePos;
+ overflowPos = ex;
+ } else {
+ self._movePos = ey - self._eventPos;
+ y = self._nextPos + self._movePos;
+ overflowPos = ey;
+ }
+ self._showScrollBars();
+ self._setScrollPosition( x, y );
+ if ( self._overflowDir !== _OVERFLOW_DIR_NONE ) {
+ overFlowTarget = ( self._overflowDir === _OVERFLOW_DIR_UP ) ? self._overflowTop : self._overflowBottom;
+ if ( !self._overflowDisplayed ) {
+ self._overflowDisplayed = true;
+ self._overflowStartPos = overflowPos;
+ }
+ diffFromStartPos = ( overflowPos - self._overflowStartPos ) * self._overflowDir;
+ opacity = ( diffFromStartPos < 0 ) ?
+ 0 : ( diffFromStartPos > self._overflowMaxDragDist ) ?
+ 1 : ( diffFromStartPos / self._overflowMaxDragDist );
+ overFlowTarget.css( "opacity", opacity );
+ }
+
+ return false;
+ },
+
+ _handleDragStop: function ( e ) {
var self = this;
- $( self._covers ).each( function () {
- var cover = $( this );
- self._animateCover( cover, 0, self._item);
- } );
- }
+ self._reservedPos = self._movePos ? self._nextPos + self._movePos : self._reservedPos;
+ self._scrollView._handleDragStop.apply( this, [ e ] );
+ if ( self._overflowDir !== _OVERFLOW_DIR_NONE ) {
+ self._overflowDir = _OVERFLOW_DIR_NONE;
+ self._hideVGOverflowIndicator();
+ }
+ return self._didDrag ? false : undefined;
+ },
- });
+ _addBehaviors: function () {
+ var self = this;
- $( document ).bind("pagecreate", function ( e ) {
- $( e.target ).find(":jqmData(role='swipe')").swipe();
- });
+ // scroll event handler.
+ if ( self.options.eventType === "mouse" ) {
+ self._dragStartEvt = "mousedown";
+ self._dragStartCB = function ( e ) {
+ return self._handleDragStart( e, e.clientX, e.clientY );
+ };
-}( jQuery ));
+ self._dragMoveEvt = "mousemove";
+ self._dragMoveCB = function ( e ) {
+ return self._handleDragMove( e, e.clientX, e.clientY );
+ };
+ self._dragStopEvt = "mouseup";
+ self._dragStopCB = function ( e ) {
+ return self._handleDragStop( e, e.clientX, e.clientY );
+ };
+ self._$view.bind( "vclick", function ( e ) {
+ return !self._didDrag;
+ } );
+ } else { //touch
+ self._dragStartEvt = "touchstart";
+ self._dragStartCB = function ( e ) {
+ var t = e.originalEvent.targetTouches[0];
+ return self._handleDragStart( e, t.pageX, t.pageY );
+ };
-/* ***************************************************************************
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- *
- * Author: Kangsik Kim <kangsik81.kim@samsung.com>
- * Minkyeong Kim <minkyeong.kim@samsung.com>
-*/
+ self._dragMoveEvt = "touchmove";
+ self._dragMoveCB = function ( e ) {
+ var t = e.originalEvent.targetTouches[0];
+ return self._handleDragMove( e, t.pageX, t.pageY );
+ };
-/**
- * The TokenTextArea widget changes a text item to a button. It can be comprised of a number of button widgets.
- * When a user types text and the text gets a specific event to change from a text to a button,
- * the input text is changed to a TokenTextArea widget.
- * A user can add the TokenTextArea widget to a contact list, email list, or another list.
- * The typical use of this widget is composing a number of contacts or phone numbers in a specific area of the screen.
- *
- * HTML Attributes:
- *
- * data-link : Represents the id of the page or the URL of other HTML file.
- * The page contains data for the user, for example, an address book.
- * If the value is null, anchor button doesn't work. (Default : null)
- * data-label: Provide a label for a user-guide. (Default : 'To : ')
- * data-description : This attribute is managing message format.
- * This message is displayed when widget status was changed to 'focusout'. (Default : '+ {0}')
- *
- * APIs:
- *
- * inputtext ( [string] )
- * : If argument is not exist, will get a string from inputbox.
- * If argument is exist, will set a string to inputbox.
- * select ( [number] )
- * : If no argument exists, gets a string of the selected block.
- * If any button isn't selected on a token text area widget, this method returns "null" value.
- * When a user call this method with an argument which is a number type,
- * this method selects the button which is matched with the argument.
- * add ( text, [number] )
- * : If second argument does not exist, will insert to a new button at last position.
- * Insert a new button at indexed position. The position is decided by the second argument.
- * "index of position" means that the position of inserting a new button is decided by the second argument on "add" method.
- * For example, if a user call the method like this "add("Tizen", 2)",
- * new button labed "Tizen" will be inserted on the third position.
- * remove ( [number] )
- * : If no argument exists, all buttons are removed.
- * Remove a button at indexed position.
- * The position is decided by the second argument. (index: index of button)
- * length ( void )
- * : Get a number of buttons.
- * foucsIn ( void )
- * : This method change a status to 'focusin'.
- * This status is able to manage a widget.
- * focusOut ( void )
- * : Changes the focus status to 'focus out'.
- * The status is not able to manage a widget.
- * All buttons that contained in the widget are removed and
- * summarized message is displayed.
- * destroy ( void )
- * : Remove all of the new DOM elements for the current widget that you created.
- *
- * Events:
- *
- * select : Occur when a button is selected.
- * add : Occur when new button is inserted. (@since Tizen 2.1 deprecated, You can still use this event. But not recommended.)
- * remove : Occur when a button is removed. (@since Tizen 2.1 deprecated, You can still use this event. But not recommended.)
- *
- * Examples:
- *
- * <div data-role="tokentextarea" data-label="To : " data-link="#pageId" data-description="+ {0}">
- * </div>
- *
- */
+ self._dragStopEvt = "touchend";
+ self._dragStopCB = function ( e ) {
+ return self._handleDragStop( e );
+ };
+ }
+ self._$view.bind( self._dragStartEvt, self._dragStartCB );
+ // other events.
+ self._$view.delegate( ".virtualgrid-item", "click", function ( event ) {
+ var $selectedItem = $( this );
+ $selectedItem.trigger( "select", this );
+ } );
-/**
- @class TokenTextArea
- The TokenTextArea widget enables the user to enter text and convert it to a button. Each button that is created from entered text as a result of a change event forms a token text area widget. This widget is useful in composing an e-mail or SMS message to a group of addresses, each of which is a clickable item for more actions, such as copying, editing, or removing the address.
+ $( window ).bind( "resize", function ( e ) {
+ var height = 0,
+ $virtualgrid = $( ".ui-virtualgrid-view" );
+ if ( $virtualgrid.length !== 0 ) {
+ self._resize();
+ }
+ } );
- To add a token text area widget to the application, use the following code:
+ $( document ).one( "pageshow", function ( event ) {
+ var $page = $( self.element ).parents( ".ui-page" ),
+ $header = $page.find( ":jqmData(role='header')" ),
+ $footer = $page.find( ":jqmData(role='footer')" ),
+ $content = $page.find( ":jqmData(role='content')" ),
+ footerHeight = $footer ? $footer.height() : 0,
+ headerHeight = $header ? $header.height() : 0;
- <div data-role="tokentextarea" data-label="To : " data-link="#pageId">
- </div>
-*/
+ if ( $page && $content ) {
+ $content.height( window.innerHeight - headerHeight - footerHeight ).css( "overflow", "hidden" );
+ $content.addClass( "ui-virtualgrid-content" );
+ }
+ } );
+ },
-/**
- @property {String} data-label
- Sets a label as a guide for the user.
- For example, while composing an e-mail message, the 'To : ' label is a guide for the user to enter e-mail addresses.
+ //----------------------------------------------------//
+ // Calculate size about dom element. //
+ //----------------------------------------------------//
+ _calculateClipSize : function () {
+ var self = this,
+ clipSize = 0;
- <div data-role="tokentextarea" data-label="To : ">
- </div>
-*/
+ if ( self._direction ) {
+ clipSize = self._calculateClipWidth();
+ } else {
+ clipSize = self._calculateClipHeight();
+ }
+ return clipSize;
+ },
-/**
- @property {String} data-decription
- Manages the message format.
- The message is displayed when the widget status changes to focus out
+ _calculateClipWidth : function () {
+ var self = this,
+ $parent = self._$clip.parent(),
+ paddingValue = 0,
+ clipSize = $( window ).width();
- <div data-role="tokentextarea" data-description=" + {0}">
- </div>
- */
-/**
- @property {String} data-link
- Sets the ID of the page or the URL of other HTML file to which the button links.
- If the data-link is set with the URL of other HTML file, the 'dom-cache' option of both page - a page containing a Tokentextarea and a page in the target HTML file - must be set as 'true'.
+ if ( self._inheritedSize.isDefinedWidth ) {
+ return self._inheritedSize.width;
+ }
- <div data-role="tokentextarea" data-link="#pageId">
- </div>
+ if ( $parent.hasClass( "ui-content" ) ) {
+ paddingValue = parseInt( $parent.css( "padding-left" ), 10 );
+ clipSize = clipSize - ( paddingValue || 0 );
+ paddingValue = parseInt( $parent.css( "padding-right" ), 10 );
+ clipSize = clipSize - ( paddingValue || 0 );
+ } else {
+ clipSize = self._$clip.width();
+ }
+ return clipSize;
+ },
- <div data-role="tokentextarea" data-link="fileName.html" data-dom-cache="true">
- </div>
-*/
-/**
- @event select
- The select event is fired when a token text area widget button is selected:
+ _calculateClipHeight : function () {
+ var self = this,
+ $parent = self._$clip.parent(),
+ header = null,
+ footer = null,
+ paddingValue = 0,
+ clipSize = $( window ).height();
- <div data-role="tokentextarea">
- </div>
- $(".selector").on("select", function(event, ui)
- {
- // Handle the select event
- });
-*/
-/**
- @event add (@since Tizen 2.1 deprecated, You can still use this event. But not recommended.)
- The add event is fired when a token text area widget button is created:
+ if ( self._inheritedSize.isDefinedHeight ) {
+ return self._inheritedSize.height;
+ }
- <div data-role="tokentextarea">
- </div>
- $(".selector").on("add", function(event, ui)
- {
- // Handle the add event
- });
-*/
-/**
- @event remove (@since Tizen 2.1 deprecated, You can still use this event. But not recommended.)
- The remove event is fired when a token text area widget button is removed:
- Restriction : "remove" event works under only "bind" event handling.
+ if ( $parent.hasClass( "ui-content" ) ) {
+ paddingValue = parseInt( $parent.css( "padding-top" ), 10 );
+ clipSize = clipSize - ( paddingValue || 0 );
+ paddingValue = parseInt( $parent.css( "padding-bottom" ), 10 );
+ clipSize = clipSize - ( paddingValue || 0 );
+ header = $parent.siblings( ".ui-header" );
+ footer = $parent.siblings( ".ui-footer" );
- <div data-role="tokentextarea">
- </div>
- $(".selector").bind("remove", function(event, ui)
- {
- // Handle the remove event
- });
-*/
-/**
- @method destroy
- The destroy method is used to remove in the current widget all the new DOM elements that you have created.
+ if ( header ) {
+ if ( header.outerHeight( true ) === null ) {
+ clipSize = clipSize - ( $( ".ui-header" ).outerHeight() || 0 );
+ } else {
+ clipSize = clipSize - header.outerHeight( true );
+ }
+ }
+ if ( footer ) {
+ clipSize = clipSize - footer.outerHeight( true );
+ }
+ } else {
+ clipSize = self._$clip.height();
+ }
+ return clipSize;
+ },
- <div data-role="tokentextarea">
- </div>
- $(".selector").tokentextarea("destroy");
+ _calculateColumnSize : function () {
+ var self = this,
+ $tempBlock,
+ $cell;
- @since Tizen2.0
-*/
-/**
- @method inputText
- The inputText method is used to manage the widget input box text. If no parameter is set, the method gets the input box text. If a parameter is set, the parameter text is set in the input box.
-
- <div data-role="tokentextarea">
- </div>
- $(".selector").tokentextarea("inputText", [text]);
-*/
-/**
- @method select
- The select method is used to select a token text area widget button based on its index value. If no index value is defined, the method returns the string of the selected block. If there are no buttons present in the widget, the method returns null.
+ $tempBlock = $( self._makeRows( 1 ) );
+ self._$view.append( $tempBlock.children().first() );
+ if ( self._direction ) {
+ // x-axis
+ self._viewSize = self._$view.width();
+ $cell = self._$view.children().first().children().first();
+ self._cellSize = $cell.outerWidth( true );
+ self._cellOtherSize = $cell.outerHeight( true );
+ } else {
+ // y-axis
+ self._viewSize = self._$view.height();
+ $cell = self._$view.children().first().children().first();
+ self._cellSize = $cell.outerHeight( true );
+ self._cellOtherSize = $cell.outerWidth( true );
+ }
+ $tempBlock.remove();
+ self._$view.children().remove();
+ },
- <div data-role="tokentextarea">
- </div>
- $(".selector").tokentextarea("select", [index]);
-*/
-/**
- @method add
- The add method is used to add a new token text area widget button with the specified label text at the specified index position. If the index parameter is not defined, the widget button is added at the bottom of the list. For example, the $(".selector").tokentextarea("add", "Tizen", 2) method call creates a new widget button labeled 'Tizen' at the third position in the widget.
+ _calculateColumnCount : function ( ) {
+ var self = this,
+ $view = self._$clip,
+ viewSize = self._direction ? $view.innerHeight() : $view.innerWidth(),
+ itemCount = 0 ;
- <div data-role="tokentextarea">
- </div>
- $(".selector").tokentextarea("add", [text], [index]);
-*/
-/**
- @method remove
- The remove method is used to remove a token text area widget button at the specified index position. If the parameter is not defined, all the widget buttons are removed.
+ if ( self._direction ) {
+ viewSize = viewSize - ( parseInt( $view.css( "padding-top" ), 10 ) + parseInt( $view.css( "padding-bottom" ), 10 ) );
+ } else {
+ viewSize = viewSize - ( parseInt( $view.css( "padding-left" ), 10 ) + parseInt( $view.css( "padding-right" ), 10 ) );
+ }
- <div data-role="tokentextarea">
- </div>
- $(".selector").tokentextarea("remove", [index]);
-*/
-/**
- @method length
- The length method is used to retrieve the number of buttons in the token text area widget:
- <div data-role="tokentextarea">
- </div>
- $(".selector").tokentextarea("length");
-*/
-/**
- @method focusIn
- The focusIn method is used to set the focus status to "focus in". This focus state enables the user to add or remove buttons in the token text area widget.
+ itemCount = parseInt( ( viewSize / self._cellOtherSize ), 10 );
+ return itemCount > 0 ? itemCount : 1 ;
+ },
- <div data-role="tokentextarea">
- </div>
- $(".selector").tokentextarea("focusIn");
-*/
-/**
- @method focusOut
- The focusOut method is used to set the focus status to "focus out". In this focus state, the user cannot manage the buttons in the widget, all the buttons are removed, and a message is displayed.
+ // Read the position of clip form property ('webkit-transform').
+ // @return : number - position of clip.
+ _getClipPosition : function () {
+ var self = this,
+ matrix = null,
+ contents = null,
+ result = -self._cellSize,
+ $scrollview = self._$view.closest( ".ui-scrollview-view" );
- <div data-role="tokentextarea">
- </div>
- $(".selector").tokentextarea("focusOut");
-*/
-( function ( $, window, document, undefined ) {
- $.widget( "tizen.tokentextarea", $.mobile.widget, {
- _focusStatus : null,
- _items : null,
- _viewWidth : 0,
- _reservedWidth : 0,
- _currentWidth : 0,
- _fontSize : 0,
- _anchorWidth : 0,
- _labelWidth : 0,
- _marginWidth : 0,
- options : {
- label : "To : ",
- link : null,
- description : "+ {0}"
+ if ( $scrollview ) {
+ matrix = $scrollview.css( "-webkit-transform" );
+ contents = matrix.substr( 7 );
+ contents = contents.substr( 0, contents.length - 1 );
+ contents = contents.split( ', ' );
+ result = Math.abs( contents [5] );
+ }
+ return result;
},
- _create : function () {
+ //----------------------------------------------------//
+ // DOM Element handle //
+ //----------------------------------------------------//
+ _makeRows : function ( count ) {
var self = this,
- $view = this.element,
- role = $view.jqmData( "role" ),
- option = this.options,
- className = "ui-tokentextarea-link",
- inputbox = $( document.createElement( "input" ) ),
- labeltag = $( document.createElement( "span" ) ),
- moreBlock = $( document.createElement( "a" ) );
-
- $view.hide().empty().addClass( "ui-" + role );
+ index = 0,
+ row = null,
+ wrapper = null;
- // create a label tag.
- $( labeltag ).text( option.label ).addClass( "ui-tokentextarea-label" ).attr( "tabindex", 0 );
- $view.append( labeltag );
+ wrapper = self._createElement( "div" );
+ wrapper.setAttribute( "class", "ui-scrollview-view" );
+ for ( index = 0; index < count ; index += 1 ) {
+ row = self._makeRow( index );
+ if ( self._direction ) {
+ row.style.top = 0;
+ row.style.left = index * self._cellSize;
+ }
+ wrapper.appendChild( row );
+ }
+ return wrapper;
+ },
- // create a input tag
- $( inputbox ).addClass( "ui-tokentextarea-input ui-tokentextarea-input-visible ui-input-text ui-body-s" ).attr( "role", "textbox" );
- $view.append( inputbox );
+ // make a single row block
+ _makeRow : function ( rowIndex ) {
+ var self = this,
+ index = rowIndex * self._itemCount,
+ colIndex = 0,
+ blockClassName = self._direction ? "ui-virtualgrid-wrapblock-x" : "ui-virtualgrid-wrapblock-y",
+ wrapBlock = self._createElement( "div" ),
+ strWrapInner = "",
+ attrName = self._direction ? "top" : "left";
- // create a anchor tag.
- if ( option.link === null || $.trim( option.link ).length < 1 || $( option.link ).length === 0 ) {
- className += "-dim";
+ for ( colIndex = 0; colIndex < self._itemCount; colIndex++ ) {
+ strWrapInner += self._makeHtmlData( index, colIndex, attrName );
+ index += 1;
}
- $( moreBlock ).attr( "data-role", "button" )
- .buttonMarkup( {
- inline: true,
- icon: "plus",
- style: "circle"
- })
- .attr( { "href" : $.trim( option.link ), "tabindex" : 0 } )
- .addClass( "ui-tokentextarea-link-base" )
- .addClass( className )
- .find( "span.ui-btn-text" )
- .text( "Add recipient" );
+ wrapBlock.innerHTML = strWrapInner;
+ wrapBlock.setAttribute( "class", blockClassName );
+ wrapBlock.setAttribute( "row-index", String( rowIndex ) );
+ self._fragment.appendChild( wrapBlock );
+ return wrapBlock;
+ },
- // append default htmlelements to main widget.
- $view.append( moreBlock );
+ _makeHtmlData : function ( dataIndex, colIndex, attrName ) {
+ var self = this,
+ htmlStr = "",
+ itemData = null;
- // bind a event
- this._bindEvents();
- self._focusStatus = "init";
- // display widget
- $view.show();
+ itemData = self._itemData( dataIndex );
+ if ( itemData ) {
+ htmlStr = self._getConvertedTmplStr( itemData );
+ htmlStr = self._insertPosToTmplStr( htmlStr, attrName, ( colIndex * self._cellOtherSize ) );
+ }
- // assign global variables
- self._viewWidth = $view.innerWidth();
- self._reservedWidth += self._calcBlockWidth( moreBlock );
- self._reservedWidth += self._calcBlockWidth( labeltag );
- self._fontSize = parseInt( $( moreBlock ).css( "font-size" ), 10 );
- self._currentWidth = self._reservedWidth;
- self._modifyInputBoxWidth();
+ return htmlStr;
},
- // bind events
- _bindEvents : function () {
- var self = this,
- $view = self.element,
- option = self.options,
- inputbox = $view.find( ".ui-tokentextarea-input" ),
- moreBlock = $view.find( ".ui-tokentextarea-link-base" ),
- isSeparator = false;
+ _insertPosToTmplStr : function ( tmplStr, attrName, posVal ) {
+ var tagCloseIdx = tmplStr.indexOf( '>' ),
+ classIdx = -1,
+ firstPart,
+ lastPart,
+ result,
+ found = false,
+ targetIdx = 0,
+ firstPartLen,
+ i = 0;
- // delegate a event to HTMLDivElement(each block).
- $view.delegate( "div", "click", function ( event ) {
- if ( $( this ).hasClass( "ui-tokentextarea-sblock" ) ) {
- // If block is selected, it will be removed.
- self._removeTextBlock();
- }
+ if ( tagCloseIdx === -1 ) {
+ return;
+ }
- var lockBlock = $view.find( "div.ui-tokentextarea-sblock" );
- if ( typeof lockBlock !== "undefined" ) {
- lockBlock.removeClass( "ui-tokentextarea-sblock" ).addClass( "ui-tokentextarea-block" );
+ firstPart = tmplStr.slice( 0, tagCloseIdx );
+ lastPart = tmplStr.slice( tagCloseIdx, tmplStr.length );
+
+ classIdx = firstPart.indexOf( 'class' );
+
+ if ( classIdx !== -1 ) {
+ firstPartLen = firstPart.length;
+ for ( i = classIdx + 6; i < firstPartLen; i++ ) {
+ if ( firstPart.charAt( i ) === "\"" || firstPart.charAt( i ) === "\'" ) {
+ if ( found === false ) {
+ found = true;
+ } else {
+ targetIdx = i;
+ break;
+ }
+ }
}
- $( this ).removeClass( "ui-tokentextarea-block" ).addClass( "ui-tokentextarea-sblock" );
- $view.trigger( "select" );
- });
+ result = firstPart.slice( 0, targetIdx ) + " virtualgrid-item" + firstPart.slice( targetIdx, firstPartLen ) + lastPart;
+ } else {
+ result = firstPart + " class=\"virtualgrid-item\"" + lastPart;
+ }
- inputbox.bind( "keyup", function ( event ) {
- // 8 : backspace
- // 13 : Enter
- // 186 : semi-colon
- // 188 : comma
- var keyValue = event.keyCode,
- valueString = $( inputbox ).val(),
- valueStrings = [],
- index;
+ if ( !isNaN( posVal ) ) {
+ result = result.replace( '>', " style=\"" + attrName + ": " + String( posVal ) + "px\">");
+ }
+
+ return result;
+ },
+
+ _increaseRow : function ( num ) {
+ var self = this,
+ rotation = self.options.rotation,
+ totalRowCnt = self._totalRowCnt,
+ rowView = self._$view[ 0 ],
+ firstRow = null,
+ lastRow = rowView.lastChild,
+ row = null,
+ headRowIndex = 0,
+ tailRowIndex = 0,
+ i;
- if ( keyValue === 8 ) {
- if ( valueString.length === 0 ) {
- self._validateTargetBlock();
- }
- } else if ( keyValue === 13 || keyValue === 186 || keyValue === 188 ) {
- if ( valueString.length !== 0 ) {
- // split content by separators(',', ';')
- valueStrings = valueString.split ( /[,;]/ );
- for ( index = 0; index < valueStrings.length; index++ ) {
- if ( valueStrings[index].length !== 0 && valueStrings[index].replace( /\s/g, "" ).length !== 0 ) {
- self._addTextBlock( valueStrings[index] );
- }
- }
+ if ( !lastRow ) {
+ return;
+ }
+
+ tailRowIndex = parseInt( lastRow.getAttribute( "row-index" ), 10 );
+ if ( !rotation ) {
+ firstRow = rowView.firstChild;
+ headRowIndex = parseInt( firstRow.getAttribute( "row-index" ), 10 );
+ }
+
+ for ( i = 0 ; i < num ; ++i ) {
+ if ( tailRowIndex >= totalRowCnt - 1 && !rotation ) {
+ if ( headRowIndex == 0 ) {
+ break;
}
- inputbox.val( "" );
- isSeparator = true;
+
+ row = self._makeRow( --headRowIndex );
+ rowView.insertBefore( row, firstRow );
+ firstRow = row;
} else {
- self._unlockTextBlock();
+ row = self._makeRow( circularNum( ++tailRowIndex, totalRowCnt ) );
+ rowView.appendChild( row );
}
- return !isSeparator;
- });
-
- moreBlock.click( function () {
- if ( $( moreBlock ).hasClass( "ui-tokentextarea-link-dim" ) ) {
- return;
+ if ( self._direction ) {
+ $( row ).width( self._cellSize );
+ } else {
+ $( row ).height( self._cellSize );
}
+ }
+ },
- $( inputbox ).removeClass( "ui-tokentextarea-input-visible" ).addClass( "ui-tokentextarea-input-invisible" );
+ _decreaseRow : function ( num ) {
+ var self = this,
+ rowView = self._$view[ 0 ],
+ i;
- $.mobile.changePage( option.link, {
- transition: "slide",
- reverse: false,
- changeHash: false
- });
- });
+ for ( i = 0 ; i < num ; ++i ) {
+ rowView.removeChild( rowView.lastChild );
+ }
+ },
- $( document ).bind( "pagechange.mbe", function ( event ) {
- if ( $view.innerWidth() === 0 ) {
- return ;
- }
- self._modifyInputBoxWidth();
- $( inputbox ).removeClass( "ui-tokentextarea-input-invisible" ).addClass( "ui-tokentextarea-input-visible" );
- });
+ _replaceRows : function ( curCnt, prevCnt, maxCnt, clipPosition ) {
+ var self = this,
+ $rows = self._$view.children(),
+ prevRowIndex = 0,
+ rowIndex = 0,
+ diffRowCnt = 0,
+ targetCnt = 1,
+ filterCondition = ( self._filterRatio * self._cellSize ) + self._cellSize,
+ idx = 0;
- $view.bind( "click", function ( event ) {
- if ( self._focusStatus === "focusOut" ) {
- self.focusIn();
- }
- });
- },
+ if ( filterCondition < clipPosition ) {
+ targetCnt += 1;
+ }
- // create a textbutton and append this button to parent layer.
- // @param arg1 : string
- // @param arg2 : index
- _addTextBlock : function ( messages, blockIndex ) {
- if ( arguments.length === 0 ) {
- return;
+ prevRowIndex = parseInt( $( $rows[targetCnt] ).attr( "row-index" ), 10 );
+ if ( prevRowIndex === 0 ) {
+ // only top.
+ rowIndex = maxCnt - targetCnt;
+ } else {
+ rowIndex = Math.round( ( prevRowIndex * prevCnt ) / curCnt );
+ if ( rowIndex + self._rowsPerView >= maxCnt ) {
+ // only bottom.
+ rowIndex = maxCnt - self._rowsPerView;
+ }
+ diffRowCnt = prevRowIndex - rowIndex;
+ rowIndex -= targetCnt;
}
- if ( !messages ) {
- return ;
+ for ( idx = 0 ; idx < $rows.length ; idx += 1 ) {
+ self._replaceRow( $rows[idx], circularNum( rowIndex, self._totalRowCnt ) );
+ rowIndex++;
}
+ return -diffRowCnt;
+ },
+ _replaceRow : function ( block, index ) {
var self = this,
- $view = self.element,
- content = messages,
- index = blockIndex,
- blocks = null,
- textBlock = null;
+ tempBlocks = null;
- if ( self._viewWidth === 0 ) {
- self._viewWidth = $view.innerWidth();
+ while ( block.hasChildNodes() ) {
+ block.removeChild( block.lastChild );
}
- // Create a new text HTMLDivElement.
- textBlock = $( document.createElement( 'div' ) );
+ tempBlocks = self._makeRow( index );
+ while ( tempBlocks.children.length ) {
+ block.appendChild( tempBlocks.children[0] );
+ }
+ block.setAttribute( "row-index", tempBlocks.getAttribute( "row-index" ) );
+ tempBlocks.parentNode.removeChild( tempBlocks );
+ },
- textBlock.text( content ).addClass( "ui-tokentextarea-block" ).attr( { "aria-label" : "double tap to edit", "tabindex" : 0 } );
- textBlock.css( {'visibility': 'hidden'} );
+ _createElement : function ( tag ) {
+ var element = document.createElement( tag );
- blocks = $view.find( "div" );
- if ( index !== null && index <= blocks.length ) {
- $( blocks[index] ).before( textBlock );
- } else {
- $view.find( ".ui-tokentextarea-input" ).before( textBlock );
+ this._fragment.appendChild( element );
+ return element;
+ },
+
+ _getObjectNames : function ( obj ) {
+ var properties = [],
+ name = "";
+
+ for ( name in obj ) {
+ properties.push( name );
}
+ this._properties = properties;
+ },
- textBlock = self._ellipsisTextBlock( textBlock );
- textBlock.css( {'visibility': 'visible'} );
+ _getConvertedTmplStr : function ( data ) {
+ var self = this,
+ dataProperties = self._properties,
+ i = 0,
+ plainMsg,
+ ret = "";
- self._modifyInputBoxWidth();
+ if ( !data ) {
+ return ;
+ }
- textBlock.hide();
- textBlock.fadeIn( "fast", function () {
- self._currentWidth += self._calcBlockWidth( textBlock );
- $view.trigger( "add" );
- });
+ plainMsg = self._templateText;
+ for ( i = 0; i < dataProperties.length; i++ ) {
+ plainMsg = self._strReplace( plainMsg, "${" + dataProperties[ i ] + "}" , data[ dataProperties[ i ] ] );
+ }
+ plainMsg = self._changeImgSrcAriaAttrFromTmpl( plainMsg );
+
+ return plainMsg;
},
- _removeTextBlock : function () {
+ _changeImgSrcAriaAttrFromTmpl : function ( plainMsg ) {
var self = this,
- $view = this.element,
- lockBlock = $view.find( "div.ui-tokentextarea-sblock" ),
- _temp = null,
- _dummy = function () {};
+ ret = "",
+ targetTagIdx,
+ beforeTargetTag = "",
+ afterTargetTag = "",
+ imgFileName,
+ imgSrcSlashIdx,
+ temp,
+ srcRegExpResult;
- if ( lockBlock !== null && lockBlock.length > 0 ) {
- self._currentWidth -= self._calcBlockWidth( lockBlock );
+ temp = plainMsg;
+ targetTagIdx = temp.indexOf( "$ARIA-IMG-SRC-ALT$" );
+ while ( targetTagIdx !== -1 ) {
+ imgFileName = "";
+ beforeTargetTag = beforeTargetTag + temp.slice( 0, targetTagIdx + 19 );
+ afterTargetTag = temp.slice( targetTagIdx + 19, temp.length );
+ srcRegExpResult = afterTargetTag.match( imgTagSrcAttrRE );
+ if ( srcRegExpResult ) {
+ imgSrcSlashIdx = srcRegExpResult[0].lastIndexOf( "/" );
+ if ( imgSrcSlashIdx !== -1 ) {
+ imgFileName = srcRegExpResult[0].slice( imgSrcSlashIdx + 1, -1 );
+ }
+ }
+ beforeTargetTag = beforeTargetTag.replace( "$ARIA-IMG-SRC-ALT$", imgFileName );
+ temp = afterTargetTag;
+ targetTagIdx = temp.indexOf( "$ARIA-IMG-SRC-ALT$" );
+ ret = beforeTargetTag + afterTargetTag;
+ }
- lockBlock.fadeOut( "fast", function () {
- lockBlock.remove();
- self._modifyInputBoxWidth();
- });
+ if ( ret === "" ) {
+ ret = plainMsg;
+ }
- this._eventRemoveCall = true;
- if ( $view[0].remove ) {
- _temp = $view[0].remove;
- $view[0].remove = _dummy;
+ return ret;
+ },
+
+ _insertAriaAttrToTmpl : function ( plainMsg ) {
+ var ret = "",
+ targetTagIdx,
+ beforeTargetTag = "",
+ afterTargetTag = "",
+ temp;
+
+ temp = plainMsg.replace( "<div", "<div tabindex=\"0\" aria-selected=\"true\"" );
+ targetTagIdx = temp.indexOf( "<img" );
+ if ( targetTagIdx !== -1 ) {
+ while ( targetTagIdx !== -1 ) {
+ beforeTargetTag = beforeTargetTag + temp.slice( 0, targetTagIdx + 4 );
+ afterTargetTag = temp.slice( targetTagIdx + 4, temp.length );
+ beforeTargetTag = beforeTargetTag + " role=\"img\" alt=\"$ARIA-IMG-SRC-ALT$\"";
+ temp = afterTargetTag;
+ targetTagIdx = temp.indexOf( "<img" );
+ ret = beforeTargetTag + afterTargetTag;
}
- $view.triggerHandler( "remove" );
- if ( _temp) {
- $view[0].remove = _temp;
+ temp = ret;
+ targetTagIdx = temp.indexOf( "<span" );
+ beforeTargetTag = "";
+ while ( targetTagIdx !== -1 ) {
+ beforeTargetTag = beforeTargetTag + temp.slice( 0, targetTagIdx + 5 );
+ afterTargetTag = temp.slice( targetTagIdx + 5, temp.length );
+ beforeTargetTag = beforeTargetTag + " aria-hidden=\"true\" tabindex=\"-1\"";
+ temp = afterTargetTag;
+ targetTagIdx = temp.indexOf( "<span" );
+ ret = beforeTargetTag + afterTargetTag;
}
- this._eventRemoveCall = false;
- } else {
- $view.find( "div:last" ).removeClass( "ui-tokentextarea-block" ).addClass( "ui-tokentextarea-sblock" );
}
- },
- _calcBlockWidth : function ( block ) {
- return $( block ).outerWidth( true );
+ if ( ret === "" ) {
+ ret = plainMsg;
+ }
+
+ return ret;
},
- _unlockTextBlock : function () {
- var $view = this.element,
- lockBlock = $view.find( "div.ui-tokentextarea-sblock" );
- if ( lockBlock ) {
- lockBlock.removeClass( "ui-tokentextarea-sblock" ).addClass( "ui-tokentextarea-block" );
+ _strReplace : function ( plainMsg, stringToFind, stringToReplace ) {
+ var temp = plainMsg,
+ index = plainMsg.indexOf( stringToFind );
+ while ( index !== -1 ) {
+ temp = temp.replace( stringToFind, stringToReplace );
+ index = temp.indexOf( stringToFind );
}
- },
+ return temp;
+ }
- // call when remove text block by backspace key.
- _validateTargetBlock : function () {
- var self = this,
- $view = self.element,
- lastBlock = $view.find( "div:last" ),
- tmpBlock = null;
+ } );
- if ( lastBlock.hasClass( "ui-tokentextarea-sblock" ) ) {
- self._removeTextBlock();
- } else {
- tmpBlock = $view.find( "div.ui-tokentextarea-sblock" );
- tmpBlock.removeClass( "ui-tokentextarea-sblock" ).addClass( "ui-tokentextarea-block" );
- lastBlock.removeClass( "ui-tokentextarea-block" ).addClass( "ui-tokentextarea-sblock" );
- }
- },
+ $( document ).bind( "pagecreate create", function ( e ) {
+ $( ":jqmData(role='virtualgrid')" ).virtualgrid();
+ } );
+} ( jQuery, window, document ) );
- _ellipsisTextBlock : function ( textBlock ) {
- var self = this,
- $view = self.element,
- maxWidth = self._viewWidth / 2;
- if ( self._calcBlockWidth( textBlock ) > maxWidth ) {
- $( textBlock ).width( maxWidth - self._marginWidth );
- }
- return textBlock;
- },
+(function($, undefined) {
- _modifyInputBoxWidth : function () {
- var self = this,
- $view = self.element,
- margin = 0,
- labelWidth = 0,
- anchorWidth = 0,
- inputBoxWidth = 0,
- blocks = $view.find( "div" ),
- blockWidth = 0,
- index = 0,
- inputBoxMargin = 10,
- inputBox = $view.find( ".ui-tokentextarea-input" );
+ensureNS("jQuery.mobile.tizen");
- if ( $view.width() === 0 ) {
- return;
- }
+jQuery.extend( jQuery.mobile.tizen,
+{
+ _widgetPrototypes: {},
- if ( self._labelWidth === 0 ) {
- self._labelWidth = $view.find( ".ui-tokentextarea-label" ).outerWidth( true );
- self._anchorWidth = $view.find( ".ui-tokentextarea-link-base" ).outerWidth( true );
- self._marginWidth = parseInt( ( $( inputBox ).css( "margin-left" ) ), 10 );
- self._marginWidth += parseInt( ( $( inputBox ).css( "margin-right" ) ), 10 );
- self._viewWidth = $view.innerWidth();
- }
+ /*
+ * load the prototype for a widget.
+ *
+ * If @widget is a string, the function looks for @widget.prototype.html in the proto-html/ subdirectory of the
+ * framework's current theme and loads the file via AJAX into a string. Note that the file will only be loaded via
+ * AJAX once. If two widget instances based on the same @widget value are to be constructed, the second will be
+ * constructed from the cached copy of the prototype of the first instance.
+ *
+ * If @widget is not a string, it is assumed to be a hash containing at least one key, "proto", the value of which is
+ * the string to be used for the widget prototype. if another key named "key" is also provided, it will serve as the
+ * key under which to cache the prototype, so it need not be rendered again in the future.
+ *
+ * Given the string for the widget prototype, the following patterns occurring in the string are replaced:
+ *
+ * "${FRAMEWORK_ROOT}" - replaced with the path to the root of the framework
+ *
+ * The function then creates a jQuery $("<div>") object containing the prototype from the string.
+ *
+ * If @ui is not provided, the jQuery object containing the prototype is returned.
+ *
+ * If @ui is provided, it is assumed to be a (possibly multi-level) hash containing CSS selectors. For every level of
+ * the hash and for each string-valued key at that level, the CSS selector specified as the value is sought in the
+ * prototype jQuery object and, if found, the value of the key is replaced with the jQuery object resulting from the
+ * search. Additionally, if the CSS selector is of the form "#widgetid", the "id" attribute will be removed from the
+ * elements contained within the resulting jQuery object. The resulting hash is returned.
+ *
+ * Examples:
+ *
+ * 1.
+ * $.mobile.tizen.loadPrototype("mywidget") => Returns a <div> containing the structure from the file
+ * mywidget.prototype.html located in the current theme folder of the current framework.
+ *
+ * 2. $.mobile.tizen.loadPrototype("mywidget", ui):
+ * where ui is a hash that looks like this:
+ * ui = {
+ * element1: "<css selector 1>",
+ * element2: "<css selector 2>",
+ * group1: {
+ * group1element1: "<css selector 3>",
+ * group1element1: "<css selector 4>"
+ * }
+ * ...
+ * }
+ *
+ * In this case, after loading the prototype as in Example 1, loadPrototype will traverse @ui and replace the CSS
+ * selector strings with the result of the search for the selector string upon the prototype. If any of the CSS
+ * selectors are of the form "#elementid" then the "id" attribute will be stripped from the elements selected. This
+ * means that they will no longer be accessible via the selector used initially. @ui is then returned thus modified.
+ */
- margin = self._marginWidth;
- labelWidth = self._labelWidth;
- anchorWidth = self._anchorWidth;
- inputBoxWidth = self._viewWidth - labelWidth;
+ loadPrototype: function(widget, ui) {
+ var ret = undefined,
+ theScriptTag = $("script[data-framework-version][data-framework-root][data-framework-theme]"),
+ frameworkRootPath = theScriptTag.attr("data-framework-root") + "/" +
+ theScriptTag.attr("data-framework-version") + "/";
- for ( index = 0; index < blocks.length; index += 1 ) {
- blockWidth = self._calcBlockWidth( blocks[index] );
+ function replaceVariables(s) {
+ return s.replace(/\$\{FRAMEWORK_ROOT\}/g, frameworkRootPath);
+ }
- if ( blockWidth >= inputBoxWidth + anchorWidth ) {
- if ( blockWidth >= inputBoxWidth ) {
- inputBoxWidth = self._viewWidth - blockWidth;
- } else {
- inputBoxWidth = self._viewWidth;
- }
- } else {
- if ( blockWidth > inputBoxWidth ) {
- inputBoxWidth = self._viewWidth - blockWidth;
- } else {
- inputBoxWidth -= blockWidth;
- }
- }
- }
+ function fillObj(obj, uiProto) {
+ var selector;
- inputBoxWidth -= margin;
- if ( inputBoxWidth < anchorWidth * 2 ) {
- inputBoxWidth = self._viewWidth - margin;
- }
- $( inputBox ).width( inputBoxWidth - anchorWidth - inputBoxMargin );
- },
+ for (var key in obj) {
+ if (typeof obj[key] === "string") {
+ selector = obj[key];
+ obj[key] = uiProto.find(obj[key]);
+ if (selector.substring(0, 1) === "#")
+ obj[key].removeAttr("id");
+ }
+ else
+ if (typeof obj[key] === "object")
+ obj[key] = fillObj(obj[key], uiProto);
+ }
+ return obj;
+ }
- _stringFormat : function ( expression ) {
- var pattern = null,
- message = expression,
- i = 0;
- for ( i = 1; i < arguments.length; i += 1 ) {
- pattern = "{" + ( i - 1 ) + "}";
- message = message.replace( pattern, arguments[i] );
- }
- return message;
- },
+ /* If @widget is a string ... */
+ if (typeof widget === "string") {
+ /* ... try to use it as a key into the cached prototype hash ... */
+ ret = $.mobile.tizen._widgetPrototypes[widget];
+ if (ret === undefined) {
+ /* ... and if the proto was not found, try to load its definition ... */
+ var protoPath = frameworkRootPath + "proto-html" + "/" +
+ theScriptTag.attr("data-framework-theme");
+ $.ajax({
+ url: protoPath + "/" + widget + ".prototype.html",
+ async: false,
+ dataType: "html"
+ })
+ .success(function(data, textStatus, jqXHR) {
+ /* ... and if loading succeeds, cache it and use a copy of it ... */
+ $.mobile.tizen._widgetPrototypes[widget] = $("<div>").html(replaceVariables(data));
+ ret = $.mobile.tizen._widgetPrototypes[widget].clone();
+ });
+ }
+ }
+ /* Otherwise ... */
+ else {
+ /* ... if a key was provided ... */
+ if (widget.key !== undefined)
+ /* ... try to use it as a key into the cached prototype hash ... */
+ ret = $.mobile.tizen._widgetPrototypes[widget.key];
- _resizeBlocks : function () {
- var self = this,
- $view = self.element,
- blocks = $view.find( "div" ),
- index = 0;
+ /* ... and if the proto was not found in the cache ... */
+ if (ret === undefined) {
+ /* ... and a proto definition string was provided ... */
+ if (widget.proto !== undefined) {
+ /* ... create a new proto from the definition ... */
+ ret = $("<div>").html(replaceVariables(widget.proto));
+ /* ... and if a key was provided ... */
+ if (widget.key !== undefined)
+ /* ... cache a copy of the proto under that key */
+ $.mobile.tizen._widgetPrototypes[widget.key] = ret.clone();
+ }
+ }
+ else
+ /* otherwise, if the proto /was/ found in the cache, return a copy of it */
+ ret = ret.clone();
+ }
- for ( index = 0 ; index < blocks.length ; index += 1 ) {
- $( blocks[index] ).css( "width", "auto" );
- blocks[index] = self._ellipsisTextBlock( blocks[index] );
- }
- },
+ /* If the prototype was found/created successfully ... */
+ if (ret != undefined)
+ /* ... and @ui was provided */
+ if (ui != undefined)
+ /* ... return @ui, but replace the CSS selectors it contains with the elements they select */
+ ret = fillObj(ui, ret);
- //---------------------------------------------------- //
- // Public Method //
- //----------------------------------------------------//
- //
- // Focus In Event
- //
- focusIn : function () {
- if ( this._focusStatus === "focusIn" ) {
- return;
- }
+ return ret;
+ }
+});
+})(jQuery);
- var $view = this.element;
- $view.find( ".ui-tokentextarea-label" ).attr( "tabindex", 0 ).show();
- $view.find( ".ui-tokentextarea-desclabel" ).remove();
- $view.find( "div.ui-tokentextarea-sblock" ).removeClass( "ui-tokentextarea-sblock" ).addClass( "ui-tokentextarea-block" );
- $view.find( "div" ).attr( { "aria-label" : "double tap to edit", "tabindex" : 0 } ).show();
- $view.find( ".ui-tokentextarea-input" ).removeClass( "ui-tokentextarea-input-invisible" ).addClass( "ui-tokentextarea-input-visible" ).attr( "tabindex", 0 );
- $view.find( "a" ).attr( "tabindex", 0 ).show();
- // change focus state.
- this._modifyInputBoxWidth();
- this._focusStatus = "focusIn";
- $view.removeClass( "ui-tokentextarea-focusout" ).addClass( "ui-tokentextarea-focusin" ).removeAttr( "tabindex" );
- $view.find( ".ui-tokentextarea-input" ).focus();
- },
+/* ***************************************************************************
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software" ),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ * ***************************************************************************
+ *
+ * Author: Minkyu Kang <mk7.kang@samsung.com>
+ * Author: Koeun Choi <koeun.choi@samsung.com>
+ */
- focusOut : function () {
- if ( this._focusStatus === "focusOut" ) {
- return;
- }
+/*
+ * Progress widget
+ *
+ * HTML Attributes
+ *
+ * data-role: set to 'progress'.
+ * data-style: 'circle' or 'pending'.
+ *
+ * APIs
+ *
+ * show(): show the progress.
+ * hide(): hide the progress.
+ * running(boolean): start or stop the running.
+ *
+ * Events
+ *
+ * N/A
+ *
+ * Examples
+ *
+ * <li data-role="list-divider">Progress Pending</li>
+ * <li>
+ * <div data-role="progress" data-style="pending" id="pending"></div>
+ * </li>
+ * <li data-role="list-divider">Progress ~ing</li>
+ * <li>
+ * <div data-role="progress" data-style="circle" id="progress"></div>Loading..
+ * </li>
+ *
+ * $("#pending").progress( "running", true );
+ * $("#progress").progress( "running", true );
+ *
+ */
- var self = this,
- $view = self.element,
- tempBlock = null,
- stateBlock = null,
- numBlock = null,
- statement = "",
- index = 0,
- lastIndex = 10,
- label = $view.find( ".ui-tokentextarea-label" ),
- more = $view.find( "span" ),
- blocks = $view.find( "div" ),
- currentWidth = $view.outerWidth( true ) - more.outerWidth( true ) - label.outerWidth( true ),
- blockWidth = 0;
+/**
+ @class Progress
+ The progress widget shows that an operation is in progress. <br/>To add a progress widget to the application, use the following code:
- label.removeAttr( "tabindex" );
- $view.find( ".ui-tokentextarea-input" ).removeClass( "ui-tokentextarea-input-visible" ).addClass( "ui-tokentextarea-input-invisible" ).removeAttr( "tabindex" );
- $view.find( "a" ).removeAttr( "tabindex" ).hide();
- blocks.removeAttr( "aria-label" ).removeAttr( "tabindex" ).hide();
+ <div data-role="progress" data-style="circle"></div>
+*/
+/**
+ @property {String} data-style
+ Sets the style of the progress widget. The style options are pending (pending progress style) and circle (circular progress status style).
+*/
+/**
+ @method running
+ The running method is used to set the current running state of the pending or circular progress widget:
- currentWidth = currentWidth - self._reservedWidth;
+ <div id="foo" data-role="progress" data-style="pending"></div>
+ $("#foo").progress("running", true);
+*/
+/**
+ @method show
+ The show method is used to show the pending or circular progress widget:
- for ( index = 0; index < blocks.length; index++ ) {
- blockWidth = $( blocks[index] ).outerWidth( true );
- if ( currentWidth - blockWidth <= 0 ) {
- lastIndex = index - 1;
- break;
- }
+ <div id="foo" data-role="progress" data-style="pending"></div>
+ $("#foo").progress("show");
+*/
+/**
+ @method hide
+ The show method is used to hide the pending or circular progress widget:
- $( blocks[index] ).show();
- currentWidth -= blockWidth;
- }
+ <div id="foo" data-role="progress" data-style="pending"></div>
+ $("#foo").progress("hide");
+*/
- if ( lastIndex !== blocks.length ) {
- statement = self._stringFormat( self.options.description, blocks.length - lastIndex - 1 );
- tempBlock = $( document.createElement( 'span' ) );
- tempBlock.addClass( "ui-tokentextarea-desclabel" ).attr( { "aria-label" : "more, double tap to edit", "tabindex" : "-1" } );
- stateBlock = $( document.createElement( 'span' ) ).text( statement ).attr( "aria-hidden", "true" );
- numBlock = $( document.createElement( 'span' ) ).text( blocks.length - lastIndex - 1 ).attr( "aria-label", "and" ).css( "visibility", "hidden" );
- tempBlock.append( stateBlock );
- tempBlock.append( numBlock );
- $( blocks[lastIndex] ).after( tempBlock );
- }
+(function ( $, window, undefined ) {
+ $.widget( "tizen.progress", $.mobile.widget, {
+ options: {
+ style: "circle",
+ running: false
+ },
- // update focus state
- this._focusStatus = "focusOut";
- $view.removeClass( "ui-tokentextarea-focusin" ).addClass( "ui-tokentextarea-focusout" ).attr( "tabindex", 0 );
+ show: function () {
+ $( this.element ).show();
},
- inputText : function ( message ) {
- var $view = this.element;
+ hide: function () {
+ $( this.element ).hide();
+ },
- if ( arguments.length === 0 ) {
- return $view.find( ".ui-tokentextarea-input" ).val();
+ _start: function () {
+ if ( !this.init ) {
+ $( this.element ).append( this.html );
+ this.init = true;
}
- $view.find( ".ui-tokentextarea-input" ).val( message );
- return message;
- },
- select : function ( index ) {
- var $view = this.element,
- lockBlock = null,
- blocks = null;
+ this.show();
- if ( this._focusStatus === "focusOut" ) {
- return;
- }
+ $( this.element )
+ .find( ".ui-progress-" + this.options.style )
+ .addClass( this.runningClass );
+ },
- if ( arguments.length === 0 ) {
- // return a selected block.
- lockBlock = $view.find( "div.ui-tokentextarea-sblock" );
- if ( lockBlock ) {
- return lockBlock.text();
- }
- return null;
- }
- // 1. unlock all blocks.
- this._unlockTextBlock();
- // 2. select pointed block.
- blocks = $view.find( "div" );
- if ( blocks.length > index ) {
- $( blocks[index] ).removeClass( "ui-tokentextarea-block" ).addClass( "ui-tokentextarea-sblock" );
- $view.trigger( "select" );
- }
- return null;
+ _stop: function () {
+ $( this.element )
+ .find( ".ui-progress-" + this.options.style )
+ .removeClass( this.runningClass );
},
- add : function ( message, position ) {
- if ( this._focusStatus === "focusOut" ) {
- return;
+ running: function ( running ) {
+ if ( running === undefined ) {
+ return this.options.running;
}
- this._addTextBlock( message, position );
+ this._setOption( "running", running );
},
- remove : function ( position ) {
- var self = this,
- $view = this.element,
- blocks = $view.find( "div" ),
- index = 0,
- _temp = null,
- _dummy = function () {};
+ _setOption: function ( key, value ) {
+ if ( key === "running" ) {
+ if ( typeof value !== "boolean" ) {
+ window.alert( "running value MUST be boolean type!" );
+ return;
+ }
- if ( this._focusStatus === "focusOut" ) {
- return;
+ this.options.running = value;
+ this._refresh();
}
+ },
- if ( arguments.length === 0 ) {
- blocks.fadeOut( "fast", function () {
- blocks.remove();
- self._modifyInputBoxWidth();
- self._trigger( "clear" );
- });
- } else if ( !isNaN( position ) ) {
- // remove selected button
- index = ( ( position < blocks.length ) ? position : ( blocks.length - 1 ) );
-
- $( blocks[index] ).fadeOut( "fast", function () {
- $( blocks[index] ).remove();
- self._modifyInputBoxWidth();
- });
-
- this._eventRemoveCall = true;
- if ( $view[0].remove ) {
- _temp = $view[0].remove;
- $view[0].remove = _dummy;
- }
- $view.triggerHandler( "remove" );
- if ( _temp) {
- $view[0].remove = _temp;
- }
- this._eventRemoveCall = false;
+ _refresh: function () {
+ if ( this.options.running ) {
+ this._start();
+ } else {
+ this._stop();
}
},
- length : function () {
- return this.element.find( "div" ).length;
- },
-
- refresh : function () {
+ _create: function () {
var self = this,
- $view = this.element;
+ element = this.element,
+ style = element.jqmData( "style" ),
+ _html,
+ runningClass;
- self._viewWidth = $view.innerWidth();
- self._resizeBlocks();
- self._modifyInputBoxWidth();
- },
+ if ( style ) {
+ this.options.style = style;
+ } else {
+ style = this.options.style;
+ }
- destroy : function () {
- var $view = this.element,
- _temp = null,
- _dummy = function () {};
+ if ( style == "circle" ) {
+ $( this.element ).addClass("ui-progress-container-circle");
- if ( this._eventRemoveCall ) {
- return;
+ _html = '<div class="ui-progress-circle"></div>';
+ } else if ( style === "pending" ) {
+ $( this.element ).addClass("ui-progressbar");
+
+ _html = '<div class="ui-progressbar-bg">' +
+ '<div class="ui-progress-pending"></div>' +
+ '</div>';
}
- $view.find( ".ui-tokentextarea-label" ).remove();
- $view.find( "div" ).undelegate( "click" ).remove();
- $view.find( "a" ).remove();
- $view.find( ".ui-tokentextarea-input" ).unbind( "keyup" ).remove();
+ this.html = $( _html );
- this._eventRemoveCall = true;
- if ( $view[0].remove ) {
- _temp = $view[0].remove;
- $view[0].remove = _dummy;
- }
- $view.remove();
- if ( _temp) {
- $view[0].remove = _temp;
+ runningClass = "ui-progress-" + style + "-running";
+
+ $.extend( this, {
+ init: false,
+ runningClass: runningClass
+ } );
+
+ if ( style === "pending" ) {
+ $( this.element ).append( this.html );
+ this.init = true;
}
- this._eventRemoveCall = false;
- this._trigger( "destroy" );
+ this._refresh();
}
- });
-
- $( document ).bind( "pagecreate create", function () {
- $( ":jqmData(role='tokentextarea')" ).tokentextarea();
- });
+ } ); /* End of widget */
- $( window ).bind( "resize", function () {
- $( ":jqmData(role='tokentextarea')" ).tokentextarea( "refresh" );
- });
-} ( jQuery, window, document ) );
+ $( document ).bind( "pagecreate create", function ( e ) {
+ $( e.target ).find( ":jqmData(role='progress')" ).progress();
+ } );
+}( jQuery, this ));
-/* ***************************************************************************
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
+/*
+ * jQuery UI Progressbar @VERSION
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
*
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
+ * http://docs.jquery.com/UI/Progressbar
*
- * Author: Minkyu Kang <mk7.kang@samsung.com>
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.widget.js
+ * Original file:
+ * jquery.ui.progressbar.js
*/
+/* This is from jquery ui plugin - progressbar 11/16/2011 */
+
+
+/**
+ @class ProgressBar
+ The progress bar widget shows a control that indicates the progress percentage of an on-going operation. This widget can be scaled to fit inside a parent container.
+
+ To add a progress bar widget to the application, use the following code:
+
+ <div id="foo" data-role="progressbar"</div>
+*/
+/**
+ @event change
+ The progress bar can define a callback for the change event, which is fired when the progress value is changed:
+ <div id="foo" data-role="progressbar"></div>
+ $("#foo").bind("change", function (ev, val) {
+ Console.log("Value is changed to " + val);
+ });
+*/
+/**
+ @method value
+ You can use the value method with the pickers to set or get the current default progress bar value:
+
+ <div id="foo" data-role="progressbar"></div>
+ var oldVal = $("#foo").progressbar("value");
+ $("#foo").progressbar("value", 50);
+*/
+
+(function ( $, window, undefined ) {
+
+ $.widget( "tizen.progressbar", $.mobile.widget, {
+ options: {
+ value: 0,
+ max: 100
+ },
+
+ min: 0,
+
+ _create: function () {
+ this.element
+ .addClass( "ui-progressbar" )
+ .attr( {
+ role: "progressbar",
+ "aria-valuemin": this.min,
+ "aria-valuemax": this.options.max,
+ "aria-valuenow": this._value()
+ } );
+
+ this.valueDiv = $( "<div class='ui-progressbar-value'></div>" )
+ .appendTo( this.element );
+
+ this.valueDiv.wrap("<div class='ui-progressbar-bg'></div>");
+
+ this.oldValue = this._value();
+ this._refreshValue();
+ },
+
+ _destroy: function () {
+ this.element
+ .removeClass( "ui-progressbar" )
+ .removeAttr( "role" )
+ .removeAttr( "aria-valuemin" )
+ .removeAttr( "aria-valuemax" )
+ .removeAttr( "aria-valuenow" );
+
+ this.valueDiv.remove();
+ },
+
+ value: function ( newValue ) {
+ if ( newValue === undefined ) {
+ return this._value();
+ }
+
+ this._setOption( "value", newValue );
+ return this;
+ },
+
+ _setOption: function ( key, value ) {
+ if ( key === "value" ) {
+ this.options.value = value;
+ this._refreshValue();
+ if ( this._value() === this.options.max ) {
+ this.element.trigger( "complete" );
+ }
+ }
+ // jquery.ui.widget.js MUST be updated to new version!
+ //this._super( "_setOption", key, value );
+ },
+
+ _value: function () {
+ var val = this.options.value;
+ // normalize invalid value
+ if ( typeof val !== "number" ) {
+ val = 0;
+ }
+ return Math.min( this.options.max, Math.max( this.min, val ) );
+ },
+
+ _percentage: function () {
+ return 100 * this._value() / this.options.max;
+ },
+
+ _refreshValue: function () {
+ var value = this.value(),
+ percentage = this._percentage();
+
+ if ( this.oldValue !== value ) {
+ this.oldValue = value;
+ this.element.trigger( "change" );
+ }
+
+ this.valueDiv
+ .toggle( value > this.min )
+ .width( percentage.toFixed(0) + "%" );
+ this.element.attr( "aria-valuenow", value );
+ }
+ } );
+
+ // auto self-init widgets
+ $( document ).bind( "pagecreate", function ( e ) {
+ $( e.target ).find( ":jqmData(role='progressbar')" ).progressbar();
+ } );
+
+}( jQuery, this ) );
+
+
/*
- * Notification widget
- *
- * HTML Attributes
- *
- * data-role: set to 'notification'.
- * data-type: 'ticker' or 'popup'.
- * data-interval: time to showing. If don't set, will show infinitely.
- *
- * APIs
- *
- * open(): open the notification.
- * close(): close the notification.
- * text(text0, text1): set texts or get texts
- * icon(src): set the icon (tickernoti only)
+ * jQuery Mobile Widget @VERSION
*
- * Events
+ * This software is licensed under the MIT licence (as defined by the OSI at
+ * http://www.opensource.org/licenses/mit-license.php)
*
- * N/A
+ * ***************************************************************************
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2011 by Intel Corporation Ltd.
*
- * Examples
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
*
- * // tickernoti
- * <div data-role="notification" id="notification" data-type="ticker" data-interval="3000">
- * <img src="icon01.png">
- * <p>Hello World</p>
- * <p>Denis</p>
- * </div>
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
*
- * // smallpopup
- * <div data-role="notification" id="notification" data-type="popup" data-interval="3000">
- * <p>Hello World</p>
- * </div>
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ * ***************************************************************************
*
+ * Authors: Kalyan Kondapally <kalyan.kondapally@intel.com>,
+ * Elliot Smith <elliot.smith@intel.com>
+ * Hyunjung Kim <hjnim.kim@samsung.com>
*/
-/**
- @class Notification
- The notification widget shows a pop-up window on the screen to provide notifications.
- To add a notification widget to the application, use the following code:
+// Widget which turns a html element into a "swipe":
+// i.e. each list item has a sliding "cover" which can be swiped
+// to the right (to reveal buttons underneath) or left (to
+// cover the buttons again). Clicking on a button under a swipe
+// also moves the cover back to the left.
+//
+// In this case, the cover is over a grid of buttons;
+// but it is should also be possible to use other types of markup under the
+// list items.
+//
+// WARNING: This doesn't work well inside a scrollview widget, as
+// the touch events currently interfere with each other badly (e.g.
+// a swipe will work but cause a scroll as well).
+//
+// Theme: default is to use the theme on the target element,
+// theme passed in options, parent theme, or 'c' if none of the above.
+// If list items are themed individually, the cover will pick up the
+// theme of the list item which is its parent.
+//
- <div data-role="page">
- <div data-role="notification" data-type="smallpopup">
- <p>text1</p>
- </div>
- <div data-role="header"></div>
- <div data-role="content"></div>
- <div data-role="footer"></div>
- </div>
-*/
/**
- @property {String} data-type
- Defines the notification type. The type options are tickernoti and smallpopup. <br/>The default value is smallpopup.
+ @class Swipe
+ The swipe widget shows a view on the screen where the items can be swiped vertically to show a menu.
+ To add a swipe widget to the application, use the following code:
+
+ <ul data-role="listview">
+ <li data-role="swipe">
+ <div data-role="swipe-cover">
+ <div data-role="button" data-inline="true">OK</div>
+ <div data-role="button" data-inline="true">Cancel</div>
+ </div>
+ <div data-role="swipe-item-cover">
+ <p>This is a swipe item cover.<br>
+ This will be swiped out when swipe event comes.</p>
+ </div>
+ </li>
+ </ul>
+ You can use methods with the swipe as described in the jQueryMobile documentation for view methods.
*/
/**
- @property {Integer} data-interval
- Defines the time to showing a notification widget. <br/>The default is infinitely.
+ @property {String} data-role
+ Creates a swipe using the HTML unordered view (>ul<) element.
+ The default value is swipe.
+ Creates a swipe item cover using an HTML $gt;div$lt; element. This cover can be swiped to show the content beneath it.
+ The default value is swipe-item-cover.
*/
/**
@method open
- The open method is used to open the notification widget:
-
- <div data-role="notification" data-type="smallpopup" data-interval="3000"></div>
- $('#notification').notification('open');
+ uncover swipe item
*/
/**
@method close
- The close method is used to close the notification widget:
-
- <div data-role="notification" data-type="smallpopup" data-interval="3000"></div>
- $('#notification').notification('close');
+ cover swipe item
*/
/**
- @method text
- The text method is used to set or get the notification text:
-
- <div data-role="notification" data-type="smallpopup" data-interval="3000"></div>
- // Set notification text
- $('#notification').notification('text', 'setThisText');
- // Get notification text
- texts = $('#notification').notification('text');
- @since Tizen2.0
+ @method opened
+ return coveritem status( coverd or uncovred )
*/
/**
- @method icon
- The setIcon method is used to set the ticker notification icon. The icon can be set only if the notification type is set to tickernoti.
-
- <div data-role="notification" data-type="ticker" data-interval="3000"></div>
- $('#notification').notification('icon', './test.png');
+ @event animationstart
+ The swipe can define a callback for the animationstart event, which is fired after a item is swipe and the swipe animation is start:
*/
-(function ( $, window ) {
- $.widget( "tizen.notification", $.mobile.widget, {
- btn: null,
- text_bg: [],
- icon_img: [],
- interval: null,
- seconds: null,
- running: false,
-
- _get_text: function () {
- var text = new Array( 2 );
-
- if ( this.type === 'ticker' ) {
- text[0] = $( this.text_bg[0] ).text();
- text[1] = $( this.text_bg[1] ).text();
- } else {
- text[0] = $( this.text_bg[0] ).text();
- }
-
- return text;
- },
-
- _set_text: function ( text0, text1 ) {
- var _set = function ( elem, text ) {
- if ( !text ) {
- return;
- }
- elem.text( text );
- };
-
- if ( this.type === 'ticker' ) {
- _set( $( this.text_bg[0] ), text0 );
- _set( $( this.text_bg[1] ), text1 );
- } else {
- _set( $( this.text_bg[0] ), text0 );
- }
- },
-
- text: function ( text0, text1 ) {
- if ( text0 === undefined && text1 === undefined ) {
- return this._get_text();
- }
-
- this._set_text( text0, text1 );
- },
+/**
+ @event animationend
+ The swipe can define a callback for the animationend event, which is fired after a item is swiped and the swipe animation is complete:
- icon: function ( src ) {
- if ( src === undefined ) {
- return;
- }
+ <ul data-role="listview">
+ <li data-role="swipe">
+ <div data-role="swipe-cover">
+ <div data-role="button" data-inline="true">OK</div>
+ <div data-role="button" data-inline="true">Cancel</div>
+ </div>
+ <div data-role="swipe-item-cover" id="foo">
+ <p>This is a swipe item cover.<br>
+ This will be swiped out when swipe event comes.</p>
+ </div>
+ </li>
+ </ul>
+ $("#foo").bind("animationend", function (ev)
+ {
+ Console.log("Swipe cover's animation is complete.");
+ });
+*/
+(function ($) {
- this.icon_img.detach();
- this.icon_img = $( "<img src='" + src + "' class='ui-ticker-icon'>" );
- $( this.element ).find(".ui-ticker").append( this.icon_img );
+ $.widget("tizen.swipe", $.mobile.widget, {
+ options: {
+ theme: null
},
- _refresh: function () {
- var container = this._get_container();
-
- $( container ).addClass("fix")
- .removeClass("show")
- .removeClass("hide");
+ _create: function () {
+ // use the theme set on the element, set in options,
+ // the parent theme, or 'c' (in that order of preference)
+ var theme = this.element.jqmData('theme') ||
+ this.options.theme ||
+ this.element.parent().jqmData('theme') ||
+ 's';
- this._set_interval();
+ this.options.theme = theme;
+ this._isopen = false;
+ this.refresh();
},
- open: function () {
- var container = this._get_container();
-
- if ( this.running ) {
- this._refresh();
- return;
- }
-
- $( container ).addClass("show")
- .removeClass("hide")
- .removeClass("fix");
-
- this.running = true;
-
- if ( this.type === 'popup' ) {
- this._set_position();
- }
+ refresh: function () {
+ this._cleanupDom();
- this._set_interval();
- },
+ var self = this,
+ defaultCoverTheme,
+ covers,
+ coverTheme,
+ item,
+ itemHasThemeClass;
- close: function () {
- var container = this._get_container();
+ defaultCoverTheme = 'ui-body-' + this.options.theme;
- if ( !this.running ) {
- return;
+ if ( !this.element.parent().hasClass('ui-listview') ) {
+ this.element.parent().listview();
}
+ this.element.addClass('ui-swipe');
- $( container ).addClass("hide")
- .removeClass("show")
- .removeClass("fix");
-
- this.running = false;
- clearInterval( this.interval );
- },
+ // get the item covers
+ covers = this.element.find(':jqmData(role="swipe-item-cover")');
+ item = this.element.find(':jqmData(role="swipe-item")');
- destroy: function () {
- var container = this._get_container();
+ this._covers = covers;
+ this._item = item;
+ item.addClass('ui-swipe-item');
+ coverTheme = defaultCoverTheme;
+ itemHasThemeClass = item.parent().attr('class')
+ .match(/ui\-body\-[a-z]|ui\-bar\-[a-z]/);
- $( container ).removeClass("show")
- .removeClass("hide")
- .removeClass("fix");
+ covers.each( function () {
+ var cover = $( this );
- this._del_event();
+ if ( itemHasThemeClass ) {
+ coverTheme = itemHasThemeClass[0];
+ }
- this.running = false;
- },
+ cover.addClass('ui-swipe-item-cover');
+ cover.addClass( coverTheme );
- _get_container: function () {
- if ( this.type === 'ticker' ) {
- return $( this.element ).find(".ui-ticker");
- }
+ if ( cover.has('.ui-swipe-item-cover-inner').length === 0 ) {
+ cover.wrapInner( $('<span/>').addClass('ui-swipe-item-cover-inner') );
+ }
- return $( this.element ).find(".ui-smallpopup");
- },
+ if ( !( cover.data('animateRight') && cover.data('animateLeft') ) ) {
+ cover.data('animateRight', function () {
+ self._animateCover( cover, 110, item );
+ });
- _set_interval: function () {
- var self = this;
+ cover.data('animateLeft', function () {
+ self._animateCover( cover, 0, item );
+ });
+ }
- clearInterval( this.interval );
+ // bind to synthetic events
+ item.bind( 'swipeleft', cover.data('animateLeft') );
+ cover.bind( 'swiperight', cover.data('animateRight') );
+ item.find( '.ui-btn' ).bind( 'vclick', cover.data('animateLeft') );
+ } );
- if ( this.seconds !== undefined && this.second !== 0 ) {
- this.interval = setInterval( function () {
- self.close();
- }, this.seconds );
- }
},
- _add_event: function () {
+ _cleanupDom: function () {
var self = this,
- container = this._get_container();
+ defaultCoverTheme,
+ cover,
+ coverTheme = defaultCoverTheme,
+ item,
+ itemClass,
+ itemHasThemeClass,
+ text,
+ wrapper;
- if ( this.type === 'ticker' ) {
- container.find(".ui-ticker-btn").append( this.btn ).trigger("create");
+ defaultCoverTheme = 'ui-body-' + this.options.theme;
- this.btn.bind( "vmouseup", function () {
- self.close();
- });
- }
+ this.element.removeClass('ui-swipe');
- container.bind( 'vmouseup', function () {
- self.close();
- });
- },
+ // get the item covers
+ cover = this.element.find(':jqmData(role="swipe-item-cover")');
+ item = this.element.find(':jqmData(role="swipe-item")');
- _del_event: function () {
- var container = this._get_container();
+ item.removeClass('ui-swipe-item');
+ cover.removeClass('ui-swipe-item-cover');
- if ( this.type === 'ticker' ) {
- this.btn.unbind("vmouseup");
+ itemClass = item.attr('class');
+ itemHasThemeClass = itemClass &&
+ itemClass.match(/ui\-body\-[a-z]|ui\-bar\-[a-z]/);
+
+ if ( itemHasThemeClass ) {
+ coverTheme = itemHasThemeClass[0];
}
- container.unbind('vmouseup');
- clearInterval( this.interval );
- },
- _set_position: function () {
- var container = this._get_container(),
- $footer = $('.ui-page-active').children('.ui-footer'),
- footer_h = $footer.outerHeight() || 0;
+ cover.removeClass(coverTheme);
- container.css( 'bottom', footer_h);
- },
+ // remove wrapper HTML
+ wrapper = cover.find('.ui-swipe-item-cover-inner');
+ wrapper.children().unwrap();
+ text = wrapper.text();
- _create: function () {
- var self = this,
- elem = $( this.element ),
- i;
+ if ( text ) {
+ cover.append( text );
+ wrapper.remove();
+ }
- this.btn = $('<div data-role="button" data-inline="true">Close</div>');
+ // unbind swipe events
+ if ( cover.data('animateRight') && cover.data('animateLeft') ) {
+ cover.unbind( 'swiperight', cover.data('animateRight') );
+ item.unbind( 'swipeleft', cover.data('animateLeft') );
- this.seconds = elem.jqmData('interval');
- this.type = elem.jqmData('type') || 'popup';
+ // unbind clicks on buttons inside the item
+ item.find('.ui-btn').unbind( 'vclick', cover.data('animateLeft') );
- if ( this.type === 'ticker' ) {
- elem.wrapInner("<div class='ui-ticker'></div>");
- elem.find(".ui-ticker").append("<div class='ui-ticker-body'></div>" +
- "<div class='ui-ticker-btn'></div>");
- this.text_bg = elem.find("p");
+ cover.data( 'animateRight', null );
+ cover.data( 'animateLeft', null );
+ }
+ },
- if ( this.text_bg.length < 2 ) {
- elem.find(".ui-ticker").append("<p></p><p></p>");
- this.text_bg = elem.find("p");
- } else if ( this.text_bg.length > 2 ) {
- for ( i = 2; i < this.text_bg.length; i++ ) {
- $( this.text_bg[i] ).css( "display", "none" );
+ // NB I tried to use CSS animations for this, but the performance
+ // and appearance was terrible on Android 2.2 browser;
+ // so I reverted to jQuery animations
+ //
+ // once the cover animation is done, the cover emits an
+ // animationComplete event
+ _animateCover: function ( cover, leftPercentage, item ) {
+ var self = this,
+ animationOptions = {
+ easing: 'linear',
+ duration: 'normal',
+ queue: true,
+ complete: function () {
+ cover.trigger('animationend');
}
- }
-
- $( this.text_bg[0] ).addClass("ui-ticker-text1-bg");
- $( this.text_bg[1] ).addClass("ui-ticker-text2-bg");
+ };
- this.icon_img = elem.find("img");
+ $( this.element.parent() )
+ .find(":jqmData(role='swipe')")
+ .each(
+ function () {
+ if ( this !== self.element.get(0) &&
+ $( this ).swipe("opened") ) {
+ $( this ).swipe("close");
+ }
+ }
+ );
- if ( this.icon_img.length ) {
- $( this.icon_img ).addClass("ui-ticker-icon");
+ if ( leftPercentage == 110 ) {
+ this._isopen = true;
+ } else {
+ this._isopen = false;
+ }
- for ( i = 1; i < this.icon_img.length; i++ ) {
- $( this.icon_img[i] ).css( "display", "none" );
- }
- }
+ cover.stop();
+ cover.clearQueue();
+ cover.trigger('animationstart');
+ cover.animate( { left: leftPercentage + '%' }, animationOptions );
+ if ( leftPercentage == 0 ) {
+ item.animate({ opacity: 0 }, "slow");
} else {
- elem.wrapInner("<div class='ui-smallpopup'></div>");
- this.text_bg = elem.find("p").addClass("ui-smallpopup-text-bg");
+ item.animate({ opacity: 1 }, "slow");
+ }
- if ( this.text_bg.length < 1 ) {
- elem.find(".ui-smallpopup")
- .append("<p class='ui-smallpopup-text-bg'></p>");
- this.text_bg = elem.find("p");
- } else if ( this.text_bg.length > 1 ) {
- for ( i = 1; i < this.text_bg.length; i++ ) {
- $( this.text_bg[i] ).css( "display", "none" );
- }
- }
+ },
- this._set_position();
- }
+ destroy: function () {
+ this._cleanupDom();
+ },
- this._add_event();
+ open: function () {
+ var self = this;
- $( window ).bind( "resize", function () {
- if ( !self.running ) {
- return;
- }
+ $( self._covers ).each( function () {
+ var cover = $( this );
+ self._animateCover( cover, 110, self._item);
+ } );
+ },
- self._refresh();
+ opened: function () {
+ return this._isopen;
+ },
- if ( self.type === 'popup' ) {
- self._set_position();
- }
- });
+ close: function () {
+ var self = this;
+
+ $( self._covers ).each( function () {
+ var cover = $( this );
+ self._animateCover( cover, 0, self._item);
+ } );
}
- }); // End of widget
- // auto self-init widgets
- $( document ).bind( "pagecreate create", function ( e ) {
- $( e.target ).find(":jqmData(role='notification')").notification();
});
- $( document ).bind( "pagebeforehide", function ( e ) {
- $( e.target ).find(":jqmData(role='notification')").notification('destroy');
+ $( document ).bind("pagecreate", function ( e ) {
+ $( e.target ).find(":jqmData(role='swipe')").swipe();
});
-}( jQuery, this ));
+
+}( jQuery ));
initSelector: "input[type='date'], input[type='datetime'], input[type='time'], :jqmData(role='datetimepicker')"
},
+ container : null,
+
_calendar: function () {
return window.Globalize.culture().calendars.standard;
},
this.ui.bind('vclick', function ( e ) {
obj._showDataSelector( obj, this, e.target );
});
- },
+ $.extend( this, {
+ _globalHandlers: [
+ {
+ src: $( window ),
+ handler: {
+ orientationchange: $.proxy( this, "_orientationHandler" )
+ }
+ }
+ ]
+ });
+
+ $.each( this._globalHandlers, function( idx, value ) {
+ value.src.bind( value.handler );
+ });
+ },
+ _orientationHandler: function() {
+ var self = this;
+ if( self._popup_open ) {
+ self._popup_open = false;
+ self.container.popupwindow( 'close' );
+ }
+ return false;
+ },
_populateDataSelector: function ( field, pat ) {
var values,
numItems,
target.offset().left + ( target.width() / 2 ) + newLeft - window.pageXOffset ,
target.offset().top + target.height() - window.pageYOffset );
+ this.container = $ctx;
this._popup_open = true;
$div.bind('popupafterclose', function ( e ) {
} ( jQuery, this ) );
-(function($){$.tizen.frameworkData.pkgVersion="0.2.23";}(jQuery));
+(function($){$.tizen.frameworkData.pkgVersion="0.2.24";}(jQuery));
/*
This software is licensed under the MIT license (as defined
-by the OSI at http://www.opensource.org/licenses/mit-license.php)
+by the OSI at http://www.opensource.org/licenses/mit-license.php), except for
+following files:
+ * src/js/jquery.mobile.tizen.pinch.js.
****************************************************************************
Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
THE SOFTWARE.
****************************************************************************
+The following files are licensed under Flora license.
+ * src/js/jquery.mobile.tizen.pinch.js.
+****************************************************************************
+Flora License
+
+Version 1.0, May, 2012
+
+http://floralicense.org/license/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction,
+and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by
+the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and
+all other entities that control, are controlled by, or are
+under common control with that entity. For the purposes of
+this definition, "control" means (i) the power, direct or indirect,
+to cause the direction or management of such entity,
+whether by contract or otherwise, or (ii) ownership of fifty percent (50%)
+or more of the outstanding shares, or (iii) beneficial ownership of
+such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity
+exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications,
+including but not limited to software source code, documentation source,
+and configuration files.
+
+"Object" form shall mean any form resulting from mechanical
+transformation or translation of a Source form, including but
+not limited to compiled object code, generated documentation,
+and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form,
+made available under the License, as indicated by a copyright notice
+that is included in or attached to the work (an example is provided
+in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form,
+that is based on (or derived from) the Work and for which the editorial
+revisions, annotations, elaborations, or other modifications represent,
+as a whole, an original work of authorship. For the purposes of this License,
+Derivative Works shall not include works that remain separable from,
+or merely link (or bind by name) to the interfaces of, the Work and
+Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original
+version of the Work and any modifications or additions to that Work or
+Derivative Works thereof, that is intentionally submitted to Licensor
+for inclusion in the Work by the copyright owner or by an individual or
+Legal Entity authorized to submit on behalf of the copyright owner.
+For the purposes of this definition, "submitted" means any form of
+electronic, verbal, or written communication sent to the Licensor or
+its representatives, including but not limited to communication on
+electronic mailing lists, source code control systems, and issue
+tracking systems that are managed by, or on behalf of, the Licensor
+for the purpose of discussing and improving the Work, but excluding
+communication that is conspicuously marked or otherwise designated
+in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity
+on behalf of whom a Contribution has been received by Licensor and
+subsequently incorporated within the Work.
+
+"Tizen Certified Platform" shall mean a software platform that complies
+with the standards set forth in the Compatibility Definition Document
+and passes the Compatibility Test Suite as defined from time to time
+by the Tizen Technical Steering Group and certified by the Tizen
+Association or its designated agent.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+copyright license to reproduce, prepare Derivative Works of,
+publicly display, publicly perform, sublicense, and distribute the
+Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+(except as stated in this section) patent license to make, have made,
+use, offer to sell, sell, import, and otherwise transfer the Work
+solely as incorporated into a Tizen Certified Platform, where such
+license applies only to those patent claims licensable by such
+Contributor that are necessarily infringed by their Contribution(s)
+alone or by combination of their Contribution(s) with the Work solely
+as incorporated into a Tizen Certified Platform to which such
+Contribution(s) was submitted. If You institute patent litigation
+against any entity (including a cross-claim or counterclaim
+in a lawsuit) alleging that the Work or a Contribution incorporated
+within the Work constitutes direct or contributory patent infringement,
+then any patent licenses granted to You under this License for that
+Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+Work or Derivative Works thereof pursuant to the copyright license
+above, in any medium, with or without modifications, and in Source or
+Object form, provided that You meet the following conditions:
+
+ 1. You must give any other recipients of the Work or Derivative Works
+ a copy of this License; and
+ 2. You must cause any modified files to carry prominent notices stating
+ that You changed the files; and
+ 3. You must retain, in the Source form of any Derivative Works that
+ You distribute, all copyright, patent, trademark, and attribution
+ notices from the Source form of the Work, excluding those notices
+ that do not pertain to any part of the Derivative Works; and
+ 4. If the Work includes a "NOTICE" text file as part of its distribution,
+ then any Derivative Works that You distribute must include a readable
+ copy of the attribution notices contained within such NOTICE file,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works, in at least one of the following places:
+ within a NOTICE text file distributed as part of the Derivative Works;
+ within the Source form or documentation, if provided along with the
+ Derivative Works; or, within a display generated by the Derivative Works,
+ if and wherever such third-party notices normally appear.
+ The contents of the NOTICE file are for informational purposes only
+ and do not modify the License.
+
+You may add Your own attribution notices within Derivative Works
+that You distribute, alongside or as an addendum to the NOTICE text
+from the Work, provided that such additional attribution notices
+cannot be construed as modifying the License. You may add Your own
+copyright statement to Your modifications and may provide additional or
+different license terms and conditions for use, reproduction, or
+distribution of Your modifications, or for any such Derivative Works
+as a whole, provided Your use, reproduction, and distribution of
+the Work otherwise complies with the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+any Contribution intentionally submitted for inclusion in the Work
+by You to the Licensor shall be under the terms and conditions of
+this License, without any additional terms or conditions.
+Notwithstanding the above, nothing herein shall supersede or modify
+the terms of any separate license agreement you may have executed
+with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+names, trademarks, service marks, or product names of the Licensor,
+except as required for reasonable and customary use in describing the
+origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+agreed to in writing, Licensor provides the Work (and each
+Contributor provides its Contributions) on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+implied, including, without limitation, any warranties or conditions
+of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+PARTICULAR PURPOSE. You are solely responsible for determining the
+appropriateness of using or redistributing the Work and assume any
+risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+whether in tort (including negligence), contract, or otherwise,
+unless required by applicable law (such as deliberate and grossly
+negligent acts) or agreed to in writing, shall any Contributor be
+liable to You for damages, including any direct, indirect, special,
+incidental, or consequential damages of any character arising as a
+result of this License or out of the use or inability to use the
+Work (including but not limited to damages for loss of goodwill,
+work stoppage, computer failure or malfunction, or any and all
+other commercial damages or losses), even if such Contributor
+has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+the Work or Derivative Works thereof, You may choose to offer,
+and charge a fee for, acceptance of support, warranty, indemnity,
+or other liability obligations and/or rights consistent with this
+License. However, in accepting such obligations, You may act only
+on Your own behalf and on Your sole responsibility, not on behalf
+of any other Contributor, and only if You agree to indemnify,
+defend, and hold each Contributor harmless for any liability
+incurred by, or claims asserted against, such Contributor by reason
+of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Flora License to your work
+
+To apply the Flora License to your work, attach the following
+boilerplate notice, with the fields enclosed by brackets "[]"
+replaced with your own identifying information. (Don't include
+the brackets!) The text should be enclosed in the appropriate
+comment syntax for the file format. We also recommend that a
+file or class name and description of purpose be included on the
+same "printed page" as the copyright notice for easier
+identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Flora License, Version 1.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.tizenopensource.org/license
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+****************************************************************************
+
+
+
This software incorporates software from other sources, including:
widgets/jquery.mobile.groupindex/
glMatrix 1.3.7 (https://github.com/toji/gl-matrix) [https://github.com/toji/gl-matrix/blob/master/LICENSE.md]
*/
-function range(a,b,c){var d=[],e,f,g,h=c||1,i=!1;!isNaN(a)&&!isNaN(b)?(e=a,f=b):isNaN(a)&&isNaN(b)?(i=!0,e=a.charCodeAt(0),f=b.charCodeAt(0)):(e=isNaN(a)?0:a,f=isNaN(b)?0:b),g=e>f?!1:!0;if(g)while(e<=f)d.push(i?String.fromCharCode(e):e),e+=h;else while(e>=f)d.push(i?String.fromCharCode(e):e),e-=h;return d}function ensureNS(ns){var nsAr=ns.split("."),nsSoFar="";for(var Nix in nsAr)nsSoFar=nsSoFar+(Nix>0?".":"")+nsAr[Nix],eval(nsSoFar+" = "+nsSoFar+" || {};")}(function(a,b,c,d){function e(c){var d=a(c),e=d.children(".ui-content"),f=d.children(".ui-header").outerHeight()||0,g=d.children(".ui-footer").outerHeight()||0,h=parseFloat(e.css("padding-top")),i=parseFloat(e.css("padding-bottom")),j=a(b).height();e.height(j-(f+g)-(h+i))}function f(b){this.options=a.extend({},b),this.easing="easeOutQuad",this.reset()}function h(){return Date.now()}var g={scrolling:0,overshot:1,snapback:2,done:3};jQuery.widget("tizen.scrollview",jQuery.mobile.widget,{options:{direction:null,timerInterval:10,scrollDuration:1e3,overshootDuration:250,snapbackDuration:500,moveThreshold:30,moveIntervalThreshold:150,scrollMethod:"translate",startEventName:"scrollstart",updateEventName:"scrollupdate",stopEventName:"scrollstop",eventType:a.support.touch?"touch":"mouse",showScrollBars:!0,overshootEnable:!1,outerScrollEnable:!1,overflowEnable:!0,scrollJump:!1},_getViewHeight:function(){return this._$view.height()},_getViewWidth:function(){return this._$view.width()},_makePositioned:function(a){a.css("position")==="static"&&a.css("position","relative")},_create:function(){var b,c=this;this._$clip=a(this.element).addClass("ui-scrollview-clip"),this._$clip.children(".ui-scrollview-view").length?this._$view=this._$clip.children(".ui-scrollview-view"):this._$view=this._$clip.wrapInner("<div></div>").children().addClass("ui-scrollview-view"),this.options.scrollMethod==="translate"&&this._$view.css("transform")===d&&(this.options.scrollMethod="position"),this._$clip.css("overflow","hidden"),this._makePositioned(this._$clip),this._makePositioned(this._$view),this._$view.css({left:0,top:0}),this._view_height=this._getViewHeight(),this._sx=0,this._sy=0,b=this.options.direction,this._hTracker=b!=="y"?new f(this.options):null,this._vTracker=b!=="x"?new f(this.options):null,this._timerInterval=this.options.timerInterval,this._timerID=0,this._timerCB=function(){c._handleMomentumScroll()},this._add_event(),this._add_scrollbar(),this._add_scroll_jump(),this._add_overflow_indicator()},_startMScroll:function(a,b){var c=!1,d=this.options.scrollDuration,e=this._hTracker,f=this._vTracker,g,h;this._$clip.trigger(this.options.startEventName);if(e){g=this._$clip.width(),h=this._getViewWidth();if((this._sx===0&&a>0||this._sx===-(h-g)&&a<0)&&h>g)return;e.start(this._sx,a,d,h>g?-(h-g):0,0),c=!e.done()}if(f){g=this._$clip.height(),h=this._getViewHeight();if((this._sy===0&&b>0||this._sy===-(h-g)&&b<0)&&h>g)return;f.start(this._sy,b,d,h>g?-(h-g):0,0),c=c||!f.done()}c?this._timerID=setTimeout(this._timerCB,this._timerInterval):this._stopMScroll()},_stopMScroll:function(){this._timerID&&(this._$clip.trigger(this.options.stopEventName),clearTimeout(this._timerID)),this._timerID=0,this._vTracker&&this._vTracker.reset(),this._hTracker&&this._hTracker.reset(),this._hideScrollBars(),this._hideOverflowIndicator()},_handleMomentumScroll:function(){var a=!1,b=0,c=0,d=0,e=this,f=function(a){setTimeout(function(){e._effect_dir=a,e._setEndEffect("in")},100),setTimeout(function(){e._setEndEffect("out")},350)},g=this._vTracker,h=this._hTracker;if(this._outerScrolling)return;g&&(g.update(this.options.overshootEnable),c=g.getPosition(),a=!g.done(),g.getRemained()>this.options.overshootDuration&&(d=this._getViewHeight()-this._$clip.height(),g.isAvail()?g.isMin()?(this._outerScroll(c-g.getRemained()/3,d),d>0&&f(1)):g.isMax()&&(this._outerScroll(g.getRemained()/3,d),d>0&&f(0)):this._speedY>0?this._outerScroll(g.getRemained()/3,d):this._outerScroll(c-g.getRemained()/3,d))),h&&(h.update(this.options.overshootEnable),b=h.getPosition(),a=a||!h.done()),this._setScrollPosition(b,c),this._$clip.trigger(this.options.updateEventName,[{x:b,y:c}]),a?this._timerID=setTimeout(this._timerCB,this._timerInterval):this._stopMScroll()},_setElementTransform:function(b,c,e,f){var g,h;!f||f===d?h="none":h="-webkit-transform "+f/1e3+"s ease-out",a.support.cssTransform3d?g="translate3d("+c+","+e+", 0px)":g="translate("+c+","+e+")",b.css({"-moz-transform":g,"-webkit-transform":g,"-ms-transform":g,"-o-transform":g,transform:g,"-webkit-transition":h})},_setEndEffect:function(a){var b=this._getViewHeight()-this._$clip.height();if(this._softkeyboard){this._effect_dir?this._outerScroll(-b-this._softkeyboardHeight,b):this._outerScroll(this._softkeyboardHeight,b);return}if(a==="in"){if(this._endEffect)return;this._endEffect=!0,this._setOverflowIndicator(this._effect_dir),this._showOverflowIndicator()}else if(a==="out"){if(!this._endEffect)return;this._endEffect=!1}else this._endEffect=!1,this._setOverflowIndicator(),this._showOverflowIndicator()},_setCalibration:function(a,b){if(this.options.overshootEnable){this._sx=a,this._sy=b;return}var c=this._$view,d=this._$clip,e=this._directionLock,f=0,g=0;e!=="y"&&this._hTracker&&(g=c.width()-d.width(),a>=0?this._sx=0:a<-g?this._sx=-g:this._sx=a,g<0&&(this._sx=0)),e!=="x"&&this._vTracker&&(f=this._getViewHeight()-d.height(),b>0?(this._sy=0,this._didDrag&&f>0&&(this._effect_dir=0,this._setEndEffect("in"))):b<-f?(this._sy=-f,this._didDrag&&f>0&&(this._effect_dir=1,this._setEndEffect("in"))):(this._endEffect&&this._sy!==b&&this._setEndEffect(),this._sy=b),f<0&&(this._sy=0))},_setScrollPosition:function(a,b,c){var d=this._$view,e=this.options.scrollMethod,f=this._$vScrollBar,g=this._$hScrollBar,h;this._setCalibration(a,b),a=this._sx,b=this._sy,e==="translate"?this._setElementTransform(d,a+"px",b+"px",c):d.css({left:a+"px",top:b+"px"}),f&&(h=f.find(".ui-scrollbar-thumb"),e==="translate"?this._setElementTransform(h,"0px",-b/this._getViewHeight()*h.parent().height()+"px",c):h.css("top",-b/this._getViewHeight()*100+"%")),g&&(h=g.find(".ui-scrollbar-thumb"),e==="translate"?this._setElementTransform(h,-a/d.width()*h.parent().width()+"px","0px",c):h.css("left",-a/d.width()*100+"%"))},_outerScroll:function(c,e){var f=this,g=a(b).scrollTop()-b.screenTop,i=0,j=this.options.snapbackDuration,k=h(),l;if(!this.options.outerScrollEnable)return;if(this._$clip.jqmData("scroll")!=="y")return;if(this._outerScrolling)return;if(c>0)i=b.screenTop?b.screenTop:-c;else{if(!(c<-e))return;i=-c-e}l=function(){var c=h()-k;c>=j?(b.scrollTo(0,g+i),f._outerScrolling=d,f._stopMScroll()):(ec=a.easing.easeOutQuad(c/j,c,0,1,j),b.scrollTo(0,g+i*ec),f._outerScrolling=setTimeout(l,f._timerInterval))},this._outerScrolling=setTimeout(l,f._timerInterval)},_scrollTo:function(b,c,d){var e=this,f=h(),g=a.easing.easeOutQuad,i=this._sx,j=this._sy,k=b-i,l=c-j,m;b=-b,c=-c,m=function(){var a=h()-f,n;a>=d?(e._timerID=0,e._setScrollPosition(b,c)):(n=g(a/d,a,0,1,d),e._setScrollPosition(i+k*n,j+l*n),e._timerID=setTimeout(m,e._timerInterval))},this._timerID=setTimeout(m,this._timerInterval)},scrollTo:function(a,b,c){this._stopMScroll(),this._didDrag=!1,!c||this.options.scrollMethod==="translate"?this._setScrollPosition(a,b,c):this._scrollTo(a,b,c)},getScrollPosition:function(){return{x:-this._sx,y:-this._sy}},skipDragging:function(a){this._skip_dragging=a},_getScrollHierarchy:function(){var b=[],c;return this._$clip.parents(".ui-scrollview-clip").each(function(){c=a(this).jqmData("scrollview"),c&&b.unshift(c)}),b},_getAncestorByDirection:function(a){var b=this._getScrollHierarchy(),c=b.length,d,e;while(0<c--){d=b[c],e=d.options.direction;if(!e||e===a)return d}return null},_handleDragStart:function(b,c,d){this._stopMScroll(),this._didDrag=!1,this._skip_dragging=!1;var e=a(b.target),f=this,g=this._$clip,h=this.options.direction;this._is_button=e.is(".ui-btn")||e.is(".ui-btn-text")||e.is(".ui-btn-inner")||e.is(".ui-btn-inner .ui-icon");if(e.parents(".ui-slider").length||e.is(".ui-slider")){this._skip_dragging=!0;return}e.is("textarea")&&e.bind("scroll",function(){f._skip_dragging=!0,e.unbind("scroll")}),this._is_inputbox=e.is(":input")||e.parents(":input").length>0,this._is_inputbox&&e.one("resize.scrollview",function(){d>g.height()&&f.scrollTo(-c,f._sy-d+g.height(),f.options.snapbackDuration)}),this.options.eventType==="mouse"&&!this._is_inputbox&&!this._is_button&&b.preventDefault(),this._lastX=c,this._lastY=d,this._startY=d,this._doSnapBackX=!1,this._doSnapBackY=!1,this._speedX=0,this._speedY=0,this._directionLock="",this._lastMove=0,this._enableTracking(),this._set_scrollbar_size()},_propagateDragMove:function(a,b,c,d,e){this._hideScrollBars(),this._hideOverflowIndicator(),this._disableTracking(),a._handleDragStart(b,c,d),a._directionLock=e,a._didDrag=this._didDrag},_handleDragMove:function(b,c,d){if(this._skip_dragging)return;if(!this._dragging)return;!this._is_inputbox&&!this._is_button&&b.preventDefault();var e=this.options.moveThreshold,f=c-this._lastX,g=d-this._lastY,i=this.options.direction,j=null,k,l,m,n,o,p,q;this._lastMove=h();if(!this._directionLock){k=Math.abs(f),l=Math.abs(g);if(k<e&&l<e)return!1;k<l&&k/l<.5?j="y":k>l&&l/k<.5&&(j="x");if(i&&j&&i!==j){m=this._getAncestorByDirection(j);if(m)return this._propagateDragMove(m,b,c,d,j),!1}this._directionLock=i||j||"none"}o=this._sx,p=this._sy,q=this._directionLock;if(q!=="y"&&this._hTracker){k=this._sx,this._speedX=f,o=k+f,this._doSnapBackX=!1,n=o>0||o<this._maxX;if(n&&q==="x"){m=this._getAncestorByDirection("x");if(m)return this._setScrollPosition(o>0?0:this._maxX,p),this._propagateDragMove(m,b,c,d,j),!1;o=k+f/2,this._doSnapBackX=!0}}if(q!=="x"&&this._vTracker){if(Math.abs(this._startY-d)<e&&q!=="xy")return;l=this._sy,this._speedY=g,p=l+g,this._doSnapBackY=!1,n=p>0||p<this._maxY;if(n&&q==="y"){m=this._getAncestorByDirection("y");if(m)return this._setScrollPosition(o,p>0?0:this._maxY),this._propagateDragMove(m,b,c,d,j),!1;p=l+g/2,this._doSnapBackY=!0}}this.options.overshootEnable===!1&&(this._doSnapBackX=!1,this._doSnapBackY=!1),this._lastX=c,this._lastY=d,this._setScrollPosition(o,p),this._didDrag===!1&&(this._didDrag=!0,this._showScrollBars(),this._showOverflowIndicator(),this._$clip.parents(".ui-scrollview-clip").each(function(){a(this).scrollview("skipDragging",!0)}))},_handleDragStop:function(a){var b=this;if(this._skip_dragging)return;var c=this._lastMove,d=h(),e=c&&d-c<=this.options.moveIntervalThreshold,f=this._hTracker&&this._speedX&&e?this._speedX:this._doSnapBackX?1:0,g=this._vTracker&&this._speedY&&e?this._speedY:this._doSnapBackY?1:0,i=this.options.direction,j,k;return f||g?this._setGestureScroll(f,g)||this._startMScroll(f,g):(this._hideScrollBars(),this._hideOverflowIndicator()),this._disableTracking(),this._endEffect&&setTimeout(function(){b._setEndEffect("out"),b._hideScrollBars(),b._hideOverflowIndicator()},300),!this._didDrag},_setGestureScroll:function(a,b){var c=this,e=function(){clearTimeout(c._gesture_timer),c._gesture_dir=0,c._gesture_timer=d},f={top:0,bottom:1,left:2,right:3};return!b&&!a?!1:(Math.abs(a)>Math.abs(b)?dir=a>0?f.left:f.right:dir=b>0?f.top:f.bottom,this._gesture_timer?this._gesture_dir!==dir?(e(),!1):!1:(this._gesture_dir=dir,this._gesture_timer=setTimeout(function(){e()},1e3),!1))},_enableTracking:function(){this._dragging=!0},_disableTracking:function(){this._dragging=!1},_showScrollBars:function(a){var b="ui-scrollbar-visible",c=this;if(!this.options.showScrollBars)return;if(this._scrollbar_showed)return;this._$vScrollBar&&this._$vScrollBar.addClass(b),this._$hScrollBar&&this._$hScrollBar.addClass(b),this._scrollbar_showed=!0,a&&setTimeout(function(){c._hideScrollBars()},a)},_hideScrollBars:function(){var a="ui-scrollbar-visible";if(!this.options.showScrollBars)return;if(!this._scrollbar_showed)return;this._$vScrollBar&&this._$vScrollBar.removeClass(a),this._$hScrollBar&&this._$hScrollBar.removeClass(a),this._scrollbar_showed=!1},_setOverflowIndicator:function(a){a===1?(this._opacity_top="0",this._opacity_bottom="0.8"):a===0?(this._opacity_top="0.8",this._opacity_bottom="0"):(this._opacity_top="0.5",this._opacity_bottom="0.5")},_showOverflowIndicator:function(){if(!this.options.overflowEnable||!this._overflowAvail||this._softkeyboard)return;this._overflow_top.animate({opacity:this._opacity_top},300),this._overflow_bottom.animate({opacity:this._opacity_bottom},300),this._overflow_showed=!0},_hideOverflowIndicator:function(){if(!this.options.overflowEnable||!this._overflowAvail||this._softkeyboard)return;if(this._overflow_showed===!1)return;this._overflow_top.animate({opacity:0},300),this._overflow_bottom.animate({opacity:0},300),this._overflow_showed=!1,this._setOverflowIndicator()},_add_event:function(){var c=this,e=this._$clip,f=this._$view;this.options.eventType==="mouse"?(this._dragEvt="mousedown mousemove mouseup click mousewheel",this._dragCB=function(a){switch(a.type){case"mousedown":return c._handleDragStart(a,a.clientX,a.clientY);case"mousemove":return c._handleDragMove(a,a.clientX,a.clientY);case"mouseup":return c._handleDragStop(a);case"click":return!c._didDrag;case"mousewheel":var b=c.getScrollPosition();c.scrollTo(-b.x,-(b.y-a.originalEvent.wheelDelta))}}):(this._dragEvt="touchstart touchmove touchend click",this._dragCB=function(a){var b=a.originalEvent.touches;switch(a.type){case"touchstart":if(b.length!=1)return;return c._handleDragStart(a,b[0].pageX,b[0].pageY);case"touchmove":if(b.length!=1)return;return c._handleDragMove(a,b[0].pageX,b[0].pageY);case"touchend":if(b.length!=0)return;return c._handleDragStop(a);case"click":return!c._didDrag}}),f.bind(this._dragEvt,this._dragCB),f.bind("keydown",function(f){var g,h,i=a(b).scrollTop()-b.screenTop,j;if(f.keyCode==9)return!1;g=e.find(".ui-focus");if(g===d)return;h=g.offset().top-i,j=e.offset().top+e.height()-g.height(),c._softkeyboard&&(j-=c._softkeyboardHeight),(h<e.offset().top||h>j)&&c.scrollTo(0,c._sy-(h-e.offset().top-g.height()));return}),f.bind("keyup",function(d){var f,g,h,j=a(b).scrollTop()-b.screenTop,k;if(d.keyCode!=9)return;f=a(this).find(":input");for(i=0;i<f.length;i++){if(!a(f[i]).hasClass("ui-focus"))continue;i+1==f.length?g=a(f[0]):g=a(f[i+1]),h=g.offset().top-j,k=e.offset().top+e.height()-g.height(),c._softkeyboard&&(k-=c._softkeyboardHeight),(h<0||h>k)&&c.scrollTo(0,c._sy-h+g.height()+e.offset().top,0),g.focus();break}return!1}),e.bind("updatelayout",function(a){var b,d,f=c._getViewHeight();if(!e.height()||!f){c.scrollTo(0,0,0);return}b=e.height()-f,d=f-c._view_height,c._view_height=f;if(d==0||d>e.height()/2)return;b>0?c.scrollTo(0,0,0):c._sy-b<=-d?c.scrollTo(0,c._sy,c.options.snapbackDuration):c._sy-b<=d+c.options.moveThreshold&&c.scrollTo(0,b,c.options.snapbackDuration)}),a(b).bind("resize",function(b){var d,f=c._getViewHeight();if(a(".ui-page-active").get(0)!==e.closest(".ui-page").get(0))return;if(!e.height()||!f)return;d=e.find(".ui-focus"),d&&d.trigger("resize.scrollview"),setTimeout(function(){c._sy<e.height()-c._getViewHeight()&&c.scrollTo(0,e.height()-c._getViewHeight(),c.options.overshootDuration)},260),c._view_height=f}),a(b).bind("vmouseout",function(d){var f=!1;if(a(".ui-page-active").get(0)!==e.closest(".ui-page").get(0))return;if(!c._dragging)return;if(d.pageX<0||d.pageX>a(b).width())f=!0;if(d.pageY<0||d.pageY>a(b).height())f=!0;f&&(c._hideScrollBars(),c._hideOverflowIndicator(),c._disableTracking())}),this._softkeyboard=!1,this._softkeyboardHeight=0,b.addEventListener("softkeyboardchange",function(d){if(a(".ui-page-active").get(0)!==e.closest(".ui-page").get(0))return;c._softkeyboard=d.state==="on"?!0:!1,c._softkeyboardHeight=parseInt(d.height)*(a(b).width()/b.screen.availWidth)}),e.closest(".ui-page").bind("pageshow",function(a){setTimeout(function(){c._view_height=c._getViewHeight(),c._set_scrollbar_size(),c._setScrollPosition(c._sx,c._sy),c._showScrollBars(2e3)},0)})},_add_scrollbar:function(){var a=this._$clip,b='<div class="ui-scrollbar ui-scrollbar-',c='"><div class="ui-scrollbar-track"><div class="ui-scrollbar-thumb"></div></div></div>';if(!this.options.showScrollBars)return;this._vTracker&&(a.append(b+"y"+c),this._$vScrollBar=a.children(".ui-scrollbar-y")),this._hTracker&&(a.append(b+"x"+c),this._$hScrollBar=a.children(".ui-scrollbar-x")),this._scrollbar_showed=!1},_add_scroll_jump:function(){var b=this._$clip,c=this,d,e;if(!this.options.scrollJump)return;this._vTracker&&(d=a('<div class="ui-scroll-jump-top-bg"><div data-role="button" data-inline="true" data-icon="scrolltop" data-style="box"></div></div>'),b.append(d).trigger("create"),d.bind("vclick",function(){c.scrollTo(0,0,c.options.overshootDuration)})),this._hTracker&&(e=a('<div class="ui-scroll-jump-left-bg"><div data-role="button" data-inline="true" data-icon="scrollleft" data-style="box"></div></div>'),b.append(e).trigger("create"),e.bind("vclick",function(){c.scrollTo(0,0,c.options.overshootDuration)}))},_add_overflow_indicator:function(){if(!this.options.overflowEnable)return;this._overflow_top=a('<div class="ui-overflow-indicator-top"></div>'),this._overflow_bottom=a('<div class="ui-overflow-indicator-bottom"></div>'),this._$clip.append(this._overflow_top),this._$clip.append(this._overflow_bottom),this._opacity_top="0.5",this._opacity_bottom="0.5",this._overflow_showed=!1},_set_scrollbar_size:function(){var a=this._$clip,b=this._$view,c=0,d=0,e=0,f=0,g;if(!this.options.showScrollBars)return;this._hTracker&&(c=a.width(),d=b.width(),this._maxX=c-d,this._maxX>0&&(this._maxX=0),this._$hScrollBar&&d&&(g=this._$hScrollBar.find(".ui-scrollbar-thumb"),g.css("width",c>=d?"0":(Math.floor(c/d*100)||1)+"%")));if(this._vTracker){e=a.height(),f=this._getViewHeight(),this._maxY=e-f;if(this._maxY>0||f===0)this._maxY=0;if(this._$vScrollBar&&f||f===0)g=this._$vScrollBar.find(".ui-scrollbar-thumb"),g.css("height",e>=f?"0":(Math.floor(e/f*100)||1)+"%"),this._overflowAvail=!!g.height()}}}),a.extend(f.prototype,{start:function(a,b,c,d,e){var f=a<d||a>e?g.snapback:g.scrolling,i;this.state=b!==0?f:g.done,this.pos=a,this.speed=b,this.duration=this.state===g.snapback?this.options.snapbackDuration:c,this.minPos=d,this.maxPos=e,this.fromPos=this.state===g.snapback?this.pos:0,i=this.pos<this.minPos?this.minPos:this.maxPos,this.toPos=this.state===g.snapback?i:0,this.startTime=h()},reset:function(){this.state=g.done,this.pos=0,this.speed=0,this.minPos=0,this.maxPos=0,this.duration=0,this.remained=0},update:function(b){var c=this.state,d=h(),e=this.duration,f=d-this.startTime,i,j,k;return c===g.done?this.pos:(f=f>e?e:f,this.remained=e-f,c===g.scrolling||c===g.overshot?(i=this.speed*(1-a.easing[this.easing](f/e,f,0,1,e)),j=this.pos+i,k=c===g.scrolling&&(j<this.minPos||j>this.maxPos),k&&(j=j<this.minPos?this.minPos:this.maxPos),this.pos=j,c===g.overshot?(b||(this.state=g.done),f>=e&&(this.state=g.snapback,this.fromPos=this.pos,this.toPos=j<this.minPos?this.minPos:this.maxPos,this.duration=this.options.snapbackDuration,this.startTime=d,f=0)):c===g.scrolling&&(k&&b?(this.state=g.overshot,this.speed=i/2,this.duration=this.options.overshootDuration,this.startTime=d):f>=e&&(this.state=g.done))):c===g.snapback&&(f>=e?(this.pos=this.toPos,this.state=g.done):this.pos=this.fromPos+(this.toPos-this.fromPos)*a.easing[this.easing](f/e,f,0,1,e)),this.pos)},done:function(){return this.state===g.done},isMin:function(){return this.pos===this.minPos},isMax:function(){return this.pos===this.maxPos},isAvail:function(){return this.minPos!==this.maxPos},getRemained:function(){return this.remained},getPosition:function(){return this.pos}}),a(c).bind("pagecreate create",function(b){var c=a(b.target),e=c.find(".ui-content").jqmData("scroll");a.support.scrollview===d&&(a.support.scrollview=!0),a.support.scrollview===!0&&e===d&&(e="y"),e!=="y"&&(e="none"),c.find(".ui-content").attr("data-scroll",e),c.find(":jqmData(scroll)").not(".ui-scrollview-clip").each(function(){if(a(this).hasClass("ui-scrolllistview"))a(this).scrolllistview();else{var b=a(this).jqmData("scroll"),c=b&&b.search(/^[xy]/)!==-1?b:null,e=a(this).hasClass("ui-content"),f;if(b==="none")return;f={direction:c||d,overflowEnable:e,scrollMethod:a(this).jqmData("scroll-method")||d,scrollJump:a(this).jqmData("scroll-jump")||d},a(this).scrollview(f)}})}),a(c).bind("pageshow",function(b){var c=a(b.target),d=c.find(".ui-content").jqmData("scroll");d==="y"&&e(b.target)})})(jQuery,window,document),function(a,b,c,d){function e(a,b){var c=a%b;return c<0&&(c=b+c),c}function f(a,b,c){var d="translate3d( "+b+","+c+", 0px)";a.css({"-ms-transform":d,"-o-transform":d,"-moz-transform":d,"-webkit-transform":d,transform:d})}function g(b){this.options=a.extend({},b),this.easing="easeOutQuad",this.reset()}function i(){return Date.now()}var h={scrolling:0,done:1};a.extend(g.prototype,{start:function(a,b,c){this.state=b!=0?h.scrolling:h.done,this.pos=a,this.speed=b,this.duration=c,this.fromPos=0,this.toPos=0,this.startTime=i()},reset:function(){this.state=h.done,this.pos=0,this.speed=0,this.duration=0},update:function(){var b=this.state,c,d,e,f;return b==h.done?this.pos:(c=this.duration,d=i()-this.startTime,d=d>c?c:d,e=this.speed*(1-a.easing[this.easing](d/c,d,0,1,c)),f=this.pos+e,this.pos=f,d>=c&&(this.state=h.done),this.pos)},done:function(){return this.state==h.done},getPosition:function(){return this.pos}}),jQuery.widget("mobile.circularview",jQuery.mobile.widget,{options:{fps:60,scrollDuration:2e3,moveThreshold:10,moveIntervalThreshold:150,startEventName:"scrollstart",updateEventName:"scrollupdate",stopEventName:"scrollstop",eventType:a.support.touch?"touch":"mouse",delayedClickSelector:"a, .ui-btn",delayedClickEnabled:!1},_makePositioned:function(a){a.css("position")=="static"&&a.css("position","relative")},_create:function(){var b=this;this._items=a(this.element).jqmData("list"),this._$clip=a(this.element).addClass("ui-scrollview-clip"),this._$clip.wrapInner('<div class="ui-scrollview-view"></div>'),this._$view=a(".ui-scrollview-view",this._$clip),this._$list=a("ul",this._$clip),this._$clip.css("overflow","hidden"),this._makePositioned(this._$clip),this._$view.css("overflow","hidden"),this._tracker=new g(this.options),this._timerInterval=1e3/this.options.fps,this._timerID=0,this._timerCB=function(){b._handleMomentumScroll()},this.refresh(),this._addBehaviors()},reflow:function(){var a=this.getScrollPosition();this.refresh(),this.scrollTo(a.x,a.y)},refresh:function(){var c;this._$clip.width(a(b).width()),this._clipWidth=this._$clip.width(),this._$list.empty(),this._$list.append(this._items[0]),this._itemWidth=a(this._items[0]).outerWidth(),a(this._items[0]).detach(),c=this._clipWidth/this._itemWidth,c=Math.ceil(c*10)/10,this._itemsPerView=parseInt(c,10);while(this._itemsPerView+1>this._items.length)a.merge(this._items,a(this._items).clone());this._rx=-this._itemWidth,this._sx=-this._itemWidth,this._setItems()},_startMScroll:function(a,b){this._stopMScroll();var c=!1,d=this.options.scrollDuration,e=this._tracker,f=this._clipWidth,g=this._viewWidth;this._$clip.trigger(this.options.startEventName),e.start(this._rx,a,d,g>f?-(g-f):0,0),c=!e.done(),c?this._timerID=setTimeout(this._timerCB,this._timerInterval):this._stopMScroll()},_stopMScroll:function(){this._timerID&&(this._$clip.trigger(this.options.stopEventName),clearTimeout(this._timerID)),this._timerID=0,this._tracker&&this._tracker.reset()},_handleMomentumScroll:function(){var a=!1,b=this._$view,c=0,d=0,e=this._tracker;e&&(e.update(),c=e.getPosition(),a=!e.done()),this._setScrollPosition(c,d),this._rx=c,this._$clip.trigger(this.options.updateEventName,[{x:c,y:d}]),a?this._timerID=setTimeout(this._timerCB,this._timerInterval):this._stopMScroll()},_setItems:function(){var a,b;for(a=-1;a<this._itemsPerView+1;a++)b=this._items[e(a,this._items.length)],this._$list.append(b);f(this._$view,this._sx+"px",0),this._$view.width(this._itemWidth*(this._itemsPerView+2)),this._viewWidth=this._$view.width()},_setScrollPosition:function(a,b){var c=this._sx,d=a-c,g=parseInt(d/this._itemWidth,10),h,i,j;if(g>0)for(h=0;h<g;h++)this._$list.children().last().detach(),i=-parseInt(c/this._itemWidth+h+3,10),j=this._items[e(i,this._items.length)],this._$list.prepend(j);else if(g<0)for(h=0;h>g;h--)this._$list.children().first().detach(),i=this._itemsPerView-parseInt(c/this._itemWidth+h,10),j=this._items[e(i,this._items.length)],this._$list.append(j);this._sx+=g*this._itemWidth,f(this._$view,a-this._sx-this._itemWidth+"px",0)},_enableTracking:function(){a(c).bind(this._dragMoveEvt,this._dragMoveCB),a(c).bind(this._dragStopEvt,this._dragStopCB)},_disableTracking:function(){a(c).unbind(this._dragMoveEvt,this._dragMoveCB),a(c).unbind(this._dragStopEvt,this._dragStopCB)},_getScrollHierarchy:function(){var b=[],c;return this._$clip.parents(".ui-scrollview-clip").each(function(){c=a(this).jqmData("circulaview"),c&&b.unshift(c)}),b},centerTo:function(b,c){var d,e;for(d=0;d<this._items.length;d++)if(a(this._items[d]).is(b)){e=-(d*this._itemWidth-this._clipWidth/2+this._itemWidth*1.5),this.scrollTo(e+this._itemWidth,0),this.scrollTo(e,0,c);return}},scrollTo:function(b,c,d){this._stopMScroll();if(!d){this._setScrollPosition(b,c),this._rx=b;return}var e=this,f=i(),g=a.easing.easeOutQuad,h=this._rx,j=0,k=b-h,l=0,m,n,o;this._rx=b,m=function(){n=i()-f,n>=d?(e._timerID=0,e._setScrollPosition(b,c),e._$clip.trigger("scrollend")):(o=g(n/d,n,0,1,d),e._setScrollPosition(h+k*o,j+l*o),e._timerID=setTimeout(m,e._timerInterval))},this._timerID=setTimeout(m,this._timerInterval)},getScrollPosition:function(){return{x:-this._rx,y:0}},_handleDragStart:function(b,c,d){a.each(this._getScrollHierarchy(),function(a,b){b._stopMScroll()}),this._stopMScroll(),this.options.delayedClickEnabled&&(this._$clickEle=a(b.target).closest(this.options.delayedClickSelector)),this._lastX=c,this._lastY=d,this._speedX=0,this._speedY=0,this._didDrag=!1,this._lastMove=0,this._enableTracking(),this._ox=c,this._nx=this._rx,(this.options.eventType=="mouse"||this.options.delayedClickEnabled)&&b.preventDefault(),b.stopPropagation()},_handleDragMove:function(a,b,c){this._lastMove=i();var d=b-this._lastX,e=c-this._lastY;return this._speedX=d,this._speedY=0,this._didDrag=!0,this._lastX=b,this._lastY=c,this._mx=b-this._ox,this._setScrollPosition(this._nx+this._mx,0),!1},_handleDragStop:function(a){var b=this._lastMove,c=i(),e=b&&c-b<=this.options.moveIntervalThreshold,f=this._tracker&&this._speedX&&e?this._speedX:0,g=0;return this._rx=this._mx?this._nx+this._mx:this._rx,f&&this._startMScroll(f,g),this._disableTracking(),!this._didDrag&&this.options.delayedClickEnabled&&this._$clickEle.length&&this._$clickEle.trigger("mousedown").trigger("mouseup").trigger("click"),this._didDrag&&(a.preventDefault(),a.stopPropagation()),this._didDrag?!1:d},_addBehaviors:function(){var a=this;this.options.eventType==="mouse"?(this._dragStartEvt="mousedown",this._dragStartCB=function(b){return a._handleDragStart(b,b.clientX,b.clientY)},this._dragMoveEvt="mousemove",this._dragMoveCB=function(b){return a._handleDragMove(b,b.clientX,b.clientY)},this._dragStopEvt="mouseup",this._dragStopCB=function(b){return a._handleDragStop(b)},this._$view.bind("vclick",function(b){return!a._didDrag})):(this._dragStartEvt="touchstart",this._dragStartCB=function(b){var c=b.originalEvent.targetTouches[0];return a._handleDragStart(b,c.pageX,c.pageY)},this._dragMoveEvt="touchmove",this._dragMoveCB=function(b){var c=b.originalEvent.targetTouches[0];return a._handleDragMove(b,c.pageX,c.pageY)},this._dragStopEvt="touchend",this._dragStopCB=function(b){return a._handleDragStop(b)}),this._$view.bind(this._dragStartEvt,this._dragStartCB)}}),a(c).bind("pagecreate create",function(b){a(a.mobile.circularview.prototype.options.initSelector,b.target).circularview()})}(jQuery,window,document),function(a,b,c){a.widget("tizen.gallery",a.mobile.widget,{options:{flicking:!1,duration:500},dragging:!1,moving:!1,max_width:0,max_height:0,org_x:0,org_time:null,cur_img:null,prev_img:null,next_img:null,images:[],images_hold:[],index:0,align_type:null,direction:1,container:null,orientationEventFire:!1,_resize:function(a){var b=this.images[a],c=this.images[a].width(),d=this.images[a].height(),e=0,f,g=this.max_width-e,h=this.max_height-e;f=d/c,c>g&&(b.width(g),b.height(g*f)),d=b.height(),d>h&&(b.height(h),b.width(h/f))},_align:function(a,b){var c=this.images[a],d=0;if(!b)return;if(!b.length)return;this.align_type=="middle"?d=(this.max_height-c.height())/2:this.align_type=="bottom"?d=this.max_height-c.height():d=0,b.css("top",d+"px")},_attach:function(a,b){var d=this,e=function(){d._resize(a),d._align(a,b)},f=function(){if(d.images[a]===c)return;if(!d.images[a].height()){setTimeout(f,10);return}e()};if(!b)return;if(!b.length)return;if(a<0)return;if(!this.images.length)return;if(a>=this.images.length)return;b.css("display","block"),b.append(this.images[a]),f()},_detach:function(a,b){if(!b)return;if(!b.length)return;if(a<0)return;if(a>=this.images.length)return;b.css("display","none"),this.images[a].removeAttr("style"),this.images[a].detach()},_detach_all:function(){var a;for(a=0;a<this.images.length;a++)this.images[a].detach()},_drag:function(a){var b,c;if(!this.dragging)return;if(this.options.flicking===!1){b=this.org_x-a;if(b<0&&!this.prev_img.length)return;if(b>0&&!this.next_img.length)return}c=a-this.org_x,this._moveLeft(this.cur_img,c+"px"),this.next_img.length&&this._moveLeft(this.next_img,c+this.window_width+"px"),this.prev_img.length&&this._moveLeft(this.prev_img,c-this.window_width+"px")},_move:function(a){var b=this.org_x-a,c=0,d,e,f;if(b==0)return;b>0?c=b<this.max_width*.45?0:1:c=-b<this.max_width*.45?0:1,c||(d=Date.now()-this.org_time,Math.abs(b)/d>1&&(c=1)),c&&(b>0&&this.next_img.length?(this._detach(this.index-1,this.prev_img),this.prev_img=this.cur_img,this.cur_img=this.next_img,this.next_img=this.next_img.next(),this.index++,this.next_img.length&&(this._moveLeft(this.next_img,this.window_width+"px"),this._attach(this.index+1,this.next_img)),this.direction=1):b<0&&this.prev_img.length&&(this._detach(this.index+1,this.next_img),this.next_img=this.cur_img,this.cur_img=this.prev_img,this.prev_img=this.prev_img.prev(),this.index--,this.prev_img.length&&(this._moveLeft(this.prev_img,-this.window_width+"px"),this._attach(this.index-1,this.prev_img)),this.direction=-1)),e=this.options.duration,f=this,this.moving=!0,setTimeout(function(){f.moving=!1},e-25),this._moveLeft(this.cur_img,"0px",e),this.next_img.length&&this._moveLeft(this.next_img,this.window_width+"px",e),this.prev_img.length&&this._moveLeft(this.prev_img,-this.window_width+"px",e)},_add_event:function(){var a=this,b;this.container.bind("vmousemove",function(b){b.preventDefault();if(a.moving)return;if(!a.dragging)return;a._drag(b.pageX)}),this.container.bind("vmousedown",function(b){b.preventDefault();if(a.moving)return;a.dragging=!0,a.org_x=b.pageX,a.org_time=Date.now()}),this.container.bind("vmouseup",function(b){if(a.moving)return;a.dragging=!1,a._move(b.pageX)}),this.container.bind("vmouseout",function(b){if(a.moving)return;if(!a.dragging)return;if(b.pageX<20||b.pageX>a.max_width-20)a._move(b.pageX),a.dragging=!1})},_del_event:function(){this.container.unbind("vmousemove"),this.container.unbind("vmousedown"),this.container.unbind("vmouseup"),this.container.unbind("vmouseout")},_setTranslateposition:function(b,c){var d,e=null;return a.support.cssTransform3d?d="translate3d("+c+", 0px, 0px)":d="translate("+c+", 0px)",e={"-moz-transform":d,"-webkit-transform":d,"-ms-transform":d,"-o-transform":d,transform:d},b.css(e),b},_moveLeft:function(b,d,e){var f,g="",h=null;return a.support.cssTransform3d?f="translate3d("+d+", 0px, 0px)":f="translate("+d+", 0px)",e!==c&&(g="-webkit-transform "+e/1e3+"s ease"),h={"-moz-transform":f,"-webkit-transform":f,"-ms-transform":f,"-o-transform":f,transform:f},g!==""&&(h["-webkit-transition"]=g),b.css(h),b},_show:function(){this.window_width=a(b).width(),this.max_width=this._get_width(),this.max_height=this._get_height(),this.container.css("height",this.max_height),this.cur_img=a("div").find(".ui-gallery-bg:eq("+this.index+")"),this.prev_img=this.cur_img.prev(),this.next_img=this.cur_img.next(),this._attach(this.index-1,this.prev_img),this._attach(this.index,this.cur_img),this._attach(this.index+1,this.next_img),this.prev_img.length&&this._setTranslateposition(this.prev_img,-this.window_width+"px"),this._moveLeft(this.cur_img,"0px"),this.next_img.length&&this._setTranslateposition(this.next_img,this.window_width+"px")},show:function(){if(!this.images.length)return;this._show(),this._add_event()},_hide:function(){this._detach(this.index-1,this.prev_img),this._detach(this.index,this.cur_img),this._detach(this.index+1,this.next_img)},hide:function(){this._hide(),this._del_event()},_get_width:function(){return a(this.element).width()},_get_height:function(){var c=a(this.element).parentsUntil("ui-page"),d=c.children(".ui-content"),e=
-c.children(".ui-header").outerHeight()||0,f=c.children(".ui-footer").outerHeight()||0,g=parseFloat(d.css("padding-top"))+parseFloat(d.css("padding-bottom")),h=a(b).height()-e-f-g;return h},_create:function(){var c,d=this,e,f=0;a(this.element).wrapInner('<div class="ui-gallery"></div>'),a(this.element).find("img").wrap('<div class="ui-gallery-bg"></div>'),this.container=a(this.element).find(".ui-gallery"),c=a("div").find(".ui-gallery-bg:first");while(c.length)this.images[f]=c.find("img"),c=c.next(),f++;this._detach_all(),e=parseInt(a(this.element).jqmData("index"),10),e||(e=0),e<0&&(e=0),e>=this.images.length&&(e=this.images.length-1),this.index=e,this.align_type=a(this.element).jqmData("vertical-align"),a.extend(this,{_globalHandlers:[{src:a(b),handler:{orientationchange:a.proxy(this,"_orientationHandler"),resize:a.proxy(this,"_resizeHandler")}}]}),a.each(this._globalHandlers,function(a,b){b.src.bind(b.handler)})},_update:function(){var b,c,d;while(this.images_hold.length)b=this.images_hold.shift(),c=a('<div class="ui-gallery-bg"></div>'),d=a('<img src="'+b+'"></div>'),c.append(d),this.container.append(c),this.images.push(d);this._detach_all()},_resizeHandler:function(){var a=this;a.orientationEventFire&&(a.refresh(),a.orientationEventFire=!1)},_orientationHandler:function(){var a=this;a.refresh(),a.orientationEventFire=!0},refresh:function(a){return this._update(),this._hide(),a===c&&(a=this.index),a<0&&(a=0),a>=this.images.length&&(a=this.images.length-1),this.index=a,this._show(),this.index},add:function(a){this.images_hold.push(a)},remove:function(b){var d;b===c&&(b=this.index);if(b<0||b>=this.images.length)return;b==this.index?(d=this.cur_img,this.index==0?this.direction=1:this.index==this.images.length-1&&(this.direction=-1),this.direction<0?(this.cur_img=this.prev_img,this.prev_img=this.prev_img.prev(),this.prev_img.length&&(this._moveLeft(this.prev_img,-this.window_width+"px"),this._attach(b-2,this.prev_img)),this.index--):(this.cur_img=this.next_img,this.next_img=this.next_img.next(),this.next_img.length&&(this._moveLeft(this.next_img,this.window_width+"px"),this._attach(b+2,this.next_img))),this._moveLeft(this.cur_img,"0px",this.options.duration)):b==this.index-1?(d=this.prev_img,this.prev_img=this.prev_img.prev(),this.prev_img.length&&(this._moveLeft(this.prev_img,-this.window_width+"px"),this._attach(b-1,this.prev_img)),this.index--):b==this.index+1?(d=this.next_img,this.next_img=this.next_img.next(),this.next_img.length&&(this._moveLeft(this.next_img,this.window_width+"px"),this._attach(b+1,this.next_img))):d=a("div").find(".ui-gallery-bg:eq("+b+")"),this.images.splice(b,1),d.detach()},empty:function(){this.images.splice(0,this.images.length),this.container.find(".ui-gallery-bg").detach()},length:function(){return this.images.length},value:function(a){if(a===c)return this.index;this.refresh(a)},destory:function(){a(b).unbind("resize",this._resizeHandler),a(b).unbind("orientationchange",this._orientationHandler)}}),a(document).bind("pagecreate create",function(b){a(b.target).find(":jqmData(role='gallery')").gallery()}),a(document).bind("pageshow",function(b){a(b.target).find(":jqmData(role='gallery')").gallery("show")}),a(document).bind("pagebeforehide",function(b){a(b.target).find(":jqmData(role='gallery')").gallery("hide")})}(jQuery,this),function(a,b){var c={};a.widget("tizen.extendablelist",a.mobile.widget,{options:{theme:"s",countTheme:"c",headerTheme:"b",dividerTheme:"b",splitIcon:"arrow-r",splitTheme:"b",inset:!1,id:"",extenditems:50,childSelector:" li",dbtable:"",template:"",loadmore:"tmp_load_more",scrollview:!1,initSelector:":jqmData(role='extendablelist')"},_stylerMouseUp:function(){a(this).addClass("ui-btn-up-s"),a(this).removeClass("ui-btn-down-s")},_stylerMouseDown:function(){a(this).addClass("ui-btn-down-s"),a(this).removeClass("ui-btn-up-s")},_stylerMouseOver:function(){a(this).toggleClass("ui-btn-hover-s")},_stylerMouseOut:function(){a(this).toggleClass("ui-btn-hover-s"),a(this).addClass("ui-btn-up-s"),a(this).removeClass("ui-btn-down-s")},_pushData:function(b){var c=this.options,d=this,e=0,f=a("#"+b),g=c.extenditems>d._numItemData-d._lastIndex?d._numItemData-d.lastIndex:c.extenditems,h;for(e=0;e<g;e++)h=f.tmpl(d._itemData(e)),a(c.id).append(a(h).attr("id","li_"+e)),a(c.id+">"+c.childSelector).addClass("ui-btn-up-s").bind("mouseup",d._stylerMouseUp).bind("mousedown",d._stylerMouseDown).bind("mouseover",d._stylerMouseOver).bind("mouseout",d._stylerMouseOut),d._lastIndex+=1;a(c.id).trigger("create")},_loadmore:function(b){var c=b.data,d=c.options,e=0,f=a("#"+d.template),g=d.extenditems>c._numItemData-c._lastIndex?c._numItemData-c._lastIndex:d.extenditems,h,i,j;a("#load_more_message").remove();for(e=0;e<g;e++)h=f.tmpl(c._itemData(c._lastIndex)),a(d.id).append(a(h).attr("id","li_"+c._lastIndex)),c._lastIndex+=1;c._numItemData>c._lastIndex&&(f=a("#"+d.loadmore),i=c._numItemData-c._lastIndex,j=d.extenditems<=i?d.extenditems:i,h=f.tmpl({NUM_MORE_ITEMS:j}),a(d.id).append(a(h).attr("id","load_more_message").css("min-height","37px"))),a(d.id).trigger("create"),a(d.id).extendablelist("refresh")},recreate:function(a){this._create({itemData:function(b){return a[b]},numItemData:a.length})},_initList:function(b){var c=this,d=this.options,e,f,g,h;c._lastIndex<=0&&(c._pushData(d.template),c._numItemData>c._lastIndex?(e=a("#"+d.loadmore),f=c._numItemData-c._lastIndex,g=d.extenditems<=f?d.extenditems:f,h=e.tmpl({NUM_MORE_ITEMS:g}),a(d.id).append(a(h).attr("id","load_more_message").css("min-height","37px")),a("#load_more_message").live("click",c,c._loadmore)):(a("#load_more_message").die(),a("#load_more_message").remove())),d.childSelector==" ul"&&a(d.id+" ul").swipelist(),a(d.id).trigger("create"),c.refresh(!0)},create:function(){var a=this.options;this._create.apply(this,arguments)},_create:function(b){var c=this,d=this.options,e=this.element,f;c.destroy(),a.extend(this,{_itemData:function(a){return null},_numItemData:0,_cacheItemData:function(a,b){},_lastIndex:0}),c.element.addClass(function(a,b){return b+" ui-listview ui-extendable-list-container"+(c.options.inset?" ui-listview-inset ui-corner-all ui-shadow ":"")}),d.id="#"+e.attr("id"),e.data("extenditems")&&(d.extenditems=parseInt(e.data("extenditems"),10)),a(d.id).bind("pagehide",function(b){a(d.id).empty()}),a(".ui-scrollview-clip").size()>0?d.scrollview=!0:d.scrollview=!1;if(b){if(!c._loadData(b))return}else{console.warn("WARNING: The data interface of extendable list is changed. \nOld data interface(data-dbtable) is still supported, but will be removed in next version. \nPlease fix your code soon!");if(!a(d.id).hasClass("elLoadSuccess")){console.warn("No elLoadSuccess class");return}f=e.jqmData("dbtable"),d.dbtable=window[f],d.dbtable||(d.dbtable={}),c._itemData=function(a){return d.dbtable[a]},c._numItemData=d.dbtable.length}e.data("template")&&(d.template=e.data("template"),e.data("swipelist")==1?d.childSelector=" ul":d.shildSelector=" li"),c._initList(b)},_loadData:function(a){var b=this;if(!a.itemData||typeof a.itemData!="function")return!1;b._itemData=a.itemData;if(!a.numItemData)return!1;if(typeof a.numItemData=="function")b._numItemData=a.numItemData();else{if(typeof a.numItemData!="number")return!1;b._numItemData=a.numItemData}return!0},destroy:function(){var b=this.options,c=0,d=0;a(b.id).empty(),a("#load_more_message").die()},_itemApply:function(b,c){var d=c.find(".ui-li-count");d.length&&c.addClass("ui-li-has-count"),d.addClass("ui-btn-up-"+(b.jqmData("counttheme")||this.options.countTheme)+" ui-btn-corner-all"),c.find("h1, h2, h3, h4, h5, h6").addClass("ui-li-heading").end().find("p, dl").addClass("ui-li-desc").end().find(">img:eq(0), .ui-link-inherit>img:eq(0)").addClass("ui-li-thumb").each(function(){c.addClass(a(this).is(".ui-li-icon")?"ui-li-has-icon":"ui-li-has-thumb")}).end().find(".ui-li-aside").each(function(){var b=a(this);b.prependTo(b.parent())})},_removeCorners:function(a,b){var c="ui-corner-top ui-corner-tr ui-corner-tl",d="ui-corner-bottom ui-corner-br ui-corner-bl";a=a.add(a.find(".ui-btn-inner, .ui-li-link-alt, .ui-li-thumb")),b==="top"?a.removeClass(c):b==="bottom"?a.removeClass(d):a.removeClass(c+" "+d)},_refreshCorners:function(a){var b,c,d,e;this.options.inset&&(b=this.element.children("li"),c=a?b.not(".ui-screen-hidden"):b.filter(":visible"),this._removeCorners(b),d=c.first().addClass("ui-corner-top"),d.add(d.find(".ui-btn-inner")).find(".ui-li-link-alt").addClass("ui-corner-tr").end().find(".ui-li-thumb").not(".ui-li-icon").addClass("ui-corner-tl"),e=c.last().addClass("ui-corner-bottom"),e.add(e.find(".ui-btn-inner")).find(".ui-li-link-alt").addClass("ui-corner-br").end().find(".ui-li-thumb").not(".ui-li-icon").addClass("ui-corner-bl"))},refresh:function(b){this.parentPage=this.element.closest(".ui-page"),this._createSubPages();var c=this.options,d=this.element,e=this,f=d.jqmData("dividertheme")||c.dividerTheme,g=d.jqmData("splittheme"),h=d.jqmData("spliticon"),i=d.children("li"),j=a.support.cssPseudoElement||!a.nodeName(d[0],"ol")?0:1,k,l,m,n,o,p,q,r,s,t;j&&d.find(".ui-li-dec").remove();for(s=0,t=i.length;s<t;s++){k=i.eq(s),l="ui-li";if(b||!k.hasClass("ui-li"))m=k.jqmData("theme")||c.theme,n=k.children("a"),n.length?(r=k.jqmData("icon"),k.buttonMarkup({wrapperEls:"div",shadow:!1,corners:!1,iconpos:"right",icon:!1,theme:m}),r!=0&&n.length==1&&k.addClass("ui-li-has-arrow"),n.first().addClass("ui-link-inherit"),n.length>1&&(l+=" ui-li-has-alt",o=n.last(),p=g||o.jqmData("theme")||c.splitTheme,o.appendTo(k).attr("title",o.getEncodedText()).addClass("ui-li-link-alt").empty().buttonMarkup({shadow:!1,corners:!1,theme:m,icon:!1,iconpos:!1}).find(".ui-btn-inner").append(a("<span />").buttonMarkup({shadow:!0,corners:!0,theme:p,iconpos:"notext",icon:h||o.jqmData("icon")||c.splitIcon})))):k.jqmData("role")==="list-divider"?(l+=" ui-li-divider ui-btn ui-bar-"+f,k.attr("role","heading"),j&&(j=1)):l+=" ui-li-static ui-body-"+m;j&&l.indexOf("ui-li-divider")<0&&(q=k.is(".ui-li-static:first")?k:k.find(".ui-link-inherit"),q.addClass("ui-li-jsnumbering").prepend("<span class='ui-li-dec'>"+j++ +". </span>")),k.add(k.children(".ui-btn-inner")).addClass(l),e._itemApply(d,k)}this._refreshCorners(b)},_idStringEscape:function(a){return a.replace(/\W/g,"-")},_createSubPages:function(){var b=this.element,d=b.closest(".ui-page"),e=d.jqmData("url"),f=e||d[0][a.expando],g=b.attr("id"),h=this.options,i="data-"+a.mobile.ns,j=this,k=d.find(":jqmData(role='footer')").jqmData("id"),l,m;typeof c[f]=="undefined"&&(c[f]=-1),g=g||++c[f],a(b.find("li>ul, li>ol").toArray().reverse()).each(function(c){var d=this,f=a(this),j=f.attr("id")||g+"-"+c,m=f.parent(),n,p=n.first().getEncodedText(),q=(e||"")+"&"+a.mobile.subPageUrlKey+"="+j,r=f.jqmData("theme")||h.theme,s=f.jqmData("counttheme")||b.jqmData("counttheme")||h.countTheme,t,u;n=a(f.prevAll().toArray().reverse()),n=n.length?n:a("<span>"+a.trim(m.contents()[0].nodeValue)+"</span>"),l=!0,t=f.detach().wrap("<div "+i+"role='page' "+i+"url='"+q+"' "+i+"theme='"+r+"' "+i+"count-theme='"+s+"'><div "+i+"role='content'></div></div>").parent().before("<div "+i+"role='header' "+i+"theme='"+h.headerTheme+"'><div class='ui-title'>"+p+"</div></div>").after(k?a("<div "+i+"role='footer' "+i+"id='"+k+"'>"):"").parent().appendTo(a.mobile.pageContainer),t.page(),u=m.find("a:first"),u.length||(u=a("<a/>").html(n||p).prependTo(m.empty())),u.attr("href","#"+q)}).extendablelist(),l&&d.is(":jqmData(external-page='true')")&&d.data("page").options.domCache===!1&&(m=function(b,c){var f=c.nextPage,g;c.nextPage&&(g=f.jqmData("url"),g.indexOf(e+"&"+a.mobile.subPageUrlKey)!==0&&(j.childPages().remove(),d.remove()))},d.unbind("pagehide.remove").bind("pagehide.remove",m))},childPages:function(){var b=this.parentPage.jqmData("url");return a(":jqmData(url^='"+b+"&"+a.mobile.subPageUrlKey+"')")}}),a(document).bind("pagecreate create",function(b){a(a.tizen.extendablelist.prototype.options.initSelector,b.target).extendablelist()})}(jQuery),function(a,b){a.widget("tizen.fastscroll",a.mobile.widget,{options:{initSelector:":jqmData(fastscroll)"},_primaryLanguage:null,_secondLanguage:null,_create:function(){var b=this.element,c=this,d,e=b.closest(':jqmData(role="page")'),f;this.scrollview=b.closest(".ui-scrollview-clip"),this.shortcutsContainer=a('<div class="ui-fastscroll" aria-label="Fast scroll bar, double tap to fast scroll mode" tabindex="0"/>'),this.shortcutsList=a('<ul aria-hidden="true"></ul>'),this.scrollview.append(a('<div class="ui-fastscroll-popup"></div>')),d=this.scrollview.find(".ui-fastscroll-popup"),this.shortcutsContainer.append(this.shortcutsList),this.scrollview.append(this.shortcutsContainer),this.lastListItem=b.children().last(),this.scrollview.find(".ui-scrollbar").hide(),this.jumpToDivider=function(b){var d=a(b).position().top,e=c.lastListItem.outerHeight(!0)+c.lastListItem.position().top,f=c.scrollview.height(),g=e-f,h;d=d>g?g:d,d=Math.max(d,0),c.scrollview.scrollview("scrollTo",0,-d),h=c.scrollview.offset()},this.shortcutsList.bind("touchstart mousedown vmousedown touchmove vmousemove vmouseover",function(b){var d=a.mobile.tizen.targetRelativeCoordsFromEvent(b),e=c.shortcutsList.offset();b.target.tagName.toLowerCase()==="li"&&(d.x+=a(b.target).offset().left-e.left,d.y+=a(b.target).offset().top-e.top),b.target.tagName.toLowerCase()==="span"&&(d.x+=a(b.target).parent().offset().left-e.left,d.y+=a(b.target).parent().offset().top-e.top),c.shortcutsList.find("li").each(function(){var b=a(this);a(b).removeClass("ui-fastscroll-hover").removeClass("ui-fastscroll-hover-up").removeClass("ui-fastscroll-hover-down")}),c.shortcutsList.find("li").each(function(){var b=a(this),f=b.offset().left-e.left,g=b.offset().top-e.top,h=f+Math.abs(b.outerWidth(!0)),i=g+Math.abs(b.outerHeight(!0));return d.x>=f&&d.x<=h&&d.y>=g&&d.y<=i?(c._hitItem(b),!1):!0}),b.preventDefault(),b.stopPropagation()}).bind("touchend mouseup vmouseup vmouseout",function(){d.hide(),a(".ui-fastscroll-hover").removeClass("ui-fastscroll-hover"),a(".ui-fastscroll-hover-first-item").removeClass("ui-fastscroll-hover-first-item"),a(".ui-fastscroll-hover-up").removeClass("ui-fastscroll-hover-up"),a(".ui-fastscroll-hover-down").removeClass("ui-fastscroll-hover-down")}),e&&!e.is(":visible")?e.bind("pageshow",function(){c.refresh()}):c.refresh(),b.bind("updatelayout",function(){c.refresh()}),a(window).unbind(".fastscroll").bind("resize.fastscroll",function(a){c.refresh()})},_hitItem:function(b){var c=this,d=c.scrollview.find(".ui-fastscroll-popup");typeof b.data("divider")!="undefined"&&c.jumpToDivider(a(b.data("divider"))),b.text()!=="."?d.text(b.text()).css({marginLeft:-(d.width()/2),marginTop:-(d.height()/2),padding:d.css("paddingTop")}).width(d.height()).show():d.hide(),a(b).addClass("ui-fastscroll-hover"),b.index()===0&&a(b).addClass("ui-fastscroll-hover-first-item"),b.index()>0&&a(b).siblings().eq(b.index()-1).addClass("ui-fastscroll-hover-up"),a(b).siblings().eq(b.index()).addClass("ui-fastscroll-hover-down")},_focusItem:function(b){var c=this,d=c.scrollview.find(".ui-fastscroll-popup");b.focusin(function(a){c._hitItem(b)}).focusout(function(b){d.hide(),a(".ui-fastscroll-hover").removeClass("ui-fastscroll-hover"),a(".ui-fastscroll-hover-first-item").removeClass("ui-fastscroll-hover-first-item"),a(".ui-fastscroll-hover-up").removeClass("ui-fastscroll-hover-up"),a(".ui-fastscroll-hover-down").removeClass("ui-fastscroll-hover-down")})},_contentHeight:function(){var b=this,c=a(".ui-scrollview-clip"),d=null,e=null,f=0,g=a(window).height();return c.hasClass("ui-content")?(f=parseInt(c.css("padding-top"),10),g-=f||0,f=parseInt(c.css("padding-bottom"),10),g-=f||0,d=c.siblings(".ui-header:visible"),e=c.siblings(".ui-footer:visible"),d&&(d.outerHeight(!0)===null?g-=a(".ui-header").outerHeight()||0:g-=d.outerHeight(!0)),e&&(g-=e.outerHeight(!0))):g=c.height(),g},_omit:function(a,b){var c=parseInt((b-1)/2,10),d=a-b,e=[],f=[],g,h,i,j;if(b<3||a<=b)return;d>=c?(i=2,h=1,g=c):(i=b/(d+1),h=i,g=d);for(j=0;j<g;j++)e.push(parseInt(h,10)),h+=i;for(j=0;j<b;j++)f.push(1);for(j=0;j<d;j++)f[e[j%c]]++;return f},indexString:function(a){var b=this,c=[];if(typeof a==" undefined")return b._primaryLanguage+":"+b._secondLanguage;c=a.split(":"),b._primaryLanguage=c[0],c.length===2&&(b._secondLanguage=c[1])},refresh:function(){var b=this,c=b._primaryLanguage?b._primaryLanguage.replace(/,/g,""):null,d=b._secondLanguage?b._secondLanguage.replace(/,/g,""):null,e=b._contentHeight(),f=a('<li tabindex="0" aria-label="double to move Number list"><span aria-hidden="true">#</span><span aria-label="Number"/></li>'),g=0,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B;h=function(b,c){a(c).text()===w&&k.data("divider",c).bind("vclick",function(b){a(c).next().focus()})},b.shortcutsList.find("li").remove(),s=b.element.find(".ui-li-divider"),t=b.element.find("li").not(".ui-li-divider"),s=s.filter(":visible"),t=t.filter(":visible");if(s.length<2){b.shortcutsList.hide();return}b.shortcutsList.show(),b.lastListItem=t.last(),b.shortcutsList.append(f),b._focusItem(f);if(c!==null){q=parseInt(f.css("padding"),10),p=f.height()+q*2,n=parseInt(e/p-1,10),o=c.length,n=d?n-2:n;if(n<3){f.remove();return}r=b._omit(o,n);for(B=0;B<c.length;B++)w=c.charAt(B),k=a('<li tabindex="0" aria-label="double to move '+w+' list">'+w+"</li>"),b._focusItem(k),s.each(h),typeof r!="undefined"&&r[g]>1&&(k=a("<li>.</li>"),B+=r[g]-1),f.before(k),g++;if(d!==null){x=d.length-1,y=[],y.push(d.charAt(0)),y.push(d.charAt(x));for(B=0;B<y.length;B++)w=y[B],k=a('<li tabindex="0" aria-label="double to move '+w+' list">'+w+"</li>"),b._focusItem(k),s.each(h),f.before(k)}}else s.each(function(c,d){w=a(d).text(),k=a('<li tabindex="0" aria-label="double to move '+w+' list">'+w+"</li>"),k.data("divider",d),b._focusItem(k),f.before(k)});i=b.shortcutsContainer.outerHeight(),u=e-i,j=b.shortcutsList.children(),A=parseInt(u/j.length,10),v=u-j.length*A,u>0&&j.each(function(b,c){z=a(c).height()+A,v!==0&&(z+=1,v-=1),a(c).css({height:z,lineHeight:z+"px"})}),l=s.first().position().top,b.shortcutsContainer.css("top",l),m=l+b.shortcutsContainer.outerHeight()+"px",b.scrollview.css("min-height",m)}}),a(document).bind("pagecreate create",function(b){a(a.tizen.fastscroll.prototype.options.initSelector,b.target).not(":jqmData(role='none'), :jqmData(role='nojs')").fastscroll()})}(jQuery),function(a,b,c,d){a.widget("tizen.splitview",a.mobile.widget,{options:{fixed:!1,dividerVertical:!0,ratio:[],initSelector:":jqmData(role='splitview')"},_create:function(){var c=this,d=c.element,e=c.options,f=d.children(".ui-pane"),g=f.length,h=[],i=[],j=this.element.attr("data-ratio"),k=[0,0],l=null,m=0;if(g!==2){if(g<2)for(m=g;m<2;++m)c._addEmptyPanes();else f.slice(2).remove();f=d.children(".ui-pane"),g=f.length}h[0]=a("<a href='#' class='ui-spliter' aria-label='Drag scroll, double tap and move to adjust split area'></a>").insertAfter(f[0]),i[0]=a("<div class='ui-spliter-bar'></div>").appendTo(h[0]),a("<div class='ui-spliter-handle'></div>").appendTo(i[0]),a.extend(this,{moveTarget:null,moveData:{},spliters:h,spliterBars:i,panes:f,containerSize:k,touchStatus:!1,minPaneWidth:50,savedRatio:[]}),c._bindTouchEvents(),c._convertRatio(j,f.length),d.addClass("ui-splitview ui-direction-"+c._direction(e.dividerVertical)),d.parent().closest(".ui-splitview").length&&c._getContainerSize(d[0].style.width,d[0].style.height)&&c._layout(),a(b).bind("pagechange",function(a){d.parent().closest(".ui-splitview").length||c._getContainerSize(d[0].style.width,d[0].style.height)&&c._layout()}).resize(function(){l&&clearTimeout(l),l=setTimeout(function(){d.parent().closest(".ui-splitview").length||c._getContainerSize(d[0].style.width,d[0].style.height)&&c._layout()},250)})},_addEmptyPanes:function(){var b=this,c=b.element,d=b.options,e=c.children(".ui-pane"),f=a.support.scrollview?"data-scroll='y'":"",g=a("<div class='ui-pane' "+f+"></div>");f.length&&g.scrollview({direction:"y"}),e.length?e.last().after(g):c.append(g)},_direction:function(a){return a?"horizontal":"vertical"},_isStyleSpecified:function(a){return typeof a!="undefined"&&a.length},_getContainerSize:function(a,b){var c=this,d=c.element,e=c._isStyleSpecified(a),f=c._isStyleSpecified(b);return c.containerSize[0]=e?d.outerWidth(!0):c._parentWidth(),c.containerSize[1]=f?d.outerHeight(!0):c._parentHeight(),!c.containerSize[0]||!c.containerSize[1]?!1:!0},_parentWidth:function(){var c=this.element.parent();return!c&&typeof c=="undefined"&&!c.length?a(b).width():c.width()},_parentHeight:function(){var c=this.element.parent(),d="",e=!1,f=0;while(c&&typeof c!="undefined"&&c.length){if(typeof c[0].style!="undefined"){d=c[0].style.height,e=typeof d!="undefined"&&d.length;if(e){f=c.height();break}}c=c.parent()}return e||(f=a(b).height()),f},_convertRatio:function(b,c){var d=this,e=[],f=0,g=typeof b,h=null,i;for(i=0;i<c;++i)e.push(0);switch(g){case"number":c&&(e[0]=b);break;case"string":h=b.split(","),f=Math.min(h.length,c);for(i=0;i<f;++i)e[i]=parseFloat(h[i]);break;case"object":if(!a.isArray(b))break;f=Math.min(b.length,c);for(i=0;i<f;++i)g=typeof b[i],e[i]=g==="string"?parseFloat(b[i]):g==="number"?b[i]:0}d.options.ratio=e,d._adjustRatio(c)},_adjustRatio:function(a){var b=this,c=b.options.ratio,d=0,e=0,f=0,g=0,h=0,i;if(!a){b.options.ratio=[];return}for(i in c)d+=c[i];if(d!==1){e=1-d,f=e/a;for(i in c)f>=0?(c[i]+=f,e=Math.max(0,e-f)):(h+=f,g=Math.max(h,c[i]*-1),c[i]=Math.max(0,c[i]+g),e=Math.min(0,e-g),h-=g);if(e)if(e>0)c[c.length-1]+=e;else for(i=c.length-1;i>=0;--i){g=Math.max(e,c[i]*-1),c[i]=Math.max(0,c[i]+g),e=Math.min(0,e-g);if(!e)break}b.options.ratio=c}},_setOption:function(b,c){var d=this,e=d.options[b];if(e===c)return;a.Widget.prototype._setOption.apply(this,arguments);switch(b){case"fixed":d._fixed(c);break;case"dividerVertical":d._dividerVertical(c);break;case"ratio":d._ratio(c)}},_subtractDiffWidth:function(a,b){var c=this;return a<=c.minPaneWidth?{width:a,diff:b}:(a+=b,a>=c.minPaneWidth?{width:a,diff:0}:{width:c.minPaneWidth,diff:a-c.minPaneWidth})},_initRatio:function(b,c,d,e){var f=this,g=0,h=[],i=0,j=c.length,k,l;c.each(function(b){var c=a(this);h.push(d?c.width():c.height()),g+=h[b]}),i=e-g;if(!i)return h;if(i>0)h[b?0:j-1]+=i;else if(b)for(l=0;l<j;++l){k=f._subtractDiffWidth(h[l],i),h[l]=k.width,i=k.diff;if(!i)break}else for(l=j-1;l>=0;--l){i=f._subtractDiffWidth(h[l],i),h[l]=k.width,i=k.diff;if(!i)break}g=0;for(l in h)g+=h[l];for(l in f.options.ratio)f.options.ratio[l]=h[l]/g;return h},_horizontalBoundary:function(){var a=this,b=a.element;return b.outerWidth(!0)-b.width()},_verticalBoundary:function(){var a=this,b=a.element;return b.outerHeight(!0)-b.height()},_boundary:function(a){var c=this,d=c.element,e=b.getComputedStyle(d[0],null),f=parseFloat(e["margin"+a]),g=parseFloat(e["border"+a+"Width"]),h=parseFloat(e["padding"+a]);return{margin:f,border:g,padding:h}},_layout:function(b,c){var d=this,e=d.element,f=d.options,g=f.dividerVertical,h=d.panes,i=d.spliters,j=d.spliterBars,k=d.spliterBars.length?a(j[0]):null,l=k?g?k.outerWidth():k.outerHeight():0,m=k?g?k.outerWidth(!0)-k.outerWidth():k.outerHeight(!0)-k.outerHeight():0,n=h.length,o=0,p=l*(n-1),q=d.containerSize[0],r=d.containerSize[1],s=q-d._horizontalBoundary(),t=r-d._verticalBoundary(),u=g?t:s,v=g?s-p:t-p,w=[],x=0,y=null;typeof b=="undefined"&&(b=!1),b&&typeof c=="undefined"&&(c=!1),e.css({"min-width":s,"min-height":t}),b&&(w=d._initRatio(c,h,g,v)),o=v,h.each(function(c){var e=a(this),f=b?w[c]:Math.floor(v*d.options.ratio[c]),i=c?h.eq(c-1):null,j=0,k=0,m=0,p=0;o-=f,c===n-1&&(f=Math.max(Math.min(f,d.minPaneWidth),f+o)),x+=f,i?(j=parseInt(i.css(g?"left":"top"),10),j+=g?i.width():i.height(),j+=l):(p=d._boundary(g?"Left":"Top"),j=p.padding),k=g?f:u,m=g?u:f,e.css({width:k,height:m}),e.css(g?"left":"top",j)}),h.each(function(b){var c=a(this),e=g?c.width():c.height();d.options.ratio[b]=e/x}),a.each(i,function(b){var c=a(this),d=h.eq(b),e=c.children(".ui-spliter-bar"),f=e.children(".ui-spliter-handle"),i=0;g?(i=parseInt(d.css("left"),10)+d.width()-m,c.outerHeight(u).css("left",i)):(i=parseInt(d.css("top"),10)+d.height()-m,c.outerWidth(u).css("top",i)),typeof e!="undefined"&&e&&(g?e.outerHeight(u):e.outerWidth(u)),typeof f!="undefined"&&f&&(g?f.css("top",(u-l)/2):f.css("left",(u-l)/2))}),y=e.find(":jqmData(role='splitview'):first");if(!y.length)return;y=y.data("splitview"),y&&y._refresh()},_bindTouchEvents:function(){var b=this,c=b.element,d=b.panes,e=b.spliters;a.each(e,function(c){var d=a(this);b._bindSpliterTouchEvents(d)}),c.mouseleave(function(){b.touchStatus&&c.children(".ui-spliter").trigger("vmouseup")}),d.bind("vmousedown",function(){c.find(".ui-spliter").trigger("vmouseup")})},_bindSpliterTouchEvents:function(b){var d=this,e=d.element,f=d.options;b.bind("vmousedown",{e:b},function(b){if(d.options.fixed)return;var g=b.data.e,h=g.prev(),i=g.next(),j=h.find(":jqmData(role='splitview'):first"),k=i.find(":jqmData(role='splitview'):first"),l=f.dividerVertical,m=l?a(d.spliterBars[0]).outerWidth():a(d.spliterBars[0]).outerHeight();e.closest(".ui-page").find(".ui-spliter").trigger("vmouseup"),d.moveTarget=g,d.moveData={spliterWidth:m||0,prevPane:h,nextPane:i,splitviewInPrev:j,splitviewInNext:k,prevPanePos:parseInt(h.css(l?"left":"top"),10)||0,prevPaneWidth:parseInt(h.css(l?"width":"height"),10)||0,nextPanePos:parseInt(i.css(l?"left":"top"),10)||0,nextPaneWidth:parseInt(i.css(l?"width":"height"),10)||0,targetPos:parseInt(g.css(l?"left":"top"),10)||0,pagePos:l?b.pageX:b.pageY},g.addClass("ui-spliter-active"),a(c).bind("vmousemove.splitview",function(a){if(!d.touchStatus)return;d._drag(a),a.preventDefault(),a.stopPropagation()}).bind("vmouseup.splitview",function(a){if(!d.touchStatus)return;d._stop(a),a.preventDefault(),a.stopPropagation(),d.touchStatus=!1}),b.preventDefault(),b.stopPropagation(),d.touchStatus=!0})},_drag:function(a){if(!this.moveData||typeof this.moveData=="undefined")return;var b=this,c=b.element,d=b.options,e=d.dividerVertical,f=b.moveData,g=b.moveTarget,h=f.prevPane,i=f.nextPane,j=f.splitviewInPrev,k=f.splitviewInNext,l=f.spliterWidth,m=null,n=null,o=null,p=null,q=null,r=e?a.pageX:a.pageY,s=null;m=r-f.pagePos,m>0?m=Math.min(Math.max(f.nextPaneWidth-b.minPaneWidth,0),m):m=Math.max(Math.max(f.prevPaneWidth-b.minPaneWidth,0)*-1,m),o=f.nextPanePos+m,p=Math.max(f.prevPaneWidth+m,0),q=Math.max(f.nextPaneWidth-m,0),n=f.targetPos+m,g.css(e?{left:n}:{top:n}),h.css(e?{width:p}:{height:p}),i.css(e?{width:q,left:o}:{height:q,top:o}),j.length&&(s=j.data("splitview"),s._refresh(!0,!1)),k.length&&(s=k.data("splitview"),s._refresh(!0,!0))},_stop:function(b){if(!this.moveData||typeof this.moveData=="undefined")return;var d=this,e=d.element,f=d.options,g=d.panes,h=g.length,i=f.dividerVertical,j=d.moveData,k=d.moveTarget,l=j.prevPane,m=j.nextPane,n=j.splitviewInPrev,o=j.splitviewInNext,p=j.spliterWidth,q=p*(h-1),r=null,s=null,t=null,u=null,v=null,w=e.css("display"),x=d.containerSize[0],y=d.containerSize[1],z=x-d._horizontalBoundary(),A=y-d._verticalBoundary(),B=i?z-q:A-q,C=0;a(c).unbind("vmousemove.splitview vmouseup.splitview"),k.removeClass("ui-spliter-active"),g.each(function(b){var c=a(this),d=i?c.width():c.height();C+=d}),g.each(function(b){var c=a(this),e=i?c.width():c.height();d.options.ratio[b]=e/C}),d.moveData=null},_fixed:function(b){var c=this,d=c.spliters;a.each(d,function(c){var d=a(this);b?d.addClass("ui-fixed"):d.removeClass("ui-fixed")}),c._layout()},_dividerVertical:function(a){var b=this,c=b.element,d=a,e=null,f=null,g=null,h=null;e=c.children(".ui-pane"),f=c.children(".ui-spliter"),g=f.children(".ui-spliter-bar"),h=g.children(".ui-spliter-handle"),c.removeClass("ui-direction-vertical"),c.removeClass("ui-direction-horizontal"),c.addClass("ui-splitview ui-direction-"+b._direction(d)),e.css({left:"",top:"",width:"",height:""}),f.css({left:"",top:"",width:"",height:""}),g.css({width:"",height:""}),h.css({left:"",top:""}),b._getContainerSize(c[0].style.width,c[0].style.height)&&b._layout()},_ratio:function(a){var b=this,c=b.element,d=c.children(".ui-pane"),e=d.length;b._convertRatio(a,e),b._layout()},_refresh:function(a,b){var c=this,d=c.element;typeof a=="undefined"&&(a=!1),a&&typeof b=="undefined"&&(b=!1),c._getContainerSize(d[0].style.width,d[0].style.height)&&c._layout(a,b)},pane:function(a,b){if(typeof a!="string")return null;var c=this,d=c.element,e=d.children(a),f=null,g=null;if(!e.hasClass("ui-pane"))return null;if(typeof b=="undefined"||!b)return e.contents();if(e.hasClass("ui-scrollview-clip")){e.scrollview("scrollTo",0,0,0),f=e.children(".ui-scrollview-view");if(!f.length)return null}else f=e;g=b.parent();if(g.length&&g[0]===f[0])return;f.empty().append(b).trigger("create"),f.fadeIn("fast")},maximize:function(a){if(typeof a!="string")return;var b=this,c=b.element,d=b.panes,e=c.children(a);if(!e.hasClass("ui-pane"))return;b.savedRatio=b.options.ratio.slice(),b.options.ratio=[],d.each(function(a){b.options.ratio.push(this===e[0]?1:0)}),b._layout()},restore:function(){var a=this;if(a.savedRatio.length===0)return;a.options.ratio=a.savedRatio.slice(),a._adjustRatio(a.panes.length),a._layout()}}),a(c).bind("pagecreate create",function(b){a.tizen.splitview.prototype.enhanceWithin(b.target)})}(jQuery,window,document),function(a,b){a(document).bind("pagecreate create",function(b){a(":jqmData(role='label')",b.target).not(":jqmData(role='none'), :jqmData(role='nojs')").each(function(){a(this).addClass("jquery-mobile-ui-label").html(a("<span>",{"class":"jquery-mobile-ui-label-text"}).text(a(this).text()))})})}(jQuery),ensureNS("jQuery.mobile.tizen.clrlib"),jQuery.extend(jQuery.mobile.tizen.clrlib,{nearestInt:function(a){var b=Math.floor(a);return a-b>.5?b+1:b},HTMLToRGB:function(a){return a="#"==a.charAt(0)?a.substring(1):a,[a.substring(0,2),a.substring(2,4),a.substring(4,6)].map(function(a){return parseInt(a,16)/255})},RGBToHTML:function(a){return"#"+a.map(function(a){var b=a*255,c=Math.floor(b);return b=b-c>.5?c+1:c,b=(b<16?"0":"")+(b&255).toString(16),b}).join("")},HSLToRGB:function(a){var b=a[0]/360,c=a[1],d=a[2];if(0===c)return[d,d,d];var e=d<.5?d*(1+c):d+c-d*c,f=2*d-e,g={r:b+1/3,g:b,b:b-1/3};return g.r=g.r<0?g.r+1:g.r>1?g.r-1:g.r,g.g=g.g<0?g.g+1:g.g>1?g.g-1:g.g,g.b=g.b<0?g.b+1:g.b>1?g.b-1:g.b,ret=[6*g.r<1?f+(e-f)*6*g.r:2*g.r<1?e:3*g.r<2?f+(e-f)*(2/3-g.r)*6:f,6*g.g<1?f+(e-f)*6*g.g:2*g.g<1?e:3*g.g<2?f+(e-f)*(2/3-g.g)*6:f,6*g.b<1?f+(e-f)*6*g.b:2*g.b<1?e:3*g.b<2?f+(e-f)*(2/3-g.b)*6:f],ret},HSVToRGB:function(a){return $.mobile.tizen.clrlib.HSLToRGB($.mobile.tizen.clrlib.HSVToHSL(a))},RGBToHSV:function(a){var b,c,d,e,f,g,h=a[0],i=a[1],j=a[2];return b=Math.min(h,Math.min(i,j)),c=Math.max(h,Math.max(i,j)),d=c-b,e=0,f=0,g=c,d>1e-5&&(f=d/c,h===c?e=(i-j)/d:i===c?e=2+(j-h)/d:e=4+(h-i)/d,e*=60,e<0&&(e+=360)),[e,f,g]},HSVToHSL:function(a){var b=a[2],c=a[1]*b,d=b-c,e=b+d,f=e/2,g=f<.5?e:2-b-d;return[a[0],0==g?0:c/g,f]},RGBToHSL:function(a){return $.mobile.tizen.clrlib.HSVToHSL($.mobile.tizen.clrlib.RGBToHSV(a))}}),function(a,b){ensureNS("jQuery.mobile.tizen"),jQuery.extend(jQuery.mobile.tizen,{_widgetPrototypes:{},loadPrototype:function(c,d){function h(a){return a.replace(/\$\{FRAMEWORK_ROOT\}/g,g)}function i(a,b){var c;for(var d in a)typeof a[d]=="string"?(c=a[d],a[d]=b.find(a[d]),c.substring(0,1)==="#"&&a[d].removeAttr("id")):typeof a[d]=="object"&&(a[d]=i(a[d],b));return a}var e=b,f=a("script[data-framework-version][data-framework-root][data-framework-theme]"),g=f.attr("data-framework-root")+"/"+f.attr("data-framework-version")+"/";if(typeof c=="string"){e=a.mobile.tizen._widgetPrototypes[c];if(e===b){var j=g+"proto-html"+"/"+f.attr("data-framework-theme");a.ajax({url:j+"/"+c+".prototype.html",async:!1,dataType:"html"}).success(function(b,d,f){a.mobile.tizen._widgetPrototypes[c]=a("<div>").html(h(b)),e=a.mobile.tizen._widgetPrototypes[c].clone()})}}else c.key!==b&&(e=a.mobile.tizen._widgetPrototypes[c.key]),e===b?c.proto!==b&&(e=a("<div>").html(h(c.proto)),c.key!==b&&(a.mobile.tizen._widgetPrototypes[c.key]=e.clone())):e=e.clone();return e!=b&&d!=b&&(e=i(d,e)),e}})}(jQuery),function(a,b,c,d){function g(a){var c=b.FileError,d="";switch(a.code){case c.QUOTA_EXCEEDED_ERR:d="QUOTA_EXCEEDED_ERR";break;case c.NOT_FOUND_ERR:d="NOT_FOUND_ERR";break;case c.SECURITY_ERR:d="SECURITY_ERR";break;case c.INVALID_MODIFICATION_ERR:d="INVALID_MODIFICATION_ERR";break;case c.INVALID_STATE_ERR:d="INVALID_STATE_ERR";break;default:d="Unknown Error"}return d}function h(a){var b=a.replace(/\//gi,"_");return b}function i(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=a/c,k=b/d,l=Math.max(j,k);return e?(f=c,g=d):(l>1?(f=a/l,g=b/l):(f=a,g=b),h=(c-f)/2,i=(d-g)/2),{w:f,h:g,x:h,y:i}}function j(a,b,c,d){var g,h;return e.width=b,e.height=c,g=i(a.width,a.height,b,c,d),f.fillStyle="#000000",f.fillRect(0,0,b,c),f.drawImage(a,g.x,g.y,g.w,g.h),h=e.toDataURL(),h}var e=c.createElement("canvas"),f=e.getContext("2d");a.imageloader={_grantedBytes:1048576,getThumbnail:function(a,b){function e
-(a){var c=g(a);b&&b(c==="NOT_FOUND_ERR"?c:null)}var c,d;c=h(a);try{d=localStorage.getItem(c),b&&b(d===null?"NOT_FOUND_ERR":d)}catch(f){b&&b(f.type==="non_object_property_load"?"NOT_FOUND_ERR":null)}},setThumbnail:function(a,b,c,d,e){function l(a){var c=g(a);b&&b(c==="NOT_FOUND_ERR"?c:null)}var f,i,k;c=c||128,d=d||128,e=e||!0,f=new Image,f.onload=function(){i=h(a),k=j(this,c,d,e);try{localStorage.setItem(i,k),b&&b(k)}catch(f){b&&b(f.type==="non_object_property_load"?"NOT_FOUND_ERR":null)}},f.src=a},removeThumbnail:function(a){function c(a){g(a)}var b;b=h(a);try{localStorage.removeItem(b)}catch(d){throw d}}}}(jQuery,window,document),function(a,b){a.webgl={},a.webgl.shader={_vertexShader:null,_fragmentShader:null,deleteShaders:function(a){a.deleteShader(this._vertexShader),a.deleteShader(this._fragmentShader)},addShaderProgram:function(a,b,c,d){var e,f={},g={};return d?(f=this.loadShaderFile(b),g=this.loadShaderFile(c)):(f.source=b,g.source=c),this._vertexShader=this.getShader(a,a.VERTEX_SHADER,f),this._fragmentShader=this.getShader(a,a.FRAGMENT_SHADER,g),e=a.createProgram(),a.attachShader(e,this._vertexShader),a.attachShader(e,this._fragmentShader),a.linkProgram(e),a.getProgramParameter(e,a.LINK_STATUS)||window.alert("Could not initialize Shaders!"),e},loadShaderFile:function(b){var c=null;return a.ajax({async:!1,url:b,success:function(a){c={source:a}}}),c},getShader:function(a,b,c){var d;return!a||!b||!c?null:(d=a.createShader(b),a.shaderSource(d,c.source),a.compileShader(d),a.getShaderParameter(d,a.COMPILE_STATUS)?d:(window.alert(a.getShaderInfoLog(d)),a.deleteShader(d),null))}},a.webgl.buffer={attribBufferData:function(a,b){var c=a.createBuffer();return a.bindBuffer(a.ARRAY_BUFFER,c),a.bufferData(a.ARRAY_BUFFER,b,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,null),c}}}(jQuery),function(a,b){a.widget("tizen.listdivider",a.mobile.widget,{options:{initSelector:":jqmData(role='list-divider')",folded:!1,listDividerLine:!0},_create:function(){var c=this.element,d=!0,e,f=!0,g=c.attr("data-style");c.data("line")===!1&&(this.options.listDividerLine=!1),c.data("folded")===!0&&(this.options.folded=!0);if(g==b||g==="normal"||g==="check")this.options.folded?c.buttonMarkup():c.wrapInner("<span class='ui-btn-text'></span>"),this.options.listDividerLine&&(e="<span class='ui-divider-normal-line'></span>",this.options.folded?a(e).appendTo(c.children(".ui-btn-inner")):a(e).appendTo(c));c.bind("vclick",function(a,b){})}}),a(document).bind("pagecreate create",function(b){a(a.tizen.listdivider.prototype.options.initSelector,b.target).listdivider()})}(jQuery),function(a,b,c){pinch_event={setup:function(){function f(a){var b=a[0].x-a[1].x,c=a[0].y-a[0].y;return Math.sqrt(b*b+c*c)}function g(a,b){return{point:a,ratio:b}}var d=this,e=a(d);if(!a.mobile.support.touch)return;e.bind("touchstart",function(d){function l(c){var d=c.originalEvent.touches,e,h,l,m=a(b).width()/a.mobile.pinch.factor;if(k)return;if(!i)return;e=[{x:d[0].pageX,y:d[0].pageY},{x:d[1].pageX,y:d[1].pageY}],l=f(e)-f(i),h=1+l/m,h<a.mobile.pinch.min?h=a.mobile.pinch.min:h>a.mobile.pinch.max&&(h=a.mobile.pinch.max);if(Math.abs(h-j)<a.mobile.pinch.threshold)return;a(c.target).trigger("pinch",g(e,h)),j=h,a.mobile.pinch.interval&&(k=!0,setTimeout(function(){k=!1},a.mobile.pinch.interval))}var h=d.originalEvent.touches,i,j=1,k=!1;if(!a.mobile.pinch.enabled)return;if(h.length!=2)return;i=[{x:h[0].pageX,y:h[0].pageY},{x:h[1].pageX,y:h[1].pageY}],a(d.target).trigger("pinchstart",g(i,c)),e.bind("touchmove",l).one("touchend",function(b){e.unbind("touchmove",l),a(b.target).trigger("pinchend",g(c,j)),i=c,current=c,j=1,k=!1})})}},a.event.special.pinch=pinch_event,a.mobile.pinch={enabled:!0,min:.1,max:3,factor:4,threshold:.01,interval:50}}(jQuery,this),function(a,b,c){a.mobile.defaultPageTransition="none",a.mobile.transitionHandlers.depth=a.mobile.transitionHandlers.simultaneous,a.mobile.transitionFallbacks.depth="fade",a.fn.buttonMarkup.defaults.corners=!1,a.mobile.buttonMarkup.hoverDelay=0}(jQuery,this),function(a,b,c){var d=Math.PI/2,e=.001,f={},g=b.vec3,h=function(a,b){var c=[b[0]-a[0],b[1]-a[1],b[2]-a[2]],d=Math.sqrt(c[0]*c[0]+c[1]*c[1]+c[2]*c[2]);return d};f.base=function(){},f.base.prototype={points:[],step:e,length:0,levels:[],init:function(a){},calculateLevel:function(a){},calculateTotalLength:function(){},getPosition:function(a){},getPercent:function(a,b){},getAngle:function(a){}},f.bezier2d=function(){},f.bezier2d.prototype=a.extend(!0,{},f.base.prototype,{init:function(a){this.points=a.points,this.step=a.step||e,this.length=this.calculateTotalLength(),this.levels=this.calculateLevel(a.maxLevel)||[]},calculateLevel:function(a){var b=this.length,c=b/a,d=[],e;if(!a)return null;for(e=0;e<a;e+=1)d[a-e]=this.getPercent(0,c*e);return d},calculateTotalLength:function(){var a=this.step,b=this.getPosition(0),c=b,d=0,e;for(e=a;e<=1;e+=a)b=this.getPosition(e),d+=h(c,b),c=b;return d},getPosition:function(a){var b=this.points,c=function(a,b,c,d,e){return Math.pow(1-e,3)*a+3*e*Math.pow(1-e,2)*b+3*Math.pow(e,2)*(1-e)*c+Math.pow(e,3)*d},d=[c(b[0][0],b[1][0],b[2][0],b[3][0],a),c(b[0][2],b[1][2],b[2][2],b[3][2],a)];return[d[0],0,d[1]]},getPercent:function(a,b){var c=this.step,d=this.getPosition(a=a||0),e=d,f=a+b,g=0,i;for(i=a+c;i<=1;i+=c){d=this.getPosition(i),g+=h(e,d);if(g>=f)return i;e=d}return 1},getAngle:function(a){var b=this.points,c=function(a,b,c,d,e){return 3*e*e*(-a+3*b-3*c+d)+6*e*(a-2*b+c)+3*(-a+b)},e=c(b[0][0],b[1][0],b[2][0],b[3][0],a),f=c(b[0][2],b[1][2],b[2][2],b[3][2],a);return Math.atan2(e,f)-d}}),f.bspline=function(){},f.bspline.prototype=a.extend(!0,{},f.base.prototype,{_degree:3,_numberOfControls:0,_knotVectors:[],_numberOfKnots:0,init:function(a){this.points=a.points,this.step=a.step||e,this._numberOfPoints=this.points.length-1,this._numberOfKnots=this._numberOfPoints+this._degree+1;var b=1/(this._numberOfKnots-2*this._degree),c=b,d=0;while(d<=this._numberOfKnots)d<=this._degree?this._knotVectors.push(0):d<this._numberOfKnots-this._degree+1?(this._knotVectors.push(c),c+=b):this._knotVectors.push(1),d+=1;this.length=this.calculateTotalLength(),this.levels=this.calculateLevel(a.maxLevel)||[]},_Np:function(a,b,c){var d=this._knotVectors,e=0,f=0,g=0,h=function(a,b){return d[b]<=a&&a<d[b+1]?1:0};return c===1?(e=h(a,b),f=h(a,b+1)):(e=this._Np(a,b,c-1),f=this._Np(a,b+1,c-1)),g=d[b+c]-d[b],e*=g!==0?(a-d[b])/g:0,g=d[b+c+1]-d[b+1],f*=g!==0?(d[b+c+1]-a)/g:0,e+f},calculateLevel:function(a){var b=this.length,c=b/a,d=[],e;if(!a)return null;for(e=0;e<a;e+=1)d[a-e]=this.getPercent(0,c*e);return d},calculateTotalLength:function(){var a=this.step,b=this.getPosition(0),c=b,d=0,e;for(e=a;e<=1;e+=a)b=this.getPosition(e),d+=h(c,b),c=b;return d},getPosition:function(a){var b=[],c,d,e;a=a.toFixed(4);for(d=0;d<3;d+=1){e=0;for(c=0;c<=this._numberOfPoints;c+=1)e+=this.points[c][d]*this._Np(a,c,this._degree);b[d]=e}return b},getPercent:function(a,b){var c=this.step,d=this.getPosition(a=a||0),e=d,f=a+b,g=0,i;for(i=a+c;i<=1;i+=c){d=this.getPosition(i),g+=h(e,d);if(g>=f)return i;e=d}return 1},getAngle:function(a){var b=this.getPosition(a),c=this.getPosition(a+.001),d=g.normalize(g.direction(b,c)),e=g.dot(d,[1,0,0]);return Math.acos(e)+Math.PI}}),a.motionpath=function(a,b){var c=new f[a];return c.init(b),c}}(jQuery,window),function(a,b,c,d){a.widget("tizen.multimediaview",a.mobile.widget,{options:{theme:null,controls:!0,fullScreen:!1,initSelector:"video, audio"},_create:function(){var b=this,c=b.element,d=c[0],e=d.nodeName==="VIDEO",f=b.options,g=a.mobile.getInheritedTheme(c,"s"),h=f.theme||g,i=d.style.getPropertyValue("width")||"",j=a("<div class='ui-multimediaview-wrap ui-multimediaview-"+h+"'>"),k=null;a.extend(this,{role:null,controlTimer:null,isVolumeHide:!0,backupView:null,_reserveVolume:-1,_isVideo:e}),c.addClass("ui-multimediaview"),k=b._createControl(),k.hide(),k.find(".ui-button").each(function(b){a(this).buttonMarkup({corners:!0,theme:h,shadow:!0})}),c.wrap(j).after(k),e?k.addClass("ui-multimediaview-video"):(b.width(i),b.options.fullScreen=!1),f.controls&&c.attr("controls")&&c.removeAttr("controls"),b._addEvent()},_resize:function(){this._resizeFullscreen(this.options.fullScreen),this._resizeControl(),this._updateSeekBar(),this._updateVolumeState()},_resizeControl:function(){var a=this,b=a.element,c=b[0],d=a._isVideo,e=b.parent(".ui-multimediaview-wrap"),f=e.find(".ui-multimediaview-control"),g=f.find(".ui-button"),h=f.find(".ui-playpausebutton"),i=f.find(".ui-seekbar"),j=f.find(".ui-durationlabel"),k=f.find(".ui-timestamplabel"),l=f.find(".ui-volumecontrol"),m=l.find(".ui-volumebar"),n=d?b.width():e.width(),o=d?b.height():f.height(),p=b.offset(),q=f.height(),r=0,s=null;f&&(d&&(s=f.offset(),s.left=p.left,s.top=p.top+o-q,f.offset(s)),f.width(n)),i&&(r=f.width()-g.outerWidth(!0)*g.length,r-=(parseInt(g.eq(0).css("margin-left"),10)+parseInt(g.eq(0).css("margin-right"),10))*g.length,a.isVolumeHide||(r-=l.outerWidth(!0)),i.width(r)),j&&!isNaN(c.duration)&&j.find("p").text(a._convertTimeFormat(c.duration)),c.autoplay&&c.paused===!1&&h.removeClass("ui-play-icon").addClass("ui-pause-icon"),i.width()<m.width()+k.width()+j.width()?j.hide():j.show()},_resizeFullscreen:function(b){if(!this._isVideo)return;var d=this,e=d.element,f=e[0],g=e.parent(".ui-multimediaview-wrap"),h=g.find(".ui-multimediaview-control"),i=h.find(".ui-fullscreenbutton"),j=a(".ui-page-active"),k=h.find(".ui-playpausebutton"),l=h.find(".ui-timestamplabel"),m=h.find(".ui-seekbar"),n=m.find(".ui-duration"),o=m.find(".ui-currenttime"),p=a("body")[0],q=j.children(".ui-header"),r=j.children(".ui-footer"),s=0,t=0;if(b)d.backupView||(d.backupView={width:f.style.getPropertyValue("width")||"",height:f.style.getPropertyValue("height")||"",position:e.css("position"),zindex:e.css("z-index"),wrapHeight:g[0].style.getPropertyValue("height")||""}),s=p.clientWidth,t=p.clientHeight-1,q.hide(),r.hide(),e.parents().each(function(b){var c=a(this);c.addClass("ui-fullscreen-parents").siblings().addClass("ui-multimediaview-siblings-off")}),i.removeClass("ui-fullscreen-on").addClass("ui-fullscreen-off"),g.height(t),e.width(s).height(t);else{if(!d.backupView)return;q.show(),r.show(),e.parents().each(function(b){var c=a(this);c.removeClass("ui-fullscreen-parents").siblings().removeClass("ui-multimediaview-siblings-off")}),i.removeClass("ui-fullscreen-off").addClass("ui-fullscreen-on"),g.css("height",d.backupView.wrapHeight),e.css({width:d.backupView.width,height:d.backupView.height,position:d.backupView.position,"z-index":d.backupView.zindex}),d.backupView=null,a(c).trigger("throttledresize")}},_addEvent:function(){var c=this,d=c.element,e=c.options,f=d[0],g=c._isVideo,h=d.parent(".ui-multimediaview-wrap").find(".ui-multimediaview-control"),i=h.find(".ui-playpausebutton"),j=h.find(".ui-timestamplabel"),k=h.find(".ui-durationlabel"),l=h.find(".ui-volumebutton"),m=h.find(".ui-volumecontrol"),n=m.find(".ui-volumebar"),o=m.find(".ui-guide"),p=m.find(".ui-handle"),q=h.find(".ui-fullscreenbutton"),r=h.find(".ui-seekbar"),s=r.find(".ui-duration"),t=r.find(".ui-currenttime"),u=a(b);d.bind("loadedmetadata.multimediaview",function(a){isNaN(f.duration)||k.find("p").text(c._convertTimeFormat(f.duration)),c._resize()}).bind("timeupdate.multimediaview",function(a){c._updateSeekBar()}).bind("play.multimediaview",function(a){i.removeClass("ui-play-icon").addClass("ui-pause-icon")}).bind("pause.multimediaview",function(a){i.removeClass("ui-pause-icon").addClass("ui-play-icon")}).bind("ended.multimediaview",function(a){(typeof f.loop=="undefined"||f.loop==="")&&c.stop()}).bind("volumechange.multimediaview",function(a){f.muted&&f.volume>.1?(l.removeClass("ui-volume-icon").addClass("ui-mute-icon"),c._reserveVolume=f.volume,f.volume=0):c._reserveVolume!==-1&&!f.muted?(l.removeClass("ui-mute-icon").addClass("ui-volume-icon"),f.volume=c._reserveVolume,c._reserveVolume=-1):f.volume<.1?l.removeClass("ui-volume-icon").addClass("ui-mute-icon"):l.removeClass("ui-mute-icon").addClass("ui-volume-icon"),c.isVolumeHide||c._updateVolumeState()}).bind("durationchange.multimediaview",function(a){isNaN(f.duration)||k.find("p").text(c._convertTimeFormat(f.duration)),c._resize()}).bind("click.multimediaview",function(a){if(!c.options.controls)return;h.fadeToggle("fast"),c._resize()}).bind("multimediaviewinit",function(a){e.controls&&h.show(),c._resize()}),i.bind("click.multimediaview",function(){c._endTimer(),f.paused?f.play():f.pause(),g&&c._startTimer()}),q.bind("click.multimediaview",function(a){a.preventDefault(),c.fullScreen(!c.options.fullScreen),c._resize(),c._endTimer(),a.stopPropagation()}),r.bind("vmousedown.multimediaview",function(a){var b=a.clientX,d=f.duration,e=s.offset(),g=s.width(),h=(b-e.left)/g,i=d*h;if(!f.played.length)return;f.currentTime=i,c._endTimer(),a.preventDefault(),u.bind("vmousemove.multimediaview",function(a){var b=a.clientX,c=(b-e.left)/g;f.currentTime=d*c,a.preventDefault()}).bind("vmouseup.multimediaview",function(){u.unbind("vmousemove.multimediaview vmouseup.multimediaview"),f.paused?f.pause():f.play()})}),l.bind("click.multimediaview",function(){if(c.isVolumeHide){var a=c.element,b=f.volume;c.isVolumeHide=!1,m.fadeIn("fast",function(){c._updateVolumeState(),c._updateSeekBar()}),c._resize()}else c.isVolumeHide=!0,m.fadeOut("fast",function(){c._resize()})}),n.bind("vmousedown.multimediaview",function(a){var b=a.clientX,d=o.offset().left,e=o.width(),f=d+e,g=p.offset(),h=(b-d)/e,i=(b-d)/e;c._endTimer(),c._setVolume(i.toFixed(2)),a.preventDefault(),u.bind("vmousemove.multimediaview",function(a){var b=a.clientX,f=(b-d)/e;c._setVolume(f.toFixed(2)),a.preventDefault()}).bind("vmouseup.multimediaview",function(){u.unbind("vmousemove.multimediaview vmouseup.multimediaview")})})},_removeEvent:function(){var a=this.element,b=a.parent(".ui-multimediaview-wrap").find(".ui-multimediaview-control"),c=b.find(".ui-playpausebutton"),d=b.find(".ui-fullscreenbutton"),e=b.find(".ui-seekbar"),f=b.find(".ui-volumecontrol"),g=f.find(".ui-volumebar"),h=f.find(".ui-handle");a.unbind(".multimediaview"),c.unbind(".multimediaview"),d.unbind(".multimediaview"),e.unbind(".multimediaview"),g.unbind(".multimediaview"),h.unbind(".multimediaview")},_createControl:function(){var b=this.element,c=b[0],d=a("<span></span>").addClass("ui-multimediaview-control"),e=a("<span></span>").addClass("ui-playpausebutton ui-button ui-play-icon"),f=a("<span></span>").addClass("ui-seekbar ui-multimediaview-bar"),g=a("<span><p>00:00:00</p></span>").addClass("ui-timestamplabel"),h=a("<span><p>00:00:00</p></span>").addClass("ui-durationlabel"),i=a("<span></span>").addClass("ui-volumebutton ui-button"),j=a("<span></span>").addClass("ui-volumecontrol"),k=a("<div></div>").addClass("ui-volumebar ui-multimediaview-bar"),l=a("<span></span>").addClass("ui-guide ui-multimediaview-bar-bg"),m=a("<span></span>").addClass("ui-value ui-multimediaview-bar-highlight"),n=a("<span></span>").addClass("ui-handle"),o=a("<span></span>").addClass("ui-fullscreenbutton ui-button"),p=a("<span></span>").addClass("ui-duration ui-multimediaview-bar-bg"),q=a("<span></span>").addClass("ui-currenttime ui-multimediaview-bar-highlight");return f.append(p).append(q).append(h).append(g),i.addClass(c.muted?"ui-mute-icon":"ui-volume-icon"),k.append(l).append(m).append(n),j.append(k),d.append(e).append(f).append(j).append(i),this._isVideo&&(a(o).addClass("ui-fullscreen-on"),d.append(o)),j.hide(),d},_startTimer:function(a){this._endTimer(),a||(a=3e3);var b=this,c=b.element,d=c.parent(".ui-multimediaview-wrap").find(".ui-multimediaview-control"),e=d.find(".ui-volumecontrol");b.controlTimer=setTimeout(function(){b.isVolumeHide=!0,b.controlTimer=null,e.hide(),d.fadeOut("fast")},a)},_endTimer:function(){this.controlTimer&&(clearTimeout(this.controlTimer),this.controlTimer=null)},_convertTimeFormat:function(b){if(!a.isNumeric(b))return"Playback Error";var c=parseInt(b%60,10).toString(),d=parseInt(b/60%60,10).toString(),e=parseInt(b/3600,10).toString(),f=(e.length<2?"0"+e:e)+":"+(d.length<2?"0"+d:d)+":"+(c.length<2?"0"+c:c);return f},_updateSeekBar:function(a){var b=this.element,c=b[0],d=c.duration,e=b.parent(".ui-multimediaview-wrap").find(".ui-multimediaview-control"),f=e.find(".ui-seekbar"),g=f.find(".ui-duration"),h=f.find(".ui-currenttime"),i=e.find(".ui-timestamplabel"),j=g.offset(),k=g.width(),l=g.height(),m=0;typeof a=="undefined"&&(a=c.currentTime),m=parseInt(a/d*k,10),g.offset(j),h.offset(j).width(m),i.find("p").text(this._convertTimeFormat(a))},_updateVolumeState:function(){var a=this.element,b=a.parent(".ui-multimediaview-wrap").find(".ui-multimediaview-control"),c=b.find(".ui-volumecontrol"),d=b.find(".ui-volumebutton"),e=c.find(".ui-volumebar"),f=c.find(".ui-guide"),g=c.find(".ui-value"),h=c.find(".ui-handle"),i=h.width(),j=h.height(),k=f.height(),l=f.width(),m=0,n=0,o=0,p=null,q=a[0].volume;m=parseInt(f.offset().top,10),n=parseInt(f.offset().left,10),o=n,p=h.offset(),p.top=m-parseInt((j-k)/2,10),p.left=o+parseInt(l*q,10)-parseInt(i/2,10),h.offset(p),g.offset(f.offset()).width(parseInt(l*q,10))},_setVolume:function(a){var b=this.element[0];if(a<0||a>1)return;b.volume=a},width:function(a){if(this.options.fullScreen)return;var b=this.element,c=b.parent(".ui-multimediaview-wrap");if(arguments.length===0)return b.width();this._isVideo||c.width(a),b.width(a),this._resize()},height:function(a){if(!this._isVideo||this.options.fullScreen)return;var b=this.element;if(arguments.length===0)return b.height();b.height(a),this._resize()},fullScreen:function(a){if(!this._isVideo)return;var b=this.element,c=this.options;if(arguments.length===0)return c.fullScreen;b.parents(".ui-scrollview-clip").scrollview("scrollTo",0,0),this.options.fullScreen=a,this._resize()},refresh:function(){this._resize()}}),a(b).bind("pagecreate create",function(b){a.tizen.multimediaview.prototype.enhanceWithin(b.target)}).bind("pagechange",function(b){a(b.target).find(".ui-multimediaview").each(function(){var b=a(this),c=b[0];c.autoplay&&c.play(),b.multimediaview("refresh")})}).bind("pagebeforechange",function(b){a(b.target).find(".ui-multimediaview").each(function(){var b=a(this),c=b[0],d=b.multimediaview("fullScreen");d&&b.multimediaview("fullScreen",!d),c.played.length!==0&&c.pause()})}),a(c).bind("resize orientationchange",function(b){a(".ui-page-active").find(".ui-multimediaview").multimediaview("refresh")})}(jQuery,document,window),ensureNS("jQuery.mobile.tizen"),function(){jQuery.extend(jQuery.mobile.tizen,{disableSelection:function(a){return this.enableSelection($(a).find("*").not('input, [type="text"], textarea'),"none"),!0},enableSelection:function(a,b){var c;switch(b){case"text":case"auto":case"none":c=b;break;default:c="auto"}return $(a).css({"user-select":c,"-moz-user-select":c,"-webkit-user-select":c,"-o-user-select":c,"-ms-transform":c})},disableContextMenu:function(a){var b=this;$(a).find("*").each(function(){$(this).get(0).tagName!=="INPUT"&&$(this).attr("type")!=="text"&&$(this).get(0).tagName!=="TEXTAREA"&&b._disableContextMenu(this)})},_disableContextMenu:function(a){$(a).each(function(){$(this).bind("contextmenu",function(a){return!1})})},enableContextMenu:function(a){$(a).each(function(){$(this).unbind("contextmenu")})},documentRelativeCoordsFromEvent:function(a){var b=a?a:window.event,c={x:b.clientX,y:b.clientY},d={x:b.pageX,y:b.pageY},e=0,f=0;b.type.match(/^touch/)&&(d={x:b.originalEvent.targetTouches[0].pageX,y:b.originalEvent.targetTouches[0].pageY},c={x:b.originalEvent.targetTouches[0].clientX,y:b.originalEvent.targetTouches[0].clientY});if(d.x||d.y)e=d.x,f=d.y;else if(c.x||c.y)e=c.x+document.body.scrollLeft+document.documentElement.scrollLeft,f=c.y+document.body.scrollTop+document.documentElement.scrollTop;return{x:e,y:f}},targetRelativeCoordsFromEvent:function(a){var b={x:a.offsetX,y:a.offsetY};if(b.x===undefined||isNaN(b.x)||b.y===undefined||isNaN(b.y)){var c=$(a.target).offset();b=$.mobile.tizen.documentRelativeCoordsFromEvent(a),b.x-=c.left,b.y-=c.top}return b}})}(),function(a,b,c){a.tizen.scrollview.prototype.options.handler=!1,a.tizen.scrollview.prototype.options.handlerTheme="s";var d=a.tizen.scrollview.prototype._setOption,e=function(d){var e=d,f='<div class="ui-handler ui-handler-direction-',g='"><div class="ui-handler-track"><div class="ui-handler-thumb"></div></div></div>',h=e.data("scrollview"),i=h.options,j=i.direction,k=a.mobile.getInheritedTheme(h,"s"),l=i.theme||k,m=h.options.direction==="x",n=h._$view,o=h._$clip,p=e.find(".ui-scrollbar"),q=null,r=null,s=0,t=0,u=0,v=0,w=0,x,y=a.support.touch,z=(y?"touchstart":"mousedown")+".handler",A=(y?"touchmove":"mousemove")+".handler",B=(y?"touchend":"mouseup")+".handler",C=(y?" touchleave":" mouseleave")+".handler",D=function(){t=m?o.width():o.height(),s=(m?n.width():n.height())-t,w=t-u-v*2},E=function(a){var b=Math.round((m?a.x:a.y)/s*w);r[0].style[m?"left":"top"]=b+"px"},F=function(){a(b).unbind(".handler"),e.moveData=null,n.trigger("scrollstop")};if(e.find(".ui-handler-thumb").length!==0||typeof j!="string")return;q=a([f,j,g].join("")).appendTo(e.addClass(" ui-handler-"+l)),r=e.find(".ui-handler-thumb").attr({tabindex:"0","aria-label":m?"Horizontal handler, double tap and move to scroll":"Verticalhandler, double tap and move to scroll"}).hide(),u=m?r.width():r.height(),v=m?parseInt(q.css("right"),10):parseInt(q.css("bottom"),10),a.extend(e,{moveData:null}),r.bind(z,{e:r[0]},function(c){h._stopMScroll();var d=c.data.e,f=y?c.originalEvent.targetTouches[0]:c;d.style.opacity=1,e.moveData={target:d,X:parseInt(d.style.left,10)||0,Y:parseInt(d.style.top,10)||0,pX:f.pageX,pY:f.pageY},D(),n.trigger("scrollstart"),y||c.preventDefault(),a(b).bind(A,function(a){var b=e.moveData,c=b.target,d=0,f=0,g=y?a.originalEvent.targetTouches[0]:a;d=m?b.X+g.pageX-b.pX:b.Y+g.pageY-b.pY,d<0&&(d=0),d>w&&(d=w),f=-Math.round(d/w*s),m?(h._setScrollPosition(f,0),c.style.left=d+"px"):(h._setScrollPosition(0,f),c.style.top=d+"px"),a.preventDefault()}).bind(B+C,function(a){F()})}),n.bind(B,function(a){F()}),e.bind("scrollstart",function(a){if(!h.enableHandler())return;D();if(s<0||t<u){p.is(":hidden")&&p.show();return}p.is(":visible")&&p.hide(),x&&(clearInterval(x),x=c),q.addClass("ui-handler-visible"),r.stop(!0,!0).fadeIn()}).bind("scrollupdate",function(a,b){if(!h.enableHandler()||s<0||t<u)return;E(h.getScrollPosition())}).bind("scrollstop",function(a){if(!h.enableHandler()||s<0||t<u)return;x=setInterval(function(){E(h.getScrollPosition()),h._gesture_timer||(clearInterval(x),x=c)},10),h._handlerTimer&&(clearTimeout(h._handlerTimer),h._handlerTimer=0),h._handlerTimer=setTimeout(function(){h._timerID===0&&e.moveData===null&&(r.stop(!0,!0).css("opacity",1).fadeOut(function(){q.removeClass("ui-handler-visible")}),h._handlerTimer=0)},1e3)}).bind("mousewheel",function(a){q.removeClass("ui-handler-visible"),E(h.getScrollPosition())})};a.extend(a.tizen.scrollview.prototype,{enableHandler:function(a){if(typeof a=="undefined")return this.options.handler;this.options.handler=!!a;var b=this.element;this.options.handler?(b.find(".ui-handler").length===0&&e(b),b.find(".ui-scrollbar").hide(),b.find(".ui-handler").show()):(b.find(".ui-handler").removeClass("ui-handler-visible").hide(),b.find(".ui-scrollbar").show())},_setHandlerTheme:function(a){if(!a)return;var b="ui-handler-"+this.options.handlerTheme,c="ui-handler-"+a;this.element.removeClass(b).addClass(c),this.options.handlerTheme=a},_setOption:function(a,b){switch(a){case"handler":this.enableHandler(b);break;case"handlerTheme":this._setHandlerTheme(b);break;default:d.call(this,a,b)}},_handlerTimer:0}),a(b).delegate(":jqmData(scroll)","scrollviewcreate",function(){var b=a(this);if(b.attr("data-"+a.mobile.ns+"scroll")==="none"||b.attr("data-"+a.mobile.ns+"handler")!=="true")return;b.scrollview("enableHandler","true")})}(jQuery,document),function(a,b){var c={},d=0,e=1,f=-1;a.widget("tizen.virtuallistview",a.mobile.widget,{options:{theme:"s",countTheme:"s",headerTheme:"s",dividerTheme:"s",splitIcon:"arrow-r",splitTheme:"s",inset:!1,id:"",childSelector:" li",dbtable:"",template:"",dbkey:!1,scrollview:!1,row:100,page_buf:30,initSelector:":jqmData(role='virtuallistview')"},_stylerMouseUp:function(){a(this).addClass("ui-btn-up-s"),a(this).removeClass("ui-btn-down-s")},_stylerMouseDown:function(){a(this).addClass("ui-btn-down-s"),a(this).removeClass("ui-btn-up-s")},_stylerMouseOver:function(){a(this).toggleClass("ui-btn-hover-s")},_stylerMouseOut:function(){a(this).toggleClass("ui-btn-hover-s"),a(this).addClass("ui-btn-up-s"),a(this).removeClass("ui-btn-down-s")},_pushData:function(b){var c=this.options,d,e=a("#"+b),f=c.row>this._numItemData?this._numItemData:c.row,g;for(d=0;d<f;d++)g=e.tmpl(this._itemData(d)),a(c.id).append(a(g).attr("id",c.itemIDPrefix+d));a(c.id).trigger("create")},_reposition:function(b){var c,d=this,e,f;b.data?c=b.data:c=b,a(c.id+c.childSelector).size()>0&&(d._title_h=a(c.id+c.childSelector+":first").position().top,d._line_h=a(c.id+c.childSelector+":first").outerHeight(),d._container_w=a(c.id).innerWidth(),e=parseInt(a(c.id+c.childSelector).css("padding-left"),10)+parseInt(a(c.id+c.childSelector).css("padding-right"),10),a(c.id+">"+c.childSelector).addClass("position_absolute").addClass("ui-btn-up-s").bind("mouseup",d._stylerMouseUp).bind("mousedown",d._stylerMouseDown).bind("mouseover",d._stylerMouseOver).bind("mouseout",d._stylerMouseOut)),a(c.id+">"+c.childSelector).each(function(b){f=parseInt(a(this).css("margin-left"),10)+parseInt(a(this).css("margin-right"),10),a(this).css("top",d._title_h+d._line_h*b+"px").css("width",d._container_w-e-f)}),a(c.id).height(d._numItemData*d._line_h)},_resize:function(b){var c,d=this,e,f;b.data?c=b.data:c=b,d._container_w=a(c.id).innerWidth(),e=parseInt(a(c.id+c.childSelector).css("padding-left"),10)+parseInt(a(c.id+c.childSelector).css("padding-right"),10),a(c.id+c.childSelector).each(function(b){f=parseInt(a(this).css("margin-left"),10)+parseInt(a(this).css("margin-right"),10),a(this).css("width",d._container_w-e-f)})},_scrollmove:function(b){function j(){return d.scrollview?h.viewTop():i.viewTop()}function k(a){var b=!1;b&&console.log(">>virtualllist: "+a)}function l(b,c){function t(b,c,d){var e={ELEMENT_NODE:1,TEXT_NODE:3},f,g,h,i,j;a(c).find(".ui-li-text-main",".ui-li-text-sub",".ui-li-text-sub2","ui-btn-text").each(function(b){f=a(this),h=a(d).find(".ui-li-text-main",".ui-li-text-sub","ui-btn-text").eq(b).text(),a(f).contents().filter(function(){return this.nodeType==e.TEXT_NODE}).get(0).data=h}),a(c).find("img").each(function(b){var c=a(this);i=a(d).find("img").eq(b).attr("src"),a(c).attr("src",i)}),a(c).removeData()}function u(b,c,d){var e,f,g,h;return k(">> move item: "+c+" --> "+d),f=a("#"+b.options.itemIDPrefix+c),!f||!f.length?!1:(h=a("#"+b.options.template),h&&(g=h.tmpl(b._itemData(d)),t(b,f,g),g.remove()),f.css("top",d*b._line_h).attr("id",b.options.itemIDPrefix+d),!0)}var d,e,g,h=b._first_index,i=b._last_index,m,n,o,p,q=b.options.row,r,s;d=j(),r=Math.ceil(q/3),e=Math.floor(d/b._line_h)-r,g=e+q-1,e<0?(g+=-e,e=0):g>b._numItemData-1&&(e-=g-(b._numItemData-1),g=b._numItemData-1),m=e-h,k("cy="+d+", oti="+h+", obi="+i+", cti="+e+", cbi="+g+", dti="+m);if(0==m){b.timerStillCount+=1;if(b.timerStillCount<12){k("dti=0 "+b.timerStillCount+" times"),b.timerMoveID=setTimeout(l,f,b);return}k("dti=0 "+b.timerStillCount+" times. End timer."),b.timerStillCount=0,b.timerMoveID&&(clearTimeout(b.timerMoveID),b.timerMoveID=null)}else{b.timerStillCount=0,Math.abs(m)>=q?(n=h,o=i,p=m,k(">>> WHOLE CHANGE! delta="+p)):(m>0?(n=h,o=h+m-1,p=q):(n=i+m+1,o=i,p=-q),k(">>> partial change. delta="+p));for(s=n;s<=o;s++)u(b,s,s+p);b._first_index=e,b._last_index=g,b.timerMoveID=setTimeout(l,f,b)}return}var c=b.data,d=c.options,e=c._num_top_items,f=100,g,h,i;h={viewTop:function(){var b=a(d.id).parentsUntil(".ui-page").find(".ui-scrollview-view"),c=b.css("-webkit-transform"),e="0,0,0,0,0,0";return c&&(e=c.replace(/matrix\s*\((.*)\)/,"$1")),-parseInt(e.split(",")[5],10)}},i={viewTop:function(){return a(window).scrollTop()}},c.timerStillCount=0,c.timerMoveID&&(clearTimeout(c.timerMoveID),c.timerMoveID=null),l(c)},_recreate:function(b){var c=this,e=this.options;a(e.id).empty(),c._numItemData=b.length,c._direction=d,c._first_index=0,c._last_index=e.row-1,c._pushData(e.template),e.childSelector==" ul"&&a(e.id+" ul").swipelist(),a(e.id).virtuallistview(),c.refresh(!0),c._reposition(e)},_initList:function(){var b=this,c=this.options;b._pushData(c.template),a(c.id).parentsUntil(".ui-page").parent().one("pageshow",function(){setTimeout(function(){b._reposition(c)},0)}),a(document).bind("scrollstart.virtuallist scrollstop.vrituallist",b,b._scrollmove),a(window).bind("resize.virtuallist",b._resize),c.childSelector==" ul"&&a(c.id+" ul").swipelist(),b.refresh(!0)},create:function(){var a=this.options;this._create.apply(this,arguments),this._reposition(a)},_create:function(b){a.extend(this,{_itemData:function(a){return null},_numItemData:0,_cacheItemData:function(a,b){},_title_h:0,_container_w:0,_minimum_row:100,_direction:d,_first_index:0,_last_index:0,_num_top_items:0});var c=this,e=this.options,f=this.element,g=a('<div class="ui-virtuallist"/>'),h=a("<ul></ul>"),i=f.find(':jqmData(role="virtuallistview" )'),j=null,k=this,l,m;f.addClass(function(a,b){return b+" ui-listview ui-virtual-list-container"+(c.options.inset?" ui-listview-inset ui-corner-all ui-shadow ":"")}),e.itemIDPrefix=f.attr("id")+"_",e.id="#"+f.attr("id"),a(e.id).bind("pagehide",function(b){a(e.id).empty()}),a(".ui-scrollview-clip").size()>0?e.scrollview=!0:e.scrollview=!1,f.data("row")&&(e.row=f.data("row"),e.row<c._minimum_row&&(e.row=c._minimum_row),e.page_buf=parseInt(e.row/2,10));if(b){if(!b.itemData||typeof b.itemData!="function")return;c._itemData=b.itemData;if(!b.numItemData)return;if(typeof b.numItemData=="function")c._numItemData=b.numItemData();else{if(typeof b.numItemData!="number")return;c._numItemData=b.numItemData}}else{console.warn("WARNING: The data interface of virtuallist is changed. \nOld data interface(data-dbtable) is still supported, but will be removed in next version. \nPlease fix your code soon!");if(!a(e.id).hasClass("vlLoadSuccess"))return;l=f.jqmData("dbtable"),m=window[l],a(e.id).empty(),m||(m={}),c._itemData=function(a){return m[a]},c._numItemData=m.length}f.data("template")&&(e.template=f.data("template"),f.data("swipelist")==1?e.childSelector=" ul":e.childSelector=" li"),f.data("dbkey")&&(e.dbkey=f.data("dbkey")),c._first_index=0,c._last_index=e.row-1,c._initList()},destroy:function(){var b=this.options;a(document).unbind("scrollstop"),a(window).unbind("resize.virtuallist"),a(b.id).empty(),this.timerMoveID&&(clearTimeout(this.timerMoveID),this.timerMoveID=null)},_itemApply:function(b,c){var d=c.find(".ui-li-count");d.length&&c.addClass("ui-li-has-count"),d.addClass("ui-btn-up-"+(b.jqmData("counttheme")||this.options.countTheme)+" ui-btn-corner-all"),c.find("h1, h2, h3, h4, h5, h6").addClass("ui-li-heading").end().find("p, dl").addClass("ui-li-desc").end().find(">img:eq(0), .ui-link-inherit>img:eq(0)").addClass("ui-li-thumb").each(function(){c.addClass(a(this).is(".ui-li-icon")?"ui-li-has-icon":"ui-li-has-thumb")}).end().find(".ui-li-aside").each(function(){var b=a(this);b.prependTo(b.parent())})},_removeCorners:function(a,b){var c="ui-corner-top ui-corner-tr ui-corner-tl",d="ui-corner-bottom ui-corner-br ui-corner-bl";a=a.add(a.find(".ui-btn-inner, .ui-li-link-alt, .ui-li-thumb")),b==="top"?a.removeClass(c):b==="bottom"?a.removeClass(d):a.removeClass(c+" "+d)},_refreshCorners:function(a){var b,c,d,e;this.options.inset&&(b=this.element.children("li"),c=a?b.not(".ui-screen-hidden"):b.filter(":visible"),this._removeCorners(b),d=c.first().addClass("ui-corner-top"),d.add(d.find(".ui-btn-inner")).find(".ui-li-link-alt").addClass("ui-corner-tr").end().find(".ui-li-thumb").not(".ui-li-icon").addClass("ui-corner-tl"),e=c.last().addClass("ui-corner-bottom"),e.add(e.find(".ui-btn-inner")).find(".ui-li-link-alt").addClass("ui-corner-br").end().find(".ui-li-thumb").not(".ui-li-icon").addClass("ui-corner-bl"))},refresh:function(b){this.parentPage=this.element.closest(".ui-page"),this._createSubPages();var c=this.options,d=this.element,e=this,f=d.jqmData("dividertheme")||c.dividerTheme,g=d.jqmData("splittheme"),h=d.jqmData("spliticon"),i=d.children("li"),j=a.support.cssPseudoElement||!a.nodeName(d[0],"ol")?0:1,k,l,m,n,o,p,q,r,s,t,u;j&&d.find(".ui-li-dec").remove();for(s=0,t=i.length;s<t;s++){k=i.eq(s),l="ui-li";if(b||!k.hasClass("ui-li"))u=k.jqmData("theme")||c.theme,n=k.children("a"),n.length?(r=k.jqmData("icon"),k.buttonMarkup({wrapperEls:"div",shadow:!1,corners:!1,iconpos:"right",icon:!1,theme:u}),r!=0&&n.length==1&&k.addClass("ui-li-has-arrow"),n.first().addClass("ui-link-inherit"),n.length>1&&(l+=" ui-li-has-alt",o=n.last(),p=g||o.jqmData("theme")||c.splitTheme,o.appendTo(k).attr("title",o.getEncodedText()).addClass
-("ui-li-link-alt").empty().buttonMarkup({shadow:!1,corners:!1,theme:u,icon:!1,iconpos:!1}).find(".ui-btn-inner").append(a("<span />").buttonMarkup({shadow:!0,corners:!0,theme:p,iconpos:"notext",icon:h||o.jqmData("icon")||c.splitIcon})))):k.jqmData("role")==="list-divider"?(l+=" ui-li-divider ui-btn ui-bar-"+f,k.attr("role","heading"),j&&(j=1)):l+=" ui-li-static ui-body-"+u;j&&l.indexOf("ui-li-divider")<0&&(q=k.is(".ui-li-static:first")?k:k.find(".ui-link-inherit"),q.addClass("ui-li-jsnumbering").prepend("<span class='ui-li-dec'>"+j++ +". </span>")),k.add(k.children(".ui-btn-inner")).addClass(l),e._itemApply(d,k)}this._refreshCorners(b)},_idStringEscape:function(a){return a.replace(/\W/g,"-")},_createSubPages:function(){var b=this.element,d=b.closest(".ui-page"),e=d.jqmData("url"),f=e||d[0][a.expando],g=b.attr("id"),h=this.options,i="data-"+a.mobile.ns,j=this,k=d.find(":jqmData(role='footer')").jqmData("id"),l,m;typeof c[f]=="undefined"&&(c[f]=-1),g=g||++c[f],a(b.find("li>ul, li>ol").toArray().reverse()).each(function(c){var d=this,f=a(this),j=f.attr("id")||g+"-"+c,m=f.parent(),n,p=n.first().getEncodedText(),q=(e||"")+"&"+a.mobile.subPageUrlKey+"="+j,r=f.jqmData("theme")||h.theme,s=f.jqmData("counttheme")||b.jqmData("counttheme")||h.countTheme,t,u;n=a(f.prevAll().toArray().reverse()),n=n.length?n:a("<span>"+a.trim(m.contents()[0].nodeValue)+"</span>"),l=!0,t=f.detach().wrap("<div "+i+"role='page' "+i+"url='"+q+"' "+i+"theme='"+r+"' "+i+"count-theme='"+s+"'><div "+i+"role='content'></div></div>").parent().before("<div "+i+"role='header' "+i+"theme='"+h.headerTheme+"'><div class='ui-title'>"+p+"</div></div>").after(k?a("<div "+i+"role='footer' "+i+"id='"+k+"'>"):"").parent().appendTo(a.mobile.pageContainer),t.page(),u=m.find("a:first"),u.length||(u=a("<a/>").html(n||p).prependTo(m.empty())),u.attr("href","#"+q)}).virtuallistview(),l&&d.is(":jqmData(external-page='true')")&&d.data("page").options.domCache===!1&&(m=function(b,c){var f=c.nextPage,g;c.nextPage&&(g=f.jqmData("url"),g.indexOf(e+"&"+a.mobile.subPageUrlKey)!==0&&(j.childPages().remove(),d.remove()))},d.unbind("pagehide.remove").bind("pagehide.remove",m))},childPages:function(){var b=this.parentPage.jqmData("url");return a(":jqmData(url^='"+b+"&"+a.mobile.subPageUrlKey+"')")}}),a(document).bind("pagecreate create",function(b){a(a.tizen.virtuallistview.prototype.options.initSelector,b.target).virtuallistview()})}(jQuery),function(a,b,c){a.widget("tizen.progress",a.mobile.widget,{options:{style:"circle",running:!1},show:function(){a(this.element).show()},hide:function(){a(this.element).hide()},_start:function(){this.init||(a(this.element).append(this.html),this.init=!0),this.show(),a(this.element).find(".ui-progress-"+this.options.style).addClass(this.runningClass)},_stop:function(){a(this.element).find(".ui-progress-"+this.options.style).removeClass(this.runningClass)},running:function(a){if(a===c)return this.options.running;this._setOption("running",a)},_setOption:function(a,c){if(a==="running"){if(typeof c!="boolean"){b.alert("running value MUST be boolean type!");return}this.options.running=c,this._refresh()}},_refresh:function(){this.options.running?this._start():this._stop()},_create:function(){var b=this,c=this.element,d=c.jqmData("style"),e,f;d?this.options.style=d:d=this.options.style,d=="circle"?(a(this.element).addClass("ui-progress-container-circle"),e='<div class="ui-progress-circle"></div>'):d==="pending"&&(a(this.element).addClass("ui-progressbar"),e='<div class="ui-progressbar-bg"><div class="ui-progress-pending"></div></div>'),this.html=a(e),f="ui-progress-"+d+"-running",a.extend(this,{init:!1,runningClass:f}),d==="pending"&&(a(this.element).append(this.html),this.init=!0),this._refresh()}}),a(document).bind("pagecreate create",function(b){a(b.target).find(":jqmData(role='progress')").progress()})}(jQuery,this),function(a,b,c,d){function f(a,b){a.tizen||(a.tizen={}),a.tizen.frameworkData=b.frameworkData,a.tizen.loadCustomGlobalizeCulture=b.loadCustomGlobalizeCulture,a.tizen.loadTheme=b.loadTheme,a.tizen.__tizen__=b}var e={libFileName:"tizen-web-ui-fw(.min)?.js",frameworkData:{rootDir:"/usr/lib/tizen-web-ui-fw",version:"0.1",theme:"tizen-white",viewportWidth:"device-width",viewportScale:!1,defaultFontSize:22,minified:!1,debug:!1},log:{debug:function(a){e.frameworkData.debug&&console.log(a)},warn:function(a){console.warn(a)},error:function(a){console.error(a)},alert:function(a){c.alert(a)}},util:{loadScriptSync:function(b,c,d){a.ajax({url:b,dataType:"script",async:!1,crossDomain:!1,success:c,error:function(c,f,g){if(d)d(c,f,g);else{var h=[404],i="Error while loading "+b+"\n"+c.status+":"+c.statusText;-1==a.inArray(c.status,h)?e.log.alert(i):e.log.warn(i)}}})},isMobileBrowser:function(){var a=c.navigator.appVersion.indexOf("Mobile"),b=-1<a;return b}},css:{cacheBust:document.location.href.match(/debug=true/)?"?cacheBust="+(new Date).getTime():"",addElementToHead:function(b){var c=document.getElementsByTagName("head")[0];c&&a(c).prepend(b)},makeLink:function(a){var b=document.createElement("link");return b.setAttribute("rel","stylesheet"),b.setAttribute("href",a),b.setAttribute("name","tizen-theme"),b},load:function(a){var b=document.getElementsByTagName("head")[0],c=b.getElementsByTagName("link"),d,f=null;for(d=0;d<c.length;d++){if(c[d].getAttribute("rel")!="stylesheet")continue;if(c[d].getAttribute("name")=="tizen-theme"||c[d].getAttribute("href")==a){f=c[d];break}}f?f.getAttribute("href")==a?e.log.warn("Theme is already loaded. Skip theme loading in the framework."):f.setAttribute("href",a):this.addElementToHead(this.makeLink(a))}},getParams:function(){function j(){var a=navigator.theme?navigator.theme.split(":")[0]:null;return a&&(a=a.replace("-hd",""),a.match(/^tizen-/)||(a="tizen-"+a)),a}var a=document.getElementsByTagName("script"),b=null,c=!1,e,f,g,h,i;for(e in a){f=a[e],g=f.src?f.getAttribute("src"):d;if(g&&g.match(this.libFileName)){h=g.split(/[\/\\]/),i=-3,this.frameworkData.rootDir=(f.getAttribute("data-framework-root")||h.slice(0,h.length+i).join("/")||this.frameworkData.rootDir).replace(/^file:(\/\/)?/,""),this.frameworkData.version=f.getAttribute("data-framework-version")||h[h.length+i]||this.frameworkData.version,this.frameworkData.theme=f.getAttribute("data-framework-theme")||j()||this.frameworkData.theme,this.frameworkData.viewportWidth=f.getAttribute("data-framework-viewport-width")||this.frameworkData.viewportWidth,this.frameworkData.viewportScale="true"===f.getAttribute("data-framework-viewport-scale")?!0:this.frameworkData.viewportScale,this.frameworkData.minified=g.search(/\.min\.js$/)>-1?!0:!1,this.frameworkData.debug="true"===f.getAttribute("data-framework-debug")?!0:this.frameworkData.debug,c=!0;break}}return c},loadTheme:function(a){var b,c,d;a||(a=e.frameworkData.theme),b=[e.frameworkData.rootDir,e.frameworkData.version,"themes",a].join("/"),d=[b,"theme.js"].join("/"),e.frameworkData.minified?c=[b,"tizen-web-ui-fw-theme.min.css"].join("/"):c=[b,"tizen-web-ui-fw-theme.css"].join("/"),e.css.load(c),e.util.loadScriptSync(d)},loadGlobalizeCulture:function(b,d){function j(b){var d=b||a("html").attr("lang")||c.navigator.language.split(".")[0]||c.navigator.userLanguage||"en",e=null,f=d.lastIndexOf("-"),g=["Cyrl","Latn","Mong"];return f!=-1&&(e=d.substr(f+1),g.join("-").indexOf(e)<0&&(d=[d.substr(0,f),e.toUpperCase()].join("-"))),d=d=="en"?"en-US":d,d}function k(a){var b=a.lastIndexOf("-"),c;return b!=-1&&(c=a.substr(0,b)),c}function l(a,b){var c=null;return"string"!=typeof a?null:(b&&b[a]?c=b[a]:c=[f.frameworkData.rootDir,f.frameworkData.version,"js","cultures",["globalize.culture.",a,".js"].join("")].join("/"),c)}function m(a,b){e.log.error("Error "+b.status+": "+b.statusText+"::Culture file ("+a+") is failed to load.")}function n(b,c){function d(){e.log.debug("Culture file ("+b+") is loaded successfully.")}function f(a,d,e){c?c(a,d,e):m(b,a)}b?a.ajax({url:b,dataType:"script",cache:!0,async:!1,success:d,error:f}):(i={status:404,statusText:"Not Found"},f(i,null,null))}var f=this,g,h,i;return h=j(b),g=l(h,d),n(g,function(a,b,c){if(a.status==404){var e=k(h),f=l(e,d);n(f,null)}else m(g,a)}),h},setGlobalize:function(){var a=this.loadGlobalizeCulture();b.culture(a)},loadCustomGlobalizeCulture:function(a){e.loadGlobalizeCulture(null,a)},setViewport:function(b){var c=null,d,f;return a("meta[name=viewport]").each(function(){c=this;return}),c?(f=a(c).prop("content"),b=f.replace(/.*width=(device-width|\d+)\s*,?.*$/gi,"$1"),e.log.warn("Viewport is set to '"+b+"' in a meta tag. Framework skips viewport setting.")):(c=document.createElement("meta"),c&&(c.name="viewport",f=["width=",b,", user-scalable=no"].join(""),!!isNaN(b),c.content=f,e.log.debug(f),d=document.getElementsByTagName("head").item(0),d.insertBefore(c,d.firstChild))),b},scaleBaseFontSize:function(b,c){e.log.debug("themedefaultfont size: "+b+", ratio: "+c);var d=Math.max(Math.floor(b*c),4);a("html.ui-mobile").css({"font-size":d+"px"}),e.log.debug("html:font size is set to "+d),a(document).ready(function(){a(".ui-mobile").children("body").css({"font-size":d+"px"})})},setScaling:function(){var b=this.frameworkData.viewportWidth,d=this.frameworkData.defaultFontSize,f=1;a("body").attr("data-tizen-theme-default-font-size",d);if(!e.util.isMobileBrowser())return;this.frameworkData.viewportScale==1&&(b="screen-width"),"screen-width"==b&&(c.self==c.top?b=c.outerWidth:b=document.documentElement.clientWidth),b=this.setViewport(b),b!="device-width"&&(f=parseFloat(b/this.frameworkData.defaultViewportWidth),this.scaleBaseFontSize(d,f))}};f(a,e),e.getParams(),e.loadTheme(),e.setScaling(),e.setGlobalize(),a.mobile.autoInitializePage=!1,a(document).ready(function(){a.mobile.initializePage()})}(jQuery,window.Globalize,window),function(a,b){a.widget("mobile.pagelayout",a.mobile.widget,{options:{visibleOnPageShow:!0,disablePageZoom:!0,transition:"slide",fullscreen:!1,tapToggle:!0,tapToggleBlacklist:"a, input, select, textarea, .ui-header-fixed, .ui-footer-fixed",hideDuringFocus:"input, textarea, select",updatePagePadding:!0,supportBlacklist:function(){var a=window,c=navigator.userAgent,d=navigator.platform,e=c.match(/AppleWebKit\/([0-9]+)/),f=!!e&&e[1],g=c.match(/Fennec\/([0-9]+)/),h=!!g&&g[1],i=c.match(/Opera Mobi\/([0-9]+)/),j=!!i&&i[1];return(d.indexOf("iPhone")>-1||d.indexOf("iPad")>-1||d.indexOf("iPod")>-1)&&f&&f<534||a.operamini&&{}.toString.call(a.operamini)==="[object OperaMini]"||i&&j<7458||c.indexOf("Android")>-1&&f&&f<533||h&&h<6||window.palmGetResource!==b&&f&&f<534||c.indexOf("MeeGo")>-1&&c.indexOf("NokiaBrowser/8.5.0")>-1?!0:!1},initSelector:":jqmData(role='content')"},_create:function(){var a=this,b=a.options,c=a.element;if(b.supportBlacklist()){a.destroy();return}a._addFixedClass(),a._addTransitionClass(),a._bindPageEvents(),a._bindContentControlEvents(),a._backBtnQueue=[]},_addFixedClass:function(){var a=this,b=a.options,c=a.element,d=c.siblings(":jqmData(role='header')"),e=c.siblings(":jqmData(role='footer')"),f=c.closest(".ui-page");d.addClass("ui-header-fixed"),e.addClass("ui-footer-fixed"),b.fullscreen?(d.addClass("ui-header-fullscreen"),e.addClass("ui-footer-fullscreen"),f.addClass("ui-page-header-fullscreen").addClass("ui-page-footer-fullscreen")):f.addClass("ui-page-header-fixed").addClass("ui-page-footer-fixed")},_addTransitionClass:function(){var a=this.options.transition;a&&a!=="none"&&(a==="slide"&&(a=this.element.is(".ui-header")?"slidedown":"slideup"),this.element.addClass(a))},setHeaderFooter:function(b){var c=a(b),d=c.find(":jqmData(role='header')").length?c.find(":jqmData(role='header')"):c.siblings(":jqmData(role='header')"),e=c.find(".ui-content"),f=c.find(":jqmData(role='footer')"),g=f.find(":jqmData(role='fieldcontain')"),h=f.find(".ui-controlgroup");c.is(".ui-dialog")||(d.jqmData("position")=="fixed"||a.support.scrollview&&a.tizen.frameworkData.theme.match(/tizen/)?d.css("position","fixed").css("top","0px"):!a.support.scrollview&&d.jqmData("position")!="fixed"&&d.css("position","relative")),d.find("span.ui-title-text-sub").length&&d.addClass("ui-title-multiline"),g.find("div").is(".ui-controlgroup-label")&&g.find("div.ui-controlgroup-label").remove();if(h.length){var i=100/h.find("a").length;h.find("a").each(function(a){h.find("a").eq(a).width(i+"%")})}},_bindPageEvents:function(){var b=this,c=b.options,d=b.element,e;d.closest(".ui-page").bind("pagebeforeshow",function(d){var e=this;c.disablePageZoom&&a.mobile.zoom.disable(!0),c.visibleOnPageShow||b.hide(!0),b.setHeaderFooter(e),b._setContentMinHeight(e)}).bind("webkitAnimationStart animationstart updatelayout",function(a,d){var e=this;c.updatePagePadding&&(b.updatePagePadding(e),b.updatePageLayout(e,d))}).bind("pageshow",function(d){var e=this;b._setContentMinHeight(e),b.updatePagePadding(e),b._updateHeaderArea(e),c.updatePagePadding&&a(window).bind("throttledresize."+b.widgetName,function(){b.updatePagePadding(e),b.updatePageLayout(e,!1),b._updateHeaderArea(e),b._setContentMinHeight(e)})}).bind("pagebeforehide",function(d,e){c.disablePageZoom&&a.mobile.zoom.enable(!0),c.updatePagePadding&&a(window).unbind("throttledresize."+b.widgetName)}),window.addEventListener("softkeyboardchange",function(c){var d=a("<div class='ui-btn-footer-down'></div>"),e=a(".ui-page-active"),f,g="footer";e.data("addBackBtn")&&(e.data("addBackBtn")=="header"?g="header":g="footer",c.state=="on"?(e.find(".ui-"+g+" .ui-btn-footer-down").length||d.buttonMarkup({icon:"down"}).appendTo(e.find(".ui-"+g)),f=a(".ui-page-active .ui-btn-back"),f.hide(),b._backBtnQueue.push(f)):c.state=="off"&&(b._backBtnQueue.forEach(function(a){a.show()}),b._backBtnQueue.length=0,a(".ui-btn-footer-down").remove()))})},_bindContentControlEvents:function(){var a=this,b=a.options,c=a.element;c.closest(".ui-page").bind("pagebeforeshow",function(a){})},_setContentMinHeight:function(b){var c=a(b),d=c.find(":jqmData(role='header')"),e=c.find(":jqmData(role='footer')"),f=c.find(":jqmData(role='content')"),g,h=1,i=window.innerHeight;a.support.scrollview||(h=window.outerWidth/window.innerWidth,i=Math.floor(window.outerHeight/h)),g=i-d.height()-e.height(),f.css("min-height",g-parseFloat(f.css("padding-top"))-parseFloat(f.css("padding-bottom"))+"px")},_updateHeaderArea:function(b){var c=a(b),d=c.find(":jqmData(role='header')").length?c.find(":jqmData(role='header')"):c.siblings(":jqmData(role='header')"),e=d.children("a").length,f=d.children("img").length;c.is(".ui-dialog")||d.find("h1").css("width",window.innerWidth-parseInt(d.find("h1").css("margin-left"),10)*2-d.children("a").width()*e-d.children("a").width()/4-d.children("img").width()*f*4)},_visible:!0,updatePagePadding:function(b){var c=this.element,d=c.siblings(".ui-header").length,e=c.siblings(".ui-footer").length;if(this.options.fullscreen)return;b=b||c.closest(".ui-page"),(c.siblings(".ui-header").jqmData("position")=="fixed"||a.support.scrollview)&&a(b).css("padding-top",d?c.siblings(".ui-header").outerHeight():0),a(b).css("padding-bottom",e?c.siblings(".ui-footer").outerHeight():0)},updatePageLayout:function(b,c){var d,e=a(b),f=e.find(":jqmData(role='header')"),g=e.find(":jqmData(role='content')"),h=0,i=0,j=0,k=window.innerHeight,l=1;e.length?d=e.find(":jqmData(role='footer')"):d=a(document).find(":jqmData(role='footer')").eq(0),i=d.css("display")=="none"||d.length==0?0:d.height(),j=f.css("display")=="none"||f.length==0?0:f.height(),i!=0&&d.css("bottom",0),a.support.scrollview||(l=window.outerWidth/window.innerWidth,k=Math.floor(window.outerHeight/l)),h=k-i-j,a.support.scrollview&&g.height(h-parseFloat(g.css("padding-top"))-parseFloat(g.css("padding-bottom"))),c&&e.css("min-height",h).css("padding-top",j).css("padding-bottom",i)},show:function(a){},hide:function(a){},toggle:function(){this[this._visible?"hide":"show"]()},destroy:function(){this.element.removeClass("ui-header-fixed ui-footer-fixed ui-header-fullscreen ui-footer-fullscreen in out fade slidedown slideup ui-fixed-hidden"),this.element.closest(".ui-page").removeClass("ui-page-header-fixed ui-page-footer-fixed ui-page-header-fullscreen ui-page-footer-fullscreen")},refresh:function(){var b=a(".ui-page-active");this.setHeaderFooter(b),this._updateHeaderArea(b)}}),a(document).bind("pagecreate create",function(b){a(b.target).jqmData("fullscreen")&&a(a.mobile.pagelayout.prototype.options.initSelector,b.target).not(":jqmData(fullscreen)").jqmData("fullscreen",!0),a.mobile.pagelayout.prototype.enhanceWithin(b.target)})}(jQuery),function(a,b,c){a.widget("tizen.tizenslider",a.mobile.widget,{options:{popup:!0},popup:null,handle:null,handleText:null,_create:function(){this.currentValue=null,this.popupVisible=!1;var b=this,d=a(this.element),e,f,g,h,i,j,k,l,m,n,o;d.slider(),d.hide(),b.popup=a('<div class="ui-slider-popup"></div>'),g=d.jqmData("popup"),g!==c&&(b.options.popup=g==1),e=d.next(".ui-slider"),h=d.attr("data-icon"),e.wrap('<div class="ui-slider-container"></div>'),b.handle=e.find(".ui-slider-handle"),e.removeClass("ui-btn-corner-all"),e.find("*").removeClass("ui-btn-corner-all");switch(h){case"bright":case"volume":l=a('<div class="ui-slider-left-'+h+'"></div>'),m=a('<div class="ui-slider-right-'+h+'"></div>'),e.before(l),e.after(m),n=l.width()+16,o=m.width()+16;break;case"text":j=d.attr("data-text-left")===c?"":d.attr("data-text-left").substring(0,3),i=d.attr("data-text-right")===c?"":d.attr("data-text-right").substring(0,3),k=Math.max(j.length,i.length)+1,n=k+"rem",o=k+"rem",l=a('<div class="ui-slider-left-text" style="left:'+ -k+"rem; width:"+k+'rem;">'+'<span style="position:relative;top:0.4em;">'+j+"</span></div>"),m=a('<div class="ui-slider-right-text" style="right:'+ -k+"rem; width:"+k+'rem;">'+'<span style="position:relative;top:0.4em;">'+i+"</span></div>"),e.before(l),e.after(m)}h&&e.parent(".ui-slider-container").css({"margin-left":n,"margin-right":o}),e.append(a('<div class="ui-slider-handle-press"></div>')),b.handle_press=e.find(".ui-slider-handle-press"),b.handle_press.css("display","none"),e.parents(".ui-page").append(b.popup),b.popup.hide(),b.handleText=e.find(".ui-btn-text"),b.updateSlider(),this.element.bind("change",function(){b.updateSlider()}),b.handle.bind("vmousedown",function(){b.showPopup()}),e.add(document).bind("vmouseup",function(){b.hidePopup()})},_handle_press_show:function(){this.handle_press.css("display","")},_handle_press_hide:function(){this.handle_press.css("display","none")},positionPopup:function(){var a=this.handle.offset();this.popup.offset({left:a.left+(this.handle.width()-this.popup.width())/2,top:a.top-this.popup.height()}),this.handle_press.offset({left:a.left,top:a.top})},updateSlider:function(){var a,b,c,d,e,f=function(a){var b=Math.abs(a),c;return b>999?c=4:b>99?c=3:b>9?c=2:c=1,a<0&&c++,c};this.handle.removeAttr("title"),e=this.element.val(),b=f(e);if(this.popupVisible){this.positionPopup();switch(b){case 1:case 2:a="1.5rem",d="0.15rem";break;case 3:a="1rem",d="0.5rem";break;default:a="0.8rem",d="0.5rem"}this.popup.css({"font-size":a,"padding-top":d})}if(e===this.currentValue)return;switch(b){case 1:a="0.95rem",c="0";break;case 2:a="0.85rem",c="-0.01rem";break;case 3:a="0.65rem",c="-0.05rem";break;default:a="0.45rem",c="-0.15rem"}a!=this.handleText.css("font-size")&&this.handleText.css({"font-size":a,top:c}),this.currentValue=e,this.handleText.text(e),this.popup.html(e),this.element.trigger("update",e)},showPopup:function(){if(!this.options.popup||this.popupVisible)return;this.popup.show(),this.popupVisible=!0,this._handle_press_show()},hidePopup:function(){if(!this.options.popup||!this.popupVisible)return;this.popup.hide(),this.popupVisible=!1,this._handle_press_hide()},_setOption:function(a,b){var c=b!==this.options[a];if(!c)return;switch(a){case"popup":this.options.popup=b,this.options.popup?this.updateSlider():this.hidePopup()}}}),a(document).bind("pagebeforecreate",function(d){a.data(b,"jqmSliderInitSelector")===c&&(a.data(b,"jqmSliderInitSelector",a.mobile.slider.prototype.options.initSelector),a.mobile.slider.prototype.options.initSelector=null)}),a(document).bind("pagecreate create",function(c){var d=a.data(b,"jqmSliderInitSelector");a(c.target).find(d).not("select").tizenslider(),a(c.target).find(d).filter("select").slider()})}(jQuery,this),function(a,b,c){a.widget("tizen.progressbar",a.mobile.widget,{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()}),this.valueDiv=a("<div class='ui-progressbar-value'></div>").appendTo(this.element),this.valueDiv.wrap("<div class='ui-progressbar-bg'></div>"),this.oldValue=this._value(),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(a){return a===c?this._value():(this._setOption("value",a),this)},_setOption:function(a,b){a==="value"&&(this.options.value=b,this._refreshValue(),this._value()===this.options.max&&this.element.trigger("complete"))},_value:function(){var a=this.options.value;return typeof a!="number"&&(a=0),Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var a=this.value(),b=this._percentage();this.oldValue!==a&&(this.oldValue=a,this.element.trigger("change")),this.valueDiv.toggle(a>this.min).width(b.toFixed(0)+"%"),this.element.attr("aria-valuenow",a)}}),a(document).bind("pagecreate",function(b){a(b.target).find(":jqmData(role='progressbar')").progressbar()})}(jQuery,this),function(a,b){a.widget("tizen.searchbar",a.mobile.widget,{options:{theme:null,initSelector:"input[type='search'],:jqmData(type='search'), input[type='tizen-search'],:jqmData(type='tizen-search')"},_create:function(){function t(){setTimeout(function(){h.toggleClass("ui-input-clear-hidden",!c.val())},0)}function u(){g.addClass("ui-input-search-default").removeClass("ui-input-search-wide"),i.addClass("ui-btn-cancel-show").removeClass("ui-btn-cancel-hide")}function v(){g.addClass("ui-input-search-wide").removeClass("ui-input-search-default"),i.addClass("ui-btn-cancel-hide").removeClass("ui-btn-cancel-show"),t()}function w(){var b=a(c).jqmData("icon"),d=a("<div data-role='button' data-style='circle'></div>");d.appendTo(g.parent()).buttonMarkup({icon:b,iconpos:"notext",corners:!0,shadow:!0}),d.addClass("ui-btn-search-front-icon")}var c=this.element,d=this.options,e=d.theme||a.mobile.getInheritedTheme(this.element,"c"),f=" ui-body-"+e,g,h,i,j,k,l,m,n,o,p,q,r=!1,s=!1;a("label[for='"+c.attr("id")+"']").addClass("ui-input-text"),typeof c[0].autocorrect!="undefined"&&!a.support.touchOverflow&&(c[0].setAttribute("autocorrect","off"),c[0].setAttribute("autocomplete","off")),g=c.wrap("<div class='ui-input-search ui-shadow-inset ui-corner-all ui-btn-shadow"+f+"'></div>").parent(),a(this.element).data("cancel-btn")===!0&&(r=!0,g.addClass("ui-input-search-default")),a(this.element).data("icon")!=b&&(s=!0,g.addClass("ui-search-bar-icon")),h=a("<a href='#' class='ui-input-clear' title='clear text'>clear text</a>").bind("click",function(a){if(c.attr("disabled")=="disabled")return!1;c.val("").focus().trigger("change"),h.addClass("ui-input-clear-hidden"),a.preventDefault()}).appendTo(g).buttonMarkup({icon:"deleteSearch",iconpos:"notext",corners:!0,shadow:!0}),t(),c.bind("paste cut keyup focus change blur",t),g.wrapAll("<div class='input-search-bar'></div>"),p=a("<div class='ui-image-search'></div>").appendTo(g),s&&w(),r&&(i=a("<div data-role='button' class='ui-input-cancel' title='clear text'>Cancel</div>").bind("click",function(a){if(c.attr("disabled")=="disabled")return!1;a.preventDefault(),a.stopPropagation(),c.val("").blur().trigger("change"),r&&v()}).appendTo(g.parent()).buttonMarkup({iconpos:"cancel",corners:!0,shadow:!0})),c.focus(function(){if(c.attr("disabled")=="disabled")return!1;r&&u(),g.addClass(a.mobile.focusClass)}).blur(function(){g.removeClass(a.mobile.focusClass)}),j=c.jqmData("default-text"),j!=b&&j.length>0&&(k="ui-input-default-text",l=j.replace(/\s/g,""),m=k+"-"+l,n=a("<style>."+m+":after"+"{content:"+"'"+j+"'"+"}"+"</style>"),a("html > head").append(n),o=a("<div></div>"),o.addClass(k),o.addClass(m),o.tap(function(a){c.blur(),c.focus()}),c.parent().append(o),c.focus(function(){c.parent().find("div.ui-input-default-text").addClass("ui-input-default-hidden")}).blur(function(){var a=c.val();a.length>0?c.parent().find("div.ui-input-default-text").addClass("ui-input-default-hidden"):c.parent().find("div.ui-input-default-text").removeClass("ui-input-default-hidden")})),c.attr("placeholder")||c.attr("placeholder","Search")},disable:function(){this.element.attr("disabled",!0),this.element.parent().addClass("ui-disabled"),a(this.element).blur(),this.element.parent().parent().find(".ui-input-cancel").addClass("ui-disabled")},enable:function(){this.element.attr("disabled",!1),this.element.parent().removeClass("ui-disabled"),this.element.parent().parent().find(".ui-input-cancel").removeClass("ui-disabled"),a(this.element).focus()}}),a(document).bind("pagecreate create",function(b){a.tizen.searchbar.prototype.enhanceWithin(b.target)})}(jQuery),function(a,b,c,d){function e(a,b){var c=a%b;return c<0&&(c=b+c),c}function f(b){this.options=a.extend({},b),this.easing="easeOutQuad",this.reset()}function l(){return Date.now()}var g={scrolling:0,done:1},h=0,i=1,j=-1,k=/src\s*=\s*[\"\'][\w\/.]+.[A-z]+[\"\']/;a.extend(f.prototype,{start:function(a,b,c){this.state=b!==0?g.scrolling:g.done,this.pos=a,this.speed=b,this.duration=c,this.fromPos=0,this.toPos=0,this.startTime=l()},reset:function(){this.state=g.done,this.pos=0,this.speed=0,this.duration=0},update:function(){var b=this.state,c,d,e,f;return b==g.done?this.pos:(c=this.duration,d=l()-this.startTime,d=d>c?c:d,e=this.speed*(1-a.easing[this.easing](d/c,d,0,1,c)),f=this.pos+e/2,this.pos=f,d>=c&&(this.state=g.done),this.pos)},done:function(){return this.state==g.done},getPosition:function(){return this.pos}}),jQuery.widget("mobile.virtualgrid",jQuery.mobile.widget,{options:{template:"",direction:"y",rotation:!1},create:function(){this._create.apply(this,arguments)},_create:function(b){a.extend(this,{_$view:null,_$clip:null,_$rows:null,_tracker:null,_viewSize:0,_clipSize:0,_cellSize:d,_currentItemCount:0,_itemCount:1,_inheritedSize:null,_timerInterval:0,_timerID:0,_timerCB:null,_lastMove:null,_itemData:function(a){return null},_numItemData:0,_cacheItemData:function(a,b){},_totalRowCnt:0,_templateText:null,_maxViewSize:0,_modifyViewPos:0,_maxSizeExceptClip:0,_maxSize:0,_direction:!1,_didDrag:!0,_reservedPos:0,_scalableSize:0,_eventPos:0,_nextPos:0,_movePos:0,_lastY:0,_speedY:0,_lastX:0,_speedX:0,_rowsPerView:0,_fragment:null,_filterRatio:.9,_overflowStartPos:0,_overflowDir:0,_overflowMaxDragDist:100});var e=this,f=a(e.element),g=e.options,h=null;if(!b)return;if(!e._loadData(b))return;e._fragment=c.createDocumentFragment(),e._inheritedSize=e._getinheritedSize(e.element),e._direction=g.direction==="x"?!0:!1,e._$clip=f.addClass("ui-scrollview-clip").addClass("ui-virtualgrid-view"),h=a(c.createElement("div")).addClass("ui-scrollview-view"),e._clipSize=e._calculateClipSize(),e._$clip.append(h),e._$view=h,e._$clip.css("overflow","hidden"),e._$view.css("overflow","hidden"),e._scrollView=a.tizen.scrollview.prototype,e._initScrollView(),e._createTracker(),e._makePositioned(e._$clip),e._timerInterval=1e3/e.options.fps,e._timerID=0,e._timerCB=function(){e._handleMomentumScroll()},f.closest(".ui-content").addClass("ui-virtualgrid-content").css("overflow","hidden"),e._addBehaviors(),e._currentItemCount=0,e._createOverflowArea(),e._createScrollBar(),e.refresh()},_loadData:function(a){var b=this;if(!a.itemData||typeof a.itemData!="function")return!1;b._itemData=a.itemData;if(!a.numItemData)return!1;if(typeof a.numItemData=="function")b._numItemData=a.numItemData();else{if(typeof a.numItemData!="number")return!1;b._numItemData=a.numItemData}return b._getObjectNames(b._itemData(0)),!0},_initLayout:function(){var a=this,b=a.options,c,d;for(c=-1;c<a._rowsPerView+1;c+=1)d=a._$rows[e(c,a._$rows.length)],a._$view.append(d);a._setElementTransform(-a._cellSize),a._replaceRow(a._$view[0].firstChild,a._totalRowCnt-1),b.rotation&&a._rowsPerView>=a._totalRowCnt&&a._replaceRow(a._$view[0].lastChild,0),a._setViewSize()},_setViewSize:function(){var a=this,b=0,c=0;a._direction?(c=a._cellSize*(a._rowsPerView+2),c=parseInt(c,10)+1,a._$view.width(c),a._viewSize=a._$view.width()):(a._$view.height(a._cellSize*(a._rowsPerView+2)),a._$clip.height(a._clipSize),a._viewSize=a._$view.height())},_getViewWidth:function(){var a=this;return a._maxSize},_getViewHeight:function(){var a=this;return a._maxSize},refresh:function(){var b=this,c=b.options,d=0,e=0,f=null;f=a("#"+c.template);if(!f)return;b._templateText=b._insertAriaAttrToTmpl(f.text()),d=b._calculateClipWidth(),e=b._calculateClipHeight(),b._$view.width(d).height(e),b._$clip.width(d).height(e),b._clipSize=b._calculateClipSize(),b._calculateColumnSize(),b._initPageProperty(),b._setScrollBarSize()},_initPageProperty:function(){var b=this,c=0,d,e=0,f=0,g=b._direction?"width":"height";e=b._calculateColumnCount(),f=parseInt(b._numItemData/e,10),b._totalRowCnt=b._numItemData%e===0?f:f+1,b._itemCount=e;if(b._cellSize<=0)return;c=b._clipSize/b._cellSize,c=Math.ceil(c),b._rowsPerView=parseInt(c,10),d=a(b._makeRows(c+2)),b._$view.append(d.children()),b._$view.children().css(g,b._cellSize+"px"),b._$rows=b._$view.children().detach(),b._reservedPos=-b._cellSize,b._scalableSize=-b._cellSize,b._initLayout(),b._blockScroll=b._rowsPerView>b._totalRowCnt,b._maxSizeExceptClip=(b._totalRowCnt-b._rowsPerView)*b._cellSize,b._maxSize=b._totalRowCnt*b._cellSize,b._maxViewSize=b._rowsPerView*b._cellSize,b._modifyViewPos=-b._cellSize,b._clipSize<b._maxViewSize&&(b._modifyViewPos=-b._cellSize+(b._clipSize-b._maxViewSize))},_getinheritedSize:function(b){var c=a(b),d,e,f={ELEMENT_NODE:1,TEXT_NODE:3},g={isDefinedWidth:!1,isDefinedHeight:!1,width:0,height:0};while(c[0].nodeType===f.ELEMENT_NODE&&(g.isDefinedWidth===!1||g.isHeightDefined===!1)){d=c[0].style.height,e=c[0].style.width,g.isDefinedHeight===!1&&d!==""&&(g.isDefinedHeight=!0,g.height=parseInt(d,10)),g.isDefinedWidth===!1&&e!==""&&(g.isDefinedWidth=!0,g.width=parseInt(e,10)),c=c.parent();if(c.hasClass("ui-content"))break}return g},_resize:function(){var a=this,b=null,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=null,l=0;a._direction?(l=a._calculateClipHeight(),a._$view.height(l),a._$clip.height(l)):(l=a._calculateClipWidth(),a._$view.width(l),a._$clip.width(l)),d=a._calculateColumnCount(),d!=a._itemCount&&(e=parseInt(a._numItemData/d,10),a._totalRowCnt=a._numItemData%d===0?e:e+1,h=a._itemCount,a._itemCount=d,i=a._getClipPosition(),a._$view.hide(),f=a._replaceRows(d,h,a._totalRowCnt,i),a._maxSizeExceptClip=(a._totalRowCnt-a._rowsPerView)*a._cellSize,a._maxSize=a._totalRowCnt*a._cellSize,a._scalableSize+=-f*a._cellSize,a._reservedPos+=-f*a._cellSize,a._setScrollBarSize(),a._setScrollBarPosition(f),a._$view.show()),g=a._calculateClipSize(),g!==a._clipSize&&(c=g/a._cellSize,c=parseInt(Math.ceil(c),10),c>a._rowsPerView?a._increaseRow(c-a._rowsPerView):c<a._rowsPerView&&a._decreaseRow(a._rowsPerView-c),a._$rows=a._$view.children(),a._$rows.sort(function(a,b){return a.getAttribute("row-index")-b.getAttribute("row-index")}),a._rowsPerView=c,a._clipSize=g,a._blockScroll=a._rowsPerView>a._totalRowCnt,a._maxSizeExceptClip=(a._totalRowCnt-a._rowsPerView)*a._cellSize,a._maxSize=a._totalRowCnt*a._cellSize,a._maxViewSize=a._rowsPerView*a._cellSize,a._clipSize<a._maxViewSize&&(a._modifyViewPos=-a._cellSize+(a._clipSize-a._maxViewSize)),a._direction?a._$clip.width(a._clipSize):a._$clip.height(a._clipSize),a._setScrollBarSize(),a._setScrollBarPosition(0),a._setViewSize())},resize:function(){var b=this,c=0,d=a(".ui-virtualgrid-view");b._inheritedSize=b._getinheritedSize(b.element),d.length!==0&&b._resize()},_initScrollView:function(){var b=this,c=b.options.direction;a.extend(b.options,b._scrollView.options),b.options.direction=c,b.options.moveThreshold=10,b.options.showScrollBars=!1,b._getScrollHierarchy=b._scrollView._getScrollHierarchy,b._makePositioned=b._scrollView._makePositioned,b._set_scrollbar_size=b._scrollView._set_scrollbar_size,b._setStyleTransform=b._scrollView._setElementTransform,b._hideOverflowIndicator=b._scrollView._hideOverflowIndicator,b._showOverflowIndicator=b._scrollView._showOverflowIndicator,b._setGestureScroll=b._scrollView._setGestureScroll},_createTracker:function(){var a=this;a._tracker=new f(a.options),a._direction?(a._hTracker=a._tracker,a._$clip.width(a._clipSize)):(a._vTracker=a._tracker,a._$clip.height(a._clipSize))},_createOverflowArea:function(){var b=this,c='<div class="ui-virtualgrid-overflow-indicator-',d='-top"></div>'
-,e='-bottom"></div>';if(b.options.rotation)return;b._direction?(b._overflowTop=a(c+"x"+d),b._overflowBottom=a(c+"x"+e)):(b._overflowTop=a(c+"y"+d),b._overflowBottom=a(c+"y"+e)),b._$clip.append(b._overflowTop),b._$clip.append(b._overflowBottom),b._overflowDisplayed=!1},_hideVGOverflowIndicator:function(){if(this._overflowDisplayed===!1)return;this._overflowTop.animate({opacity:0},300),this._overflowBottom.animate({opacity:0},300),this._overflowDisplayed=!1},_createScrollBar:function(){var a=this,b='<div class="ui-scrollbar ui-scrollbar-',c='"><div class="ui-scrollbar-track"><div class="ui-scrollbar-thumb"></div></div></div>';if(a.options.rotation)return;a._direction?(a._$clip.append(b+"x"+c),a._hScrollBar=a._$clip.children(".ui-scrollbar-x"),a._hScrollBar.find(".ui-scrollbar-thumb").addClass("ui-scrollbar-thumb-x")):(a._$clip.append(b+"y"+c),a._vScrollBar=a._$clip.children(".ui-scrollbar-y"),a._vScrollBar.find(".ui-scrollbar-thumb").addClass("ui-scrollbar-thumb-y"))},_setScrollBarSize:function(){var a=this,b=0,c=0,d,e,f;if(a.options.rotation)return;b=parseInt(a._maxViewSize/a._clipSize,10),a._direction?(d=a._hScrollBar.find(".ui-scrollbar-thumb"),e="width",c=d.width(),f="ui-scrollbar-thumb-x",a._hScrollBar.css("width",a._clipSize)):(d=a._vScrollBar.find(".ui-scrollbar-thumb"),e="height",f="ui-scrollbar-thumb-y",c=d.height(),a._vScrollBar.css("height",a._clipSize)),b>c?(d.removeClass(f),d.css(e,b)):b=c,a._itemScrollSize=parseFloat((a._clipSize-b)/(a._totalRowCnt-a._rowsPerView)),a._itemScrollSize=Math.round(a._itemScrollSize*100)/100},_setScrollBarPosition:function(a,b){var c=this,d=null,e="0px",f="0px",g;if(c.options.rotation)return;c._currentItemCount=c._currentItemCount+a,c._vScrollBar?(d=c._vScrollBar.find(".ui-scrollbar-thumb"),f=c._currentItemCount*c._itemScrollSize+"px"):(d=c._hScrollBar.find(".ui-scrollbar-thumb"),e=c._currentItemCount*c._itemScrollSize+"px"),c._setStyleTransform(d,e,f,b)},_hideScrollBars:function(){var a=this,b="ui-scrollbar-visible";if(a.options.rotation)return;a._vScrollBar?a._vScrollBar.removeClass(b):a._hScrollBar.removeClass(b)},_showScrollBars:function(){var a=this,b="ui-scrollbar-visible";if(a.options.rotation)return;a._vScrollBar?a._vScrollBar.addClass(b):a._hScrollBar.addClass(b)},centerTo:function(b){var c=this,d=null,e=null,f=-1,g=c._$rows.length,h,i;if(!c.options.rotation)return;for(i=0;i<g;++i){d=a(c._$rows[i]),e=d.children("."+b);if(e.length){f=parseInt(d.attr("row-index"),10);break}}if(f===-1){f=c._getTargetRowIndex(b);if(f===-1)return}h=-(f*c._cellSize-(c._clipSize-c._cellSize)/2),c._direction?c.scrollTo(h,0):c.scrollTo(0,h)},_getTargetRowIndex:function(a){var b=this,c=b._numItemData,d=b._itemCount,e=b._direction?"top":"left",f="",g=b._totalRowCnt,h;for(h=0;h<c;++h){f=b._makeHtmlData(h,h%d,e);if(b._hasClassItem(f,a)){g=parseInt(h/d,10);break}}return g===b._totalRowCnt?-1:g},_hasClassItem:function(a,b){var c=this,d=c._getItemClass(a);return d.indexOf(b)===-1?!1:d.indexOf("virtualgrid-item")===-1?!1:!0},_getItemClass:function(a){var b=a.indexOf("class"),c=Math.min(a.indexOf('"',b),a.indexOf("'",b)),d=Math.min(a.indexOf('"',c+1),a.indexOf("'",c+1));return a.slice(c+1,d)},scrollTo:function(a,b,c){var d=this;d._direction?(a-=d._cellSize,d._sx=d._reservedPos,d._reservedPos=a):(b-=d._cellSize,d._sy=d._reservedPos,d._reservedPos=b),d._scrollView.scrollTo.apply(this,[a,b,c])},getScrollPosition:function(){return this.direction?{x:-this._ry,y:0}:{x:0,y:-this._ry}},_setScrollPosition:function(a,b){var c=this,d=c._scalableSize,f=c._direction?a:b,g=f-d,k=parseInt(g/c._cellSize,10),l=0,m=0,n=0,o=c._rowsPerView+2,p=c._$view[0];if(c._blockScroll){g>0&&f>=-c._cellSize&&c._scalableSize>=-c._cellSize&&(c._overflowDir=i),g<0&&c._scalableSize<=-(c._maxSizeExceptClip+c._cellSize)&&(c._overflowDir=j);return}if(!c.options.rotation){if(g>0&&f>=-c._cellSize&&c._scalableSize>=-c._cellSize){c._stopMScroll(),c._scalableSize=-c._cellSize,c._setElementTransform(-c._cellSize),c._overflowDir===h&&(c._overflowDir=i);return}if(g<0&&c._scalableSize<=-(c._maxSizeExceptClip+c._cellSize)){c._stopMScroll(),c._scalableSize=-(c._maxSizeExceptClip+c._cellSize),c._setElementTransform(c._modifyViewPos),c._overflowDir===h&&(c._overflowDir=j);return}}n=Math.abs(k)<o?0:k>0?k-o:k+o;if(k>0)for(l=n;l<k;++l)m=-parseInt(d/c._cellSize+l+3,10),c._replaceRow(p.lastChild,e(m,c._totalRowCnt)),p.insertBefore(p.lastChild,p.firstChild);else if(k<0)for(l=n;l>k;--l)m=c._rowsPerView-parseInt(d/c._cellSize+l,10),c._replaceRow(p.firstChild,e(m,c._totalRowCnt)),p.insertBefore(p.firstChild,p.lastChild.nextSibling);c._setScrollBarPosition(-k),c._scalableSize+=k*c._cellSize,c._setElementTransform(f-c._scalableSize-c._cellSize)},_setElementTransform:function(a){var b=this,c=0,d=0;b._direction?c=a+"px":d=a+"px",b._setStyleTransform(b._$view,c,d)},_handleMomentumScroll:function(){var a=this,b=a.options,c=!1,d=this._$view,e=0,f=0,g=a._tracker;g&&(g.update(),a._direction?e=g.getPosition():f=g.getPosition(),c=!g.done()),a._setScrollPosition(e,f),b.rotation?a._reservedPos=a._direction?e:f:(c=!g.done(),a._reservedPos=a._direction?e:f,a._reservedPos=a._reservedPos<=-(a._maxSizeExceptClip-a._modifyViewPos)?-(a._maxSizeExceptClip+a._cellSize):a._reservedPos,a._reservedPos=a._reservedPos>-a._cellSize?-a._cellSize:a._reservedPos),a._$clip.trigger(a.options.updateEventName,[{x:e,y:f}]),c?a._timerID=setTimeout(a._timerCB,a._timerInterval):a._stopMScroll()},_startMScroll:function(a,b){var c=this;c._direction?c._sx=c._reservedPos:c._sy=c._reservedPos,c._scrollView._startMScroll.apply(c,[a,b])},_stopMScroll:function(){this._scrollView._stopMScroll.apply(this)},_enableTracking:function(){var a=this;a._$view.bind(a._dragMoveEvt,a._dragMoveCB),a._$view.bind(a._dragStopEvt,a._dragStopCB),a._scrollView._enableTracking.apply(a)},_disableTracking:function(){var a=this;a._$view.unbind(a._dragMoveEvt,a._dragMoveCB),a._$view.unbind(a._dragStopEvt,a._dragStopCB),a._scrollView._disableTracking.apply(a)},_handleDragStart:function(a,b,c){var d=this;d._scrollView._handleDragStart.apply(this,[a,b,c]),d._eventPos=d._direction?b:c,d._nextPos=d._reservedPos},_handleDragMove:function(a,b,c){var d=this,e=b-d._lastX,f=c-d._lastY,g=0,j=0,k=0,m=0,n=0,o=0,p=null;return d._lastMove=l(),d._speedX=e,d._speedY=f,d._didDrag=!0,d._lastX=b,d._lastY=c,d._direction?(d._movePos=b-d._eventPos,g=d._nextPos+d._movePos,o=b):(d._movePos=c-d._eventPos,j=d._nextPos+d._movePos,o=c),d._showScrollBars(),d._setScrollPosition(g,j),d._overflowDir!==h&&(p=d._overflowDir===i?d._overflowTop:d._overflowBottom,d._overflowDisplayed||(d._overflowDisplayed=!0,d._overflowStartPos=o),k=(o-d._overflowStartPos)*d._overflowDir,n=k<0?0:k>d._overflowMaxDragDist?1:k/d._overflowMaxDragDist,p.css("opacity",n)),!1},_handleDragStop:function(a){var b=this;return b._reservedPos=b._movePos?b._nextPos+b._movePos:b._reservedPos,b._scrollView._handleDragStop.apply(this,[a]),b._overflowDir!==h&&(b._overflowDir=h,b._hideVGOverflowIndicator()),b._didDrag?!1:d},_addBehaviors:function(){var d=this;d.options.eventType==="mouse"?(d._dragStartEvt="mousedown",d._dragStartCB=function(a){return d._handleDragStart(a,a.clientX,a.clientY)},d._dragMoveEvt="mousemove",d._dragMoveCB=function(a){return d._handleDragMove(a,a.clientX,a.clientY)},d._dragStopEvt="mouseup",d._dragStopCB=function(a){return d._handleDragStop(a,a.clientX,a.clientY)},d._$view.bind("vclick",function(a){return!d._didDrag})):(d._dragStartEvt="touchstart",d._dragStartCB=function(a){var b=a.originalEvent.targetTouches[0];return d._handleDragStart(a,b.pageX,b.pageY)},d._dragMoveEvt="touchmove",d._dragMoveCB=function(a){var b=a.originalEvent.targetTouches[0];return d._handleDragMove(a,b.pageX,b.pageY)},d._dragStopEvt="touchend",d._dragStopCB=function(a){return d._handleDragStop(a)}),d._$view.bind(d._dragStartEvt,d._dragStartCB),d._$view.delegate(".virtualgrid-item","click",function(b){var c=a(this);c.trigger("select",this)}),a(b).bind("resize",function(b){var c=0,e=a(".ui-virtualgrid-view");e.length!==0&&d._resize()}),a(c).one("pageshow",function(c){var e=a(d.element).parents(".ui-page"),f=e.find(":jqmData(role='header')"),g=e.find(":jqmData(role='footer')"),h=e.find(":jqmData(role='content')"),i=g?g.height():0,j=f?f.height():0;e&&h&&(h.height(b.innerHeight-j-i).css("overflow","hidden"),h.addClass("ui-virtualgrid-content"))})},_calculateClipSize:function(){var a=this,b=0;return a._direction?b=a._calculateClipWidth():b=a._calculateClipHeight(),b},_calculateClipWidth:function(){var c=this,d=c._$clip.parent(),e=0,f=a(b).width();return c._inheritedSize.isDefinedWidth?c._inheritedSize.width:(d.hasClass("ui-content")?(e=parseInt(d.css("padding-left"),10),f-=e||0,e=parseInt(d.css("padding-right"),10),f-=e||0):f=c._$clip.width(),f)},_calculateClipHeight:function(){var c=this,d=c._$clip.parent(),e=null,f=null,g=0,h=a(b).height();return c._inheritedSize.isDefinedHeight?c._inheritedSize.height:(d.hasClass("ui-content")?(g=parseInt(d.css("padding-top"),10),h-=g||0,g=parseInt(d.css("padding-bottom"),10),h-=g||0,e=d.siblings(".ui-header"),f=d.siblings(".ui-footer"),e&&(e.outerHeight(!0)===null?h-=a(".ui-header").outerHeight()||0:h-=e.outerHeight(!0)),f&&(h-=f.outerHeight(!0))):h=c._$clip.height(),h)},_calculateColumnSize:function(){var b=this,c,d;c=a(b._makeRows(1)),b._$view.append(c.children().first()),b._direction?(b._viewSize=b._$view.width(),d=b._$view.children().first().children().first(),b._cellSize=d.outerWidth(!0),b._cellOtherSize=d.outerHeight(!0)):(b._viewSize=b._$view.height(),d=b._$view.children().first().children().first(),b._cellSize=d.outerHeight(!0),b._cellOtherSize=d.outerWidth(!0)),c.remove(),b._$view.children().remove()},_calculateColumnCount:function(){var a=this,b=a._$clip,c=a._direction?b.innerHeight():b.innerWidth(),d=0;return a._direction?c-=parseInt(b.css("padding-top"),10)+parseInt(b.css("padding-bottom"),10):c-=parseInt(b.css("padding-left"),10)+parseInt(b.css("padding-right"),10),d=parseInt(c/a._cellOtherSize,10),d>0?d:1},_getClipPosition:function(){var a=this,b=null,c=null,d=-a._cellSize,e=a._$view.closest(".ui-scrollview-view");return e&&(b=e.css("-webkit-transform"),c=b.substr(7),c=c.substr(0,c.length-1),c=c.split(", "),d=Math.abs(c[5])),d},_makeRows:function(a){var b=this,c=0,d=null,e=null;e=b._createElement("div"),e.setAttribute("class","ui-scrollview-view");for(c=0;c<a;c+=1)d=b._makeRow(c),b._direction&&(d.style.top=0,d.style.left=c*b._cellSize),e.appendChild(d);return e},_makeRow:function(a){var b=this,c=a*b._itemCount,d=0,e=b._direction?"ui-virtualgrid-wrapblock-x":"ui-virtualgrid-wrapblock-y",f=b._createElement("div"),g="",h=b._direction?"top":"left";for(d=0;d<b._itemCount;d++)g+=b._makeHtmlData(c,d,h),c+=1;return f.innerHTML=g,f.setAttribute("class",e),f.setAttribute("row-index",String(a)),b._fragment.appendChild(f),f},_makeHtmlData:function(a,b,c){var d=this,e="",f=null;return f=d._itemData(a),f&&(e=d._getConvertedTmplStr(f),e=d._insertPosToTmplStr(e,c,b*d._cellOtherSize)),e},_insertPosToTmplStr:function(a,b,c){var d=a.indexOf(">"),e=-1,f,g,h,i=!1,j=0,k,l=0;if(d===-1)return;f=a.slice(0,d),g=a.slice(d,a.length),e=f.indexOf("class");if(e!==-1){k=f.length;for(l=e+6;l<k;l++)if(f.charAt(l)==='"'||f.charAt(l)==="'"){if(i!==!1){j=l;break}i=!0}h=f.slice(0,j)+" virtualgrid-item"+f.slice(j,k)+g}else h=f+' class="virtualgrid-item"'+g;return isNaN(c)||(h=h.replace(">",' style="'+b+": "+String(c)+'px">')),h},_increaseRow:function(b){var c=this,d=c.options.rotation,f=c._totalRowCnt,g=c._$view[0],h=null,i=g.lastChild,j=null,k=0,l=0,m;if(!i)return;l=parseInt(i.getAttribute("row-index"),10),d||(h=g.firstChild,k=parseInt(h.getAttribute("row-index"),10));for(m=0;m<b;++m){if(l>=f-1&&!d){if(k==0)break;j=c._makeRow(--k),g.insertBefore(j,h),h=j}else j=c._makeRow(e(++l,f)),g.appendChild(j);c._direction?a(j).width(c._cellSize):a(j).height(c._cellSize)}},_decreaseRow:function(a){var b=this,c=b._$view[0],d;for(d=0;d<a;++d)c.removeChild(c.lastChild)},_replaceRows:function(b,c,d,f){var g=this,h=g._$view.children(),i=0,j=0,k=0,l=1,m=g._filterRatio*g._cellSize+g._cellSize,n=0;m<f&&(l+=1),i=parseInt(a(h[l]).attr("row-index"),10),i===0?j=d-l:(j=Math.round(i*c/b),j+g._rowsPerView>=d&&(j=d-g._rowsPerView),k=i-j,j-=l);for(n=0;n<h.length;n+=1)g._replaceRow(h[n],e(j,g._totalRowCnt)),j++;return-k},_replaceRow:function(a,b){var c=this,d=null;while(a.hasChildNodes())a.removeChild(a.lastChild);d=c._makeRow(b);while(d.children.length)a.appendChild(d.children[0]);a.setAttribute("row-index",d.getAttribute("row-index")),d.parentNode.removeChild(d)},_createElement:function(a){var b=c.createElement(a);return this._fragment.appendChild(b),b},_getObjectNames:function(a){var b=[],c="";for(c in a)b.push(c);this._properties=b},_getConvertedTmplStr:function(a){var b=this,c=b._properties,d=0,e,f="";if(!a)return;e=b._templateText;for(d=0;d<c.length;d++)e=b._strReplace(e,"${"+c[d]+"}",a[c[d]]);return e=b._changeImgSrcAriaAttrFromTmpl(e),e},_changeImgSrcAriaAttrFromTmpl:function(a){var b=this,c="",d,e="",f="",g,h,i,j;i=a,d=i.indexOf("$ARIA-IMG-SRC-ALT$");while(d!==-1)g="",e+=i.slice(0,d+19),f=i.slice(d+19,i.length),j=f.match(k),j&&(h=j[0].lastIndexOf("/"),h!==-1&&(g=j[0].slice(h+1,-1))),e=e.replace("$ARIA-IMG-SRC-ALT$",g),i=f,d=i.indexOf("$ARIA-IMG-SRC-ALT$"),c=e+f;return c===""&&(c=a),c},_insertAriaAttrToTmpl:function(a){var b="",c,d="",e="",f;f=a.replace("<div",'<div tabindex="0" aria-selected="true"'),c=f.indexOf("<img");if(c!==-1){while(c!==-1)d+=f.slice(0,c+4),e=f.slice(c+4,f.length),d+=' role="img" alt="$ARIA-IMG-SRC-ALT$"',f=e,c=f.indexOf("<img"),b=d+e;f=b,c=f.indexOf("<span"),d="";while(c!==-1)d+=f.slice(0,c+5),e=f.slice(c+5,f.length),d+=' aria-hidden="true" tabindex="-1"',f=e,c=f.indexOf("<span"),b=d+e}return b===""&&(b=a),b},_strReplace:function(a,b,c){var d=a,e=a.indexOf(b);while(e!==-1)d=d.replace(b,c),e=d.indexOf(b);return d}}),a(c).bind("pagecreate create",function(b){a(":jqmData(role='virtualgrid')").virtualgrid()})}(jQuery,window,document),function(a,b,c,d){function m(){this.vertices=[-1,-1,0,1,-1,0,1,1,0,-1,1,0],this.textureCoords=[1,0,0,0,0,1,1,1],this.normalVectors=[0,0,1,0,0,1,0,0,1,0,0,1],this.texture=null,this.textureBuffer=null,this.textureBufferItemSize=0,this.mashOrder=[],this.mvMatrix=null,this.level=-1,this.targetLevel=0,this.drawable=!1,this.image=null,this.imageID=0}c.requestAnimationFrame=function(){return function(a){var b=c.setTimeout(a,1e3/60);return b}}(),c.cancelAnimationFrame=function(){return function(a){c.clearTimeout(a)}}();var e=c.vec3,f=c.mat3,g=c.mat4,h=typeof c.Float32Array!="undefined"?c.Float32Array:typeof c.WebGLFloatArray!="undefined"?c.WebGLFloatArray:Array,i=typeof c.Uint16Array!="undefined"?c.Uint16Array:Array,j=function(a){var b,d,e=["experimental-webgl","webkit-3d","webgl","moz-webgl"];for(d=0;d<e.length;d+=1)try{b=a.getContext(e[d]);if(b)break}catch(f){c.alert("Unfortunately, there's a WebGL compatibility problem. </br> You may want to check your system settings.");return}return b},k=["attribute vec3 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec3 aVertexNormal;","uniform mat4 uMoveMatrix;","uniform mat4 uPerspectiveMatrix;","uniform mat3 nNormalMatrix;","uniform vec3 uAmbientColor;","uniform vec3 uLightDirection;","uniform vec3 uDirectionColor;","uniform vec3 uLightDirection_first;","uniform vec3 uLightDirection_second;","varying vec2 vTextureCoord;","varying vec3 vLightWeight;","varying vec4 vFogWeight;","void main(void) {","\tvec4 v_Position = uMoveMatrix * vec4(aVertexPosition, 1.0);","\tgl_Position = uPerspectiveMatrix * v_Position;","\tvTextureCoord = aTextureCoord;","\tfloat fog = 1.0 - ((gl_Position.z + 1.5) / 60.0);","\tvFogWeight = clamp( vec4( fog, fog, fog, 1.0), 0.6, 1.0);","\tvec3 transNormalVector = nNormalMatrix * aVertexNormal;","\tfloat vLightWeightFirst = 0.0;","\tfloat vLightWeightSecond = max( dot(transNormalVector, uLightDirection_second), 0.0 );","\tvLightWeight = uAmbientColor + uDirectionColor * vLightWeightSecond;","}"].join("\n"),l=["precision mediump float;","varying vec2 vTextureCoord;","varying vec3 vLightWeight;","uniform sampler2D uSampler;","varying vec4 vFogWeight;","void main(void) {","\tvec4 TextureColor;","\tif ( vTextureCoord.s <= 0.01 || vTextureCoord.s >= 0.99 || vTextureCoord.t <= 0.01 || vTextureCoord.t >= 0.99 ) {","\t\tTextureColor = vec4(1.0, 1.0, 1.0, 0.5);","\t} else {","\t\tTextureColor = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));","\t}","\tTextureColor *= vFogWeight;","\tgl_FragColor = vec4(TextureColor.rgb * vLightWeight, TextureColor.a);","}"].join("\n");a.widget("tizen.gallery3d",a.mobile.widget,{options:{thumbnailCache:!1},_MAX_ITEM_COUNT:28,_ANIMATION_END:999,_DURATION_DEFAULT:300,_DURATION_FIRST:1600,_VIEWPORT_WIDTH:1024,_VIEWPORT_HEIGHT:456,_DIRECTION_LEFT:-1,_DIRECTION_RIGHT:1,_gl:null,_shaderProgram:null,_positionBuffer:null,_textureCoordBuffer:null,_normalVectorBuffer:null,_nodes:null,_pMatrix:null,_animationID:0,_dragInterval:0,_startTime:0,_sumTime:0,_lightsPositionStack:[[0,0,-1],[-0.2,0,.7]],_path:null,_swipeThresholdOfBasetimeGap:a.support.touch?30:70,_swipeThresholdOfSensitivity:a.support.touch?2:10,_canvas:null,_imageList:[],_maxDrawLength:0,_firstImageNumber:0,_lastImageNumber:0,_create:function(){var b=this,c=b.element,e=b.options;b._canvas=a("<canvas class='ui-gallery3d-canvas'></canvas>"),c.addClass("ui-gallery3d").append(b._canvas),b._addBehavier(),b._dragInterval=1e3/30,a.each(b.options,function(a,c){b.options[a]=d,b._setOption(a,c)})},_setOption:function(b,c){switch(b){case"thumbnailCache":typeof c=="string"?c=c==="true"?!0:!1:c=!!c,this._reset()}a.mobile.widget.prototype._setOption.call(this,b,c)},_init:function(b){var c=this,d=[[40,0,-48],[-12,0,-40],[24,0,-9],[-5,0,-5]],e;b=b||c._canvas;if(!b)return;c._gl=c._gl||c._initGL(b[0]);if(!c._gl)return;if(!c._imageList)return;c._shaderProgram=c._shaderProgram||c._initShader(c._gl);if(!c._shaderProgram)return;c._imageList.length>c._MAX_ITEM_COUNT&&(c._firstImageNumber=c._imageList.length-1,c._lastImageNumber=c._MAX_ITEM_COUNT-1),c._nodes=c._initBuffers(c._gl,c._shaderProgram),c._initTextures(c._gl,c._nodes),c._path=a.motionpath("bezier2d",{points:d,maxLevel:c._MAX_ITEM_COUNT});for(e=0;e<c._nodes.length;e+=1)c._path.levels[e]=c._path.levels[e+1]||0,c._nodes[e].level=e},_final:function(b){var c=this,d=c._gl;if(!d)return;b=b||c._canvas,a(c._nodes).each(function(a){var b=c._nodes[a];d.deleteTexture(b.texture),b.texture=null}),c._nodes=null,d.deleteBuffer(c._positionBuffer),c._positionBuffer=null,d.deleteBuffer(c._textureCoordBuffer),c._textureCoordBuffer=null,d.deleteBuffer(c._normalVectorBuffer),c._normalVectorBuffer=null,a.webgl.shader.deleteShaders(d),d.deleteProgram(c._shaderProgram),c._shaderProgram=null,c._gl=d=null},_addBehavier:function(){var d=this,e=d.element,f=d._canvas,g=a.support.touch?"touchstart":"mousedown",h=(a.support.touch?"touchmove":"mousemove")+".gallery3d",i=(a.support.touch?"touchend":"mouseup")+".gallery3d",j=(a.support.touch?"touchleave":"mouseout")+".gallery3d";a(b).unbind(".gallery3d").bind("pagechange.gallery3d",function(b){a(b.target).find(".ui-gallery3d").gallery3d("refresh")}).bind("pageremove.gallery3d",function(b){a(b.target).find(".ui-gallery3d").trigger("_destory")}),a(c).unbind(".gallery3d").bind("resize.gallery3d orientationchange.gallery3d",function(b){a(".ui-page-active").find(".ui-gallery3d").gallery3d("refresh")}).bind("unload.gallery3d",function(b){a(b.target).find(".ui-gallery3d").trigger("_destory")}),e.bind("_destory",function(a){d._final()}),f.bind("webglcontextlost",function(a){a.preventDefault()}).bind("webglcontextrestored",function(a){d._init()}).bind(g,function(b){var c=0,f=0,g=20,k=[g],l=[g],m=0,n=0,o=!1,p=0;b.preventDefault(),b.stopPropagation();if(d._imageList.length<=1)return;d._stop(),f=a.support.touch?b.originalEvent.changedTouches[0].pageX:b.pageX,p=a.now();for(c=0;c<g;c+=1)k[c]=f,l[c]=a.now();m+=1,e.bind(h,function(b){var c,e,h;b.preventDefault(),b.stopPropagation(),c=a.support.touch?b.originalEvent.changedTouches[0].pageX:b.pageX,e=f-c,k[m]=c,l[m]=a.now(),h=l[m]-p,m=(m+1)%g,Math.abs(e)>=10&&h>=d._dragInterval&&(o!==(e<0?d._DIRECTION_RIGHT:d._DIRECTION_LEFT)&&(n=0,o=e<0?d._DIRECTION_RIGHT:d._DIRECTION_LEFT),n+=Math.abs(e)/100,n>=1?(d._setPosition(d._ANIMATION_END,o),n=0):d._setPosition(n,o),d._drawScene(),f=c,p=a.now())}).bind(i,function(b){var h=0,i=-1,j=0,p=0,q=0,r=0,s=0,t=0,u=0,v=!0,w;b.preventDefault(),b.stopPropagation(),h=a.now()-d._swipeThresholdOfBasetimeGap,s=a.support.touch?b.originalEvent.changedTouches[0].pageX:b.pageX,u=f-s,f=0;for(c=0;c<g;c+=1){j=(m+c)%g;if(l[j]>h){i=j;break}}i<0&&(v=!1);if(v){p=i;for(c=0;c<g;c+=1){p=(p-1+g)%g;if(l[p]<l[i])break}if(c===g||h<l[p])v=!1}v&&(q=(h-l[p])/(l[i]-l[p]),r=(1-q)*k[p]+q*k[i],Math.abs(r-s)<d._swipeThresholdOfSensitivity&&(r=s),t=parseInt((s-r)/(a.now()-h),10)),v&&t?(w=t<0?d._DIRECTION_LEFT:d._DIRECTION_RIGHT,d._run(w,Math.abs(t),n)):o!==0&&n&&d._animate(null,d._DURATION_DEFAULT*(1-n),o,0,n),e.unbind(".gallery3d")}).bind(j,function(a){e.trigger(i)})})},_initGL:function(a){var b=this,d;return d=j(a),d?(d.enable(d.BLEND),d.blendFunc(d.SRC_ALPHA,d.ONE_MINUS_SRC_ALPHA),d.enable(d.DEPTH_TEST),d.depthFunc(d.LEQUAL),a.width=b._VIEWPORT_WIDTH,a.height=b._VIEWPORT_HEIGHT,d.viewportWidth=a.width,d.viewportHeight=a.height,d.viewport(0,0,d.viewportWidth,d.viewportHeight),b._pMatrix=g.create(),g.perspective(40,d.viewportWidth/d.viewportHeight,.1,1e4,b._pMatrix),d.clearColor(.15,.15,.15,1),d.clear(d.COLOR_BUFFER_BIT|d.DEPTH_BUFFER_BIT),d):(c.alert("There's no WebGL context available!!!"),null)},_initShader:function(b){var c=this,d;return d=a.webgl.shader.addShaderProgram(c._gl,k,l),b.useProgram(d),d.vertexPositionAttr=b.getAttribLocation(d,"aVertexPosition"),b.enableVertexAttribArray(d.vertexPositionAttr),d.textureCoordAttr=b.getAttribLocation(d,"aTextureCoord"),b.enableVertexAttribArray(d.textureCoordAttr),d.vertexNormalAttr=b.getAttribLocation(d,"aVertexNormal"),b.enableVertexAttribArray(d.vertexNormalAttr),d.perspectiveMU=b.getUniformLocation(d,"uPerspectiveMatrix"),d.transformMU=b.getUniformLocation(d,"uMoveMatrix"),d.sampleUniform=b.getUniformLocation(d,"uSampler"),d.normalMU=b.getUniformLocation(d,"nNormalMatrix"),d.ambientColorU=b.getUniformLocation(d,"uAmbientColor"),d.lightDirU_first=b.getUniformLocation(d,"uLightDirection_first"),d.lightDirU_second=b.getUniformLocation(d,"uLightDirection_second"),d.directionColorU=b.getUniformLocation(d,"uDirectionColor"),d},_initBuffers:function(b,c){var d=this,e=0,f=0,g=[],j=[],k=[],l=[],n=d._MAX_ITEM_COUNT;for(e=0;e<d._imageList.length+1;e+=1)l[e]=new m,a.merge(g,l[e].vertices),a.merge(j,l[e].textureCoords),a.merge(k,l[e].normalVectors),l[e].textureBuffer=b.createBuffer(),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,l[e].textureBuffer),f=e*4,l[e].meshOrder=[f,f+1,f+2,f+2,f+3,f],b.bufferData(b.ELEMENT_ARRAY_BUFFER,new i(l[e].meshOrder),b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,null),l[e].textureBufferItemSize=6;return d._positionBuffer=a.webgl.buffer.attribBufferData(b,new h(g)),d._positionBuffer.itemSize=3,d._textureCoordBuffer=a.webgl.buffer.attribBufferData(b,new h(j)),d._textureCoordBuffer.itemSize=2,d._normalVectorBuffer=a.webgl.buffer.attribBufferData(b,new h(k)),d._normalVectorBuffer.itemSize=3,b.uniform3f(c.ambientColorU,.1,.1,.1),b.uniform3f(c.directionColorU,1,1,1),l},_initTextures:function(b,c){var d=this;a(c).each(function(a){var e=c[a],f;if(!d._imageList[a])return!1;f=d._imageList[a].src,e.texture=b.createTexture(),d._loadImage(f,a,a,b,c)})},_loadImage:function(b,c,d,e,f){var g=this,h=!1,i,j;e=e||g._gl,f=f||g._nodes,h=h||!1,j=f[c],j.image=j.image||new Image,a(j.image).one("load",function(a){g._bindTexture(e,j,this,h),j.imageID=d,g._animationID||g._setPosition(0,0)}),g.options.thumbnailCache?a.imageloader.getThumbnail(b,function(c){c==="NOT_FOUND_ERR"?a.imageloader.setThumbnail(b,function(a){a&&a.length>30?(j.image.src=a,h=!0):j.image.src=b}):c&&c.length>30?(j.image.src=c,h=!0):j.image.src=b}):j.image.src=b},_bindTexture:function(a,b,c,d){if(!b||!b.texture)return;a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!0),a.bindTexture(a.TEXTURE_2D,b.texture),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,c),d?(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR_MIPMAP_NEAREST),a.generateMipmap(a.TEXTURE_2D)):(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR)),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),b.texture.loaded=!0,a.bindTexture(a.TEXTURE_2D,null)},_setPosition:function(a,b){var c=this,d=c._nodes,e=c._imageList,f=e.length,h=c._MAX_ITEM_COUNT,i=f>h?h:f,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=c._path,s=0;j=b>=0?i+1:i,d[k].level||(d[k].level=i);for(k=0;k<i;k+=1)d[k].mvMatrix||(d[k].mvMatrix=g.create()),b>0&&d[k].level>=i&&(d[k].level=0),o=r.levels[d[k].level],q=(d[k].level+j+b)%j,p=r.levels[q],f>h&&(b>0&&q===1&&c._firstImageNumber!==d[k].imageID?c._loadImage(e[c._firstImageNumber].src,k,c._firstImageNumber):b<0&&q===j-1&&c._lastImageNumber!==d[k].imageID&&c._loadImage(e[c._lastImageNumber].src,k,c._lastImageNumber)),g.identity(d[k].mvMatrix),g.translate(d[k].mvMatrix,[-2,-2,1]),g.rotate(d[k].mvMatrix,c._degreeToRadian(19),[1,0,0]),l=o+(p-o)*(a>1?1:a),a>=c._ANIMATION_END&&(d[k].level=q||i,l=r.levels[d[k].level]),a<c._ANIMATION_END&&b<=0&&d[k].level<1?d[k].drawable=!1:d[k].drawable=!0,a===c._ANIMATION_END&&d[k].level===1&&c.element.trigger("select",e[d[k].imageID],d[k].imageID),m=r.getPosition(l),n=r.getAngle(l),g.translate(d[k].mvMatrix,m),g.rotate(d[k].mvMatrix,n,[0,1,0]);f>h&&a>=c._ANIMATION_END&&(c._firstImageNumber=(c._firstImageNumber-b)%f,c._firstImageNumber<0&&(c._firstImageNumber=f-1),c._lastImageNumber=(c._lastImageNumber-b)%f,c._lastImageNumber<0&&(c._lastImageNumber=f-1)),c._drawScene()},_drawScene:function(){if(!this._gl||!this._shaderProgram)return;var a=this,b=a._gl,c=a._shaderProgram,d=a._nodes,e=d.length,f;b.clear(b.COLOR_BUFFER_BIT|b.DEPTH_BUFFER_BIT),b.bindBuffer(b.ARRAY_BUFFER,a._positionBuffer),b.vertexAttribPointer(c.vertexPositionAttr,a._positionBuffer.itemSize,b.FLOAT,!1,0,0),b.bindBuffer(b.ARRAY_BUFFER,a._textureCoordBuffer),b.vertexAttribPointer(c.textureCoordAttr,a._textureCoordBuffer.itemSize,b.FLOAT,!1,0,0),b.bindBuffer(b.ARRAY_BUFFER,a._normalVectorBuffer),b.vertexAttribPointer(c.vertexNormalAttr,a._normalVectorBuffer.itemSize,b.FLOAT,!1,0,0);for(f=0;f<e;f+=1)d[f].drawable&&a._drawElement(a._pMatrix,d[f])},_drawElement:function(a,b){var c=this,d=c._gl,h=c._shaderProgram,i=b.mvMatrix,j=b.texture,k=b.textureBuffer,l=b.textureBufferItemSize,m=c._lightsPositionStack,n,o;if(!i)return;d.activeTexture(d.TEXTURE0),j&&j.loaded&&d.bindTexture(d.TEXTURE_2D,j),d.uniform1i(h.sampleUniform,0),n=e.create(),e.normalize(m[0],n),e.scale(n,-8),d.uniform3fv(h.lightDirU_first,n),e.normalize(m[1],n),e.scale(n,-1),d.uniform3fv(h.lightDirU_second,n),d.bindBuffer(d.ELEMENT_ARRAY_BUFFER,k),d.uniformMatrix4fv(h.perspectiveMU,!1,a),d.uniformMatrix4fv(h.transformMU,!1,i),o=f.create(),g.toInverseMat3(i,o),f.transpose(o),d.uniformMatrix3fv(h.normalMU,!1,o),d.drawElements(d.TRIANGLES,l,d.UNSIGNED_SHORT,0),d.bindBuffer(d.ARRAY_BUFFER,null),d.bindBuffer(d.ELEMENT_ARRAY_BUFFER,null),d.bindTexture(d.TEXTURE_2D,null)},_animate:function(b,d,e,f,g,h){var i=this,j=a.now(),k,l=0;b=b||"linear",g=g||0,h=h||0;if(i._sumTime>=d){i._setPosition(i._ANIMATION_END,e),i._stop();return}if(i._startTime===0)i._startTime=j;else{i._sumTime=j-i._startTime,k=a.easing[b](i._sumTime/d,i._sumTime,g,f+1,d),l=parseInt(Math.abs(k),10);if(h!==l){i._setPosition(i._ANIMATION_END,e),h=l,f-h>=0?i._animate(b,d,e,f,g,h):i._stop();return}i._setPosition(k-h,e)}i._animationID=c.requestAnimationFrame(function(){i._animate(b,d,e,f,g,h)})},_run:function(a,b,c){var d=this,e=b||0,f=d._DURATION_DEFAULT*(e+1);if(d._imageList.length<=1)return;c=c||0,f=f>=0?f:0,d._animationID&&(d._setPosition(d._ANIMATION_END,a),d._stop()),d._animate("easeOutExpo",f,a,e,c)},_reset:function(){if(!this._canvas||!this._gl)return;this._final(),this._init(),this.refresh()},_stop:function(){this._animationID&&c.cancelAnimationFrame(this._animationID),this._animationID=0,this._startTime=0,this._sumTime=0},_degreeToRadian:function(a){return a*Math.PI/180},next:function(){this._run(this._DIRECTION_LEFT,0)},prev:function(){this._run(this._DIRECTION_RIGHT,0)},refresh:function(){var a=this.element,b=a.find("canvas.ui-gallery3d-canvas");b.width()!==a.width()&&b.width(a.width()),this._animationID||this._setPosition(0,0)},select:function(a){var b=this._nodes,c,d,e,f=null,g=0,h=0;a&&this._animationID&&this._stop();for(d in b)if(b[d].level===1){f=this._imageList[b[d].imageID],e=b[d].imageID;break}if(!a)return f;if(a<0&&a>=this._imageList.length)return;g=a-e,h=g>0?this._DIRECTION_LEFT:g<0?this._DIRECTION_RIGHT:0,h&&this._run(h,Math.abs(g)-1)},add:function(a,b){if(!a)return;typeof a=="string"&&(a={src:a}),b=b||0;if(typeof b!="number"&&b<0&&b>=this._imageList.length)return;this._imageList.splice(b,0,a),this._gl&&this._reset()},remove:function(a){a=a||0;if(typeof a!="number"&&a<0&&a>=this._imageList.length)return;this._imageList.splice(a,1),this._gl&&this._reset()},clearThumbnailCache:function(){if(!this._nodes||this._nodes.length<=0)return;var b,c;for(b=0;b<this._imageList.length;b+=1)c=this._imageList[b].src,a.imageloader.removeThumbnail(c)},empty:function(){this._imageList=[],this._reset()},length:function(){return this._imageList.length}}),a(b).bind("pagecreate create",function(b){a(":jqmData(role='gallery3d')").gallery3d()})}(jQuery,document,window),function(a){a.widget("tizen.swipe",a.mobile.widget,{options:{theme:null},_create:function(){var a=this.element.jqmData("theme")||this.options.theme||this.element.parent().jqmData("theme")||"s";this.options.theme=a,this._isopen=!1,this.refresh()},refresh:function(){this._cleanupDom();var b=this,c,d,e,f,g;c="ui-body-"+this.options.theme,this.element.parent().hasClass("ui-listview")||this.element.parent().listview(),this.element.addClass("ui-swipe"),d=this.element.find(':jqmData(role="swipe-item-cover")'),f=this.element.find(':jqmData(role="swipe-item")'),this._covers=d,this._item=f,f.addClass("ui-swipe-item"),e=c,g=f.parent().attr("class").match(/ui\-body\-[a-z]|ui\-bar\-[a-z]/),d.each(function(){var c=a(this);g&&(e=g[0]),c.addClass("ui-swipe-item-cover"),c.addClass(e),c.has(".ui-swipe-item-cover-inner").length===0&&c.wrapInner(a("<span/>").addClass("ui-swipe-item-cover-inner"));if(!c.data("animateRight")||!c.data("animateLeft"))c.data("animateRight",function(){b._animateCover(c,110,f)}),c.data("animateLeft",function(){b._animateCover(c,0,f)});f.bind("swipeleft",c.data("animateLeft")),c.bind("swiperight",c.data("animateRight")),f.find(".ui-btn").bind("vclick",c.data("animateLeft"))})},_cleanupDom:function(){var a=this,b,c,d=b,e,f,g,h,i;b="ui-body-"+this.options.theme,this.element.removeClass("ui-swipe"),c=this.element.find(':jqmData(role="swipe-item-cover")'),e=this.element.find(':jqmData(role="swipe-item")'),e.removeClass("ui-swipe-item"),c.removeClass("ui-swipe-item-cover"),f=e.attr("class"),g=f&&f.match(/ui\-body\-[a-z]|ui\-bar\-[a-z]/),g&&(d=g[0]),c.removeClass(d),i=c.find(".ui-swipe-item-cover-inner"),i.children().unwrap(),h=i.text(),h&&(c.append(h),i.remove()),c.data("animateRight")&&c.data("animateLeft")&&(c.unbind("swiperight",c.data("animateRight")),e.unbind("swipeleft",c.data("animateLeft")),e.find(".ui-btn").unbind("vclick",c.data("animateLeft")),c.data("animateRight",null),c.data("animateLeft",null))},_animateCover:function(b,c,d){var e=this,f={easing:"linear",duration:"normal",queue:!0,complete:function(){b.trigger("animationend")}};a(this.element.parent()).find(":jqmData(role='swipe')").each(function(){this!==e.element.get(0)&&a(this).swipe("opened")&&a(this).swipe("close")}),c==110?this._isopen=!0:this._isopen=!1,b.stop(),b.clearQueue(),b.trigger("animationstart"),b.animate({left:c+"%"},f),c==0?d.animate({opacity:0},"slow"):d.animate({opacity:1},"slow")},destroy:function(){this._cleanupDom()},open:function(){var b=this;a(b._covers).each(function(){var c=a(this);b._animateCover(c,110,b._item)})},opened:function(){return this._isopen},close:function(){var b=this;a(b._covers).each(function(){var c=a(this);b._animateCover(c,0,b._item)})}}),a(document).bind("pagecreate",function(b){a(b.target).find(":jqmData(role='swipe')").swipe()})}(jQuery),function(a,b,c,d){a.widget("tizen.tokentextarea",a.mobile.widget,{_focusStatus:null,_items:null,_viewWidth:0,_reservedWidth:0,_currentWidth:0,_fontSize:0,_anchorWidth:0,_labelWidth:0,_marginWidth:0,options:{label:"To : ",link:null,description:"+ {0}"},_create:function(){var b=this,d=this.element,e=d.jqmData("role"),f=this.options,g="ui-tokentextarea-link",h=a(c.createElement
-("input")),i=a(c.createElement("span")),j=a(c.createElement("a"));d.hide().empty().addClass("ui-"+e),a(i).text(f.label).addClass("ui-tokentextarea-label").attr("tabindex",0),d.append(i),a(h).addClass("ui-tokentextarea-input ui-tokentextarea-input-visible ui-input-text ui-body-s").attr("role","textbox"),d.append(h);if(f.link===null||a.trim(f.link).length<1||a(f.link).length===0)g+="-dim";a(j).attr("data-role","button").buttonMarkup({inline:!0,icon:"plus",style:"circle"}).attr({href:a.trim(f.link),tabindex:0}).addClass("ui-tokentextarea-link-base").addClass(g).find("span.ui-btn-text").text("Add recipient"),d.append(j),this._bindEvents(),b._focusStatus="init",d.show(),b._viewWidth=d.innerWidth(),b._reservedWidth+=b._calcBlockWidth(j),b._reservedWidth+=b._calcBlockWidth(i),b._fontSize=parseInt(a(j).css("font-size"),10),b._currentWidth=b._reservedWidth,b._modifyInputBoxWidth()},_bindEvents:function(){var b=this,d=b.element,e=b.options,f=d.find(".ui-tokentextarea-input"),g=d.find(".ui-tokentextarea-link-base"),h=!1;d.delegate("div","click",function(c){a(this).hasClass("ui-tokentextarea-sblock")&&b._removeTextBlock();var e=d.find("div.ui-tokentextarea-sblock");typeof e!="undefined"&&e.removeClass("ui-tokentextarea-sblock").addClass("ui-tokentextarea-block"),a(this).removeClass("ui-tokentextarea-block").addClass("ui-tokentextarea-sblock"),d.trigger("select")}),f.bind("keyup",function(c){var d=c.keyCode,e=a(f).val(),g=[],i;if(d===8)e.length===0&&b._validateTargetBlock();else if(d===13||d===186||d===188){if(e.length!==0){g=e.split(/[,;]/);for(i=0;i<g.length;i++)g[i].length!==0&&g[i].replace(/\s/g,"").length!==0&&b._addTextBlock(g[i])}f.val(""),h=!0}else b._unlockTextBlock();return!h}),g.click(function(){if(a(g).hasClass("ui-tokentextarea-link-dim"))return;a(f).removeClass("ui-tokentextarea-input-visible").addClass("ui-tokentextarea-input-invisible"),a.mobile.changePage(e.link,{transition:"slide",reverse:!1,changeHash:!1})}),a(c).bind("pagechange.mbe",function(c){if(d.innerWidth()===0)return;b._modifyInputBoxWidth(),a(f).removeClass("ui-tokentextarea-input-invisible").addClass("ui-tokentextarea-input-visible")}),d.bind("click",function(a){b._focusStatus==="focusOut"&&b.focusIn()})},_addTextBlock:function(b,d){if(arguments.length===0)return;if(!b)return;var e=this,f=e.element,g=b,h=d,i=null,j=null;e._viewWidth===0&&(e._viewWidth=f.innerWidth()),j=a(c.createElement("div")),j.text(g).addClass("ui-tokentextarea-block").attr({"aria-label":"double tap to edit",tabindex:0}),j.css({visibility:"hidden"}),i=f.find("div"),h!==null&&h<=i.length?a(i[h]).before(j):f.find(".ui-tokentextarea-input").before(j),j=e._ellipsisTextBlock(j),j.css({visibility:"visible"}),e._modifyInputBoxWidth(),j.hide(),j.fadeIn("fast",function(){e._currentWidth+=e._calcBlockWidth(j),f.trigger("add")})},_removeTextBlock:function(){var a=this,b=this.element,c=b.find("div.ui-tokentextarea-sblock"),d=null,e=function(){};c!==null&&c.length>0?(a._currentWidth-=a._calcBlockWidth(c),c.fadeOut("fast",function(){c.remove(),a._modifyInputBoxWidth()}),this._eventRemoveCall=!0,b[0].remove&&(d=b[0].remove,b[0].remove=e),b.triggerHandler("remove"),d&&(b[0].remove=d),this._eventRemoveCall=!1):b.find("div:last").removeClass("ui-tokentextarea-block").addClass("ui-tokentextarea-sblock")},_calcBlockWidth:function(b){return a(b).outerWidth(!0)},_unlockTextBlock:function(){var a=this.element,b=a.find("div.ui-tokentextarea-sblock");b&&b.removeClass("ui-tokentextarea-sblock").addClass("ui-tokentextarea-block")},_validateTargetBlock:function(){var a=this,b=a.element,c=b.find("div:last"),d=null;c.hasClass("ui-tokentextarea-sblock")?a._removeTextBlock():(d=b.find("div.ui-tokentextarea-sblock"),d.removeClass("ui-tokentextarea-sblock").addClass("ui-tokentextarea-block"),c.removeClass("ui-tokentextarea-block").addClass("ui-tokentextarea-sblock"))},_ellipsisTextBlock:function(b){var c=this,d=c.element,e=c._viewWidth/2;return c._calcBlockWidth(b)>e&&a(b).width(e-c._marginWidth),b},_modifyInputBoxWidth:function(){var b=this,c=b.element,d=0,e=0,f=0,g=0,h=c.find("div"),i=0,j=0,k=10,l=c.find(".ui-tokentextarea-input");if(c.width()===0)return;b._labelWidth===0&&(b._labelWidth=c.find(".ui-tokentextarea-label").outerWidth(!0),b._anchorWidth=c.find(".ui-tokentextarea-link-base").outerWidth(!0),b._marginWidth=parseInt(a(l).css("margin-left"),10),b._marginWidth+=parseInt(a(l).css("margin-right"),10),b._viewWidth=c.innerWidth()),d=b._marginWidth,e=b._labelWidth,f=b._anchorWidth,g=b._viewWidth-e;for(j=0;j<h.length;j+=1)i=b._calcBlockWidth(h[j]),i>=g+f?i>=g?g=b._viewWidth-i:g=b._viewWidth:i>g?g=b._viewWidth-i:g-=i;g-=d,g<f*2&&(g=b._viewWidth-d),a(l).width(g-f-k)},_stringFormat:function(a){var b=null,c=a,d=0;for(d=1;d<arguments.length;d+=1)b="{"+(d-1)+"}",c=c.replace(b,arguments[d]);return c},_resizeBlocks:function(){var b=this,c=b.element,d=c.find("div"),e=0;for(e=0;e<d.length;e+=1)a(d[e]).css("width","auto"),d[e]=b._ellipsisTextBlock(d[e])},focusIn:function(){if(this._focusStatus==="focusIn")return;var a=this.element;a.find(".ui-tokentextarea-label").attr("tabindex",0).show(),a.find(".ui-tokentextarea-desclabel").remove(),a.find("div.ui-tokentextarea-sblock").removeClass("ui-tokentextarea-sblock").addClass("ui-tokentextarea-block"),a.find("div").attr({"aria-label":"double tap to edit",tabindex:0}).show(),a.find(".ui-tokentextarea-input").removeClass("ui-tokentextarea-input-invisible").addClass("ui-tokentextarea-input-visible").attr("tabindex",0),a.find("a").attr("tabindex",0).show(),this._modifyInputBoxWidth(),this._focusStatus="focusIn",a.removeClass("ui-tokentextarea-focusout").addClass("ui-tokentextarea-focusin").removeAttr("tabindex"),a.find(".ui-tokentextarea-input").focus()},focusOut:function(){if(this._focusStatus==="focusOut")return;var b=this,d=b.element,e=null,f=null,g=null,h="",i=0,j=10,k=d.find(".ui-tokentextarea-label"),l=d.find("span"),m=d.find("div"),n=d.outerWidth(!0)-l.outerWidth(!0)-k.outerWidth(!0),o=0;k.removeAttr("tabindex"),d.find(".ui-tokentextarea-input").removeClass("ui-tokentextarea-input-visible").addClass("ui-tokentextarea-input-invisible").removeAttr("tabindex"),d.find("a").removeAttr("tabindex").hide(),m.removeAttr("aria-label").removeAttr("tabindex").hide(),n-=b._reservedWidth;for(i=0;i<m.length;i++){o=a(m[i]).outerWidth(!0);if(n-o<=0){j=i-1;break}a(m[i]).show(),n-=o}j!==m.length&&(h=b._stringFormat(b.options.description,m.length-j-1),e=a(c.createElement("span")),e.addClass("ui-tokentextarea-desclabel").attr({"aria-label":"more, double tap to edit",tabindex:"-1"}),f=a(c.createElement("span")).text(h).attr("aria-hidden","true"),g=a(c.createElement("span")).text(m.length-j-1).attr("aria-label","and").css("visibility","hidden"),e.append(f),e.append(g),a(m[j]).after(e)),this._focusStatus="focusOut",d.removeClass("ui-tokentextarea-focusin").addClass("ui-tokentextarea-focusout").attr("tabindex",0)},inputText:function(a){var b=this.element;return arguments.length===0?b.find(".ui-tokentextarea-input").val():(b.find(".ui-tokentextarea-input").val(a),a)},select:function(b){var c=this.element,d=null,e=null;if(this._focusStatus==="focusOut")return;return arguments.length===0?(d=c.find("div.ui-tokentextarea-sblock"),d?d.text():null):(this._unlockTextBlock(),e=c.find("div"),e.length>b&&(a(e[b]).removeClass("ui-tokentextarea-block").addClass("ui-tokentextarea-sblock"),c.trigger("select")),null)},add:function(a,b){if(this._focusStatus==="focusOut")return;this._addTextBlock(a,b)},remove:function(b){var c=this,d=this.element,e=d.find("div"),f=0,g=null,h=function(){};if(this._focusStatus==="focusOut")return;arguments.length===0?e.fadeOut("fast",function(){e.remove(),c._modifyInputBoxWidth(),c._trigger("clear")}):isNaN(b)||(f=b<e.length?b:e.length-1,a(e[f]).fadeOut("fast",function(){a(e[f]).remove(),c._modifyInputBoxWidth()}),this._eventRemoveCall=!0,d[0].remove&&(g=d[0].remove,d[0].remove=h),d.triggerHandler("remove"),g&&(d[0].remove=g),this._eventRemoveCall=!1)},length:function(){return this.element.find("div").length},refresh:function(){var a=this,b=this.element;a._viewWidth=b.innerWidth(),a._resizeBlocks(),a._modifyInputBoxWidth()},destroy:function(){var a=this.element,b=null,c=function(){};if(this._eventRemoveCall)return;a.find(".ui-tokentextarea-label").remove(),a.find("div").undelegate("click").remove(),a.find("a").remove(),a.find(".ui-tokentextarea-input").unbind("keyup").remove(),this._eventRemoveCall=!0,a[0].remove&&(b=a[0].remove,a[0].remove=c),a.remove(),b&&(a[0].remove=b),this._eventRemoveCall=!1,this._trigger("destroy")}}),a(c).bind("pagecreate create",function(){a(":jqmData(role='tokentextarea')").tokentextarea()}),a(b).bind("resize",function(){a(":jqmData(role='tokentextarea')").tokentextarea("refresh")})}(jQuery,window,document),function(a,b){function c(){var b=a("script[data-framework-version][data-framework-root][data-framework-theme]");return b.attr("data-framework-root")+"/"+b.attr("data-framework-version")+"/themes/"+b.attr("data-framework-theme")+"/proto-html"}a.widget("tizen.widgetex",a.mobile.widget,{_createWidget:function(){a.tizen.widgetex.loadPrototype.call(this,this.namespace+"."+this.widgetName),a.mobile.widget.prototype._createWidget.apply(this,arguments)},_init:function(){if(this.element===b)return;var c=this.element.closest(".ui-page"),d=this,e={};c.is(":visible")?this._realize():c.bind("pageshow",function(){d._realize()}),a.extend(e,this.options),this.options={},this._setOptions(e)},_getCreateOptions:function(){if(this.element.is("input")&&this._value!==b){var c=this.element.attr("type")==="checkbox"||this.element.attr("type")==="radio"?this.element.is(":checked"):this.element.is("[value]")?this.element.attr("value"):b;c!=b&&this.element.attr(this._value.attr,c)}return a.mobile.widget.prototype._getCreateOptions.apply(this,arguments)},_setOption:function(c,d){var e="_set"+c.replace(/^[a-z]/,function(a){return a.toUpperCase()});this[e]!==b?this[e](d):a.mobile.widget.prototype._setOption.apply(this,arguments)},_setDisabled:function(b){a.Widget.prototype._setOption.call(this,"disabled",b),this.element.is("input")&&this.element.attr("disabled",b)},_setValue:function(b){a.tizen.widgetex.setValue(this,b)},_realize:function(){}}),a.tizen.widgetex.setValue=function(a,c){if(a._value!==b){var d=a._value.makeString?a._value.makeString(c):c,e;a.element.attr(a._value.attr,d),a._value.signal!==b&&a.element.triggerHandler(a._value.signal,c),a.element.is("input")&&(e=a.element.attr("type"),e==="checkbox"||e==="radio"?c?a.element.attr("checked",!0):a.element.removeAttr("checked"):a.element.attr("value",d),a.element.trigger("change"))}},a.tizen.widgetex.assignElements=function(b,c){var d={},e;for(e in c)typeof c[e]=="string"?(d[e]=b.find(c[e]),c[e].match(/^#/)&&d[e].removeAttr("id")):typeof c[e]=="object"&&(d[e]=a.tizen.widgetex.assignElements(b,c[e]));return d},a.tizen.widgetex.loadPrototype=function(d,e){var f=d.split("."),g,h,i,j=!1,k,l;f.length==2&&(g=f[0],h=f[1],a[g][h].prototype._htmlProto!==b&&(i=a[g][h].prototype._htmlProto.source,i===b&&(i=h,j=!0),typeof i=="string"?j?(d=i,l=c(),a.ajax({url:l+"/"+d+".prototype.html",async:!1,dataType:"html"}).success(function(b,c,d){i=a("<div></div>").html(b).jqmData("tizen.widgetex.ajax.fail",!1)}),i=a("<div></div>").text("Failed to load proto for widget "+g+"."+h+"!").css({background:"red",color:"blue",border:"1px solid black"}).jqmData("tizen.widgetex.ajax.fail",!0)):i=a(i).jqmData("tizen.widgetex.ajax.fail",!1):i.jqmData("tizen.widgetex.ajax.fail",!1),k=i,a[g][h].prototype._htmlProto.source=i,a[g][h].prototype._htmlProto.ui!==b&&a.extend(this,{_ui:a.tizen.widgetex.assignElements(k.clone(),a[g][h].prototype._htmlProto.ui)})))}}(jQuery),function(a,b){a.widget("tizen.notification",a.mobile.widget,{btn:null,text_bg:[],icon_img:[],interval:null,seconds:null,running:!1,_get_text:function(){var b=new Array(2);return this.type==="ticker"?(b[0]=a(this.text_bg[0]).text(),b[1]=a(this.text_bg[1]).text()):b[0]=a(this.text_bg[0]).text(),b},_set_text:function(b,c){var d=function(a,b){if(!b)return;a.text(b)};this.type==="ticker"?(d(a(this.text_bg[0]),b),d(a(this.text_bg[1]),c)):d(a(this.text_bg[0]),b)},text:function(a,b){if(a===undefined&&b===undefined)return this._get_text();this._set_text(a,b)},icon:function(b){if(b===undefined)return;this.icon_img.detach(),this.icon_img=a("<img src='"+b+"' class='ui-ticker-icon'>"),a(this.element).find(".ui-ticker").append(this.icon_img)},_refresh:function(){var b=this._get_container();a(b).addClass("fix").removeClass("show").removeClass("hide"),this._set_interval()},open:function(){var b=this._get_container();if(this.running){this._refresh();return}a(b).addClass("show").removeClass("hide").removeClass("fix"),this.running=!0,this.type==="popup"&&this._set_position(),this._set_interval()},close:function(){var b=this._get_container();if(!this.running)return;a(b).addClass("hide").removeClass("show").removeClass("fix"),this.running=!1,clearInterval(this.interval)},destroy:function(){var b=this._get_container();a(b).removeClass("show").removeClass("hide").removeClass("fix"),this._del_event(),this.running=!1},_get_container:function(){return this.type==="ticker"?a(this.element).find(".ui-ticker"):a(this.element).find(".ui-smallpopup")},_set_interval:function(){var a=this;clearInterval(this.interval),this.seconds!==undefined&&this.second!==0&&(this.interval=setInterval(function(){a.close()},this.seconds))},_add_event:function(){var a=this,b=this._get_container();this.type==="ticker"&&(b.find(".ui-ticker-btn").append(this.btn).trigger("create"),this.btn.bind("vmouseup",function(){a.close()})),b.bind("vmouseup",function(){a.close()})},_del_event:function(){var a=this._get_container();this.type==="ticker"&&this.btn.unbind("vmouseup"),a.unbind("vmouseup"),clearInterval(this.interval)},_set_position:function(){var b=this._get_container(),c=a(".ui-page-active").children(".ui-footer"),d=c.outerHeight()||0;b.css("bottom",d)},_create:function(){var c=this,d=a(this.element),e;this.btn=a('<div data-role="button" data-inline="true">Close</div>'),this.seconds=d.jqmData("interval"),this.type=d.jqmData("type")||"popup";if(this.type==="ticker"){d.wrapInner("<div class='ui-ticker'></div>"),d.find(".ui-ticker").append("<div class='ui-ticker-body'></div><div class='ui-ticker-btn'></div>"),this.text_bg=d.find("p");if(this.text_bg.length<2)d.find(".ui-ticker").append("<p></p><p></p>"),this.text_bg=d.find("p");else if(this.text_bg.length>2)for(e=2;e<this.text_bg.length;e++)a(this.text_bg[e]).css("display","none");a(this.text_bg[0]).addClass("ui-ticker-text1-bg"),a(this.text_bg[1]).addClass("ui-ticker-text2-bg"),this.icon_img=d.find("img");if(this.icon_img.length){a(this.icon_img).addClass("ui-ticker-icon");for(e=1;e<this.icon_img.length;e++)a(this.icon_img[e]).css("display","none")}}else{d.wrapInner("<div class='ui-smallpopup'></div>"),this.text_bg=d.find("p").addClass("ui-smallpopup-text-bg");if(this.text_bg.length<1)d.find(".ui-smallpopup").append("<p class='ui-smallpopup-text-bg'></p>"),this.text_bg=d.find("p");else if(this.text_bg.length>1)for(e=1;e<this.text_bg.length;e++)a(this.text_bg[e]).css("display","none");this._set_position()}this._add_event(),a(b).bind("resize",function(){if(!c.running)return;c._refresh(),c.type==="popup"&&c._set_position()})}}),a(document).bind("pagecreate create",function(b){a(b.target).find(":jqmData(role='notification')").notification()}),a(document).bind("pagebeforehide",function(b){a(b.target).find(":jqmData(role='notification')").notification("destroy")})}(jQuery,this),function(a,b){a.widget("tizen.tabbar",a.mobile.widget,{options:{iconpos:"top",grid:null,defaultList:4,initSelector:":jqmData(role='tabbar')"},_create:function(){var c=this.element,d,e,f,g=a.mobile.listview.prototype.options.theme,h=window.innerWidth||a(window).width(),i=window.innerHeight||a(window).height(),j="<div class='ui-tabbar-divider ui-tabbar-divider-left'></div>",k="<div class='ui-tabbar-divider ui-tabbar-divider-right'></div>",l;l=h>i&&h-i,l?c.removeClass("ui-portrait-tabbar").addClass("ui-landscape-tabbar"):c.removeClass("ui-landscape-tabbar").addClass("ui-portrait-tabbar"),c.find("a").length&&(d=c.find("a"),f=d.filter(":jqmData(icon)").length?this.options.iconpos:b,e=d.html().length?!0:!1),c.parents(".ui-header").length&&c.parents(".ui-scrollview-view").length?(c.find("li").addClass("tabbar-scroll-li"),c.find("ul").addClass("tabbar-scroll-ul"),a(j).appendTo(c.parents(".ui-scrollview-clip")),a(k).appendTo(c.parents(".ui-scrollview-clip")),a(".ui-tabbar-divider-left").hide(),a(".ui-tabbar-divider-right").hide(),c.parents(".ui-scrollview-view").data("default-list")&&(this.options.defaultList=c.parents(".ui-scrollview-view").data("default-list")),c.find("li").css("width",window.innerWidth/this.options.defaultList+"px")):c.find("ul").children().length&&c.addClass("ui-navbar").find("ul").grid({grid:this.options.grid}),c.parents(".ui-footer").length&&c.find("li").addClass("ui-tab-btn-style"),c.siblings(".ui-title").length&&c.parents(".ui-header").addClass("ui-title-tabbar"),f||c.addClass("ui-tabbar-noicons"),e||c.addClass("ui-tabbar-notext"),e&&f&&c.parents(".ui-header").addClass("ui-title-tabbar-multiline"),c.find("a").length&&d.buttonMarkup({corners:!1,shadow:!1,iconpos:f}),c.find(".ui-state-persist").length&&c.addClass("ui-tabbar-persist"),c.delegate("a","vclick",function(b){d.not(".ui-state-persist").removeClass(a.mobile.activeBtnClass),a(this).addClass(a.mobile.activeBtnClass)}),c.addClass("ui-tabbar"),a(document).bind("pagebeforeshow",function(b,c){var d=a(b.target).find(":jqmData(role='footer')"),e=d.find(":jqmData(role='tabbar')"),f=e.siblings(":jqmData(icon='naviframe-more')"),g=e.siblings(".ui-btn-back");d.css("position","fixed").css("bottom",0).css("height",e.height()),f.length&&e.addClass("ui-tabbar-margin-more"),g.length&&e.addClass("ui-tabbar-margin-back")}),c.bind("touchstart vmousedown",function(b){var c=a(b.target).parents(".ui-scrollview-view");c.offset()&&(c.offset().left<0?a(".ui-tabbar-divider-left").show():a(".ui-tabbar-divider-left").hide(),c.width()-c.parents(".ui-scrollview-clip").width()==Math.abs(c.offset().left)?a(".ui-tabbar-divider-right").hide():a(".ui-tabbar-divider-right").show())}),this._bindTabbarEvents(),this._initTabbarAnimation()},_initTabbarAnimation:function(){var b=!1,c=!1;a(document).bind("scrollstart.tabbar",function(d){a(d.target).find(".ui-tabbar").length&&(b=!0,c=!1)}),a(document).bind("scrollstop.tabbar",function(d){var e=a(d.target),f=a(d.target).find(".ui-tabbar"),g=a(d.target).find(".ui-tabbar li"),h=g.eq(0),i,j=-1;c=!0,f.length&&b==1&&(i=Math.abs(g.eq(0).offset().left),g.each(function(a){var b=g.eq(a).offset();Math.abs(b.left)<i&&(i=Math.abs(b.left),j=a,h=g.eq(a))}),e.length&&b==c&&j!=-1&&(b=!1,e.scrollview("scrollTo",-(window.innerWidth/f.data("defaultList")*j),0,357))),a(".ui-tabbar-divider-left").hide(),a(".ui-tabbar-divider-right").hide()})},_bindTabbarEvents:function(){var b=this.element;a(window).bind("orientationchange",function(c,d){var e=window.innerWidth||a(window).width(),f=window.innerHeight||a(window).height(),g=e>f&&e-f;g?b.removeClass("ui-portrait-tabbar").addClass("ui-landscape-tabbar"):b.removeClass("ui-landscape-tabbar").addClass("ui-portrait-tabbar")})},_setDisabled:function(a,b){this.element.find("li").eq(b).attr("disabled",a),this.element.find("li").eq(b).attr("aria-disabled",a)},disable:function(a){this._setDisabled(!0,a),this.element.find("li").eq(a).addClass("ui-disabled")},enable:function(a){this._setDisabled(!1,a),this.element.find("li").eq(a).removeClass("ui-disabled")}}),a(document).bind("pagecreate create",function(b){a(a.tizen.tabbar.prototype.options.initSelector,b.target).tabbar()})}(jQuery),function(a,b){a.widget("tizen.triangle",a.tizen.widgetex,{options:{extraClass:"",offset:null,color:null,location:"top",initSelector:":jqmData(role='triangle')"},_create:function(){var b=a("<div></div>",{"class":"ui-triangle"});a.extend(this,{_triangle:b}),this.element.addClass("ui-triangle-container").append(b)},_doCSS:function(){var b=this.options.location||"top",c=a.inArray(b,["top","bottom"])===-1?"top":"left",d={"border-bottom-color":"top"===b?this.options.color:"transparent","border-top-color":"bottom"===b?this.options.color:"transparent","border-left-color":"right"===b?this.options.color:"transparent","border-right-color":"left"===b?this.options.color:"transparent"};d[c]=this.options.offset,this._triangle.removeAttr("style").css(d)},_setOffset:function(b){this.options.offset=b,this.element.attr("data-"+(a.mobile.ns||"")+"offset",b),this._doCSS()},_setExtraClass:function(b){this._triangle.addClass(b),this.options.extraClass=b,this.element.attr("data-"+(a.mobile.ns||"")+"extra-class",b)},_setColor:function(b){this.options.color=b,this.element.attr("data-"+(a.mobile.ns||"")+"color",b),this._doCSS()},_setLocation:function(b){this.element.removeClass("ui-triangle-container-"+this.options.location).addClass("ui-triangle-container-"+b),this._triangle.removeClass("ui-triangle-"+this.options.location).addClass("ui-triangle-"+b),this.options.location=b,this.element.attr("data-"+(a.mobile.ns||"")+"location",b),this._doCSS()}}),a(document).bind("pagecreate create",function(b){a(a.tizen.triangle.prototype.options.initSelector,b.target).not(":jqmData(role='none'), :jqmData(role='nojs')").triangle()})}(jQuery),function(a,b){a.widget("tizen.popupwindow",a.tizen.widgetex,{options:{theme:null,overlayTheme:"s",style:"custom",disabled:!1,shadow:!0,corners:!0,fade:!1,opacity:.7,widthRatio:.8612,transition:a.mobile.defaultDialogTransition,initSelector:":jqmData(role='popupwindow')"},_htmlProto:{source:["<div><div>"," <div id='popupwindow-screen' class='ui-selectmenu-screen ui-screen-hidden ui-popupwindow-screen'></div>"," <div id='popupwindow-container' class='ui-popupwindow ui-popupwindow-padding ui-selectmenu-hidden ui-overlay-shadow ui-corner-all'></div>","</div>","</div>"].join(""),ui:{screen:"#popupwindow-screen",container:"#popupwindow-container"}},_setStyle:function(){var a=this.element,b=a.attr("data-style");b&&(this.options.style=b),a.addClass(this.options.style),a.find(":jqmData(role='title')").wrapAll("<div class='popup-title'></div>"),a.find(":jqmData(role='text')").wrapAll("<div class='popup-text'></div>"),a.find(":jqmData(role='button-bg')").wrapAll("<div class='popup-button-bg'></div>"),a.find(":jqmData(role='check-bg')").wrapAll("<div class='popup-check-bg'></div>"),a.find(":jqmData(role='scroller-bg')").addClass("popup-scroller-bg"),a.find(":jqmData(role='text-bottom-bg')").wrapAll("<div class='popup-text-bottom-bg'></div>"),a.find(":jqmData(role='text-left')").wrapAll("<div class='popup-text-left'></div>"),a.find(":jqmData(role='text-right')").wrapAll("<div class='popup-text-right'></div>"),a.find(":jqmData(role='progress-bg')").wrapAll("<div class='popup-progress-bg'></div>")},_create:function(){console.warn("popupwindow() was deprecated. use popup() instead.");var b=this.element.closest(":jqmData(role='page')"),c=this;b.length===0&&(b=a("body")),this._ui.placeholder=a("<div><!-- placeholder for "+this.element.attr("id")+" --></div>").css("display","none").insertBefore(this.element),b.append(this._ui.screen),this._ui.container.insertAfter(this._ui.screen),this._ui.container.append(this.element),this._setStyle(),this._isOpen=!1,this._ui.screen.bind("vclick",function(a){return c.close(),!1}),this.element.bind("vclick",function(b){a(b.target).is("ui-btn-ctxpopup-close")&&c.close()})},destroy:function(){this.element.insertBefore(this._ui.placeholder),this._ui.placeholder.remove(),this._ui.container.remove(),this._ui.screen.remove(),this.element.triggerHandler("destroyed"),a.Widget.prototype.destroy.call(this)},_placementCoords:function(b,c,d,e){var f=a(window).height(),g=a(window).width(),h=e/2,i=parseFloat(this._ui.container.css("max-width")),j=c,k=f-c,l,m;return j>e/2&&k>e/2?l=c-h:l=j>k?f-e-30:30,d<i?m=(g-d)/2:(m=b-d/2,m<10?m=10:m+d>g&&(m=g-d-10)),{x:m,y:l}},_setPosition:function(c,d){var e=b===c?a(window).width()/2:c,f=b===d?a(window).height()/2:d,g,h=this.element.data("ctxpopup"),i,j,k,l,m,n,o,p,q,r,s;h||(i=a(window).width()*this.options.widthRatio,this._ui.container.css("width",i),this._ui.container.outerWidth()>a(window).width()&&this._ui.container.css({"max-width":a(window).width()-30})),g=this._placementCoords(e,f,this._ui.container.outerWidth(),this._ui.container.outerHeight()),j=this._ui.container.innerHeight(),k=this._ui.container.innerWidth(),l=a(window).height(),m=a(window).width(),n=f,o=l-f,p=j/2,q=parseFloat(this._ui.container.css("max-width")),r=(l-j)/2,!q||k<q?s=(m-k)/2:(s=e-k/2,s<30?s=30:s+k>m&&(s=m-k-30)),h&&(r=g.y,s=g.x),this._ui.container.css({top:r,left:s}),this._ui.screen.css("height",l)},open:function(b,c,d){var e=this,f=0;if(this._isOpen||this.options.disabled)return;a(document).find("*").each(function(){var b=a(this),c=parseInt(b.css("z-index"),10);b.is(e._ui.container)||b.is(e._ui.screen)||isNaN(c)||(f=Math.max(f,c))}),this._ui.screen.css("height",a(window).height()),d?this._ui.screen.css("opacity",0).removeClass("ui-screen-hidden"):(this._ui.removeClass("ui-screen-hidden"),this.options.fade?this._ui.screen.animate({opacity:this.options.opacity},"fast"):this._ui.screen.css({opacity:this.options.opacity})),this._setPosition(b,c),this.element.trigger("popupbeforeposition"),this._ui.container.removeClass("ui-selectmenu-hidden").addClass("in").animationComplete(function(){e.element.trigger("popupafteropen")}),this._isOpen=!0,this._reflow||(this._reflow=function(){if(!e._isOpen)return;e._setPosition(b,c)},a(window).bind("resize",this._reflow))},close:function(){if(!this._isOpen)return;this._reflow&&(a(window).unbind("resize",this._reflow),this._reflow=null);var b=this,c=function(){b._ui.screen.addClass("ui-screen-hidden"),b._isOpen=!1};this._ui.container.removeClass("in").addClass("reverse out"),this.options.transition==="none"?(this._ui.container.addClass("ui-selectmenu-hidden").removeAttr("style"),this.element.trigger("popupafterclose")):this._ui.container.animationComplete(function(){b._ui.container.removeClass("reverse out").addClass("ui-selectmenu-hidden").removeAttr("style"),b.element.trigger("popupafterclose")}),this.options.fade?this._ui.screen.animate({opacity:0},"fast",c):c()},_realSetTheme:function(a,b){var c=(a.attr("class")||"").split(" "),d=!0,e=null,f;while(c.length>0){e=c.pop(),f=e.match(/^ui-body-([a-z])$/);if(f&&f.length>1){e=f[1];break}e=null}a.removeClass("ui-body-"+e),(b||"").match(/[a-z]/)&&a.addClass("ui-body-"+b)},_setTheme:function(b){this._realSetTheme(this.element,b),this.options.theme=b,this.element.attr("data-"+(a.mobile.ns||"")+"theme",b)},_setOverlayTheme:function(b){this._realSetTheme(this._ui.container,b),this.options.overlayTheme=b,this.element.attr("data-"+(a.mobile.ns||"")+"overlay-theme",b)},_setShadow:function(b){this.options.shadow=b,this.element.attr("data-"+(a.mobile.ns||"")+"shadow",b),this._ui.container[b?"addClass":"removeClass"]("ui-overlay-shadow")},_setCorners:function(b){this.options.corners=b,this.element.attr("data-"+(a.mobile.ns||"")+"corners",b),this._ui.container[b?"addClass":"removeClass"]("ui-corner-all")},_setFade:function(b){this.options.fade=b,this.element.attr("data-"+(a.mobile.ns||"")+"fade",b)},_setTransition:function(b){this._ui.container.removeClass(this.options.transition||"").addClass(b),this.options.transition=b,this.element.attr("data-"+(a.mobile.ns||"")+"transition",b)},_setDisabled:function(b){a.Widget.prototype._setOption.call(this,"disabled",b),b&&this.close()}}),a.tizen.popupwindow.bindPopupToButton=function(a,b){if(a.length===0||b.length===0)return;var c=function(c){return b.jqmData("overlay-theme-set")||b.popupwindow("option","overlayTheme",a.jqmData("theme")),b.popupwindow("open",a.offset().left+a.outerWidth()/2,a.offset().top+a.outerHeight()/2),!1};(b.popupwindow("option","overlayTheme")||"").match(/[a-z]/)&&b.jqmData("overlay-theme-set",!0),a.attr({"aria-haspopup":!0,"aria-owns":a.attr("href")}).removeAttr("href").bind("vclick",c),b.bind("destroyed",function(){a.unbind("vclick",c)})},a(document).bind("pagecreate create",function(b){a(a.tizen.popupwindow.prototype.options.initSelector,b.target).not(":jqmData(role='none'), :jqmData(role='nojs')").popupwindow(),a("a[href^='#']:jqmData(rel='popupwindow')",b.target).each(function(){a.tizen.popupwindow.bindPopupToButton(a(this),a(a(this).attr("href")))})})}(jQuery),function(a,b){a.widget("tizen.ctxpopup",a.tizen.widgetex,{options:a.extend({},a.tizen.popupwindow.prototype.options,{initSelector:":jqmData(show-arrow)"}),_htmlProto:{source:["<div><div id='outer' class='ui-ctxpopup'>"," <div id='top' class='ui-ctxpopup-row' data-role='triangle' data-location='top'></div>"," <div class='ui-ctxpopup-row'>"," <div id='left' class='ui-ctxpopup-cell' data-role='triangle' data-location='left'></div>"," <div id='container' class='ui-ctxpopup-cell'></div>"," <div id='right' class='ui-ctxpopup-cell' data-role='triangle' data-location='right'></div>"," </div>"," <div id='bottom' class='ui-ctxpopup-row' data-role='triangle' data-location='bottom'></div>","</div>","</div>"].join(""),ui:{outer:"#outer",container:"#container",arrow:{all:":jqmData(role='triangle')",l:"#left",t:"#top",r:"#right",b:"#bottom"}}},_create:function(){console.warn("ctxpopup() was deprecated. use popup() instead."),this.element.data("popupwindow")||this.element.popupwindow(),this.element.data("popupwindow")._ui.container.removeClass("ui-popupwindow-padding").append(this._ui.outer),this._ui.outer.trigger("create"),this._ui.container.addClass("ui-popupwindow-padding").append(this.element)},_setOption:function(b,c){a.tizen.popupwindow.prototype._setOption.apply(this.element.data("popupwindow"),arguments),this.options[b]=c}});var c=a.tizen.popupwindow.prototype.open,d=a.tizen.popupwindow.prototype._setOption,e=a.tizen.popupwindow.prototype._placementCoords;a.tizen.popupwindow.prototype._setOption=function(a,b){var c=this.element.data("ctxpopup"),e=!0,f;if(c){if("shadow"===a||"overlayTheme"===a||"corners"===a)f=this._ui.container,this._ui.container=c._ui.container,d.apply(this,arguments),this._ui.container=f,e=!1;c.options[a]=b}e&&d.apply(this,arguments)},a.tizen.popupwindow.prototype._placementCoords=function(c,d,f,g){function m(a,b,f){h._ui.arrow.all.hide(),h._ui.arrow[a].show();var g="b"===a||"t"===a,j=g?{point:"x",size:"cx",beg:"left",outerSize:"outerWidth",niceSize:"width",triangleSize:"height"}:{point:"y",size:"cy",beg:"top",outerSize:"outerHeight",niceSize:"height",triangleSize:"width"},k={cx:i._ui.container.width(),cy:i._ui.container.height()},l={cx:k.cx/2,cy:k.cy/2},m={x:c+l.cx*b,y:d+l.cy*f},n=e.call(i,m.x,m.y,k.cx,k.cy),o=h._ui.arrow[a].offset()[j.beg],p=h._ui.arrow[a][j.outerSize](!0),q=i.element.offset()[j.beg],r=i.element[j.outerSize](!0),s=h._ui.arrow[a][j.triangleSize](),t=Math.max(s+Math.max(0,q-o),Math.min(p-s-Math.max(0,o+p-(q+r)),p/2+m[j.point]-n[j.point]-l[j.size])),u={x:n.x+(g?t:0)+("r"===a?k.cx:0),y:n.y+(g?0:t)+("b"===a?k.cy:0)},v={actual:n,triangleOffset:t,absDiff:Math.abs(c-u.x)+Math.abs(d-u.y)};return h._ui.arrow[a].hide(),v}var h=this.element.data("ctxpopup"),i=this,j={},k,l;return h?(j={l:m("l",1,0),r:m("r",-1,0),t:m("t",0,1),b:m("b",0,-1)},a.each(j,function(a,c){if(k===b||c.absDiff<k)k=c.absDiff,l=a}),h._ui.arrow[l].show().triangle("option","offset",j[l].triangleOffset),j[l].actual):e.call(this,c,d,f,g)},a.tizen.popupwindow.prototype.open=function(b,d){var e=this.element.data("ctxpopup");e&&(this._setFade(!1),this._setShadow(!1),this._setCorners(!1),this._setOverlayTheme(null),this._setOption("overlayTheme",e.options.overlayTheme),e._ui.arrow.all.triangle("option","color",e._ui.container.css("background-color")),a(".ui-popupwindow").css("background","none")),c.call(this,b,d,!0)},a(document).bind("pagecreate create",function(b){var c=a(a.tizen.ctxpopup.prototype.options.initSelector,b.target);a.tizen.ctxpopup.prototype.enhanceWithin(b.target)})}(jQuery),function(a,b,c){a.widget("tizen.datetimepicker",a.tizen.widgetex,{options:{type:null,format:null,date:null,initSelector:"input[type='date'], input[type='datetime'], input[type='time'], :jqmData(role='datetimepicker')"},_calendar:function(){return b.Globalize.culture().calendars.standard},_value:{attr:"data-"+(a.mobile.ns||"")+"date",signal:"date-changed"},_daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],_isLeapYear:function(a){return a%4?0:a%100?1:a%400?0:1},_makeTwoDigits:function(a){var b=a.toString(10);return a<10&&(b="0"+b),b},_setType:function(b){switch(b){case"datetime":case"date":case"time":this.options.type=b;break;default:this.options.type="datetime"}return this.element.attr("data-"+(a.mobile.ns?a.mobile.ns+"-":"")+"type",this.options.type),this.options.type},_setFormat:function(b){if(this.options.format==b)return;this.options.format=b,this.ui.children().remove();var c=
-this._parsePattern(b),d=document.createElement("div"),e,f,g,h,i=this;while(c.length>0){e=c.shift(),f='<span class="ui-datefield-%1" data-pat="'+e+'">%2</span>';switch(e){case"H":case"HH":case"h":case"hh":a(d).append(f.replace("%1","hour"));break;case"mm":case"m":this.options.type=="date"?a(d).append(f.replace("%1","month")):a(d).append(f.replace("%1","min"));break;case"ss":case"s":a(d).append(f.replace("%1","sec"));break;case"d":case"dd":a(d).append(f.replace("%1","day"));break;case"M":case"MM":case"MMM":case"MMMM":a(d).append(f.replace("%1","month"));break;case"yy":case"yyyy":a(d).append(f.replace("%1","year"));break;case"t":case"tt":h='<a href="#" class="ui-datefield-period" data-role="button" data-inline="true">period</a>',a(d).append(h);break;case"g":case"gg":a(d).append(f.replace("%1","era").replace("%2",this._calendar().eras.name));break;case"\t":a(d).append(f.replace("%1","tab").replace("%2",e));break;default:a(d).append(f.replace("%1","seperator").replace("%2",e))}}return this.ui.append(d),this.options.date&&this._setDate(this.options.date),this.ui.find(".ui-datefield-period").buttonMarkup().bind("vclick",function(a){i._switchAmPm(i)}),this.element.attr("data-"+(a.mobile.ns?a.mobile.ns+"-":"")+"format",this.options.format),this.options.format},_setDate:function(b){function i(){return b.getMonth()+1}typeof b=="string"&&(b=new Date(b));var c=a("span,a",this.ui),d,e,f,g,h;for(h=0;h<c.length;h++){f=a(c[h]),d=f.attr("class").match(/ui-datefield-([\w]*)/),d||(d="");switch(d[1]){case"hour":e=b.getHours;break;case"min":e=b.getMinutes;break;case"sec":e=b.getSeconds;break;case"year":e=b.getFullYear;break;case"month":e=i;break;case"day":e=b.getDate;break;case"period":e=b.getHours()<12?this._calendar().AM[0]:this._calendar().PM[0],g=f.find(".ui-btn-text"),g.length==0?f.text(e):g.text()!=e&&g.text(e),e=null;break;default:e=null}e&&this._updateField(f,e.call(b))}return this.options.date=b,this._setValue(b),this.element.attr("data-"+(a.mobile.ns?a.mobile.ns+"-":"")+"date",this.options.date),this.options.date},destroy:function(){this.ui&&this.ui.remove(),this.element&&this.element.show()},value:function(a){function b(a,b){return b._makeTwoDigits(a.getHours())+":"+b._makeTwoDigits(a.getMinutes())+":"+b._makeTwoDigits(a.getSeconds())}function c(a,b){return(a.getFullYear()%1e4+1e4).toString().substr(1)+"-"+b._makeTwoDigits(a.getMonth()+1)+"-"+b._makeTwoDigits(a.getDate())}var d=null;if(a)d=this._setDate(a);else switch(this.options.type){case"time":d=b(this.options.date,this);break;case"date":d=c(this.options.date,this);break;default:d=c(this.options.date,this)+"T"+b(this.options.date,this)}return d},setValue:function(a){return console.warn("setValue was deprecated. use datetimepicker('option', 'date', value) instead."),this.value(a)},getValue:function(){return console.warn("getValue() was deprecated. use datetimepicker('value') instead."),this.value()},_updateField:function(a,b){if(!a||a.length==0)return;b==0&&(b="0");var c=a.jqmData("pat"),d,e,f=this;switch(c){case"H":case"HH":case"h":case"hh":d=b,c.charAt(0)=="h"&&(d>12?d-=12:d==0&&(d=12)),d=this._makeTwoDigits(d),e=d;break;case"m":case"M":case"d":case"s":e=b;break;case"mm":case"dd":case"MM":case"ss":e=this._makeTwoDigits(b);break;case"MMM":e=this._calendar().months.namesAbbr[b-1];break;case"MMMM":e=this._calendar().months.names[b-1];break;case"yy":e=this._makeTwoDigits(b%100);break;case"yyyy":b<10?b="000"+b:b<100?b="00"+b:b<1e3&&(b="0"+b),e=b}a.text()!=e&&(a.hasClass("ui-datefield-selected")?(a.addClass("out"),this._new_value=e,a.animationComplete(function(){a.text(f._new_value),a.addClass("in").removeClass("out"),a.animationComplete(function(){a.removeClass("in").removeClass("ui-datefield-selected")})})):a.text(e))},_switchAmPm:function(a){if(this._calendar().AM!=null){var b=new Date(this.options.date),c,d=432e5;b.getHours()>11&&(d=-d),b.setTime(b.getTime()+d),this._setDate(b)}},_parsePattern:function(a){var b=/\/|\s|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|f|gg|g|\'[\w\W]*\'$|[\w\W]/g,c,d;c=a.match(b);for(d=0;d<c.length;d++)c[d].charAt(0)=="'"&&(c[d]=c[d].substr(1,c[d].length-2));return c},changeTypeFormat:function(a,b){console.warn('changeTypeFormat() was deprecated. use datetimepicker("option", "type"|"format", value) instead'),a&&this._setType(a),b&&this._setFormat(b)},_create:function(){var b=this;this.element.is("input")&&function(a){var b,c,d;b=a.element.get(0).getAttribute("type"),a.options.type=b,c=a.element.get(0).getAttribute("value"),c&&(a.options.date=new Date(c))}(this);if(!this.options.format)switch(this.options.type){case"datetime":this.options.format=this._calendar().patterns.d+"\t"+this._calendar().patterns.t;break;case"date":this.options.format=this._calendar().patterns.d;break;case"time":this.options.format=this._calendar().patterns.t}this.options.date||(this.options.date=new Date),this.element.hide(),this.ui=a('<div class="ui-datefield"></div>'),a(this.element).after(this.ui),this._popup_open=!1,this.ui.bind("vclick",function(a){b._showDataSelector(b,this,a.target)})},_populateDataSelector:function(a,c){var d,e,f,g,h=b.range,i,j,k,l;switch(a){case"hour":c=="H"||c=="HH"?(d=h(0,23),g=h(0,23),f=this.options.date.getHours()):(d=h(1,12),f=this.options.date.getHours()-1,f>=11?(f-=12,g=h(13,23),g.push(12)):(g=h(1,11),g.push(0)),f<0&&(f=11)),c.length==2&&(d=d.map(this._makeTwoDigits)),e=d.length;break;case"min":case"sec":d=h(0,59),c.length==2&&(d=d.map(this._makeTwoDigits)),g=h(0,59),f=a=="min"?this.options.date.getMinutes():this.options.date.getSeconds(),e=d.length;break;case"year":j=1900,k=2100,g=h(j,k),f=this.options.date.getFullYear()-j,d=h(j,k),e=d.length;break;case"month":switch(c.length){case 1:d=h(1,12);break;case 2:d=h(1,12).map(this._makeTwoDigits);break;case 3:d=this._calendar().months.namesAbbr.slice();break;case 4:d=this._calendar().months.names.slice()}d.length==13&&d[12]==""&&d.pop(),g=h(1,d.length),f=this.options.date.getMonth(),e=d.length;break;case"day":l=this._daysInMonth[this.options.date.getMonth()],l==28&&(l+=this._isLeapYear(this.options.date.getFullYear())),d=h(1,l),c.length==2&&(d=d.map(this._makeTwoDigits)),g=h(1,l),f=this.options.date.getDate()-1,e=l}return{values:d,data:g,numItems:e,current:f}},_showDataSelector:function(d,e,f){f=a(f);var g=f.attr("class"),h=g?g.match(/ui-datefield-([\w]*)/):c,i,j,k,l,m,n,o,p,q,r,s,t,u,v=10,w=this;if(!g)return;if(!h)return;if(this._popup_open)return;f.not(".ui-datefield-seperator").addClass("ui-datefield-selected"),i=f.jqmData("pat"),j=d._populateDataSelector.call(d,h[1],i),k=j.values,l=j.numItems,m=j.current,n=j.data;if(k){p="data-"+(a.mobile.ns?a.mobile.ns+"-":"")+'val="';for(u=0;u<k.length;u++)o+='<li><a class="ui-link" '+p+n[u]+'">'+k[u]+"</a></li>";q=a("<ul></ul>"),r=a('<div class="ui-datetimepicker-selector" data-transition="fade" data-fade="false"></div>'),r.append(q).appendTo(e),s=r.ctxpopup(),s.parents(".ui-popupwindow").addClass("ui-datetimepicker"),t=a(o),a(t[m]).addClass("current"),r.jqmData("list",t),r.circularview(),d._reflow||(d._reflow=function(){r.circularview("reflow"),r.circularview("centerTo",".current",0)},a(b).bind("resize",d._reflow)),a(b).width()/2<f.offset().left&&(v=-10),s.popupwindow("open",f.offset().left+f.width()/2+v-b.pageXOffset,f.offset().top+f.height()-b.pageYOffset),this._popup_open=!0,r.bind("popupafterclose",function(c){d._reflow&&(a(b).unbind("resize",d._reflow),d._reflow=null),!f.hasClass("in")&&!f.hasClass("out")&&f.removeClass("ui-datefield-selected"),r.unbind("popupafterclose"),q.unbind("vclick"),a(d).unbind("update"),s.popupwindow("destroy"),r.remove(),w._popup_open=!1}),a(d).bind("update",function(a,b){var c=new Date(this.options.date),e,f=function(){c.setDate(1),c.setDate(c.getDate()-1)};switch(h[1]){case"min":c.setMinutes(b);break;case"hour":c.setHours(b);break;case"sec":c.setSeconds(b);break;case"year":e=c.getMonth(),c.setFullYear(b),c.getMonth()!=e&&f();break;case"month":c.setMonth(b-1),c.getMonth()==b&&f();break;case"day":c.setDate(b)}d._setDate(c),s.popupwindow("close")}),q.bind("click",function(b){if(a(b.target).is("a")){q.find(".current").removeClass("current"),a(b.target).parent().addClass("current");var c=a(b.target).jqmData("val");a(d).trigger("update",c)}}),r.circularview("centerTo",".current",500),r.bind("scrollend",function(c){d._reflow||(d._reflow=function(){r.circularview("reflow")},a(b).bind("resize",d._reflow))})}return e}}),a(document).bind("pagecreate create",function(b){a(a.tizen.datetimepicker.prototype.options.initSelector,b.target).not(":jqmData(role='none'), :jqmData(role='nojs')").datetimepicker()})}(jQuery,this),function(a){a.tizen.frameworkData.pkgVersion="0.2.23"}(jQuery);
\ No newline at end of file
+function range(a,b,c){var d=[],e,f,g,h=c||1,i=!1;!isNaN(a)&&!isNaN(b)?(e=a,f=b):isNaN(a)&&isNaN(b)?(i=!0,e=a.charCodeAt(0),f=b.charCodeAt(0)):(e=isNaN(a)?0:a,f=isNaN(b)?0:b),g=e>f?!1:!0;if(g)while(e<=f)d.push(i?String.fromCharCode(e):e),e+=h;else while(e>=f)d.push(i?String.fromCharCode(e):e),e-=h;return d}(function(a,b,c,d){function e(c){var d=a(c),e=d.children(".ui-content"),f=d.children(".ui-header").outerHeight()||0,g=d.children(".ui-footer").outerHeight()||0,h=parseFloat(e.css("padding-top")),i=parseFloat(e.css("padding-bottom")),j=a(b).height();e.height(j-(f+g)-(h+i))}function f(b){this.options=a.extend({},b),this.easing="easeOutQuad",this.reset()}function h(){return Date.now()}var g={scrolling:0,overshot:1,snapback:2,done:3};jQuery.widget("tizen.scrollview",jQuery.mobile.widget,{options:{direction:null,timerInterval:10,scrollDuration:1e3,overshootDuration:250,snapbackDuration:500,moveThreshold:30,moveIntervalThreshold:150,scrollMethod:"translate",startEventName:"scrollstart",updateEventName:"scrollupdate",stopEventName:"scrollstop",eventType:a.support.touch?"touch":"mouse",showScrollBars:!0,overshootEnable:!1,outerScrollEnable:!1,overflowEnable:!0,scrollJump:!1},_getViewHeight:function(){return this._$view.height()},_getViewWidth:function(){return this._$view.width()},_makePositioned:function(a){a.css("position")==="static"&&a.css("position","relative")},_create:function(){var b,c=this;this._$clip=a(this.element).addClass("ui-scrollview-clip"),this._$clip.children(".ui-scrollview-view").length?this._$view=this._$clip.children(".ui-scrollview-view"):this._$view=this._$clip.wrapInner("<div></div>").children().addClass("ui-scrollview-view"),this.options.scrollMethod==="translate"&&this._$view.css("transform")===d&&(this.options.scrollMethod="position"),this._$clip.css("overflow","hidden"),this._makePositioned(this._$clip),this._makePositioned(this._$view),this._$view.css({left:0,top:0}),this._view_height=this._getViewHeight(),this._sx=0,this._sy=0,b=this.options.direction,this._hTracker=b!=="y"?new f(this.options):null,this._vTracker=b!=="x"?new f(this.options):null,this._timerInterval=this.options.timerInterval,this._timerID=0,this._timerCB=function(){c._handleMomentumScroll()},this._add_event(),this._add_scrollbar(),this._add_scroll_jump(),this._add_overflow_indicator()},_startMScroll:function(a,b){var c=!1,d=this.options.scrollDuration,e=this._hTracker,f=this._vTracker,g,h;this._$clip.trigger(this.options.startEventName);if(e){g=this._$clip.width(),h=this._getViewWidth();if((this._sx===0&&a>0||this._sx===-(h-g)&&a<0)&&h>g)return;e.start(this._sx,a,d,h>g?-(h-g):0,0),c=!e.done()}if(f){g=this._$clip.height(),h=this._getViewHeight();if((this._sy===0&&b>0||this._sy===-(h-g)&&b<0)&&h>g)return;f.start(this._sy,b,d,h>g?-(h-g):0,0),c=c||!f.done()}c?this._timerID=setTimeout(this._timerCB,this._timerInterval):this._stopMScroll()},_stopMScroll:function(){this._timerID&&(this._$clip.trigger(this.options.stopEventName),clearTimeout(this._timerID)),this._timerID=0,this._vTracker&&this._vTracker.reset(),this._hTracker&&this._hTracker.reset(),this._hideScrollBars(),this._hideOverflowIndicator()},_handleMomentumScroll:function(){var a=!1,b=0,c=0,d=0,e=this,f=function(a){setTimeout(function(){e._effect_dir=a,e._setEndEffect("in")},100),setTimeout(function(){e._setEndEffect("out")},350)},g=this._vTracker,h=this._hTracker;if(this._outerScrolling)return;g&&(g.update(this.options.overshootEnable),c=g.getPosition(),a=!g.done(),g.getRemained()>this.options.overshootDuration&&(d=this._getViewHeight()-this._$clip.height(),g.isAvail()?g.isMin()?(this._outerScroll(c-g.getRemained()/3,d),d>0&&f(1)):g.isMax()&&(this._outerScroll(g.getRemained()/3,d),d>0&&f(0)):this._speedY>0?this._outerScroll(g.getRemained()/3,d):this._outerScroll(c-g.getRemained()/3,d))),h&&(h.update(this.options.overshootEnable),b=h.getPosition(),a=a||!h.done()),this._setScrollPosition(b,c),this._$clip.trigger(this.options.updateEventName,[{x:b,y:c}]),a?this._timerID=setTimeout(this._timerCB,this._timerInterval):this._stopMScroll()},_setElementTransform:function(b,c,e,f){var g,h;!f||f===d?h="none":h="-webkit-transform "+f/1e3+"s ease-out",a.support.cssTransform3d?g="translate3d("+c+","+e+", 0px)":g="translate("+c+","+e+")",b.css({"-moz-transform":g,"-webkit-transform":g,"-ms-transform":g,"-o-transform":g,transform:g,"-webkit-transition":h})},_setEndEffect:function(a){var b=this._getViewHeight()-this._$clip.height();if(this._softkeyboard){this._effect_dir?this._outerScroll(-b-this._softkeyboardHeight,b):this._outerScroll(this._softkeyboardHeight,b);return}if(a==="in"){if(this._endEffect)return;this._endEffect=!0,this._setOverflowIndicator(this._effect_dir),this._showOverflowIndicator()}else if(a==="out"){if(!this._endEffect)return;this._endEffect=!1}else this._endEffect=!1,this._setOverflowIndicator(),this._showOverflowIndicator()},_setCalibration:function(a,b){if(this.options.overshootEnable){this._sx=a,this._sy=b;return}var c=this._$view,d=this._$clip,e=this._directionLock,f=0,g=0;e!=="y"&&this._hTracker&&(g=c.width()-d.width(),a>=0?this._sx=0:a<-g?this._sx=-g:this._sx=a,g<0&&(this._sx=0)),e!=="x"&&this._vTracker&&(f=this._getViewHeight()-d.height(),b>0?(this._sy=0,this._didDrag&&f>0&&(this._effect_dir=0,this._setEndEffect("in"))):b<-f?(this._sy=-f,this._didDrag&&f>0&&(this._effect_dir=1,this._setEndEffect("in"))):(this._endEffect&&this._sy!==b&&this._setEndEffect(),this._sy=b),f<0&&(this._sy=0))},_setScrollPosition:function(a,b,c){var d=this._$view,e=this.options.scrollMethod,f=this._$vScrollBar,g=this._$hScrollBar,h;this._setCalibration(a,b),a=this._sx,b=this._sy,e==="translate"?this._setElementTransform(d,a+"px",b+"px",c):d.css({left:a+"px",top:b+"px"}),f&&(h=f.find(".ui-scrollbar-thumb"),e==="translate"?this._setElementTransform(h,"0px",-b/this._getViewHeight()*h.parent().height()+"px",c):h.css("top",-b/this._getViewHeight()*100+"%")),g&&(h=g.find(".ui-scrollbar-thumb"),e==="translate"?this._setElementTransform(h,-a/d.width()*h.parent().width()+"px","0px",c):h.css("left",-a/d.width()*100+"%"))},_outerScroll:function(c,e){var f=this,g=a(b).scrollTop()-b.screenTop,i=0,j=this.options.snapbackDuration,k=h(),l;if(!this.options.outerScrollEnable)return;if(this._$clip.jqmData("scroll")!=="y")return;if(this._outerScrolling)return;if(c>0)i=b.screenTop?b.screenTop:-c;else{if(!(c<-e))return;i=-c-e}l=function(){var c=h()-k;c>=j?(b.scrollTo(0,g+i),f._outerScrolling=d,f._stopMScroll()):(ec=a.easing.easeOutQuad(c/j,c,0,1,j),b.scrollTo(0,g+i*ec),f._outerScrolling=setTimeout(l,f._timerInterval))},this._outerScrolling=setTimeout(l,f._timerInterval)},_scrollTo:function(b,c,d){var e=this,f=h(),g=a.easing.easeOutQuad,i=this._sx,j=this._sy,k=b-i,l=c-j,m;b=-b,c=-c,m=function(){var a=h()-f,n;a>=d?(e._timerID=0,e._setScrollPosition(b,c)):(n=g(a/d,a,0,1,d),e._setScrollPosition(i+k*n,j+l*n),e._timerID=setTimeout(m,e._timerInterval))},this._timerID=setTimeout(m,this._timerInterval)},scrollTo:function(a,b,c){this._stopMScroll(),this._didDrag=!1,!c||this.options.scrollMethod==="translate"?this._setScrollPosition(a,b,c):this._scrollTo(a,b,c)},getScrollPosition:function(){return{x:-this._sx,y:-this._sy}},skipDragging:function(a){this._skip_dragging=a},_getScrollHierarchy:function(){var b=[],c;return this._$clip.parents(".ui-scrollview-clip").each(function(){c=a(this).jqmData("scrollview"),c&&b.unshift(c)}),b},_getAncestorByDirection:function(a){var b=this._getScrollHierarchy(),c=b.length,d,e;while(0<c--){d=b[c],e=d.options.direction;if(!e||e===a)return d}return null},_handleDragStart:function(b,c,d){this._stopMScroll(),this._didDrag=!1,this._skip_dragging=!1;var e=a(b.target),f=this,g=this._$clip,h=this.options.direction;this._is_button=e.is(".ui-btn")||e.is(".ui-btn-text")||e.is(".ui-btn-inner")||e.is(".ui-btn-inner .ui-icon");if(e.parents(".ui-slider").length||e.is(".ui-slider")){this._skip_dragging=!0;return}e.is("textarea")&&e.bind("scroll",function(){f._skip_dragging=!0,e.unbind("scroll")}),this._is_inputbox=e.is(":input")||e.parents(":input").length>0,this._is_inputbox&&e.one("resize.scrollview",function(){d>g.height()&&f.scrollTo(-c,f._sy-d+g.height(),f.options.snapbackDuration)}),this.options.eventType==="mouse"&&!this._is_inputbox&&!this._is_button&&b.preventDefault(),this._lastX=c,this._lastY=d,this._startY=d,this._doSnapBackX=!1,this._doSnapBackY=!1,this._speedX=0,this._speedY=0,this._directionLock="",this._lastMove=0,this._enableTracking(),this._set_scrollbar_size()},_propagateDragMove:function(a,b,c,d,e){this._hideScrollBars(),this._hideOverflowIndicator(),this._disableTracking(),a._handleDragStart(b,c,d),a._directionLock=e,a._didDrag=this._didDrag},_handleDragMove:function(b,c,d){if(this._skip_dragging)return;if(!this._dragging)return;!this._is_inputbox&&!this._is_button&&b.preventDefault();var e=this.options.moveThreshold,f=c-this._lastX,g=d-this._lastY,i=this.options.direction,j=null,k,l,m,n,o,p,q;this._lastMove=h();if(!this._directionLock){k=Math.abs(f),l=Math.abs(g);if(k<e&&l<e)return!1;k<l&&k/l<.5?j="y":k>l&&l/k<.5&&(j="x");if(i&&j&&i!==j){m=this._getAncestorByDirection(j);if(m)return this._propagateDragMove(m,b,c,d,j),!1}this._directionLock=i||j||"none"}o=this._sx,p=this._sy,q=this._directionLock;if(q!=="y"&&this._hTracker){k=this._sx,this._speedX=f,o=k+f,this._doSnapBackX=!1,n=o>0||o<this._maxX;if(n&&q==="x"){m=this._getAncestorByDirection("x");if(m)return this._setScrollPosition(o>0?0:this._maxX,p),this._propagateDragMove(m,b,c,d,j),!1;o=k+f/2,this._doSnapBackX=!0}}if(q!=="x"&&this._vTracker){if(Math.abs(this._startY-d)<e&&q!=="xy")return;l=this._sy,this._speedY=g,p=l+g,this._doSnapBackY=!1,n=p>0||p<this._maxY;if(n&&q==="y"){m=this._getAncestorByDirection("y");if(m)return this._setScrollPosition(o,p>0?0:this._maxY),this._propagateDragMove(m,b,c,d,j),!1;p=l+g/2,this._doSnapBackY=!0}}this.options.overshootEnable===!1&&(this._doSnapBackX=!1,this._doSnapBackY=!1),this._lastX=c,this._lastY=d,this._setScrollPosition(o,p),this._didDrag===!1&&(this._didDrag=!0,this._showScrollBars(),this._showOverflowIndicator(),this._$clip.parents(".ui-scrollview-clip").each(function(){a(this).scrollview("skipDragging",!0)}))},_handleDragStop:function(a){var b=this;if(this._skip_dragging)return;var c=this._lastMove,d=h(),e=c&&d-c<=this.options.moveIntervalThreshold,f=this._hTracker&&this._speedX&&e?this._speedX:this._doSnapBackX?1:0,g=this._vTracker&&this._speedY&&e?this._speedY:this._doSnapBackY?1:0,i=this.options.direction,j,k;return f||g?this._setGestureScroll(f,g)||this._startMScroll(f,g):(this._hideScrollBars(),this._hideOverflowIndicator()),this._disableTracking(),this._endEffect&&setTimeout(function(){b._setEndEffect("out"),b._hideScrollBars(),b._hideOverflowIndicator()},300),!this._didDrag},_setGestureScroll:function(a,b){var c=this,e=function(){clearTimeout(c._gesture_timer),c._gesture_dir=0,c._gesture_timer=d},f={top:0,bottom:1,left:2,right:3};return!b&&!a?!1:(Math.abs(a)>Math.abs(b)?dir=a>0?f.left:f.right:dir=b>0?f.top:f.bottom,this._gesture_timer?this._gesture_dir!==dir?(e(),!1):!1:(this._gesture_dir=dir,this._gesture_timer=setTimeout(function(){e()},1e3),!1))},_enableTracking:function(){this._dragging=!0},_disableTracking:function(){this._dragging=!1},_showScrollBars:function(a){var b="ui-scrollbar-visible",c=this;if(!this.options.showScrollBars)return;if(this._scrollbar_showed)return;this._$vScrollBar&&this._$vScrollBar.addClass(b),this._$hScrollBar&&this._$hScrollBar.addClass(b),this._scrollbar_showed=!0,a&&setTimeout(function(){c._hideScrollBars()},a)},_hideScrollBars:function(){var a="ui-scrollbar-visible";if(!this.options.showScrollBars)return;if(!this._scrollbar_showed)return;this._$vScrollBar&&this._$vScrollBar.removeClass(a),this._$hScrollBar&&this._$hScrollBar.removeClass(a),this._scrollbar_showed=!1},_setOverflowIndicator:function(a){a===1?(this._opacity_top="0",this._opacity_bottom="0.8"):a===0?(this._opacity_top="0.8",this._opacity_bottom="0"):(this._opacity_top="0.5",this._opacity_bottom="0.5")},_showOverflowIndicator:function(){if(!this.options.overflowEnable||!this._overflowAvail||this._softkeyboard)return;this._overflow_top.animate({opacity:this._opacity_top},300),this._overflow_bottom.animate({opacity:this._opacity_bottom},300),this._overflow_showed=!0},_hideOverflowIndicator:function(){if(!this.options.overflowEnable||!this._overflowAvail||this._softkeyboard)return;if(this._overflow_showed===!1)return;this._overflow_top.animate({opacity:0},300),this._overflow_bottom.animate({opacity:0},300),this._overflow_showed=!1,this._setOverflowIndicator()},_add_event:function(){var c=this,e=this._$clip,f=this._$view;this.options.eventType==="mouse"?(this._dragEvt="mousedown mousemove mouseup click mousewheel",this._dragCB=function(a){switch(a.type){case"mousedown":return c._handleDragStart(a,a.clientX,a.clientY);case"mousemove":return c._handleDragMove(a,a.clientX,a.clientY);case"mouseup":return c._handleDragStop(a);case"click":return!c._didDrag;case"mousewheel":var b=c.getScrollPosition();c.scrollTo(-b.x,-(b.y-a.originalEvent.wheelDelta))}}):(this._dragEvt="touchstart touchmove touchend click",this._dragCB=function(a){var b=a.originalEvent.touches;switch(a.type){case"touchstart":if(b.length!=1)return;return c._handleDragStart(a,b[0].pageX,b[0].pageY);case"touchmove":if(b.length!=1)return;return c._handleDragMove(a,b[0].pageX,b[0].pageY);case"touchend":if(b.length!=0)return;return c._handleDragStop(a);case"click":return!c._didDrag}}),f.bind(this._dragEvt,this._dragCB),f.bind("keydown",function(f){var g,h,i=a(b).scrollTop()-b.screenTop,j;if(f.keyCode==9)return!1;g=e.find(".ui-focus");if(g===d)return;h=g.offset().top-i,j=e.offset().top+e.height()-g.height(),c._softkeyboard&&(j-=c._softkeyboardHeight),(h<e.offset().top||h>j)&&c.scrollTo(0,c._sy-(h-e.offset().top-g.height()));return}),f.bind("keyup",function(d){var f,g,h,j=a(b).scrollTop()-b.screenTop,k;if(d.keyCode!=9)return;f=a(this).find(":input");for(i=0;i<f.length;i++){if(!a(f[i]).hasClass("ui-focus"))continue;i+1==f.length?g=a(f[0]):g=a(f[i+1]),h=g.offset().top-j,k=e.offset().top+e.height()-g.height(),c._softkeyboard&&(k-=c._softkeyboardHeight),(h<0||h>k)&&c.scrollTo(0,c._sy-h+g.height()+e.offset().top,0),g.focus();break}return!1}),e.bind("updatelayout",function(a){var b,d,f=c._getViewHeight();if(!e.height()||!f){c.scrollTo(0,0,0);return}b=e.height()-f,d=f-c._view_height,c._view_height=f;if(d==0||d>e.height()/2)return;b>0?c.scrollTo(0,0,0):c._sy-b<=-d?c.scrollTo(0,c._sy,c.options.snapbackDuration):c._sy-b<=d+c.options.moveThreshold&&c.scrollTo(0,b,c.options.snapbackDuration)}),a(b).bind("resize",function(b){var d,f=c._getViewHeight();if(a(".ui-page-active").get(0)!==e.closest(".ui-page").get(0))return;if(!e.height()||!f)return;d=e.find(".ui-focus"),d&&d.trigger("resize.scrollview"),setTimeout(function(){c._sy<e.height()-c._getViewHeight()&&c.scrollTo(0,e.height()-c._getViewHeight(),c.options.overshootDuration)},260),c._view_height=f}),a(b).bind("vmouseout",function(d){var f=!1;if(a(".ui-page-active").get(0)!==e.closest(".ui-page").get(0))return;if(!c._dragging)return;if(d.pageX<0||d.pageX>a(b).width())f=!0;if(d.pageY<0||d.pageY>a(b).height())f=!0;f&&(c._hideScrollBars(),c._hideOverflowIndicator(),c._disableTracking())}),this._softkeyboard=!1,this._softkeyboardHeight=0,b.addEventListener("softkeyboardchange",function(d){if(a(".ui-page-active").get(0)!==e.closest(".ui-page").get(0))return;c._softkeyboard=d.state==="on"?!0:!1,c._softkeyboardHeight=parseInt(d.height)*(a(b).width()/b.screen.availWidth)}),e.closest(".ui-page").bind("pageshow",function(a){setTimeout(function(){c._view_height=c._getViewHeight(),c._set_scrollbar_size(),c._setScrollPosition(c._sx,c._sy),c._showScrollBars(2e3)},0)})},_add_scrollbar:function(){var a=this._$clip,b='<div class="ui-scrollbar ui-scrollbar-',c='"><div class="ui-scrollbar-track"><div class="ui-scrollbar-thumb"></div></div></div>';if(!this.options.showScrollBars)return;this._vTracker&&(a.append(b+"y"+c),this._$vScrollBar=a.children(".ui-scrollbar-y")),this._hTracker&&(a.append(b+"x"+c),this._$hScrollBar=a.children(".ui-scrollbar-x")),this._scrollbar_showed=!1},_add_scroll_jump:function(){var b=this._$clip,c=this,d,e;if(!this.options.scrollJump)return;this._vTracker&&(d=a('<div class="ui-scroll-jump-top-bg"><div data-role="button" data-inline="true" data-icon="scrolltop" data-style="box"></div></div>'),b.append(d).trigger("create"),d.bind("vclick",function(){c.scrollTo(0,0,c.options.overshootDuration)})),this._hTracker&&(e=a('<div class="ui-scroll-jump-left-bg"><div data-role="button" data-inline="true" data-icon="scrollleft" data-style="box"></div></div>'),b.append(e).trigger("create"),e.bind("vclick",function(){c.scrollTo(0,0,c.options.overshootDuration)}))},_add_overflow_indicator:function(){if(!this.options.overflowEnable)return;this._overflow_top=a('<div class="ui-overflow-indicator-top"></div>'),this._overflow_bottom=a('<div class="ui-overflow-indicator-bottom"></div>'),this._$clip.append(this._overflow_top),this._$clip.append(this._overflow_bottom),this._opacity_top="0.5",this._opacity_bottom="0.5",this._overflow_showed=!1},_set_scrollbar_size:function(){var a=this._$clip,b=this._$view,c=0,d=0,e=0,f=0,g;if(!this.options.showScrollBars)return;this._hTracker&&(c=a.width(),d=b.width(),this._maxX=c-d,this._maxX>0&&(this._maxX=0),this._$hScrollBar&&d&&(g=this._$hScrollBar.find(".ui-scrollbar-thumb"),g.css("width",c>=d?"0":(Math.floor(c/d*100)||1)+"%")));if(this._vTracker){e=a.height(),f=this._getViewHeight(),this._maxY=e-f;if(this._maxY>0||f===0)this._maxY=0;if(this._$vScrollBar&&f||f===0)g=this._$vScrollBar.find(".ui-scrollbar-thumb"),g.css("height",e>=f?"0":(Math.floor(e/f*100)||1)+"%"),this._overflowAvail=!!g.height()}}}),a.extend(f.prototype,{start:function(a,b,c,d,e){var f=a<d||a>e?g.snapback:g.scrolling,i;this.state=b!==0?f:g.done,this.pos=a,this.speed=b,this.duration=this.state===g.snapback?this.options.snapbackDuration:c,this.minPos=d,this.maxPos=e,this.fromPos=this.state===g.snapback?this.pos:0,i=this.pos<this.minPos?this.minPos:this.maxPos,this.toPos=this.state===g.snapback?i:0,this.startTime=h()},reset:function(){this.state=g.done,this.pos=0,this.speed=0,this.minPos=0,this.maxPos=0,this.duration=0,this.remained=0},update:function(b){var c=this.state,d=h(),e=this.duration,f=d-this.startTime,i,j,k;return c===g.done?this.pos:(f=f>e?e:f,this.remained=e-f,c===g.scrolling||c===g.overshot?(i=this.speed*(1-a.easing[this.easing](f/e,f,0,1,e)),j=this.pos+i,k=c===g.scrolling&&(j<this.minPos||j>this.maxPos),k&&(j=j<this.minPos?this.minPos:this.maxPos),this.pos=j,c===g.overshot?(b||(this.state=g.done),f>=e&&(this.state=g.snapback,this.fromPos=this.pos,this.toPos=j<this.minPos?this.minPos:this.maxPos,this.duration=this.options.snapbackDuration,this.startTime=d,f=0)):c===g.scrolling&&(k&&b?(this.state=g.overshot,this.speed=i/2,this.duration=this.options.overshootDuration,this.startTime=d):f>=e&&(this.state=g.done))):c===g.snapback&&(f>=e?(this.pos=this.toPos,this.state=g.done):this.pos=this.fromPos+(this.toPos-this.fromPos)*a.easing[this.easing](f/e,f,0,1,e)),this.pos)},done:function(){return this.state===g.done},isMin:function(){return this.pos===this.minPos},isMax:function(){return this.pos===this.maxPos},isAvail:function(){return this.minPos!==this.maxPos},getRemained:function(){return this.remained},getPosition:function(){return this.pos}}),a(c).bind("pagecreate create",function(b){var c=a(b.target),e=c.find(".ui-content").jqmData("scroll");a.support.scrollview===d&&(a.support.scrollview=!0),a.support.scrollview===!0&&e===d&&(e="y"),e!=="y"&&(e="none"),c.find(".ui-content").attr("data-scroll",e),c.find(":jqmData(scroll)").not(".ui-scrollview-clip").each(function(){if(a(this).hasClass("ui-scrolllistview"))a(this).scrolllistview();else{var b=a(this).jqmData("scroll"),c=b&&b.search(/^[xy]/)!==-1?b:null,e=a(this).hasClass("ui-content"),f;if(b==="none")return;f={direction:c||d,overflowEnable:e,scrollMethod:a(this).jqmData("scroll-method")||d,scrollJump:a(this).jqmData("scroll-jump")||d},a(this).scrollview(f)}})}),a(c).bind("pageshow",function(b){var c=a(b.target),d=c.find(".ui-content").jqmData("scroll");d==="y"&&e(b.target)})})(jQuery,window,document),function(a,b,c){a.widget("tizen.gallery",a.mobile.widget,{options:{flicking:!1,duration:500},dragging:!1,moving:!1,max_width:0,max_height:0,org_x:0,org_time:null,cur_img:null,prev_img:null,next_img:null,images:[],images_hold:[],index:0,align_type:null,direction:1,container:null,orientationEventFire:!1,_resize:function(a){var b=this.images[a],c=this.images[a].width(),d=this.images[a].height(),e=0,f,g=this.max_width-e,h=this.max_height-e;f=d/c,c>g&&(b.width(g),b.height(g*f)),d=b.height(),d>h&&(b.height(h),b.width(h/f))},_align:function(a,b){var c=this.images[a],d=0;if(!b)return;if(!b.length)return;this.align_type=="middle"?d=(this.max_height-c.height())/2:this.align_type=="bottom"?d=this.max_height-c.height():d=0,b.css("top",d+"px")},_attach:function(a,b){var d=this,e=function(){d._resize(a),d._align(a,b)},f=function(){if(d.images[a]===c)return;if(!d.images[a].height()){setTimeout(f,10);return}e()};if(!b)return;if(!b.length)return;if(a<0)return;if(!this.images.length)return;if(a>=this.images.length)return;b.css("display","block"),b.css("visibility","hidden"),b.append(this.images[a]),f()},_detach:function(a,b){if(!b)return;if(!b.length)return;if(a<0)return;if(a>=this.images.length)return;b.css("display","none"),this.images[a].removeAttr("style"),this.images[a].detach()},_detach_all:function(){var a;for(a=0;a<this.images.length;a++)this.images[a].detach()},_drag:function(a){var b,c;if(!this.dragging)return;if(this.options.flicking===!1){b=this.org_x-a;if(b<0&&!this.prev_img.length)return;if(b>0&&!this.next_img.length)return}c=a-this.org_x,this._moveLeft(this.cur_img,c+"px"),this.next_img.length&&this._moveLeft(this.next_img,c+this.window_width+"px"),this.prev_img.length&&this._moveLeft(this.prev_img,c-this.window_width+"px")},_move:function(a){var b=this.org_x-a,c=0,d,e,f;if(b==0)return;b>0?c=b<this.max_width*.45?0:1:c=-b<this.max_width*.45?0:1,c||(d=Date.now()-this.org_time,Math.abs(b)/d>1&&(c=1)),c&&(b>0&&this.next_img.length?(this._detach(this.index-1,this.prev_img),this.prev_img=this.cur_img,this.cur_img=this.next_img,this.next_img=this.next_img.next(),this.index++,this.next_img.length&&(this._moveLeft(this.next_img,this.window_width+"px"),this._attach(this.index+1,this.next_img)),this.direction=1):b<0&&this.prev_img.length&&(this._detach(this.index+1,this.next_img),this.next_img=this.cur_img,this.cur_img=this.prev_img,this.prev_img=this.prev_img.prev(),this.index--,this.prev_img.length&&(this._moveLeft(this.prev_img,-this.window_width+"px"),this._attach(this.index-1,this.prev_img)),this.direction=-1)),e=this.options.duration,f=this,this.moving=!0,setTimeout(function(){f.moving=!1},e-25),this._moveLeft(this.cur_img,"0px",e),this.next_img.length&&this._moveLeft(this.next_img,this.window_width+"px",e),this.prev_img.length&&this._moveLeft(this.prev_img,-this.window_width+"px",e)},_add_event:function(){var a=this,b;this.container.bind("vmousemove",function(b){b.preventDefault();if(a.moving)return;if(!a.dragging)return;a._drag(b.pageX)}),this.container.bind("vmousedown",function(b){b.preventDefault();if(a.moving)return;a.dragging=!0,a.org_x=b.pageX,a.org_time=Date.now()}),this.container.bind("vmouseup",function(b){if(a.moving)return;a.dragging=!1,a._move(b.pageX)}),this.container.bind("vmouseout",function(b){if(a.moving)return;if(!a.dragging)return;if(b.pageX<20||b.pageX>a.max_width-20)a._move(b.pageX),a.dragging=!1})},_del_event:function(){this.container.unbind("vmousemove"),this.container.unbind("vmousedown"),this.container.unbind("vmouseup"),this.container.unbind("vmouseout")},_setTranslateposition:function(b,c){var d,e=null,f=this;return a.support.cssTransform3d?d="translate3d("+c+", 0px, 0px)":d="translate("+c+", 0px)",e={"-moz-transform":d,"-webkit-transform":d,"-ms-transform":d,"-o-transform":d,transform:d},b.css(e),b},_hidePrevNext:function(){var a=this;a.next_img&&a.next_img.css("visibility","hidden"),a.prev_img&&a.prev_img.css("visibility","hidden")},_hideCur:function(){var a=this;a.cur_img&&a.cur_img.css("visibility","hidden")},_moveLeft:function(b,d,e){var f,g="",h=null,i=this;return a.support.cssTransform3d?f="translate3d("+d+", 0px, 0px)":f="translate("+d+", 0px)",e!==c&&(g="-webkit-transform "+e/1e3+"s ease"),h={"-moz-transform":f,"-webkit-transform":f,"-ms-transform":f,"-o-transform":f,transform:f},g!==""&&(h["-webkit-transition"]=g,d=="0px"?b.one("webkitTransitionEnd",i._hidePrevNext):b.one("webkitTransitionEnd",i._hideCur)),d=="0px"&&b.css("visibility","visible"),b.css(h),b},_show:function(){this.window_width=a(b).width(),this.max_width=this._get_width(),this.max_height=this._get_height(),this.container.css("height",this.max_height),this.cur_img=a("div").find(".ui-gallery-bg:eq("+this.index+")"),this.prev_img=this.cur_img.prev(),this.next_img=this.cur_img.next(),this._attach(this.index-1,this.prev_img),this._attach(this.index,this.cur_img),this._attach(this.index+1,this.next_img),this.cur_img.css("visibility","visible"),this.prev_img.length&&this._setTranslateposition(this.prev_img,-this.window_width+"px"),this._moveLeft(this.cur_img,"0px"),this.next_img.length&&this._setTranslateposition(this.next_img,this.window_width+"px")},show:function(){if(!this.images.length)return;this._show(),this._add_event()},_hide:function(){this._detach(this.index-1,this.prev_img),this._detach(this.index,this.cur_img),this._detach(this.index+1,this.next_img)},hide:function(){this._hide(),this._del_event()},_get_width:function(){return a(this.element).width()},_get_height:function(){var c=a(this.element).parentsUntil("ui-page"),d=c.children(".ui-content"),e=c.children(".ui-header").outerHeight()||0,f=c.children(".ui-footer").outerHeight()||0,g=parseFloat(d.css("padding-top"))+parseFloat(d.css("padding-bottom")),h=a(b).height()-e-f-g;return h},_create:function(){var c,d=this,e,f=0;a(this.element).wrapInner('<div class="ui-gallery"></div>'),a(this.element).find("img").wrap('<div class="ui-gallery-bg"></div>'),this.container=a(this.element).find(".ui-gallery"),c=a("div").find(".ui-gallery-bg:first");while(c.length)this.images[f]=c.find("img"),c=c.next(),f++;this._detach_all(),e=parseInt(a(this.element).jqmData("index"),10),e||(e=0),e<0&&(e=0),e>=this.images.length&&(e=this.images.length-1),this.index=e,this.align_type=a(this.element).jqmData("vertical-align"),a.extend(this,{_globalHandlers:[{src:a(b),handler:{orientationchange:a.proxy(this,"_orientationHandler"),resize:a.proxy(this,"_resizeHandler")}}]}),a.each(this._globalHandlers,function(a,b){b.src.bind(b.handler)})},_update:function(){var b,c,d;while(this.images_hold.length)b=this.images_hold.shift(),c=a('<div class="ui-gallery-bg"></div>'),d=a('<img src="'+b+'"></div>'),c.append(d),this.container.append(c),this.images.push(d);this._detach_all()},_resizeHandler:function(){var a=this;a.orientationEventFire&&(a.refresh(),a.orientationEventFire=!1)},_orientationHandler:function(){var a=this;a.refresh(),a.orientationEventFire=!0},refresh:function(a){return this._update(),this._hide(),a===c&&(a=this.index),a<0&&(a=0),a>=this.images.length&&(a=this.images.length-1),this.index=a,this._show(),this.index},add:function(a){this.images_hold.push(a)},remove:function(b){var d;b===c&&(b=this.index);if(b<0||b>=this.images.length)return;b==this.index?(d=this.cur_img,this.index==0?this.direction=1:this.index==this.images.length-1&&(this.direction=-1),this.direction<0?(this.cur_img=this.prev_img,this.prev_img=this.prev_img.prev(),this.prev_img.length&&(this._moveLeft(this.prev_img,-this.window_width+"px"),this._attach(b-2,this.prev_img)),this.index--):(this.cur_img=this.next_img,this.next_img=this.next_img.next(),this.next_img.length&&(this._moveLeft(this.next_img,this.window_width+"px"),this._attach(b+2,this.next_img))),this._moveLeft(this.cur_img,"0px",this.options.duration)):b==this.index-1?(d=this.prev_img,this.prev_img=this.prev_img.prev(),this.prev_img.length&&(this._moveLeft(this.prev_img,-this.window_width+"px"),this._attach(b-1,this.prev_img)),this.index--):b==this.index+1?(d=this.next_img,this.next_img=this.next_img.next(),this.next_img.length&&(this._moveLeft(this.next_img,this.window_width+"px"),this._attach(b+1,this.next_img))):d=a("div").find(".ui-gallery-bg:eq("+b+")"),this.images.splice(b,1),d.detach()},empty:function(){this.images.splice(0,this.images.length),this.container.find(".ui-gallery-bg").detach()},length:function(){return this.images.length},value:function(a){if(a===c)return this.index;this.refresh(a)},destory:function(){a(b).unbind("resize",this._resizeHandler),a(b).unbind("orientationchange",this._orientationHandler)}}),a(document).bind("pagecreate create",function(b){a(b.target).find(":jqmData(role='gallery')").gallery()}),a(document).bind("pageshow",function(b){a(b.target).find(":jqmData(role='gallery')").gallery("show")}),a(document).bind("pagebeforehide",function(b){a(b.target).find(":jqmData(role='gallery')").gallery("hide")})}(jQuery,this),function(a,b){a.widget("tizen.listdivider",a.mobile.widget,{options:{initSelector:":jqmData(role='list-divider')",folded:!1,listDividerLine:!0},_create:function(){var c=this.element,d=!0,e,f=!0,g=c.attr("data-style");c.data("line")===!1&&(this.options.listDividerLine=!1),c.data("folded")===!0&&(this.options.folded=!0);if(g==b||g==="normal"||g==="check")this.options.folded?c.buttonMarkup():c.wrapInner("<span class='ui-btn-text'></span>"),this.options.listDividerLine&&(e="<span class='ui-divider-normal-line'></span>",this.options.folded?a(e).appendTo(c.children(".ui-btn-inner")):a(e).appendTo(c));c.bind("vclick",function(a,b){})}}),a(document).bind("pagecreate create",function(b){a(a.tizen.listdivider.prototype.options.initSelector,b.target).listdivider()})}(jQuery),function(a,b,c,d){a.widget("tizen.multimediaview",a.mobile.widget,{options:{theme:null,controls:!0,fullScreen:!1,initSelector:"video, audio"},_create:function(){var b=this,c=b.element,d=c[0],e=d.nodeName==="VIDEO",f=b.options,g=a.mobile.getInheritedTheme(c,"s"),h=f.theme||g,i=d.style.getPropertyValue("width")||"",j=a("<div class='ui-multimediaview-wrap ui-multimediaview-"+h+"'>"),k=null;a.extend(this,{role:null,controlTimer:null,isVolumeHide:!0,backupView:null,_reserveVolume:-1,_isVideo:e}),c.addClass("ui-multimediaview"),k=b._createControl(),k.hide(),k.find(".ui-button").each(function(b){a(this).buttonMarkup({corners:!0,theme:h,shadow:!0})}),c.wrap(j).after(k),e?k.addClass("ui-multimediaview-video"):(b.width(i),b.options.fullScreen=!1),f.controls&&c.attr("controls")&&c.removeAttr("controls"),b._addEvent()},_resize:function(){this._resizeFullscreen(this.options.fullScreen),this._resizeControl(),this._updateSeekBar(),this._updateVolumeState()},_resizeControl:function(){var a=this,b=a.element,c=b[0],d=a._isVideo,e=b.parent(".ui-multimediaview-wrap"),f=e.find(".ui-multimediaview-control"),g=f.find(".ui-button"),h=f.find(".ui-playpausebutton"),i=f.find(".ui-seekbar"),j=f.find(".ui-durationlabel"),k=f.find(".ui-timestamplabel"),l=f.find(".ui-volumecontrol"),m=l.find(".ui-volumebar"),n=d?b.width():e.width(),o=d?b.height():f.height(),p=b.offset(),q=f.height(),r=0,s=null;f&&(d&&(s=f.offset(),s.left=p.left,s.top=p.top+o-q,f.offset(s)),f.width(n)),i&&(r=f.width()-g.outerWidth(!0)*g.length,r-=(parseInt(g.eq(0).css("margin-left"),10)+parseInt(g.eq(0).css("margin-right"),10))*g.length,a.isVolumeHide||(r-=l.outerWidth(!0)),i.width(r)),j&&!isNaN(c.duration)&&j.find("p").text(a._convertTimeFormat(c.duration)),c.autoplay&&c.paused===!1&&h.removeClass("ui-play-icon").addClass("ui-pause-icon"),i.width()<m.width()+k.width()+j.width()?j.hide():j.show()},_resizeFullscreen:function(b){if(!this._isVideo)return;var d=this,e=d.element,f=e[0],g=e.parent(".ui-multimediaview-wrap"),h=g.find(".ui-multimediaview-control"),i=h.find(".ui-fullscreenbutton"),j=a(".ui-page-active"),k=h.find(".ui-playpausebutton"),l=h.find(".ui-timestamplabel"),m=h.find(".ui-seekbar"),n=m.find(".ui-duration"),o=m.find(".ui-currenttime"),p=a("body")[0],q=j.children(".ui-header"),r=j.children(".ui-footer"),s=0,t=0;if(b)d.backupView||(d.backupView={width:f.style.getPropertyValue("width")||"",height:f.style.getPropertyValue("height")||"",position:e.css("position"),zindex:e.css("z-index"),wrapHeight:g[0].style.getPropertyValue("height")||""}),s=p.clientWidth,t=p.clientHeight-1,q.hide(),r.hide(),e.parents().each(function(b){var c=a(this);c.addClass("ui-fullscreen-parents").siblings().addClass("ui-multimediaview-siblings-off")}),i.removeClass("ui-fullscreen-on").addClass("ui-fullscreen-off"),g.height(t),e.width(s).height(t);else{if(!d.backupView)return;q.show(),r.show(),e.parents().each(function(b){var c=a(this);c.removeClass("ui-fullscreen-parents").siblings().removeClass("ui-multimediaview-siblings-off"
+)}),i.removeClass("ui-fullscreen-off").addClass("ui-fullscreen-on"),g.css("height",d.backupView.wrapHeight),e.css({width:d.backupView.width,height:d.backupView.height,position:d.backupView.position,"z-index":d.backupView.zindex}),d.backupView=null,a(c).trigger("throttledresize")}},_addEvent:function(){var c=this,d=c.element,e=c.options,f=d[0],g=c._isVideo,h=d.parent(".ui-multimediaview-wrap").find(".ui-multimediaview-control"),i=h.find(".ui-playpausebutton"),j=h.find(".ui-timestamplabel"),k=h.find(".ui-durationlabel"),l=h.find(".ui-volumebutton"),m=h.find(".ui-volumecontrol"),n=m.find(".ui-volumebar"),o=m.find(".ui-guide"),p=m.find(".ui-handle"),q=h.find(".ui-fullscreenbutton"),r=h.find(".ui-seekbar"),s=r.find(".ui-duration"),t=r.find(".ui-currenttime"),u=a(b);d.bind("loadedmetadata.multimediaview",function(a){isNaN(f.duration)||k.find("p").text(c._convertTimeFormat(f.duration)),c._resize()}).bind("timeupdate.multimediaview",function(a){c._updateSeekBar()}).bind("play.multimediaview",function(a){i.removeClass("ui-play-icon").addClass("ui-pause-icon")}).bind("pause.multimediaview",function(a){i.removeClass("ui-pause-icon").addClass("ui-play-icon")}).bind("ended.multimediaview",function(a){(typeof f.loop=="undefined"||f.loop==="")&&c.stop()}).bind("volumechange.multimediaview",function(a){f.muted&&f.volume>.1?(l.removeClass("ui-volume-icon").addClass("ui-mute-icon"),c._reserveVolume=f.volume,f.volume=0):c._reserveVolume!==-1&&!f.muted?(l.removeClass("ui-mute-icon").addClass("ui-volume-icon"),f.volume=c._reserveVolume,c._reserveVolume=-1):f.volume<.1?l.removeClass("ui-volume-icon").addClass("ui-mute-icon"):l.removeClass("ui-mute-icon").addClass("ui-volume-icon"),c.isVolumeHide||c._updateVolumeState()}).bind("durationchange.multimediaview",function(a){isNaN(f.duration)||k.find("p").text(c._convertTimeFormat(f.duration)),c._resize()}).bind("click.multimediaview",function(a){if(!c.options.controls)return;h.fadeToggle("fast"),c._resize()}).bind("multimediaviewinit",function(a){e.controls&&h.show(),c._resize()}),i.bind("click.multimediaview",function(){c._endTimer(),f.paused?f.play():f.pause(),g&&c._startTimer()}),q.bind("click.multimediaview",function(a){a.preventDefault(),c.fullScreen(!c.options.fullScreen),c._resize(),c._endTimer(),a.stopPropagation()}),r.bind("vmousedown.multimediaview",function(a){var b=a.clientX,d=f.duration,e=s.offset(),g=s.width(),h=(b-e.left)/g,i=d*h;if(!f.played.length)return;f.currentTime=i,c._endTimer(),a.preventDefault(),u.bind("vmousemove.multimediaview",function(a){var b=a.clientX,c=(b-e.left)/g;f.currentTime=d*c,a.preventDefault()}).bind("vmouseup.multimediaview",function(){u.unbind("vmousemove.multimediaview vmouseup.multimediaview"),f.paused?f.pause():f.play()})}),l.bind("click.multimediaview",function(){if(c.isVolumeHide){var a=c.element,b=f.volume;c.isVolumeHide=!1,m.fadeIn("fast",function(){c._updateVolumeState(),c._updateSeekBar()}),c._resize()}else c.isVolumeHide=!0,m.fadeOut("fast",function(){c._resize()})}),n.bind("vmousedown.multimediaview",function(a){var b=a.clientX,d=o.offset().left,e=o.width(),f=d+e,g=p.offset(),h=(b-d)/e,i=(b-d)/e;c._endTimer(),c._setVolume(i.toFixed(2)),a.preventDefault(),u.bind("vmousemove.multimediaview",function(a){var b=a.clientX,f=(b-d)/e;c._setVolume(f.toFixed(2)),a.preventDefault()}).bind("vmouseup.multimediaview",function(){u.unbind("vmousemove.multimediaview vmouseup.multimediaview")})})},_removeEvent:function(){var a=this.element,b=a.parent(".ui-multimediaview-wrap").find(".ui-multimediaview-control"),c=b.find(".ui-playpausebutton"),d=b.find(".ui-fullscreenbutton"),e=b.find(".ui-seekbar"),f=b.find(".ui-volumecontrol"),g=f.find(".ui-volumebar"),h=f.find(".ui-handle");a.unbind(".multimediaview"),c.unbind(".multimediaview"),d.unbind(".multimediaview"),e.unbind(".multimediaview"),g.unbind(".multimediaview"),h.unbind(".multimediaview")},_createControl:function(){var b=this.element,c=b[0],d=a("<span></span>").addClass("ui-multimediaview-control"),e=a("<span></span>").addClass("ui-playpausebutton ui-button ui-play-icon"),f=a("<span></span>").addClass("ui-seekbar ui-multimediaview-bar"),g=a("<span><p>00:00:00</p></span>").addClass("ui-timestamplabel"),h=a("<span><p>00:00:00</p></span>").addClass("ui-durationlabel"),i=a("<span></span>").addClass("ui-volumebutton ui-button"),j=a("<span></span>").addClass("ui-volumecontrol"),k=a("<div></div>").addClass("ui-volumebar ui-multimediaview-bar"),l=a("<span></span>").addClass("ui-guide ui-multimediaview-bar-bg"),m=a("<span></span>").addClass("ui-value ui-multimediaview-bar-highlight"),n=a("<span></span>").addClass("ui-handle"),o=a("<span></span>").addClass("ui-fullscreenbutton ui-button"),p=a("<span></span>").addClass("ui-duration ui-multimediaview-bar-bg"),q=a("<span></span>").addClass("ui-currenttime ui-multimediaview-bar-highlight");return f.append(p).append(q).append(h).append(g),i.addClass(c.muted?"ui-mute-icon":"ui-volume-icon"),k.append(l).append(m).append(n),j.append(k),d.append(e).append(f).append(j).append(i),this._isVideo&&(a(o).addClass("ui-fullscreen-on"),d.append(o)),j.hide(),d},_startTimer:function(a){this._endTimer(),a||(a=3e3);var b=this,c=b.element,d=c.parent(".ui-multimediaview-wrap").find(".ui-multimediaview-control"),e=d.find(".ui-volumecontrol");b.controlTimer=setTimeout(function(){b.isVolumeHide=!0,b.controlTimer=null,e.hide(),d.fadeOut("fast")},a)},_endTimer:function(){this.controlTimer&&(clearTimeout(this.controlTimer),this.controlTimer=null)},_convertTimeFormat:function(b){if(!a.isNumeric(b))return"Playback Error";var c=parseInt(b%60,10).toString(),d=parseInt(b/60%60,10).toString(),e=parseInt(b/3600,10).toString(),f=(e.length<2?"0"+e:e)+":"+(d.length<2?"0"+d:d)+":"+(c.length<2?"0"+c:c);return f},_updateSeekBar:function(a){var b=this.element,c=b[0],d=c.duration,e=b.parent(".ui-multimediaview-wrap").find(".ui-multimediaview-control"),f=e.find(".ui-seekbar"),g=f.find(".ui-duration"),h=f.find(".ui-currenttime"),i=e.find(".ui-timestamplabel"),j=g.offset(),k=g.width(),l=g.height(),m=0;typeof a=="undefined"&&(a=c.currentTime),m=parseInt(a/d*k,10),g.offset(j),h.offset(j).width(m),i.find("p").text(this._convertTimeFormat(a))},_updateVolumeState:function(){var a=this.element,b=a.parent(".ui-multimediaview-wrap").find(".ui-multimediaview-control"),c=b.find(".ui-volumecontrol"),d=b.find(".ui-volumebutton"),e=c.find(".ui-volumebar"),f=c.find(".ui-guide"),g=c.find(".ui-value"),h=c.find(".ui-handle"),i=h.width(),j=h.height(),k=f.height(),l=f.width(),m=0,n=0,o=0,p=null,q=a[0].volume;m=parseInt(f.offset().top,10),n=parseInt(f.offset().left,10),o=n,p=h.offset(),p.top=m-parseInt((j-k)/2,10),p.left=o+parseInt(l*q,10)-parseInt(i/2,10),h.offset(p),g.offset(f.offset()).width(parseInt(l*q,10))},_setVolume:function(a){var b=this.element[0];if(a<0||a>1)return;b.volume=a},width:function(a){if(this.options.fullScreen)return;var b=this.element,c=b.parent(".ui-multimediaview-wrap");if(arguments.length===0)return b.width();this._isVideo||c.width(a),b.width(a),this._resize()},height:function(a){if(!this._isVideo||this.options.fullScreen)return;var b=this.element;if(arguments.length===0)return b.height();b.height(a),this._resize()},fullScreen:function(a){if(!this._isVideo)return;var b=this.element,c=this.options;if(arguments.length===0)return c.fullScreen;b.parents(".ui-scrollview-clip").scrollview("scrollTo",0,0),this.options.fullScreen=a,this._resize()},refresh:function(){this._resize()}}),a(b).bind("pagecreate create",function(b){a.tizen.multimediaview.prototype.enhanceWithin(b.target)}).bind("pagechange",function(b){a(b.target).find(".ui-multimediaview").each(function(){var b=a(this),c=b[0];c.autoplay&&c.play(),b.multimediaview("refresh")})}).bind("pagebeforechange",function(b){a(b.target).find(".ui-multimediaview").each(function(){var b=a(this),c=b[0],d=b.multimediaview("fullScreen");d&&b.multimediaview("fullScreen",!d),c.played.length!==0&&c.pause()})}),a(c).bind("resize orientationchange",function(b){a(".ui-page-active").find(".ui-multimediaview").multimediaview("refresh")})}(jQuery,document,window),function(a,b,c,d){function e(a,b){var c=a%b;return c<0&&(c=b+c),c}function f(a,b,c){var d="translate3d( "+b+","+c+", 0px)";a.css({"-ms-transform":d,"-o-transform":d,"-moz-transform":d,"-webkit-transform":d,transform:d})}function g(b){this.options=a.extend({},b),this.easing="easeOutQuad",this.reset()}function i(){return Date.now()}var h={scrolling:0,done:1};a.extend(g.prototype,{start:function(a,b,c){this.state=b!=0?h.scrolling:h.done,this.pos=a,this.speed=b,this.duration=c,this.fromPos=0,this.toPos=0,this.startTime=i()},reset:function(){this.state=h.done,this.pos=0,this.speed=0,this.duration=0},update:function(){var b=this.state,c,d,e,f;return b==h.done?this.pos:(c=this.duration,d=i()-this.startTime,d=d>c?c:d,e=this.speed*(1-a.easing[this.easing](d/c,d,0,1,c)),f=this.pos+e,this.pos=f,d>=c&&(this.state=h.done),this.pos)},done:function(){return this.state==h.done},getPosition:function(){return this.pos}}),jQuery.widget("mobile.circularview",jQuery.mobile.widget,{options:{fps:60,scrollDuration:2e3,moveThreshold:10,moveIntervalThreshold:150,startEventName:"scrollstart",updateEventName:"scrollupdate",stopEventName:"scrollstop",eventType:a.support.touch?"touch":"mouse",delayedClickSelector:"a, .ui-btn",delayedClickEnabled:!1},_makePositioned:function(a){a.css("position")=="static"&&a.css("position","relative")},_create:function(){var b=this;this._items=a(this.element).jqmData("list"),this._$clip=a(this.element).addClass("ui-scrollview-clip"),this._$clip.wrapInner('<div class="ui-scrollview-view"></div>'),this._$view=a(".ui-scrollview-view",this._$clip),this._$list=a("ul",this._$clip),this._$clip.css("overflow","hidden"),this._makePositioned(this._$clip),this._$view.css("overflow","hidden"),this._tracker=new g(this.options),this._timerInterval=1e3/this.options.fps,this._timerID=0,this._timerCB=function(){b._handleMomentumScroll()},this.refresh(),this._addBehaviors()},reflow:function(){var a=this.getScrollPosition();this.refresh(),this.scrollTo(a.x,a.y)},refresh:function(){var c;this._$clip.width(a(b).width()),this._clipWidth=this._$clip.width(),this._$list.empty(),this._$list.append(this._items[0]),this._itemWidth=a(this._items[0]).outerWidth(),a(this._items[0]).detach(),c=this._clipWidth/this._itemWidth,c=Math.ceil(c*10)/10,this._itemsPerView=parseInt(c,10);while(this._itemsPerView+1>this._items.length)a.merge(this._items,a(this._items).clone());this._rx=-this._itemWidth,this._sx=-this._itemWidth,this._setItems()},_startMScroll:function(a,b){this._stopMScroll();var c=!1,d=this.options.scrollDuration,e=this._tracker,f=this._clipWidth,g=this._viewWidth;this._$clip.trigger(this.options.startEventName),e.start(this._rx,a,d,g>f?-(g-f):0,0),c=!e.done(),c?this._timerID=setTimeout(this._timerCB,this._timerInterval):this._stopMScroll()},_stopMScroll:function(){this._timerID&&(this._$clip.trigger(this.options.stopEventName),clearTimeout(this._timerID)),this._timerID=0,this._tracker&&this._tracker.reset()},_handleMomentumScroll:function(){var a=!1,b=this._$view,c=0,d=0,e=this._tracker;e&&(e.update(),c=e.getPosition(),a=!e.done()),this._setScrollPosition(c,d),this._rx=c,this._$clip.trigger(this.options.updateEventName,[{x:c,y:d}]),a?this._timerID=setTimeout(this._timerCB,this._timerInterval):this._stopMScroll()},_setItems:function(){var a,b;for(a=-1;a<this._itemsPerView+1;a++)b=this._items[e(a,this._items.length)],this._$list.append(b);f(this._$view,this._sx+"px",0),this._$view.width(this._itemWidth*(this._itemsPerView+2)),this._viewWidth=this._$view.width()},_setScrollPosition:function(a,b){var c=this._sx,d=a-c,g=parseInt(d/this._itemWidth,10),h,i,j;if(g>0)for(h=0;h<g;h++)this._$list.children().last().detach(),i=-parseInt(c/this._itemWidth+h+3,10),j=this._items[e(i,this._items.length)],this._$list.prepend(j);else if(g<0)for(h=0;h>g;h--)this._$list.children().first().detach(),i=this._itemsPerView-parseInt(c/this._itemWidth+h,10),j=this._items[e(i,this._items.length)],this._$list.append(j);this._sx+=g*this._itemWidth,f(this._$view,a-this._sx-this._itemWidth+"px",0)},_enableTracking:function(){a(c).bind(this._dragMoveEvt,this._dragMoveCB),a(c).bind(this._dragStopEvt,this._dragStopCB)},_disableTracking:function(){a(c).unbind(this._dragMoveEvt,this._dragMoveCB),a(c).unbind(this._dragStopEvt,this._dragStopCB)},_getScrollHierarchy:function(){var b=[],c;return this._$clip.parents(".ui-scrollview-clip").each(function(){c=a(this).jqmData("circulaview"),c&&b.unshift(c)}),b},centerTo:function(b,c){var d,e;for(d=0;d<this._items.length;d++)if(a(this._items[d]).is(b)){e=-(d*this._itemWidth-this._clipWidth/2+this._itemWidth*1.5),this.scrollTo(e+this._itemWidth,0),this.scrollTo(e,0,c);return}},scrollTo:function(b,c,d){this._stopMScroll();if(!d){this._setScrollPosition(b,c),this._rx=b;return}var e=this,f=i(),g=a.easing.easeOutQuad,h=this._rx,j=0,k=b-h,l=0,m,n,o;this._rx=b,m=function(){n=i()-f,n>=d?(e._timerID=0,e._setScrollPosition(b,c),e._$clip.trigger("scrollend")):(o=g(n/d,n,0,1,d),e._setScrollPosition(h+k*o,j+l*o),e._timerID=setTimeout(m,e._timerInterval))},this._timerID=setTimeout(m,this._timerInterval)},getScrollPosition:function(){return{x:-this._rx,y:0}},_handleDragStart:function(b,c,d){a.each(this._getScrollHierarchy(),function(a,b){b._stopMScroll()}),this._stopMScroll(),this.options.delayedClickEnabled&&(this._$clickEle=a(b.target).closest(this.options.delayedClickSelector)),this._lastX=c,this._lastY=d,this._speedX=0,this._speedY=0,this._didDrag=!1,this._lastMove=0,this._enableTracking(),this._ox=c,this._nx=this._rx,(this.options.eventType=="mouse"||this.options.delayedClickEnabled)&&b.preventDefault(),b.stopPropagation()},_handleDragMove:function(a,b,c){this._lastMove=i();var d=b-this._lastX,e=c-this._lastY;return this._speedX=d,this._speedY=0,this._didDrag=!0,this._lastX=b,this._lastY=c,this._mx=b-this._ox,this._setScrollPosition(this._nx+this._mx,0),!1},_handleDragStop:function(a){var b=this._lastMove,c=i(),e=b&&c-b<=this.options.moveIntervalThreshold,f=this._tracker&&this._speedX&&e?this._speedX:0,g=0;return this._rx=this._mx?this._nx+this._mx:this._rx,f&&this._startMScroll(f,g),this._disableTracking(),!this._didDrag&&this.options.delayedClickEnabled&&this._$clickEle.length&&this._$clickEle.trigger("mousedown").trigger("mouseup").trigger("click"),this._didDrag&&(a.preventDefault(),a.stopPropagation()),this._didDrag?!1:d},_addBehaviors:function(){var a=this;this.options.eventType==="mouse"?(this._dragStartEvt="mousedown",this._dragStartCB=function(b){return a._handleDragStart(b,b.clientX,b.clientY)},this._dragMoveEvt="mousemove",this._dragMoveCB=function(b){return a._handleDragMove(b,b.clientX,b.clientY)},this._dragStopEvt="mouseup",this._dragStopCB=function(b){return a._handleDragStop(b)},this._$view.bind("vclick",function(b){return!a._didDrag})):(this._dragStartEvt="touchstart",this._dragStartCB=function(b){var c=b.originalEvent.targetTouches[0];return a._handleDragStart(b,c.pageX,c.pageY)},this._dragMoveEvt="touchmove",this._dragMoveCB=function(b){var c=b.originalEvent.targetTouches[0];return a._handleDragMove(b,c.pageX,c.pageY)},this._dragStopEvt="touchend",this._dragStopCB=function(b){return a._handleDragStop(b)}),this._$view.bind(this._dragStartEvt,this._dragStartCB)}}),a(c).bind("pagecreate create",function(b){a(a.mobile.circularview.prototype.options.initSelector,b.target).circularview()})}(jQuery,window,document),function(a,b){a(document).bind("pagecreate create",function(b){a(":jqmData(role='label')",b.target).not(":jqmData(role='none'), :jqmData(role='nojs')").each(function(){a(this).addClass("jquery-mobile-ui-label").html(a("<span>",{"class":"jquery-mobile-ui-label-text"}).text(a(this).text()))})})}(jQuery),function(a,b){a.widget("tizen.fastscroll",a.mobile.widget,{options:{initSelector:":jqmData(fastscroll)"},_primaryLanguage:null,_secondLanguage:null,_dividerMap:{},_defaultTime:500,_defaultDuration:500,_timer:null,_isFadeOut:!1,_create:function(){var b=this.element,c=this,d,e=b.closest(':jqmData(role="page")'),f;this.scrollview=b.closest(".ui-scrollview-clip"),this.shortcutsContainer=a('<div class="ui-fastscroll" aria-label="Fast scroll bar, double tap to fast scroll mode" tabindex="0"/>'),this.shortcutsList=a('<ul aria-hidden="true"></ul>'),this.scrollview.append(a('<div class="ui-fastscroll-popup"></div>')),d=this.scrollview.find(".ui-fastscroll-popup"),this.shortcutsContainer.append(this.shortcutsList),this.scrollview.append(this.shortcutsContainer),this.lastListItem=b.children().last(),this.scrollview.find(".ui-scrollbar").hide(),this.jumpToDivider=function(b){var d=a(b).position().top,e=c.lastListItem.outerHeight(!0)+c.lastListItem.position().top,f=c.scrollview.height(),g=e-f,h;d=d>g?g:d,d=Math.max(d,0),c.scrollview.scrollview("scrollTo",0,-d),h=c.scrollview.offset()},this.shortcutsList.bind("touchstart mousedown vmousedown touchmove vmousemove vmouseover",function(b){var d=a.mobile.tizen.targetRelativeCoordsFromEvent(b),e=c.shortcutsList.offset();if(c._isFadeOut===!0)return;b.target.tagName.toLowerCase()==="li"&&(d.x+=a(b.target).offset().left-e.left,d.y+=a(b.target).offset().top-e.top),b.target.tagName.toLowerCase()==="span"&&(d.x+=a(b.target).parent().offset().left-e.left,d.y+=a(b.target).parent().offset().top-e.top),c.shortcutsList.find("li").each(function(){var b=a(this);a(b).removeClass("ui-fastscroll-hover").removeClass("ui-fastscroll-hover-up").removeClass("ui-fastscroll-hover-down")}),c.shortcutsList.find("li").each(function(){var b=a(this),f=b.offset().left-e.left,g=b.offset().top-e.top,h=f+Math.abs(b.outerWidth(!0)),i=g+Math.abs(b.outerHeight(!0)),j,k,l,m,n;if(d.x>=f&&d.x<=h&&d.y>=g&&d.y<=i){if(b.text()!==".")c._hitItem(b);else{m=b.data("omitSet"),j=(i-g)/m.length;for(n=0;n<m.length;n++)k=g+n*j,l=k+j,d.y>=k&&d.y<=l&&c._hitOmitItem(b,m.charAt(n))}return!1}return!0}),c._setTimer(!1),b.preventDefault(),b.stopPropagation()}).bind("touchend mouseup vmouseup vmouseout",function(){d.hide(),a(".ui-fastscroll-hover").removeClass("ui-fastscroll-hover"),a(".ui-fastscroll-hover-first-item").removeClass("ui-fastscroll-hover-first-item"),a(".ui-fastscroll-hover-up").removeClass("ui-fastscroll-hover-up"),a(".ui-fastscroll-hover-down").removeClass("ui-fastscroll-hover-down"),c._setTimer(!0)}),e&&!e.is(":visible")?e.bind("pageshow",function(){c.refresh()}):c.refresh(),b.bind("updatelayout",function(){c.refresh()}),a(window).unbind(".fastscroll").bind("resize.fastscroll",function(a){c.refresh()}),c.scrollview.bind("scrollstart",function(a){c._setTimer(!1)}).bind("scrollstop",function(a){c._setTimer(!0)})},_hitOmitItem:function(b,c){var d=this,e=d.scrollview.find(".ui-fastscroll-popup"),f=d._dividerMap[c];typeof f!="undefined"&&d.jumpToDivider(a(f)),e.text(c).css({marginLeft:-(e.width()/2),marginTop:-(e.height()/2),padding:e.css("paddingTop")}).width(e.height()).show(),a(b).addClass("ui-fastscroll-hover"),b.index()===0&&a(b).addClass("ui-fastscroll-hover-first-item"),b.index()>0&&a(b).siblings().eq(b.index()-1).addClass("ui-fastscroll-hover-up"),a(b).siblings().eq(b.index()).addClass("ui-fastscroll-hover-down")},_hitItem:function(b){var c=this,d=c.scrollview.find(".ui-fastscroll-popup"),e=b.text(),f;e==="#"?f=c._dividerMap.number:f=c._dividerMap[e],typeof f!="undefined"&&c.jumpToDivider(a(f)),d.text(e).css({marginLeft:-(d.width()/2),marginTop:-(d.height()/2),padding:d.css("paddingTop")}).width(d.height()).show(),a(b).addClass("ui-fastscroll-hover"),b.index()===0&&a(b).addClass("ui-fastscroll-hover-first-item"),b.index()>0&&a(b).siblings().eq(b.index()-1).addClass("ui-fastscroll-hover-up"),a(b).siblings().eq(b.index()).addClass("ui-fastscroll-hover-down")},_focusItem:function(b){var c=this,d=c.scrollview.find(".ui-fastscroll-popup");b.focusin(function(a){c.shortcutsList.attr("aria-hidden",!1),c._hitItem(b),c._setTimer(!1)}).focusout(function(b){c.shortcutsList.attr("aria-hidden",!0),d.hide(),a(".ui-fastscroll-hover").removeClass("ui-fastscroll-hover"),a(".ui-fastscroll-hover-first-item").removeClass("ui-fastscroll-hover-first-item"),a(".ui-fastscroll-hover-up").removeClass("ui-fastscroll-hover-up"),a(".ui-fastscroll-hover-down").removeClass("ui-fastscroll-hover-down"),c._setTimer(!0)})},_contentHeight:function(){var b=this,c=a(".ui-scrollview-clip"),d=null,e=null,f=0,g=a(window).height();return c.hasClass("ui-content")?(f=parseInt(c.css("padding-top"),10),g-=f||0,f=parseInt(c.css("padding-bottom"),10),g-=f||0,d=c.siblings(".ui-header:visible"),e=c.siblings(".ui-footer:visible"),d&&(d.outerHeight(!0)===null?g-=a(".ui-header").outerHeight()||0:g-=d.outerHeight(!0)),e&&(g-=e.outerHeight(!0))):g=c.height(),g},_omit:function(a,b){var c=parseInt((b-1)/2,10),d=a-b,e=[],f=[],g,h,i,j;if(b<3||a<=b)return;d>=c?(i=2,h=1,g=c):(i=b/(d+1),h=i,g=d);for(j=0;j<g;j++)e.push(parseInt(h,10)),h+=i;for(j=0;j<b;j++)f.push(1);for(j=0;j<d;j++)f[e[j%c]]++;return f},_createDividerMap:function(){var b=this,c=b._primaryLanguage?b._primaryLanguage.replace(/,/g,""):null,d=b._secondLanguage?b._secondLanguage.replace(/,/g,""):null,e="0123456789",f=b.element.find(".ui-li-divider"),g={},h,i,j,k;h=function(b,c){a(c).text()===j&&(g[j]=c)},i=function(b,d){c+=a(d).text()},c===null&&(c="",f.each(i));for(k=0;k<c.length;k++)j=c.charAt(k),f.each(h);if(d!==null)for(k=0;k<d.length;k++)j=d.charAt(k),f.each(h);f.each(function(b,c){if(e.search(a(c).text())!==-1)return g.number=c,!1}),b._dividerMap=g},_setTimer:function(a){var b=this;a===!0?b._timer=setTimeout(function(){b._isFadeOut=!0,b.shortcutsContainer.fadeOut(b._defaultDuration,function(){b._isFadeOut=!1})},b._defaultTime):(b._timer!==null&&clearTimeout(b._timer),b.shortcutsContainer.show())},indexString:function(a){var b=this,c=[];if(typeof a=="undefined")return b._primaryLanguage+":"+b._secondLanguage;c=a.split(":"),b._primaryLanguage=c[0],c.length===2&&(b._secondLanguage=c[1])},refresh:function(){var b=this,c=b._primaryLanguage?b._primaryLanguage.replace(/,/g,""):null,d=b._secondLanguage?b._secondLanguage.replace(/,/g,""):null,e=b._contentHeight(),f=a('<li tabindex="0" aria-label="double to move Number list"><span aria-hidden="true">#</span><span aria-label="Number"/></li>'),g=0,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D;h=function(b,d){c+=a(d).text()},i=function(a,b){var d,e="";for(d=0;d<b;d++)e+=c[a+d];return e},j=function(c){var d=a(this).text(),e=b._dividerMap[d];typeof e!="undefined"&&a(e).next().focus()},b._createDividerMap(),b.shortcutsList.find("li").remove(),u=b.element.find(".ui-li-divider"),v=b.element.find("li").not(".ui-li-divider"),u=u.filter(":visible"),v=v.filter(":visible");if(u.length<2){b.shortcutsList.hide();return}b.shortcutsList.show(),b.lastListItem=v.last(),b.shortcutsList.append(f),b._focusItem(f),c===null&&(c="",u.each(h)),s=parseInt(f.css("padding"),10),r=f.height()+s*2,p=parseInt(e/r-1,10),q=c.length,p=d?p-2:p;if(p<3){f.remove();return}t=b._omit(q,p);for(D=0;D<c.length;D++)y=c.charAt(D),m=a('<li tabindex="0" aria-label="double to move '+y+' list">'+y+"</li>"),b._focusItem(m),typeof t!="undefined"&&t[g]>1?(m=a("<li>.</li>"),m.data("omitSet",i(D,t[g])),D+=t[g]-1):m.bind("vclick",j),f.before(m),g++;if(d!==null){z=d.length-1,A=[],A.push(d.charAt(0)),A.push(d.charAt(z));for(D=0;D<A.length;D++)y=A[D],m=a('<li tabindex="0" aria-label="double to move '+y+' list">'+y+"</li>"),b._focusItem(m),m.bind("vclick",j),f.before(m)}k=b.shortcutsContainer.outerHeight(),w=e-k,l=b.shortcutsList.children(),C=parseInt(w/l.length,10),x=w-l.length*C,w>0&&l.each(function(b,c){B=a(c).height()+C,x!==0&&(B+=1,x-=1),a(c).css({height:B,lineHeight:B+"px"})}),n=u.first().position().top,b.shortcutsContainer.css("top",n),o=n+b.shortcutsContainer.outerHeight()+"px",b.scrollview.css("min-height",o),b._setTimer(!1),b._setTimer(!0)}}),a(document).bind("pagecreate create",function(b){a(a.tizen.fastscroll.prototype.options.initSelector,b.target).not(":jqmData(role='none'), :jqmData(role='nojs')").fastscroll()})}(jQuery);var ensureNS=function(){var a={};return function(c){var d=c.split(".").reverse(),e="",f="",g="",h=d.length;while(--h>=0)g=d[h],e=e+(e.length>0?".":"")+g,a[e]||(a[e]=!0,f+="!window."+e+" && (window."+e+" = {});\n");f.length&&(new Function(f))()}}();(function(a,b){a.webgl={},a.webgl.shader={_vertexShader:null,_fragmentShader:null,deleteShaders:function(a){a.deleteShader(this._vertexShader),a.deleteShader(this._fragmentShader)},addShaderProgram:function(a,b,c,d){var e,f={},g={};return d?(f=this.loadShaderFile(b),g=this.loadShaderFile(c)):(f.source=b,g.source=c),this._vertexShader=this.getShader(a,a.VERTEX_SHADER,f),this._fragmentShader=this.getShader(a,a.FRAGMENT_SHADER,g),e=a.createProgram(),a.attachShader(e,this._vertexShader),a.attachShader(e,this._fragmentShader),a.linkProgram(e),a.getProgramParameter(e,a.LINK_STATUS)||window.alert("Could not initialize Shaders!"),e},loadShaderFile:function(b){var c=null;return a.ajax({async:!1,url:b,success:function(a){c={source:a}}}),c},getShader:function(a,b,c){var d;return!a||!b||!c?null:(d=a.createShader(b),a.shaderSource(d,c.source),a.compileShader(d),a.getShaderParameter(d,a.COMPILE_STATUS)?d:(window.alert(a.getShaderInfoLog(d)),a.deleteShader(d),null))}},a.webgl.buffer={attribBufferData:function(a,b){var c=a.createBuffer();return a.bindBuffer(a.ARRAY_BUFFER,c),a.bufferData(a.ARRAY_BUFFER,b,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,null),c}}})(jQuery),function(a,b,c){pinch_event={setup:function(){function f(a){var b=a[0].x-a[1].x,c=a[0].y-a[0].y;return Math.sqrt(b*b+c*c)}function g(a,b){return{point:a,ratio:b}}var d=this,e=a(d);if(!a.mobile.support.touch)return;e.bind("touchstart",function(d){function l(c){var d=c.originalEvent.touches,e,h,l,m=a(b).width()/a.mobile.pinch.factor;if(k)return;if(!i)return;e=[{x:d[0].pageX,y:d[0].pageY},{x:d[1].pageX,y:d[1].pageY}],l=f(e)-f(i),h=1+l/m,h<a.mobile.pinch.min?h=a.mobile.pinch.min:h>a.mobile.pinch.max&&(h=a.mobile.pinch.max);if(Math.abs(h-j)<a.mobile.pinch.threshold)return;a(c.target).trigger("pinch",g(e,h)),j=h,a.mobile.pinch.interval&&(k=!0,setTimeout(function(){k=!1},a.mobile.pinch.interval))}var h=d.originalEvent.touches,i,j=1,k=!1;if(!a.mobile.pinch.enabled)return;if(h.length!=2)return;i=[{x:h[0].pageX,y:h[0].pageY},{x:h[1].pageX,y:h[1].pageY}],a(d.target).trigger("pinchstart",g(i,c)),e.bind("touchmove",l).one("touchend",function(b){e.unbind("touchmove",l),a(b.target).trigger("pinchend",g(c,j)),i=c,current=c,j=1,k=!1})})}},a.event.special.pinch=pinch_event,a.mobile.pinch={enabled:!0,min:.1,max:3,factor:4,threshold:.01,interval:50}}(jQuery,this),function(a,b,c,d){function g(){if(f)return;e=c.createElement("canvas"),f=e.getContext("2d")}function h(a){var c=b.FileError,d="";switch(a.code){case c.QUOTA_EXCEEDED_ERR:d="QUOTA_EXCEEDED_ERR";break;case c.NOT_FOUND_ERR:d="NOT_FOUND_ERR";break;case c.SECURITY_ERR:d="SECURITY_ERR";break;case c.INVALID_MODIFICATION_ERR:d="INVALID_MODIFICATION_ERR";break;case c.INVALID_STATE_ERR:d="INVALID_STATE_ERR";break;default:d="Unknown Error"}return d}function i(a){var b=a.replace(/\//gi,"_");return b}function j(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=a/c,k=b/d,l=Math.max(j,k);return e?(f=c,g=d):(l>1?(f=a/l,g=b/l):(f=a,g=b),h=(c-f)/2,i=(d-g)/2),{w:f,h:g,x:h,y:i}}function k(a,b,c,d){var h,i;return g(),e.width=b,e.height=c,h=j(a.width,a.height,b,c,d),f.fillStyle="#000000",f.fillRect(0,0,b,c),f.drawImage(a,h.x,h.y,h.w,h.h),i=e.toDataURL(),i}var e,f;a.imageloader={_grantedBytes:1048576,getThumbnail:function(a,b){function e(a){var c=h(a);b&&b(c==="NOT_FOUND_ERR"?c:null)}var c,d;c=i(a);try{d=localStorage.getItem(c),b&&b(d===null?"NOT_FOUND_ERR":d)}catch(f){b&&b(f.type==="non_object_property_load"?"NOT_FOUND_ERR":null)}},setThumbnail:function(a,b,c,d,e){function l(a){var c=h(a);b&&b(c==="NOT_FOUND_ERR"?c:null)}var f,g,j;c=c||128,d=d||128,e=e||!0,f=new Image,f.onload=function(){g=i(a),j=k(this,c,d,e);try{localStorage.setItem(g,j),b&&b(j)}catch(f){b&&b(f.type==="non_object_property_load"?"NOT_FOUND_ERR":null)}},f.src=a},removeThumbnail:function(a){function c(a){h(a)}var b;b=i(a);try{localStorage.removeItem(b)}catch(d){throw d}}}}(jQuery,window,document),function(a,b,c,d){a.widget("tizen.splitview",a.mobile.widget,{options:{fixed:!1,dividerVertical:!0,ratio:[],initSelector:":jqmData(role='splitview')"},_create:function(){var c=this,d=c.element,e=c.options,f=d.children(".ui-pane"),g=f.length,h=[],i=[],j=this.element.attr("data-ratio"),k=[0,0],l=null,m=0;if(g!==2){if(g<2)for(m=g;m<2;++m)c._addEmptyPanes();else f.slice(2).remove();f=d.children(".ui-pane"),g=f.length}h[0]=a("<a href='#' class='ui-spliter' aria-label='Drag scroll, double tap and move to adjust split area'></a>").insertAfter(f[0]),i[0]=a("<div class='ui-spliter-bar'></div>").appendTo(h[0]),a("<div class='ui-spliter-handle'></div>").appendTo(i[0]),a.extend(this,{moveTarget:null,moveData:{},spliters:h,spliterBars:i,panes:f,containerSize:k,touchStatus:!1,minPaneWidth:50,savedRatio:[]}),c._bindTouchEvents(),c._convertRatio(j,f.length),d.addClass("ui-splitview ui-direction-"+c._direction(e.dividerVertical)),d.parent().closest(".ui-splitview").length&&c._getContainerSize(d[0].style.width,d[0].style.height)&&c._layout(),a(b).bind("pagechange",function(a){d.parent().closest(".ui-splitview").length||c._getContainerSize(d[0].style.width,d[0].style.height)&&c._layout()}).resize(function(){l&&clearTimeout(l),l=setTimeout(function(){d.parent().closest(".ui-splitview").length||c._getContainerSize(d[0].style.width,d[0].style.height)&&c._layout()},250)})},_addEmptyPanes:function(){var b=this,c=b.element,d=b.options,e=c.children(".ui-pane"),f=a.support.scrollview?"data-scroll='y'":"",g=a("<div class='ui-pane' "+f+"></div>");f.length&&g.scrollview({direction:"y"}),e.length?e.last().after(g):c.append(g)},_direction:function(a){return a?"horizontal":"vertical"},_isStyleSpecified:function(a){return typeof a!="undefined"&&a.length},_getContainerSize:function(a,b){var c=this,d=c.element,e=c._isStyleSpecified(a),f=c._isStyleSpecified(b);return c.containerSize[0]=e?d.outerWidth(!0):c._parentWidth(),c.containerSize[1]=f?d.outerHeight(!0):c._parentHeight(),!c.containerSize[0]||!c.containerSize[1]?!1:!0},_parentWidth:function(){var c=this.element.parent();return!c&&typeof c=="undefined"&&!c.length?a(b).width():c.width()},_parentHeight:function(){var c=this.element.parent(),d="",e=!1,f=0;while(c&&typeof c!="undefined"&&c.length){if(typeof c[0].style!="undefined"){d=c[0].style.height,e=typeof d!="undefined"&&d.length;if(e){f=c.height();break}}c=c.parent()}return e||(f=a(b).height()),f},_convertRatio:function(b,c){var d=this,e=[],f=0,g=typeof b,h=null,i;for(i=0;i<c;++i)e.push(0);switch(g){case"number":c&&(e[0]=b);break;case"string":h=b.split(","),f=Math.min(h.length,c);for(i=0;i<f;++i)e[i]=parseFloat(h[i]);break;case"object":if(!a.isArray(b))break;f=Math.min(b.length,c);for(i=0;i<f;++i)g=typeof b[i],e[i]=g==="string"?parseFloat(b[i]):g==="number"?b[i]:0}d.options.ratio=e,d._adjustRatio(c)},_adjustRatio:function(a){var b=this,c=b.options.ratio,d=0,e=0,f=0,g=0,h=0,i;if(!a){b.options.ratio=[];return}for(i in c)d+=c[i];if(d!==1){e=1-d,f=e/a;for(i in c)f>=0?(c[i]+=f,e=Math.max(0,e-f)):(h+=f,g=Math.max(h,c[i]*-1),c[i]=Math.max(0,c[i]+g),e=Math.min(0,e-g),h-=g);if(e)if(e>0)c[c.length-1]+=e;else for(i=c.length-1;i>=0;--i){g=Math.max(e,c[i]*-1),c[i]=Math.max(0,c[i]+g),e=Math.min(0,e-g);if(!e)break}b.options.ratio=c}},_setOption:function(b,c){var d=this,e=d.options[b];if(e===c)return;a.Widget.prototype._setOption.apply(this,arguments);switch(b){case"fixed":d._fixed(c);break;case"dividerVertical":d._dividerVertical(c);break;case"ratio":d._ratio(c)}},_subtractDiffWidth:function(a,b){var c=this;return a<=c.minPaneWidth?{width:a,diff:b}:(a+=b,a>=c.minPaneWidth?{width:a,diff:0}:{width:c.minPaneWidth,diff:a-c.minPaneWidth})},_initRatio:function(b,c,d,e){var f=this,g=0,h=[],i=0,j=c.length,k,l;c.each(function(b){var c=a(this);h.push(d?c.width():c.height()),g+=h[b]}),i=e-g;if(!i)return h;if(i>0)h[b?0:j-1]+=i;else if(b)for(l=0;l<j;++l){k=f._subtractDiffWidth(h[l],i),h[l]=k.width,i=k.diff;if(!i)break}else for(l=j-1;l>=0;--l){i=f._subtractDiffWidth(h[l],i),h[l]=k.width,i=k.diff;if(!i)break}g=0;for(l in h)g+=h[l];for(l in f.options.ratio)f.options.ratio[l]=h[l]/g;return h},_horizontalBoundary:function(){var a=this,b=a.element;return b.outerWidth(!0)-b.width()},_verticalBoundary:function(){var a=this,b=a.element;return b.outerHeight(!0)-b.height()},_boundary:function(a){var c=this,d=c.element,e=b.getComputedStyle(d[0],null),f=parseFloat(e["margin"+a]),g=parseFloat(e["border"+a+"Width"]),h=parseFloat(e["padding"+a]);return{margin:f,border:g,padding:h}},_layout:function(b,c){var d=this,e=d.element,f=d.options,g=f.dividerVertical,h=d.panes,i=d.spliters,j=d.spliterBars,k=d.spliterBars.length?a(j[0]):null,l=k?g?k.outerWidth():k.outerHeight():0,m=k?g?k.outerWidth(!0)-k.outerWidth():k.outerHeight(!0)-k.outerHeight():0,n=h.length,o=0,p=l*
+(n-1),q=d.containerSize[0],r=d.containerSize[1],s=q-d._horizontalBoundary(),t=r-d._verticalBoundary(),u=g?t:s,v=g?s-p:t-p,w=[],x=0,y=null;typeof b=="undefined"&&(b=!1),b&&typeof c=="undefined"&&(c=!1),e.css({"min-width":s,"min-height":t}),b&&(w=d._initRatio(c,h,g,v)),o=v,h.each(function(c){var e=a(this),f=b?w[c]:Math.floor(v*d.options.ratio[c]),i=c?h.eq(c-1):null,j=0,k=0,m=0,p=0;o-=f,c===n-1&&(f=Math.max(Math.min(f,d.minPaneWidth),f+o)),x+=f,i?(j=parseInt(i.css(g?"left":"top"),10),j+=g?i.width():i.height(),j+=l):(p=d._boundary(g?"Left":"Top"),j=p.padding),k=g?f:u,m=g?u:f,e.css({width:k,height:m}),e.css(g?"left":"top",j)}),h.each(function(b){var c=a(this),e=g?c.width():c.height();d.options.ratio[b]=e/x}),a.each(i,function(b){var c=a(this),d=h.eq(b),e=c.children(".ui-spliter-bar"),f=e.children(".ui-spliter-handle"),i=0;g?(i=parseInt(d.css("left"),10)+d.width()-m,c.outerHeight(u).css("left",i)):(i=parseInt(d.css("top"),10)+d.height()-m,c.outerWidth(u).css("top",i)),typeof e!="undefined"&&e&&(g?e.outerHeight(u):e.outerWidth(u)),typeof f!="undefined"&&f&&(g?f.css("top",(u-l)/2):f.css("left",(u-l)/2))}),y=e.find(":jqmData(role='splitview'):first");if(!y.length)return;y=y.data("splitview"),y&&y._refresh()},_bindTouchEvents:function(){var b=this,c=b.element,d=b.panes,e=b.spliters;a.each(e,function(c){var d=a(this);b._bindSpliterTouchEvents(d)}),c.mouseleave(function(){b.touchStatus&&c.children(".ui-spliter").trigger("vmouseup")}),d.bind("vmousedown",function(){c.find(".ui-spliter").trigger("vmouseup")})},_bindSpliterTouchEvents:function(b){var d=this,e=d.element,f=d.options;b.bind("vmousedown",{e:b},function(b){if(d.options.fixed)return;var g=b.data.e,h=g.prev(),i=g.next(),j=h.find(":jqmData(role='splitview'):first"),k=i.find(":jqmData(role='splitview'):first"),l=f.dividerVertical,m=l?a(d.spliterBars[0]).outerWidth():a(d.spliterBars[0]).outerHeight();e.closest(".ui-page").find(".ui-spliter").trigger("vmouseup"),d.moveTarget=g,d.moveData={spliterWidth:m||0,prevPane:h,nextPane:i,splitviewInPrev:j,splitviewInNext:k,prevPanePos:parseInt(h.css(l?"left":"top"),10)||0,prevPaneWidth:parseInt(h.css(l?"width":"height"),10)||0,nextPanePos:parseInt(i.css(l?"left":"top"),10)||0,nextPaneWidth:parseInt(i.css(l?"width":"height"),10)||0,targetPos:parseInt(g.css(l?"left":"top"),10)||0,pagePos:l?b.pageX:b.pageY},g.addClass("ui-spliter-active"),a(c).bind("vmousemove.splitview",function(a){if(!d.touchStatus)return;d._drag(a),a.preventDefault(),a.stopPropagation()}).bind("vmouseup.splitview",function(a){if(!d.touchStatus)return;d._stop(a),a.preventDefault(),a.stopPropagation(),d.touchStatus=!1}),b.preventDefault(),b.stopPropagation(),d.touchStatus=!0})},_drag:function(a){if(!this.moveData||typeof this.moveData=="undefined")return;var b=this,c=b.element,d=b.options,e=d.dividerVertical,f=b.moveData,g=b.moveTarget,h=f.prevPane,i=f.nextPane,j=f.splitviewInPrev,k=f.splitviewInNext,l=f.spliterWidth,m=null,n=null,o=null,p=null,q=null,r=e?a.pageX:a.pageY,s=null;m=r-f.pagePos,m>0?m=Math.min(Math.max(f.nextPaneWidth-b.minPaneWidth,0),m):m=Math.max(Math.max(f.prevPaneWidth-b.minPaneWidth,0)*-1,m),o=f.nextPanePos+m,p=Math.max(f.prevPaneWidth+m,0),q=Math.max(f.nextPaneWidth-m,0),n=f.targetPos+m,g.css(e?{left:n}:{top:n}),h.css(e?{width:p}:{height:p}),i.css(e?{width:q,left:o}:{height:q,top:o}),j.length&&(s=j.data("splitview"),s._refresh(!0,!1)),k.length&&(s=k.data("splitview"),s._refresh(!0,!0))},_stop:function(b){if(!this.moveData||typeof this.moveData=="undefined")return;var d=this,e=d.element,f=d.options,g=d.panes,h=g.length,i=f.dividerVertical,j=d.moveData,k=d.moveTarget,l=j.prevPane,m=j.nextPane,n=j.splitviewInPrev,o=j.splitviewInNext,p=j.spliterWidth,q=p*(h-1),r=null,s=null,t=null,u=null,v=null,w=e.css("display"),x=d.containerSize[0],y=d.containerSize[1],z=x-d._horizontalBoundary(),A=y-d._verticalBoundary(),B=i?z-q:A-q,C=0;a(c).unbind("vmousemove.splitview vmouseup.splitview"),k.removeClass("ui-spliter-active"),g.each(function(b){var c=a(this),d=i?c.width():c.height();C+=d}),g.each(function(b){var c=a(this),e=i?c.width():c.height();d.options.ratio[b]=e/C}),d.moveData=null},_fixed:function(b){var c=this,d=c.spliters;a.each(d,function(c){var d=a(this);b?d.addClass("ui-fixed"):d.removeClass("ui-fixed")}),c._layout()},_dividerVertical:function(a){var b=this,c=b.element,d=a,e=null,f=null,g=null,h=null;e=c.children(".ui-pane"),f=c.children(".ui-spliter"),g=f.children(".ui-spliter-bar"),h=g.children(".ui-spliter-handle"),c.removeClass("ui-direction-vertical"),c.removeClass("ui-direction-horizontal"),c.addClass("ui-splitview ui-direction-"+b._direction(d)),e.css({left:"",top:"",width:"",height:""}),f.css({left:"",top:"",width:"",height:""}),g.css({width:"",height:""}),h.css({left:"",top:""}),b._getContainerSize(c[0].style.width,c[0].style.height)&&b._layout()},_ratio:function(a){var b=this,c=b.element,d=c.children(".ui-pane"),e=d.length;b._convertRatio(a,e),b._layout()},_refresh:function(a,b){var c=this,d=c.element;typeof a=="undefined"&&(a=!1),a&&typeof b=="undefined"&&(b=!1),c._getContainerSize(d[0].style.width,d[0].style.height)&&c._layout(a,b)},pane:function(a,b){if(typeof a!="string")return null;var c=this,d=c.element,e=d.children(a),f=null,g=null;if(!e.hasClass("ui-pane"))return null;if(typeof b=="undefined"||!b)return e.contents();if(e.hasClass("ui-scrollview-clip")){e.scrollview("scrollTo",0,0,0),f=e.children(".ui-scrollview-view");if(!f.length)return null}else f=e;g=b.parent();if(g.length&&g[0]===f[0])return;f.empty().append(b).trigger("create"),f.fadeIn("fast")},maximize:function(a){if(typeof a!="string")return;var b=this,c=b.element,d=b.panes,e=c.children(a);if(!e.hasClass("ui-pane"))return;b.savedRatio=b.options.ratio.slice(),b.options.ratio=[],d.each(function(a){b.options.ratio.push(this===e[0]?1:0)}),b._layout()},restore:function(){var a=this;if(a.savedRatio.length===0)return;a.options.ratio=a.savedRatio.slice(),a._adjustRatio(a.panes.length),a._layout()}}),a(c).bind("pagecreate create",function(b){a.tizen.splitview.prototype.enhanceWithin(b.target)})}(jQuery,window,document),function(a,b,c){var d=Math.PI/2,e=.001,f={},g=b.vec3,h=function(a,b){var c=[b[0]-a[0],b[1]-a[1],b[2]-a[2]],d=Math.sqrt(c[0]*c[0]+c[1]*c[1]+c[2]*c[2]);return d};f.base=function(){},f.base.prototype={points:[],step:e,length:0,levels:[],init:function(a){},calculateLevel:function(a){},calculateTotalLength:function(){},getPosition:function(a){},getPercent:function(a,b){},getAngle:function(a){}},f.bezier2d=function(){},f.bezier2d.prototype=a.extend(!0,{},f.base.prototype,{init:function(a){this.points=a.points,this.step=a.step||e,this.length=this.calculateTotalLength(),this.levels=this.calculateLevel(a.maxLevel)||[]},calculateLevel:function(a){var b=this.length,c=b/a,d=[],e;if(!a)return null;for(e=0;e<a;e+=1)d[a-e]=this.getPercent(0,c*e);return d},calculateTotalLength:function(){var a=this.step,b=this.getPosition(0),c=b,d=0,e;for(e=a;e<=1;e+=a)b=this.getPosition(e),d+=h(c,b),c=b;return d},getPosition:function(a){var b=this.points,c=function(a,b,c,d,e){return Math.pow(1-e,3)*a+3*e*Math.pow(1-e,2)*b+3*Math.pow(e,2)*(1-e)*c+Math.pow(e,3)*d},d=[c(b[0][0],b[1][0],b[2][0],b[3][0],a),c(b[0][2],b[1][2],b[2][2],b[3][2],a)];return[d[0],0,d[1]]},getPercent:function(a,b){var c=this.step,d=this.getPosition(a=a||0),e=d,f=a+b,g=0,i;for(i=a+c;i<=1;i+=c){d=this.getPosition(i),g+=h(e,d);if(g>=f)return i;e=d}return 1},getAngle:function(a){var b=this.points,c=function(a,b,c,d,e){return 3*e*e*(-a+3*b-3*c+d)+6*e*(a-2*b+c)+3*(-a+b)},e=c(b[0][0],b[1][0],b[2][0],b[3][0],a),f=c(b[0][2],b[1][2],b[2][2],b[3][2],a);return Math.atan2(e,f)-d}}),f.bspline=function(){},f.bspline.prototype=a.extend(!0,{},f.base.prototype,{_degree:3,_numberOfControls:0,_knotVectors:[],_numberOfKnots:0,init:function(a){this.points=a.points,this.step=a.step||e,this._numberOfPoints=this.points.length-1,this._numberOfKnots=this._numberOfPoints+this._degree+1;var b=1/(this._numberOfKnots-2*this._degree),c=b,d=0;while(d<=this._numberOfKnots)d<=this._degree?this._knotVectors.push(0):d<this._numberOfKnots-this._degree+1?(this._knotVectors.push(c),c+=b):this._knotVectors.push(1),d+=1;this.length=this.calculateTotalLength(),this.levels=this.calculateLevel(a.maxLevel)||[]},_Np:function(a,b,c){var d=this._knotVectors,e=0,f=0,g=0,h=function(a,b){return d[b]<=a&&a<d[b+1]?1:0};return c===1?(e=h(a,b),f=h(a,b+1)):(e=this._Np(a,b,c-1),f=this._Np(a,b+1,c-1)),g=d[b+c]-d[b],e*=g!==0?(a-d[b])/g:0,g=d[b+c+1]-d[b+1],f*=g!==0?(d[b+c+1]-a)/g:0,e+f},calculateLevel:function(a){var b=this.length,c=b/a,d=[],e;if(!a)return null;for(e=0;e<a;e+=1)d[a-e]=this.getPercent(0,c*e);return d},calculateTotalLength:function(){var a=this.step,b=this.getPosition(0),c=b,d=0,e;for(e=a;e<=1;e+=a)b=this.getPosition(e),d+=h(c,b),c=b;return d},getPosition:function(a){var b=[],c,d,e;a=a.toFixed(4);for(d=0;d<3;d+=1){e=0;for(c=0;c<=this._numberOfPoints;c+=1)e+=this.points[c][d]*this._Np(a,c,this._degree);b[d]=e}return b},getPercent:function(a,b){var c=this.step,d=this.getPosition(a=a||0),e=d,f=a+b,g=0,i;for(i=a+c;i<=1;i+=c){d=this.getPosition(i),g+=h(e,d);if(g>=f)return i;e=d}return 1},getAngle:function(a){var b=this.getPosition(a),c=this.getPosition(a+.001),d=g.normalize(g.direction(b,c)),e=g.dot(d,[1,0,0]);return Math.acos(e)+Math.PI}}),a.motionpath=function(a,b){var c=new f[a];return c.init(b),c}}(jQuery,window),function(a,b){var c={};a.widget("tizen.extendablelist",a.mobile.widget,{options:{theme:"s",countTheme:"c",headerTheme:"b",dividerTheme:"b",splitIcon:"arrow-r",splitTheme:"b",inset:!1,id:"",extenditems:50,childSelector:" li",dbtable:"",template:"",loadmore:"tmp_load_more",scrollview:!1,initSelector:":jqmData(role='extendablelist')"},_stylerMouseUp:function(){a(this).addClass("ui-btn-up-s"),a(this).removeClass("ui-btn-down-s")},_stylerMouseDown:function(){a(this).addClass("ui-btn-down-s"),a(this).removeClass("ui-btn-up-s")},_stylerMouseOver:function(){a(this).toggleClass("ui-btn-hover-s")},_stylerMouseOut:function(){a(this).toggleClass("ui-btn-hover-s"),a(this).addClass("ui-btn-up-s"),a(this).removeClass("ui-btn-down-s")},_pushData:function(b){var c=this.options,d=this,e=0,f=a("#"+b),g=c.extenditems>d._numItemData-d._lastIndex?d._numItemData-d.lastIndex:c.extenditems,h;for(e=0;e<g;e++)h=f.tmpl(d._itemData(e)),a(c.id).append(a(h).attr("id","li_"+e)),a(c.id+">"+c.childSelector).addClass("ui-btn-up-s").bind("mouseup",d._stylerMouseUp).bind("mousedown",d._stylerMouseDown).bind("mouseover",d._stylerMouseOver).bind("mouseout",d._stylerMouseOut),d._lastIndex+=1;a(c.id).trigger("create")},_loadmore:function(b){var c=b.data,d=c.options,e=0,f=a("#"+d.template),g=d.extenditems>c._numItemData-c._lastIndex?c._numItemData-c._lastIndex:d.extenditems,h,i,j;a("#load_more_message").remove();for(e=0;e<g;e++)h=f.tmpl(c._itemData(c._lastIndex)),a(d.id).append(a(h).attr("id","li_"+c._lastIndex)),c._lastIndex+=1;c._numItemData>c._lastIndex&&(f=a("#"+d.loadmore),i=c._numItemData-c._lastIndex,j=d.extenditems<=i?d.extenditems:i,h=f.tmpl({NUM_MORE_ITEMS:j}),a(d.id).append(a(h).attr("id","load_more_message").css("min-height","37px"))),a(d.id).trigger("create"),a(d.id).extendablelist("refresh")},recreate:function(a){this._create({itemData:function(b){return a[b]},numItemData:a.length})},_initList:function(b){var c=this,d=this.options,e,f,g,h;c._lastIndex<=0&&(c._pushData(d.template),c._numItemData>c._lastIndex?(e=a("#"+d.loadmore),f=c._numItemData-c._lastIndex,g=d.extenditems<=f?d.extenditems:f,h=e.tmpl({NUM_MORE_ITEMS:g}),a(d.id).append(a(h).attr("id","load_more_message").css("min-height","37px")),a("#load_more_message").live("click",c,c._loadmore)):(a("#load_more_message").die(),a("#load_more_message").remove())),d.childSelector==" ul"&&a(d.id+" ul").swipelist(),a(d.id).trigger("create"),c.refresh(!0)},create:function(){var a=this.options;this._create.apply(this,arguments)},_create:function(b){var c=this,d=this.options,e=this.element,f;c.destroy(),a.extend(this,{_itemData:function(a){return null},_numItemData:0,_cacheItemData:function(a,b){},_lastIndex:0}),c.element.addClass(function(a,b){return b+" ui-listview ui-extendable-list-container"+(c.options.inset?" ui-listview-inset ui-corner-all ui-shadow ":"")}),d.id="#"+e.attr("id"),e.data("extenditems")&&(d.extenditems=parseInt(e.data("extenditems"),10)),a(d.id).bind("pagehide",function(b){a(d.id).empty()}),a(".ui-scrollview-clip").size()>0?d.scrollview=!0:d.scrollview=!1;if(b){if(!c._loadData(b))return}else{console.warn("WARNING: The data interface of extendable list is changed. \nOld data interface(data-dbtable) is still supported, but will be removed in next version. \nPlease fix your code soon!");if(!a(d.id).hasClass("elLoadSuccess")){console.warn("No elLoadSuccess class");return}f=e.jqmData("dbtable"),d.dbtable=window[f],d.dbtable||(d.dbtable={}),c._itemData=function(a){return d.dbtable[a]},c._numItemData=d.dbtable.length}e.data("template")&&(d.template=e.data("template"),e.data("swipelist")==1?d.childSelector=" ul":d.shildSelector=" li"),c._initList(b)},_loadData:function(a){var b=this;if(!a.itemData||typeof a.itemData!="function")return!1;b._itemData=a.itemData;if(!a.numItemData)return!1;if(typeof a.numItemData=="function")b._numItemData=a.numItemData();else{if(typeof a.numItemData!="number")return!1;b._numItemData=a.numItemData}return!0},destroy:function(){var b=this.options,c=0,d=0;a(b.id).empty(),a("#load_more_message").die()},_itemApply:function(b,c){var d=c.find(".ui-li-count");d.length&&c.addClass("ui-li-has-count"),d.addClass("ui-btn-up-"+(b.jqmData("counttheme")||this.options.countTheme)+" ui-btn-corner-all"),c.find("h1, h2, h3, h4, h5, h6").addClass("ui-li-heading").end().find("p, dl").addClass("ui-li-desc").end().find(">img:eq(0), .ui-link-inherit>img:eq(0)").addClass("ui-li-thumb").each(function(){c.addClass(a(this).is(".ui-li-icon")?"ui-li-has-icon":"ui-li-has-thumb")}).end().find(".ui-li-aside").each(function(){var b=a(this);b.prependTo(b.parent())})},_removeCorners:function(a,b){var c="ui-corner-top ui-corner-tr ui-corner-tl",d="ui-corner-bottom ui-corner-br ui-corner-bl";a=a.add(a.find(".ui-btn-inner, .ui-li-link-alt, .ui-li-thumb")),b==="top"?a.removeClass(c):b==="bottom"?a.removeClass(d):a.removeClass(c+" "+d)},_refreshCorners:function(a){var b,c,d,e;this.options.inset&&(b=this.element.children("li"),c=a?b.not(".ui-screen-hidden"):b.filter(":visible"),this._removeCorners(b),d=c.first().addClass("ui-corner-top"),d.add(d.find(".ui-btn-inner")).find(".ui-li-link-alt").addClass("ui-corner-tr").end().find(".ui-li-thumb").not(".ui-li-icon").addClass("ui-corner-tl"),e=c.last().addClass("ui-corner-bottom"),e.add(e.find(".ui-btn-inner")).find(".ui-li-link-alt").addClass("ui-corner-br").end().find(".ui-li-thumb").not(".ui-li-icon").addClass("ui-corner-bl"))},refresh:function(b){this.parentPage=this.element.closest(".ui-page"),this._createSubPages();var c=this.options,d=this.element,e=this,f=d.jqmData("dividertheme")||c.dividerTheme,g=d.jqmData("splittheme"),h=d.jqmData("spliticon"),i=d.children("li"),j=a.support.cssPseudoElement||!a.nodeName(d[0],"ol")?0:1,k,l,m,n,o,p,q,r,s,t;j&&d.find(".ui-li-dec").remove();for(s=0,t=i.length;s<t;s++){k=i.eq(s),l="ui-li";if(b||!k.hasClass("ui-li"))m=k.jqmData("theme")||c.theme,n=k.children("a"),n.length?(r=k.jqmData("icon"),k.buttonMarkup({wrapperEls:"div",shadow:!1,corners:!1,iconpos:"right",icon:!1,theme:m}),r!=0&&n.length==1&&k.addClass("ui-li-has-arrow"),n.first().addClass("ui-link-inherit"),n.length>1&&(l+=" ui-li-has-alt",o=n.last(),p=g||o.jqmData("theme")||c.splitTheme,o.appendTo(k).attr("title",o.getEncodedText()).addClass("ui-li-link-alt").empty().buttonMarkup({shadow:!1,corners:!1,theme:m,icon:!1,iconpos:!1}).find(".ui-btn-inner").append(a("<span />").buttonMarkup({shadow:!0,corners:!0,theme:p,iconpos:"notext",icon:h||o.jqmData("icon")||c.splitIcon})))):k.jqmData("role")==="list-divider"?(l+=" ui-li-divider ui-btn ui-bar-"+f,k.attr("role","heading"),j&&(j=1)):l+=" ui-li-static ui-body-"+m;j&&l.indexOf("ui-li-divider")<0&&(q=k.is(".ui-li-static:first")?k:k.find(".ui-link-inherit"),q.addClass("ui-li-jsnumbering").prepend("<span class='ui-li-dec'>"+j++ +". </span>")),k.add(k.children(".ui-btn-inner")).addClass(l),e._itemApply(d,k)}this._refreshCorners(b)},_idStringEscape:function(a){return a.replace(/\W/g,"-")},_createSubPages:function(){var b=this.element,d=b.closest(".ui-page"),e=d.jqmData("url"),f=e||d[0][a.expando],g=b.attr("id"),h=this.options,i="data-"+a.mobile.ns,j=this,k=d.find(":jqmData(role='footer')").jqmData("id"),l,m;typeof c[f]=="undefined"&&(c[f]=-1),g=g||++c[f],a(b.find("li>ul, li>ol").toArray().reverse()).each(function(c){var d=this,f=a(this),j=f.attr("id")||g+"-"+c,m=f.parent(),n,p=n.first().getEncodedText(),q=(e||"")+"&"+a.mobile.subPageUrlKey+"="+j,r=f.jqmData("theme")||h.theme,s=f.jqmData("counttheme")||b.jqmData("counttheme")||h.countTheme,t,u;n=a(f.prevAll().toArray().reverse()),n=n.length?n:a("<span>"+a.trim(m.contents()[0].nodeValue)+"</span>"),l=!0,t=f.detach().wrap("<div "+i+"role='page' "+i+"url='"+q+"' "+i+"theme='"+r+"' "+i+"count-theme='"+s+"'><div "+i+"role='content'></div></div>").parent().before("<div "+i+"role='header' "+i+"theme='"+h.headerTheme+"'><div class='ui-title'>"+p+"</div></div>").after(k?a("<div "+i+"role='footer' "+i+"id='"+k+"'>"):"").parent().appendTo(a.mobile.pageContainer),t.page(),u=m.find("a:first"),u.length||(u=a("<a/>").html(n||p).prependTo(m.empty())),u.attr("href","#"+q)}).extendablelist(),l&&d.is(":jqmData(external-page='true')")&&d.data("page").options.domCache===!1&&(m=function(b,c){var f=c.nextPage,g;c.nextPage&&(g=f.jqmData("url"),g.indexOf(e+"&"+a.mobile.subPageUrlKey)!==0&&(j.childPages().remove(),d.remove()))},d.unbind("pagehide.remove").bind("pagehide.remove",m))},childPages:function(){var b=this.parentPage.jqmData("url");return a(":jqmData(url^='"+b+"&"+a.mobile.subPageUrlKey+"')")}}),a(document).bind("pagecreate create",function(b){a(a.tizen.extendablelist.prototype.options.initSelector,b.target).extendablelist()})}(jQuery),ensureNS("jQuery.mobile.tizen.clrlib"),jQuery.extend(jQuery.mobile.tizen.clrlib,{nearestInt:function(a){var b=Math.floor(a);return a-b>.5?b+1:b},HTMLToRGB:function(a){return a="#"==a.charAt(0)?a.substring(1):a,[a.substring(0,2),a.substring(2,4),a.substring(4,6)].map(function(a){return parseInt(a,16)/255})},RGBToHTML:function(a){return"#"+a.map(function(a){var b=a*255,c=Math.floor(b);return b=b-c>.5?c+1:c,b=(b<16?"0":"")+(b&255).toString(16),b}).join("")},HSLToRGB:function(a){var b=a[0]/360,c=a[1],d=a[2];if(0===c)return[d,d,d];var e=d<.5?d*(1+c):d+c-d*c,f=2*d-e,g={r:b+1/3,g:b,b:b-1/3};return g.r=g.r<0?g.r+1:g.r>1?g.r-1:g.r,g.g=g.g<0?g.g+1:g.g>1?g.g-1:g.g,g.b=g.b<0?g.b+1:g.b>1?g.b-1:g.b,ret=[6*g.r<1?f+(e-f)*6*g.r:2*g.r<1?e:3*g.r<2?f+(e-f)*(2/3-g.r)*6:f,6*g.g<1?f+(e-f)*6*g.g:2*g.g<1?e:3*g.g<2?f+(e-f)*(2/3-g.g)*6:f,6*g.b<1?f+(e-f)*6*g.b:2*g.b<1?e:3*g.b<2?f+(e-f)*(2/3-g.b)*6:f],ret},HSVToRGB:function(a){return $.mobile.tizen.clrlib.HSLToRGB($.mobile.tizen.clrlib.HSVToHSL(a))},RGBToHSV:function(a){var b,c,d,e,f,g,h=a[0],i=a[1],j=a[2];return b=Math.min(h,Math.min(i,j)),c=Math.max(h,Math.max(i,j)),d=c-b,e=0,f=0,g=c,d>1e-5&&(f=d/c,h===c?e=(i-j)/d:i===c?e=2+(j-h)/d:e=4+(h-i)/d,e*=60,e<0&&(e+=360)),[e,f,g]},HSVToHSL:function(a){var b=a[2],c=a[1]*b,d=b-c,e=b+d,f=e/2,g=f<.5?e:2-b-d;return[a[0],0==g?0:c/g,f]},RGBToHSL:function(a){return $.mobile.tizen.clrlib.HSVToHSL($.mobile.tizen.clrlib.RGBToHSV(a))}}),function(a,b,c){a.mobile.defaultPageTransition="none",a.mobile.transitionHandlers.depth=a.mobile.transitionHandlers.simultaneous,a.mobile.transitionFallbacks.depth="fade",a.fn.buttonMarkup.defaults.corners=!1,a.mobile.buttonMarkup.hoverDelay=0}(jQuery,this),function(a,b,c,d){function m(){this.vertices=[-1,-1,0,1,-1,0,1,1,0,-1,1,0],this.textureCoords=[1,0,0,0,0,1,1,1],this.normalVectors=[0,0,1,0,0,1,0,0,1,0,0,1],this.texture=null,this.textureBuffer=null,this.textureBufferItemSize=0,this.mashOrder=[],this.mvMatrix=null,this.level=-1,this.targetLevel=0,this.drawable=!1,this.image=null,this.imageID=0}c.requestAnimationFrame=function(){return function(a){var b=c.setTimeout(a,1e3/60);return b}}(),c.cancelAnimationFrame=function(){return function(a){c.clearTimeout(a)}}();var e=c.vec3,f=c.mat3,g=c.mat4,h=typeof c.Float32Array!="undefined"?c.Float32Array:typeof c.WebGLFloatArray!="undefined"?c.WebGLFloatArray:Array,i=typeof c.Uint16Array!="undefined"?c.Uint16Array:Array,j=function(a){var b,d,e=["experimental-webgl","webkit-3d","webgl","moz-webgl"];for(d=0;d<e.length;d+=1)try{b=a.getContext(e[d]);if(b)break}catch(f){c.alert("Unfortunately, there's a WebGL compatibility problem. </br> You may want to check your system settings.");return}return b},k=["attribute vec3 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec3 aVertexNormal;","uniform mat4 uMoveMatrix;","uniform mat4 uPerspectiveMatrix;","uniform mat3 nNormalMatrix;","uniform vec3 uAmbientColor;","uniform vec3 uLightDirection;","uniform vec3 uDirectionColor;","uniform vec3 uLightDirection_first;","uniform vec3 uLightDirection_second;","varying vec2 vTextureCoord;","varying vec3 vLightWeight;","varying vec4 vFogWeight;","void main(void) {","\tvec4 v_Position = uMoveMatrix * vec4(aVertexPosition, 1.0);","\tgl_Position = uPerspectiveMatrix * v_Position;","\tvTextureCoord = aTextureCoord;","\tfloat fog = 1.0 - ((gl_Position.z + 1.5) / 60.0);","\tvFogWeight = clamp( vec4( fog, fog, fog, 1.0), 0.6, 1.0);","\tvec3 transNormalVector = nNormalMatrix * aVertexNormal;","\tfloat vLightWeightFirst = 0.0;","\tfloat vLightWeightSecond = max( dot(transNormalVector, uLightDirection_second), 0.0 );","\tvLightWeight = uAmbientColor + uDirectionColor * vLightWeightSecond;","}"].join("\n"),l=["precision mediump float;","varying vec2 vTextureCoord;","varying vec3 vLightWeight;","uniform sampler2D uSampler;","varying vec4 vFogWeight;","void main(void) {","\tvec4 TextureColor;","\tif ( vTextureCoord.s <= 0.01 || vTextureCoord.s >= 0.99 || vTextureCoord.t <= 0.01 || vTextureCoord.t >= 0.99 ) {","\t\tTextureColor = vec4(1.0, 1.0, 1.0, 0.5);","\t} else {","\t\tTextureColor = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));","\t}","\tTextureColor *= vFogWeight;","\tgl_FragColor = vec4(TextureColor.rgb * vLightWeight, TextureColor.a);","}"].join("\n");a.widget("tizen.gallery3d",a.mobile.widget,{options:{thumbnailCache:!1},_MAX_ITEM_COUNT:28,_ANIMATION_END:999,_DURATION_DEFAULT:300,_DURATION_FIRST:1600,_VIEWPORT_WIDTH:1024,_VIEWPORT_HEIGHT:456,_DIRECTION_LEFT:-1,_DIRECTION_RIGHT:1,_gl:null,_shaderProgram:null,_positionBuffer:null,_textureCoordBuffer:null,_normalVectorBuffer:null,_nodes:null,_pMatrix:null,_animationID:0,_dragInterval:0,_startTime:0,_sumTime:0,_lightsPositionStack:[[0,0,-1],[-0.2,0,.7]],_path:null,_swipeThresholdOfBasetimeGap:a.support.touch?30:70,_swipeThresholdOfSensitivity:a.support.touch?2:10,_canvas:null,_imageList:[],_maxDrawLength:0,_firstImageNumber:0,_lastImageNumber:0,_create:function(){var b=this,c=b.element,e=b.options;b._canvas=a("<canvas class='ui-gallery3d-canvas'></canvas>"),c.addClass("ui-gallery3d").append(b._canvas),b._addBehavier(),b._dragInterval=1e3/30,a.each(b.options,function(a,c){b.options[a]=d,b._setOption(a,c)})},_setOption:function(b,c){switch(b){case"thumbnailCache":typeof c=="string"?c=c==="true"?!0:!1:c=!!c,this._reset()}a.mobile.widget.prototype._setOption.call(this,b,c)},_init:function(b){var c=this,d=[[40,0,-48],[-12,0,-40],[24,0,-9],[-5,0,-5]],e;b=b||c._canvas;if(!b)return;c._gl=c._gl||c._initGL(b[0]);if(!c._gl)return;if(!c._imageList)return;c._shaderProgram=c._shaderProgram||c._initShader(c._gl);if(!c._shaderProgram)return;c._imageList.length>c._MAX_ITEM_COUNT&&(c._firstImageNumber=c._imageList.length-1,c._lastImageNumber=c._MAX_ITEM_COUNT-1),c._nodes=c._initBuffers(c._gl,c._shaderProgram),c._initTextures(c._gl,c._nodes),c._path=a.motionpath("bezier2d",{points:d,maxLevel:c._MAX_ITEM_COUNT});for(e=0;e<c._nodes.length;e+=1)c._path.levels[e]=c._path.levels[e+1]||0,c._nodes[e].level=e},_final:function(b){var c=this,d=c._gl;if(!d)return;b=b||c._canvas,a(c._nodes).each(function(a){var b=c._nodes[a];d.deleteTexture(b.texture),b.texture=null}),c._nodes=null,d.deleteBuffer(c._positionBuffer),c._positionBuffer=null,d.deleteBuffer(c._textureCoordBuffer),c._textureCoordBuffer=null,d.deleteBuffer(c._normalVectorBuffer),c._normalVectorBuffer=null,a.webgl.shader.deleteShaders(d),d.deleteProgram(c._shaderProgram),c._shaderProgram=null,c._gl=d=null},_addBehavier:function(){var d=this,e=d.element,f=d._canvas,g=a.support.touch?"touchstart":"mousedown",h=(a.support.touch?"touchmove":"mousemove")+".gallery3d",i=(a.support.touch?"touchend":"mouseup")+".gallery3d",j=(a.support.touch?"touchleave":"mouseout")+".gallery3d";a(b).unbind(".gallery3d").bind("pagechange.gallery3d",function(b){a(b.target).find(".ui-gallery3d").gallery3d("refresh")}).bind("pageremove.gallery3d",function(b){a(b.target).find(".ui-gallery3d").trigger("_destory")}),a(c).unbind(".gallery3d").bind("resize.gallery3d orientationchange.gallery3d",function(b){a(".ui-page-active").find(".ui-gallery3d").gallery3d("refresh")}).bind("unload.gallery3d",function(b){a(b.target).find(".ui-gallery3d").trigger("_destory")}),e.bind("_destory",function(a){d._final()}),f.bind("webglcontextlost",function(a){a.preventDefault()}).bind("webglcontextrestored",function(a){d._init()}).bind(g,function(b){var c=0,f=0,g=20,k=[g],l=[g],m=0,n=0,o=!1,p=0;b.preventDefault(),b.stopPropagation();if(d._imageList.length<=1)return;d._stop(),f=a.support.touch?b.originalEvent.changedTouches[0].pageX:b.pageX,p=a.now();for(c=0;c<g;c+=1)k[c]=f,l[c]=a.now();m+=1,e.bind(h,function(b){var c,e,h;b.preventDefault(),b.stopPropagation(),c=a.support.touch?b.originalEvent.changedTouches[0].pageX:b.pageX,e=f-c,k[m]=c,l[m]=a.now(),h=l[m]-p,m=(m+1)%g,Math.abs(e)>=10&&h>=d._dragInterval&&(o!==(e<0?d._DIRECTION_RIGHT:d._DIRECTION_LEFT)&&(n=0,o=e<0?d._DIRECTION_RIGHT:d._DIRECTION_LEFT),n+=Math.abs(e)/100,n>=1?(d._setPosition(d._ANIMATION_END,o),n=0):d._setPosition(n,o),d._drawScene(),f=c,p=a.now())}).bind(i,function(b){var h=0,i=-1,j=0,p=0,q=0,r=0,s=0,t=0,u=0,v=!0,w;b.preventDefault(),b.stopPropagation(),h=a.now()-d._swipeThresholdOfBasetimeGap,s=a.support.touch?b.originalEvent.changedTouches[0].pageX:b.pageX,u=f-s,f=0;for(c=0;c<g;c+=1){j=(m+c)%g;if(l[j]>h){i=j;break}}i<0&&(v=!1);if(v){p=i;for(c=0;c<g;c+=1){p=(p-1+g)%g;if(l[p]<l[i])break}if(c===g||h<l[p])v=!1}v&&(q=(h-l[p])/(l[i]-l[p]),r=(1-q)*k[p]+q*k[i],Math.abs(r-s)<d._swipeThresholdOfSensitivity&&(r=s),t=parseInt((s-r)/(a.now()-h),10)),v&&t?(w=t<0?d._DIRECTION_LEFT:d._DIRECTION_RIGHT,d._run(w,Math.abs(t),n)):o!==0&&n&&d._animate(null,d._DURATION_DEFAULT*(1-n),o,0,n),e.unbind(".gallery3d")}).bind(j,function(a){e.trigger(i)})})},_initGL:function(a){var b=this,d;return d=j(a),d?(d.enable(d.BLEND),d.blendFunc(d.SRC_ALPHA,d.ONE_MINUS_SRC_ALPHA),d.enable(d.DEPTH_TEST),d.depthFunc(d.LEQUAL),a.width=b._VIEWPORT_WIDTH,a.height=b._VIEWPORT_HEIGHT,d.viewportWidth=a.width,d.viewportHeight=a.height,d.viewport(0,0,d.viewportWidth,d.viewportHeight),b._pMatrix=g.create(),g.perspective(40,d.viewportWidth/d.viewportHeight,.1,1e4,b._pMatrix),d.clearColor(.15,.15,.15,1),d.clear(d.COLOR_BUFFER_BIT|d.DEPTH_BUFFER_BIT),d):(c.alert("There's no WebGL context available!!!"),null)},_initShader:function(b){var c=this,d;return d=a.webgl.shader.addShaderProgram(c._gl,k,l),b.useProgram(d),d.vertexPositionAttr=b.getAttribLocation(d,"aVertexPosition"),b.enableVertexAttribArray(d.vertexPositionAttr),d.textureCoordAttr=b.getAttribLocation(d,"aTextureCoord"),b.enableVertexAttribArray(d.textureCoordAttr),d.vertexNormalAttr=b.getAttribLocation(d,"aVertexNormal"),b.enableVertexAttribArray(d.vertexNormalAttr),d.perspectiveMU=b.getUniformLocation(d,"uPerspectiveMatrix"),d.transformMU=b.getUniformLocation(d,"uMoveMatrix"),d.sampleUniform=b.getUniformLocation(d,"uSampler"),d.normalMU=b.getUniformLocation(d,"nNormalMatrix"),d.ambientColorU=b.getUniformLocation(d,"uAmbientColor"),d.lightDirU_first=b.getUniformLocation(d,"uLightDirection_first"),d.lightDirU_second=b.getUniformLocation(d,"uLightDirection_second"),d.directionColorU=b.getUniformLocation(d,"uDirectionColor"),d},_initBuffers:function(b,c){var d=this,e=0,f=0,g=[],j=[],k=[],l=[],n=d._MAX_ITEM_COUNT;for(e=0;e<d._imageList.length+1;e+=1)l[e]=new m,a.merge(g,l[e].vertices),a.merge(j,l[e].textureCoords),a.merge(k,l[e].normalVectors),l[e].textureBuffer=b.createBuffer(),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,l[e].textureBuffer),f=e*4,l[e].meshOrder=[f,f+1,f+2,f+2,f+3,f],b.bufferData(b.ELEMENT_ARRAY_BUFFER,new i(l[e].meshOrder),b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,null),l[e].textureBufferItemSize=6;return d._positionBuffer=a.webgl.buffer.attribBufferData(b,new h(g)),d._positionBuffer.itemSize=3,d._textureCoordBuffer=a.webgl.buffer.attribBufferData(b,new h(j)),d._textureCoordBuffer.itemSize=2,d._normalVectorBuffer=a.webgl.buffer.attribBufferData(b,new h(k)),d._normalVectorBuffer.itemSize=3,b.uniform3f(c.ambientColorU,.1,.1,.1),b.uniform3f(c.directionColorU,1,1,1),l},_initTextures:function(b,c){var d=this;a(c).each(function(a){var e=c[a],f;if(!d._imageList[a])return!1;f=d._imageList[a].src,e.texture=b.createTexture(),d._loadImage(f,a,a,b,c)})},_loadImage:function(b,c,d,e,f){var g=this,h=!1,i,j;e=e||g._gl,f=f||g._nodes,h=h||!1,j=f[c],j.image=j.image||new Image,a(j.image).one("load",function(a){g._bindTexture(e,j,this,h),j.imageID=d,g._animationID||g._setPosition(0,0)}),g.options.thumbnailCache?a.imageloader.getThumbnail(b,function(c){c==="NOT_FOUND_ERR"?a.imageloader.setThumbnail(b,function(a){a&&a.length>30?(j.image.src=a,h=!0):j.image.src=b}):c&&c.length>30?(j.image.src=c,h=!0):j.image.src=b}):j.image.src=b},_bindTexture:function(a,b,c,d){if(!b||!b.texture)return;a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!0),a.bindTexture(a.TEXTURE_2D,b.texture),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,c),d?(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR_MIPMAP_NEAREST),a.generateMipmap(a.TEXTURE_2D)):(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR)),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),b.texture.loaded=!0,a.bindTexture(a.TEXTURE_2D,null)},_setPosition:function(a,b){var c=this,d=c._nodes,e=c._imageList,f=e.length,h=c._MAX_ITEM_COUNT,i=f>h?h:f,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=c._path,s=0;j=b>=0?i+1:i,d[k].level||(d[k].level=i);for(k=0;k<i;k+=1)d[k].mvMatrix||(d[k].mvMatrix=g.create()),b>0&&d[k].level>=i&&(d[k].level=0),o=r.levels[d[k].level],q=(d[k].level+j+b)%j,p=r.levels[q],f>h&&(b>0&&q===1&&c._firstImageNumber!==d[k].imageID?c._loadImage(e[c._firstImageNumber].src,k,c._firstImageNumber):b<0&&q===j-1&&c._lastImageNumber!==d[k].imageID&&c._loadImage(e[c._lastImageNumber].src,k,c._lastImageNumber)),g.identity(d[k].mvMatrix),g.translate(d[k].mvMatrix,[-2,-2,1]),g.rotate(d[k].mvMatrix,c._degreeToRadian(19),[1,0,0]),l=o+(p-o)*(a>1?1:a),a>=c._ANIMATION_END&&(d[k].level=q||i,l=r.levels[d[k].level]),a<c._ANIMATION_END&&b<=0&&d[k].level<1?d[k].drawable=!1:d[k].drawable=!0,a===c._ANIMATION_END&&d[k].level===1&&c.element.trigger("select",e[d[k].imageID],d[k].imageID),m=r.getPosition(l),n=r.getAngle(l),g.translate(d[k].mvMatrix,m),g.rotate(d[k].mvMatrix,n,[0,1,0]);f>h&&a>=c._ANIMATION_END&&(c._firstImageNumber=(c._firstImageNumber-b)%f,c._firstImageNumber<0&&(c._firstImageNumber=f-1),c._lastImageNumber=(c._lastImageNumber-b)%f,c._lastImageNumber<0&&(c._lastImageNumber=f-1)),c._drawScene()},_drawScene:function(){if(!this._gl||!this._shaderProgram)return;var a=this,b=a._gl,c=a._shaderProgram,d=a._nodes,e=d.length,f;b.clear(b.COLOR_BUFFER_BIT|b.DEPTH_BUFFER_BIT),b.bindBuffer(b.ARRAY_BUFFER,a._positionBuffer),b.vertexAttribPointer(c.vertexPositionAttr,a._positionBuffer.itemSize,b.FLOAT,!1,0,0),b.bindBuffer(b.ARRAY_BUFFER,a._textureCoordBuffer),b.vertexAttribPointer(c.textureCoordAttr,a._textureCoordBuffer.itemSize,b.FLOAT,!1,0,0),b.bindBuffer(b.ARRAY_BUFFER,a._normalVectorBuffer),b.vertexAttribPointer(c.vertexNormalAttr,a._normalVectorBuffer.itemSize,b.FLOAT,!1,0,0);for(f=0;f<e;f+=1)d[f].drawable&&a._drawElement(a._pMatrix,d[f])},_drawElement:function(a,b){var c=this,d=c._gl,h=c._shaderProgram,i=b.mvMatrix,j=b.texture,k=b.textureBuffer,l=b.textureBufferItemSize,m=c._lightsPositionStack,n,o;if(!i)return;d.activeTexture(d.TEXTURE0),j&&j.loaded&&d.bindTexture(d.TEXTURE_2D,j),d.uniform1i(h.sampleUniform,0),n=e.create(),e.normalize(m[0],n),e.scale(n,-8),d.uniform3fv(h.lightDirU_first,n),e.normalize(m[1],n),e.scale(n,-1),d.uniform3fv(h.lightDirU_second,n),d.bindBuffer(d.ELEMENT_ARRAY_BUFFER,k),d.uniformMatrix4fv(h.perspectiveMU,!1,a),d.uniformMatrix4fv(h.transformMU,!1,i),o=f.create(),g.toInverseMat3
+(i,o),f.transpose(o),d.uniformMatrix3fv(h.normalMU,!1,o),d.drawElements(d.TRIANGLES,l,d.UNSIGNED_SHORT,0),d.bindBuffer(d.ARRAY_BUFFER,null),d.bindBuffer(d.ELEMENT_ARRAY_BUFFER,null),d.bindTexture(d.TEXTURE_2D,null)},_animate:function(b,d,e,f,g,h){var i=this,j=a.now(),k,l=0;b=b||"linear",g=g||0,h=h||0;if(i._sumTime>=d){i._setPosition(i._ANIMATION_END,e),i._stop();return}if(i._startTime===0)i._startTime=j;else{i._sumTime=j-i._startTime,k=a.easing[b](i._sumTime/d,i._sumTime,g,f+1,d),l=parseInt(Math.abs(k),10);if(h!==l){i._setPosition(i._ANIMATION_END,e),h=l,f-h>=0?i._animate(b,d,e,f,g,h):i._stop();return}i._setPosition(k-h,e)}i._animationID=c.requestAnimationFrame(function(){i._animate(b,d,e,f,g,h)})},_run:function(a,b,c){var d=this,e=b||0,f=d._DURATION_DEFAULT*(e+1);if(d._imageList.length<=1)return;c=c||0,f=f>=0?f:0,d._animationID&&(d._setPosition(d._ANIMATION_END,a),d._stop()),d._animate("easeOutExpo",f,a,e,c)},_reset:function(){if(!this._canvas||!this._gl)return;this._final(),this._init(),this.refresh()},_stop:function(){this._animationID&&c.cancelAnimationFrame(this._animationID),this._animationID=0,this._startTime=0,this._sumTime=0},_degreeToRadian:function(a){return a*Math.PI/180},next:function(){this._run(this._DIRECTION_LEFT,0)},prev:function(){this._run(this._DIRECTION_RIGHT,0)},refresh:function(){var a=this.element,b=a.find("canvas.ui-gallery3d-canvas");b.width()!==a.width()&&b.width(a.width()),this._animationID||this._setPosition(0,0)},select:function(a){var b=this._nodes,c,d,e,f=null,g=0,h=0;a&&this._animationID&&this._stop();for(d in b)if(b[d].level===1){f=this._imageList[b[d].imageID],e=b[d].imageID;break}if(!a)return f;if(a<0&&a>=this._imageList.length)return;g=a-e,h=g>0?this._DIRECTION_LEFT:g<0?this._DIRECTION_RIGHT:0,h&&this._run(h,Math.abs(g)-1)},add:function(a,b){if(!a)return;typeof a=="string"&&(a={src:a}),b=b||0;if(typeof b!="number"&&b<0&&b>=this._imageList.length)return;this._imageList.splice(b,0,a),this._gl&&this._reset()},remove:function(a){a=a||0;if(typeof a!="number"&&a<0&&a>=this._imageList.length)return;this._imageList.splice(a,1),this._gl&&this._reset()},clearThumbnailCache:function(){if(!this._nodes||this._nodes.length<=0)return;var b,c;for(b=0;b<this._imageList.length;b+=1)c=this._imageList[b].src,a.imageloader.removeThumbnail(c)},empty:function(){this._imageList=[],this._reset()},length:function(){return this._imageList.length}}),a(b).bind("pagecreate create",function(b){a(":jqmData(role='gallery3d')").gallery3d()})}(jQuery,document,window),ensureNS("jQuery.mobile.tizen"),function(){jQuery.extend(jQuery.mobile.tizen,{disableSelection:function(a){return this.enableSelection($(a).find("*").not('input, [type="text"], textarea'),"none"),!0},enableSelection:function(a,b){var c;switch(b){case"text":case"auto":case"none":c=b;break;default:c="auto"}return $(a).css({"user-select":c,"-moz-user-select":c,"-webkit-user-select":c,"-o-user-select":c,"-ms-transform":c})},disableContextMenu:function(a){var b=this;$(a).find("*").each(function(){$(this).get(0).tagName!=="INPUT"&&$(this).attr("type")!=="text"&&$(this).get(0).tagName!=="TEXTAREA"&&b._disableContextMenu(this)})},_disableContextMenu:function(a){$(a).each(function(){$(this).bind("contextmenu",function(a){return!1})})},enableContextMenu:function(a){$(a).each(function(){$(this).unbind("contextmenu")})},documentRelativeCoordsFromEvent:function(a){var b=a?a:window.event,c={x:b.clientX,y:b.clientY},d={x:b.pageX,y:b.pageY},e=0,f=0;b.type.match(/^touch/)&&(d={x:b.originalEvent.targetTouches[0].pageX,y:b.originalEvent.targetTouches[0].pageY},c={x:b.originalEvent.targetTouches[0].clientX,y:b.originalEvent.targetTouches[0].clientY});if(d.x||d.y)e=d.x,f=d.y;else if(c.x||c.y)e=c.x+document.body.scrollLeft+document.documentElement.scrollLeft,f=c.y+document.body.scrollTop+document.documentElement.scrollTop;return{x:e,y:f}},targetRelativeCoordsFromEvent:function(a){var b={x:a.offsetX,y:a.offsetY};if(b.x===undefined||isNaN(b.x)||b.y===undefined||isNaN(b.y)){var c=$(a.target).offset();b=$.mobile.tizen.documentRelativeCoordsFromEvent(a),b.x-=c.left,b.y-=c.top}return b}})}(),function(a,b){a.widget("mobile.pagelayout",a.mobile.widget,{options:{visibleOnPageShow:!0,disablePageZoom:!0,transition:"slide",fullscreen:!1,tapToggle:!0,tapToggleBlacklist:"a, input, select, textarea, .ui-header-fixed, .ui-footer-fixed",hideDuringFocus:"input, textarea, select",updatePagePadding:!0,supportBlacklist:function(){var a=window,c=navigator.userAgent,d=navigator.platform,e=c.match(/AppleWebKit\/([0-9]+)/),f=!!e&&e[1],g=c.match(/Fennec\/([0-9]+)/),h=!!g&&g[1],i=c.match(/Opera Mobi\/([0-9]+)/),j=!!i&&i[1];return(d.indexOf("iPhone")>-1||d.indexOf("iPad")>-1||d.indexOf("iPod")>-1)&&f&&f<534||a.operamini&&{}.toString.call(a.operamini)==="[object OperaMini]"||i&&j<7458||c.indexOf("Android")>-1&&f&&f<533||h&&h<6||window.palmGetResource!==b&&f&&f<534||c.indexOf("MeeGo")>-1&&c.indexOf("NokiaBrowser/8.5.0")>-1?!0:!1},initSelector:":jqmData(role='content')"},_create:function(){var a=this,b=a.options,c=a.element;if(b.supportBlacklist()){a.destroy();return}a._addFixedClass(),a._addTransitionClass(),a._bindPageEvents(),a._bindContentControlEvents(),a._backBtnQueue=[]},_addFixedClass:function(){var a=this,b=a.options,c=a.element,d=c.siblings(":jqmData(role='header')"),e=c.siblings(":jqmData(role='footer')"),f=c.closest(".ui-page");d.addClass("ui-header-fixed"),e.addClass("ui-footer-fixed"),b.fullscreen?(d.addClass("ui-header-fullscreen"),e.addClass("ui-footer-fullscreen"),f.addClass("ui-page-header-fullscreen").addClass("ui-page-footer-fullscreen")):f.addClass("ui-page-header-fixed").addClass("ui-page-footer-fixed")},_addTransitionClass:function(){var a=this.options.transition;a&&a!=="none"&&(a==="slide"&&(a=this.element.is(".ui-header")?"slidedown":"slideup"),this.element.addClass(a))},setHeaderFooter:function(b){var c=a(b),d=c.find(":jqmData(role='header')").length?c.find(":jqmData(role='header')"):c.siblings(":jqmData(role='header')"),e=c.find(".ui-content"),f=c.find(":jqmData(role='footer')"),g=f.find(":jqmData(role='fieldcontain')"),h=f.find(".ui-controlgroup");c.is(".ui-dialog")||(d.jqmData("position")=="fixed"||a.support.scrollview&&a.tizen.frameworkData.theme.match(/tizen/)?d.css("position","fixed").css("top","0px"):!a.support.scrollview&&d.jqmData("position")!="fixed"&&d.css("position","relative")),d.find("span.ui-title-text-sub").length&&d.addClass("ui-title-multiline"),g.find("div").is(".ui-controlgroup-label")&&g.find("div.ui-controlgroup-label").remove();if(h.length){var i=100/h.find("a").length;h.find("a").each(function(a){h.find("a").eq(a).width(i+"%")})}},_bindPageEvents:function(){var b=this,c=b.options,d=b.element,e;d.closest(".ui-page").bind("pagebeforeshow",function(d){var e=this;c.disablePageZoom&&a.mobile.zoom.disable(!0),c.visibleOnPageShow||b.hide(!0),b.setHeaderFooter(e),b._setContentMinHeight(e)}).bind("webkitAnimationStart animationstart updatelayout",function(a,d){var e=this;c.updatePagePadding&&(b.updatePagePadding(e),b.updatePageLayout(e,d))}).bind("pageshow",function(d){var e=this;b._setContentMinHeight(e),b.updatePagePadding(e),b._updateHeaderArea(e),c.updatePagePadding&&a(window).bind("throttledresize."+b.widgetName,function(){b.updatePagePadding(e),b.updatePageLayout(e,!1),b._updateHeaderArea(e),b._setContentMinHeight(e)})}).bind("pagebeforehide",function(d,e){c.disablePageZoom&&a.mobile.zoom.enable(!0),c.updatePagePadding&&a(window).unbind("throttledresize."+b.widgetName)}),window.addEventListener("softkeyboardchange",function(c){var d=a("<div class='ui-btn-footer-down'></div>"),e=a(".ui-page-active"),f,g="footer";e.data("addBackBtn")&&(e.data("addBackBtn")=="header"?g="header":g="footer",c.state=="on"?(e.find(".ui-"+g+" .ui-btn-footer-down").length||d.buttonMarkup({icon:"down"}).appendTo(e.find(".ui-"+g)),f=a(".ui-page-active .ui-btn-back"),f.hide(),b._backBtnQueue.push(f)):c.state=="off"&&(b._backBtnQueue.forEach(function(a){a.show()}),b._backBtnQueue.length=0,a(".ui-btn-footer-down").remove()))})},_bindContentControlEvents:function(){var a=this,b=a.options,c=a.element;c.closest(".ui-page").bind("pagebeforeshow",function(a){})},_setContentMinHeight:function(b){var c=a(b),d=c.find(":jqmData(role='header')"),e=c.find(":jqmData(role='footer')"),f=c.find(":jqmData(role='content')"),g,h=1,i=window.innerHeight;a.support.scrollview||(h=window.outerWidth/window.innerWidth,i=Math.floor(window.outerHeight/h)),g=i-d.height()-e.height(),f.css("min-height",g-parseFloat(f.css("padding-top"))-parseFloat(f.css("padding-bottom"))+"px")},_updateHeaderArea:function(b){var c=a(b),d=c.find(":jqmData(role='header')").length?c.find(":jqmData(role='header')"):c.siblings(":jqmData(role='header')"),e=d.children("a").length,f=d.children("img").length;c.is(".ui-dialog")||d.find("h1").css("width",window.innerWidth-parseInt(d.find("h1").css("margin-left"),10)*2-d.children("a").width()*e-d.children("a").width()/4-d.children("img").width()*f*4)},_visible:!0,updatePagePadding:function(b){var c=this.element,d=c.siblings(".ui-header").length,e=c.siblings(".ui-footer").length;if(this.options.fullscreen)return;b=b||c.closest(".ui-page"),(c.siblings(".ui-header").jqmData("position")=="fixed"||a.support.scrollview)&&a(b).css("padding-top",d?c.siblings(".ui-header").outerHeight():0),a(b).css("padding-bottom",e?c.siblings(".ui-footer").outerHeight():0)},updatePageLayout:function(b,c){var d,e=a(b),f=e.find(":jqmData(role='header')"),g=e.find(":jqmData(role='content')"),h=0,i=0,j=0,k=window.innerHeight,l=1;e.length?d=e.find(":jqmData(role='footer')"):d=a(document).find(":jqmData(role='footer')").eq(0),i=d.css("display")=="none"||d.length==0?0:d.height(),j=f.css("display")=="none"||f.length==0?0:f.height(),i!=0&&d.css("bottom",0),a.support.scrollview||(l=window.outerWidth/window.innerWidth,k=Math.floor(window.outerHeight/l)),h=k-i-j,a.support.scrollview&&g.height(h-parseFloat(g.css("padding-top"))-parseFloat(g.css("padding-bottom"))),c&&e.css("min-height",h).css("padding-top",j).css("padding-bottom",i)},show:function(a){},hide:function(a){},toggle:function(){this[this._visible?"hide":"show"]()},destroy:function(){this.element.removeClass("ui-header-fixed ui-footer-fixed ui-header-fullscreen ui-footer-fullscreen in out fade slidedown slideup ui-fixed-hidden"),this.element.closest(".ui-page").removeClass("ui-page-header-fixed ui-page-footer-fixed ui-page-header-fullscreen ui-page-footer-fullscreen")},refresh:function(){var b=a(".ui-page-active");this.setHeaderFooter(b),this._updateHeaderArea(b)}}),a(document).bind("pagecreate create",function(b){a(b.target).jqmData("fullscreen")&&a(a.mobile.pagelayout.prototype.options.initSelector,b.target).not(":jqmData(fullscreen)").jqmData("fullscreen",!0),a.mobile.pagelayout.prototype.enhanceWithin(b.target)})}(jQuery),function(a,b){var c={},d=0,e=1,f=-1;a.widget("tizen.virtuallistview",a.mobile.widget,{options:{theme:"s",countTheme:"s",headerTheme:"s",dividerTheme:"s",splitIcon:"arrow-r",splitTheme:"s",inset:!1,id:"",childSelector:" li",dbtable:"",template:"",dbkey:!1,scrollview:!1,row:100,page_buf:30,initSelector:":jqmData(role='virtuallistview')"},_stylerMouseUp:function(){a(this).addClass("ui-btn-up-s"),a(this).removeClass("ui-btn-down-s")},_stylerMouseDown:function(){a(this).addClass("ui-btn-down-s"),a(this).removeClass("ui-btn-up-s")},_stylerMouseOver:function(){a(this).toggleClass("ui-btn-hover-s")},_stylerMouseOut:function(){a(this).toggleClass("ui-btn-hover-s"),a(this).addClass("ui-btn-up-s"),a(this).removeClass("ui-btn-down-s")},_pushData:function(b){var c=this.options,d,e=a("#"+b),f=c.row>this._numItemData?this._numItemData:c.row,g;for(d=0;d<f;d++)g=e.tmpl(this._itemData(d)),a(c.id).append(a(g).attr("id",c.itemIDPrefix+d));a(c.id).trigger("create")},_reposition:function(b){var c,d=this,e,f;b.data?c=b.data:c=b,a(c.id+c.childSelector).size()>0&&(d._title_h=a(c.id+c.childSelector+":first").position().top,d._line_h=a(c.id+c.childSelector+":first").outerHeight(),d._container_w=a(c.id).innerWidth(),e=parseInt(a(c.id+c.childSelector).css("padding-left"),10)+parseInt(a(c.id+c.childSelector).css("padding-right"),10),a(c.id+">"+c.childSelector).addClass("position_absolute").addClass("ui-btn-up-s").bind("mouseup",d._stylerMouseUp).bind("mousedown",d._stylerMouseDown).bind("mouseover",d._stylerMouseOver).bind("mouseout",d._stylerMouseOut)),a(c.id+">"+c.childSelector).each(function(b){f=parseInt(a(this).css("margin-left"),10)+parseInt(a(this).css("margin-right"),10),a(this).css("top",d._title_h+d._line_h*b+"px").css("width",d._container_w-e-f)}),a(c.id).height(d._numItemData*d._line_h)},_resize:function(b){var c,d=this,e,f,g;b.data?c=b.data:c=b,e=a(c).children(c.childSelector),d._container_w=a(c).width(),f=parseInt(e.css("padding-left"),10)+parseInt(e.css("padding-right"),10),e.each(function(b,c){g=parseInt(a(this).css("margin-left"),10)+parseInt(a(this).css("margin-right"),10),a(this).css("width",d._container_w-f-g)})},_scrollmove:function(b){function j(){return d.scrollview?h.viewTop():i.viewTop()}function k(a){var b=!1;b&&console.log(">>virtualllist: "+a)}function l(b,c){function t(b,c,d){var e={ELEMENT_NODE:1,TEXT_NODE:3},f,g,h,i,j;a(c).find(".ui-li-text-main",".ui-li-text-sub",".ui-li-text-sub2","ui-btn-text").each(function(b){f=a(this),h=a(d).find(".ui-li-text-main",".ui-li-text-sub","ui-btn-text").eq(b).text(),a(f).contents().filter(function(){return this.nodeType==e.TEXT_NODE}).get(0).data=h}),a(c).find("img").each(function(b){var c=a(this);i=a(d).find("img").eq(b).attr("src"),a(c).attr("src",i)}),a(c).removeData()}function u(b,c,d){var e,f,g,h;return k(">> move item: "+c+" --> "+d),f=a("#"+b.options.itemIDPrefix+c),!f||!f.length?!1:(h=a("#"+b.options.template),h&&(g=h.tmpl(b._itemData(d)),t(b,f,g),g.remove()),f.css("top",d*b._line_h).attr("id",b.options.itemIDPrefix+d),!0)}var d,e,g,h=b._first_index,i=b._last_index,m,n,o,p,q=b.options.row,r,s;d=j(),r=Math.ceil(q/3),e=Math.floor(d/b._line_h)-r,g=e+q-1,e<0?(g+=-e,e=0):g>b._numItemData-1&&(e-=g-(b._numItemData-1),g=b._numItemData-1),m=e-h,k("cy="+d+", oti="+h+", obi="+i+", cti="+e+", cbi="+g+", dti="+m);if(0==m){b.timerStillCount+=1;if(b.timerStillCount<12){k("dti=0 "+b.timerStillCount+" times"),b.timerMoveID=setTimeout(l,f,b);return}k("dti=0 "+b.timerStillCount+" times. End timer."),b.timerStillCount=0,b.timerMoveID&&(clearTimeout(b.timerMoveID),b.timerMoveID=null)}else{b.timerStillCount=0,Math.abs(m)>=q?(n=h,o=i,p=m,k(">>> WHOLE CHANGE! delta="+p)):(m>0?(n=h,o=h+m-1,p=q):(n=i+m+1,o=i,p=-q),k(">>> partial change. delta="+p));for(s=n;s<=o;s++)u(b,s,s+p);b._first_index=e,b._last_index=g,b.timerMoveID=setTimeout(l,f,b)}return}var c=b.data,d=c.options,e=c._num_top_items,f=100,g,h,i;h={viewTop:function(){var b=a(d.id).parentsUntil(".ui-page").find(".ui-scrollview-view"),c=b.css("-webkit-transform"),e="0,0,0,0,0,0";return c&&(e=c.replace(/matrix\s*\((.*)\)/,"$1")),-parseInt(e.split(",")[5],10)}},i={viewTop:function(){return a(window).scrollTop()}},c.timerStillCount=0,c.timerMoveID&&(clearTimeout(c.timerMoveID),c.timerMoveID=null),l(c)},_recreate:function(b){var c=this,e=this.options;a(e.id).empty(),c._numItemData=b.length,c._direction=d,c._first_index=0,c._last_index=e.row-1,c._pushData(e.template),e.childSelector==" ul"&&a(e.id+" ul").swipelist(),a(e.id).virtuallistview(),c.refresh(!0),c._reposition(e)},_initList:function(){var b=this,c=this.options;b._pushData(c.template),a(c.id).parentsUntil(".ui-page").parent().one("pageshow",function(){setTimeout(function(){b._reposition(c)},0)}),a(document).bind("scrollstart.virtuallist scrollstop.vrituallist",b,b._scrollmove),a(window).on("throttledresize",a(c.id),b._resize),c.childSelector==" ul"&&a(c.id+" ul").swipelist(),b.refresh(!0)},create:function(){var a=this.options;this._create.apply(this,arguments),this._reposition(a)},_create:function(b){a.extend(this,{_itemData:function(a){return null},_numItemData:0,_cacheItemData:function(a,b){},_title_h:0,_container_w:0,_minimum_row:100,_direction:d,_first_index:0,_last_index:0,_num_top_items:0});var c=this,e=this.options,f=this.element,g=a('<div class="ui-virtuallist"/>'),h=a("<ul></ul>"),i=f.find(':jqmData(role="virtuallistview" )'),j=null,k=this,l,m;f.addClass(function(a,b){return b+" ui-listview ui-virtual-list-container"+(c.options.inset?" ui-listview-inset ui-corner-all ui-shadow ":"")}),e.itemIDPrefix=f.attr("id")+"_",e.id="#"+f.attr("id"),a(e.id).bind("pagehide",function(b){a(e.id).empty()}),a(".ui-scrollview-clip").size()>0?e.scrollview=!0:e.scrollview=!1,f.data("row")&&(e.row=f.data("row"),e.row<c._minimum_row&&(e.row=c._minimum_row),e.page_buf=parseInt(e.row/2,10));if(b){if(!b.itemData||typeof b.itemData!="function")return;c._itemData=b.itemData;if(!b.numItemData)return;if(typeof b.numItemData=="function")c._numItemData=b.numItemData();else{if(typeof b.numItemData!="number")return;c._numItemData=b.numItemData}}else{console.warn("WARNING: The data interface of virtuallist is changed. \nOld data interface(data-dbtable) is still supported, but will be removed in next version. \nPlease fix your code soon!");if(!a(e.id).hasClass("vlLoadSuccess"))return;l=f.jqmData("dbtable"),m=window[l],a(e.id).empty(),m||(m={}),c._itemData=function(a){return m[a]},c._numItemData=m.length}f.data("template")&&(e.template=f.data("template"),f.data("swipelist")==1?e.childSelector=" ul":e.childSelector=" li"),f.data("dbkey")&&(e.dbkey=f.data("dbkey")),c._first_index=0,c._last_index=e.row-1,c._initList()},destroy:function(){var b=this.options;a(document).unbind("scrollstop"),a(window).off("throttledresize",this._resize),a(b.id).empty(),this.timerMoveID&&(clearTimeout(this.timerMoveID),this.timerMoveID=null)},_itemApply:function(b,c){var d=c.find(".ui-li-count");d.length&&c.addClass("ui-li-has-count"),d.addClass("ui-btn-up-"+(b.jqmData("counttheme")||this.options.countTheme)+" ui-btn-corner-all"),c.find("h1, h2, h3, h4, h5, h6").addClass("ui-li-heading").end().find("p, dl").addClass("ui-li-desc").end().find(">img:eq(0), .ui-link-inherit>img:eq(0)").addClass("ui-li-thumb").each(function(){c.addClass(a(this).is(".ui-li-icon")?"ui-li-has-icon":"ui-li-has-thumb")}).end().find(".ui-li-aside").each(function(){var b=a(this);b.prependTo(b.parent())})},_removeCorners:function(a,b){var c="ui-corner-top ui-corner-tr ui-corner-tl",d="ui-corner-bottom ui-corner-br ui-corner-bl";a=a.add(a.find(".ui-btn-inner, .ui-li-link-alt, .ui-li-thumb")),b==="top"?a.removeClass(c):b==="bottom"?a.removeClass(d):a.removeClass(c+" "+d)},_refreshCorners:function(a){var b,c,d,e;this.options.inset&&(b=this.element.children("li"),c=a?b.not(".ui-screen-hidden"):b.filter(":visible"),this._removeCorners(b),d=c.first().addClass("ui-corner-top"),d.add(d.find(".ui-btn-inner")).find(".ui-li-link-alt").addClass("ui-corner-tr").end().find(".ui-li-thumb").not(".ui-li-icon").addClass("ui-corner-tl"),e=c.last().addClass("ui-corner-bottom"),e.add(e.find(".ui-btn-inner")).find(".ui-li-link-alt").addClass("ui-corner-br").end().find(".ui-li-thumb").not(".ui-li-icon").addClass("ui-corner-bl"))},refresh:function(b){this.parentPage=this.element.closest(".ui-page"),this._createSubPages();var c=this.options,d=this.element,e=this,f=d.jqmData("dividertheme")||c.dividerTheme,g=d.jqmData("splittheme"),h=d.jqmData("spliticon"),i=d.children("li"),j=a.support.cssPseudoElement||!a.nodeName(d[0],"ol")?0:1,k,l,m,n,o,p,q,r,s,t,u;j&&d.find(".ui-li-dec").remove();for(s=0,t=i.length;s<t;s++){k=i.eq(s),l="ui-li";if(b||!k.hasClass("ui-li"))u=k.jqmData("theme")||c.theme,n=k.children("a"),n.length?(r=k.jqmData("icon"),k.buttonMarkup({wrapperEls:"div",shadow:!1,corners:!1,iconpos:"right",icon:!1,theme:u}),r!=0&&n.length==1&&k.addClass("ui-li-has-arrow"),n.first().addClass("ui-link-inherit"),n.length>1&&(l+=" ui-li-has-alt",o=n.last(),p=g||o.jqmData("theme")||c.splitTheme,o.appendTo(k).attr("title",o.getEncodedText()).addClass("ui-li-link-alt").empty().buttonMarkup({shadow:!1,corners:!1,theme:u,icon:!1,iconpos:!1}).find(".ui-btn-inner").append(a("<span />").buttonMarkup({shadow:!0,corners:!0,theme:p,iconpos:"notext",icon:h||o.jqmData("icon")||c.splitIcon})))):k.jqmData("role")==="list-divider"?(l+=" ui-li-divider ui-btn ui-bar-"+f,k.attr("role","heading"),j&&(j=1)):l+=" ui-li-static ui-body-"+u;j&&l.indexOf("ui-li-divider")<0&&(q=k.is(".ui-li-static:first")?k:k.find(".ui-link-inherit"),q.addClass("ui-li-jsnumbering").prepend("<span class='ui-li-dec'>"+j++ +". </span>")),k.add(k.children(".ui-btn-inner")).addClass(l),e._itemApply(d,k)}this._refreshCorners(b)},_idStringEscape:function(a){return a.replace(/\W/g,"-")},_createSubPages:function(){var b=this.element,d=b.closest(".ui-page"),e=d.jqmData("url"),f=e||d[0][a.expando],g=b.attr("id"),h=this.options,i="data-"+a.mobile.ns,j=this,k=d.find(":jqmData(role='footer')").jqmData("id"),l,m;typeof c[f]=="undefined"&&(c[f]=-1),g=g||++c[f],a(b.find("li>ul, li>ol").toArray().reverse()).each(function(c){var d=this,f=a(this),j=f.attr("id")||g+"-"+c,m=f.parent(),n,p=n.first().getEncodedText(),q=(e||"")+"&"+a.mobile.subPageUrlKey+"="+j,r=f.jqmData("theme")||h.theme,s=f.jqmData("counttheme")||b.jqmData("counttheme")||h.countTheme,t,u;n=a(f.prevAll().toArray().reverse()),n=n.length?n:a("<span>"+a.trim(m.contents()[0].nodeValue)+"</span>"),l=!0,t=f.detach().wrap("<div "+i+"role='page' "+i+"url='"+q+"' "+i+"theme='"+r+"' "+i+"count-theme='"+s+"'><div "+i+"role='content'></div></div>").parent().before("<div "+i+"role='header' "+i+"theme='"+h.headerTheme+"'><div class='ui-title'>"+p+"</div></div>").after(k?a("<div "+i+"role='footer' "+i+"id='"+k+"'>"):"").parent().appendTo(a.mobile.pageContainer),t.page(),u=m.find("a:first"),u.length||(u=a("<a/>").html(n||p).prependTo(m.empty())),u.attr("href","#"+q)}).virtuallistview(),l&&d.is(":jqmData(external-page='true')")&&d.data("page").options.domCache===!1&&(m=function(b,c){var f=c.nextPage,g;c.nextPage&&(g=f.jqmData("url"),g.indexOf(e+"&"+a.mobile.subPageUrlKey)!==0&&(j.childPages().remove(),d.remove()))},d.unbind("pagehide.remove").bind("pagehide.remove",m))},childPages:function(){var b=this.parentPage.jqmData("url");return a(":jqmData(url^='"+b+"&"+a.mobile.subPageUrlKey+"')")}}),a(document).bind("pagecreate create",function(b){a(a.tizen.virtuallistview.prototype.options.initSelector,b.target).virtuallistview()})}(jQuery),function(a,b,c,d){function f(a,b){a.tizen||(a.tizen={}),a.tizen.frameworkData=b.frameworkData,a.tizen.loadCustomGlobalizeCulture=b.loadCustomGlobalizeCulture,a.tizen.loadTheme=b.loadTheme,a.tizen.__tizen__=b}var e={libFileName:"tizen-web-ui-fw(.min)?.js",frameworkData:{rootDir:"/usr/lib/tizen-web-ui-fw",version:"0.1",theme:"tizen-white",viewportWidth:"device-width",viewportScale:!1,defaultFontSize:22,minified:!1,debug:!1},log:{debug:function(a){e.frameworkData.debug&&console.log(a)},warn:function(a){console.warn(a)},error:function(a){console.error(a)},alert:function(a){c.alert(a)}},util:{loadScriptSync:function(b,c,d){a.ajax({url:b,dataType:"script",async:!1,crossDomain:!1,success:c,error:function(c,f,g){if(d)d(c,f,g);else{var h=[404],i="Error while loading "+b+"\n"+c.status+":"+c.statusText;-1==a.inArray(c.status,h)?e.log.alert(i):e.log.warn(i)}}})},isMobileBrowser:function(){var a=c.navigator.appVersion.indexOf("Mobile"),b=-1<a;return b}},css:{cacheBust:document.location.href.match(/debug=true/)?"?cacheBust="+(new Date).getTime():"",addElementToHead:function(b){var c=document.getElementsByTagName("head")[0];c&&a(c).prepend(b)},makeLink:function(a){var b=document.createElement("link");return b.setAttribute("rel","stylesheet"),b.setAttribute("href",a),b.setAttribute("name","tizen-theme"),b},load:function(a){var b=document.getElementsByTagName("head")[0],c=b.getElementsByTagName("link"),d,f=null;for(d=0;d<c.length;d++){if(c[d].getAttribute("rel")!="stylesheet")continue;if(c[d].getAttribute("name")=="tizen-theme"||c[d].getAttribute("href")==a){f=c[d];break}}f?f.getAttribute("href")==a?e.log.warn("Theme is already loaded. Skip theme loading in the framework."):f.setAttribute("href",a):this.addElementToHead(this.makeLink(a))}},getParams:function(){function j(){var a=navigator.theme?navigator.theme.split(":")[0]:null;return a&&(a=a.replace("-hd",""),a.match(/^tizen-/)||(a="tizen-"+a)),a}var a=document.getElementsByTagName("script"),b=null,c=!1,e,f,g,h,i;for(e in a){f=a[e],g=f.src?f.getAttribute("src"):d;if(g&&g.match(this.libFileName)){h=g.split(/[\/\\]/),i=-3,this.frameworkData.rootDir=(f.getAttribute("data-framework-root")||h.slice(0,h.length+i).join("/")||this.frameworkData.rootDir).replace(/^file:(\/\/)?/,""),this.frameworkData.version=f.getAttribute("data-framework-version")||h[h.length+i]||this.frameworkData.version,this.frameworkData.theme=f.getAttribute("data-framework-theme")||j()||this.frameworkData.theme,this.frameworkData.viewportWidth=f.getAttribute("data-framework-viewport-width")||this.frameworkData.viewportWidth,this.frameworkData.viewportScale="true"===f.getAttribute("data-framework-viewport-scale")?!0:this.frameworkData.viewportScale,this.frameworkData.minified=g.search(/\.min\.js$/)>-1?!0:!1,this.frameworkData.debug="true"===f.getAttribute("data-framework-debug")?!0:this.frameworkData.debug,c=!0;break}}return c},loadTheme:function(a){var b,c,d;a||(a=e.frameworkData.theme),b=[e.frameworkData.rootDir,e.frameworkData.version,"themes",a].join("/"),d=[b,"theme.js"].join("/"),e.frameworkData.minified?c=[b,"tizen-web-ui-fw-theme.min.css"].join("/"):c=[b,"tizen-web-ui-fw-theme.css"].join("/"),e.css.load(c),e.util.loadScriptSync(d)},loadGlobalizeCulture:function(b,d){function j(b){var d=b||a("html").attr("lang")||c.navigator.language.split(".")[0]||c.navigator.userLanguage||"en",e=null,f=d.lastIndexOf("-"),g=["Cyrl","Latn","Mong"];return f!=-1&&(e=d.substr(f+1),g.join("-").indexOf(e)<0&&(d=[d.substr(0,f),e.toUpperCase()].join("-"))),d=d=="en"?"en-US":d,d}function k(a){var b=a.lastIndexOf("-"),c;return b!=-1&&(c=a.substr(0,b)),c}function l(a,b){var c=null;return"string"!=typeof a?null:(b&&b[a]?c=b[a]:c=[f.frameworkData.rootDir,f.frameworkData.version,"js","cultures",["globalize.culture.",a,".js"].join("")].join("/"),c)}function m(a,b){e.log.error("Error "+b.status+": "+b.statusText+"::Culture file ("+a+") is failed to load.")}function n(b,c){function d(){e.log.debug("Culture file ("+b+") is loaded successfully.")}function f(a,d,e){c?c(a,d,e):m(b,a)}b?a.ajax({url:b,dataType:"script",cache:!0,async:!1,success:d,error:f}):(i={status:404,statusText:"Not Found"},f(i,null,null))}var f=this,g,h,i;return h=j(b),g=l(h,d),n(g,function(a,b,c){if(a.status==404){var e=k(h),f=l(e,d);n(f,null)}else m(g,a)}),h},setGlobalize:function(){var a=this.loadGlobalizeCulture();b.culture(a)},loadCustomGlobalizeCulture:function(a){e.loadGlobalizeCulture(null,a)},setViewport:function(b){var c=null,d,f;return a("meta[name=viewport]").each(function(){c=this;return}),c?(f=a(c).prop("content"),b=f.replace(/.*width=(device-width|\d+)\s*,?.*$/gi,"$1"),e.log.warn("Viewport is set to '"+b+"' in a meta tag. Framework skips viewport setting.")):(c=document.createElement("meta"),c&&(c.name="viewport",f=["width=",b,", user-scalable=no"].join(""),!!isNaN(b),c.content=f,e.log.debug(f),d=document.getElementsByTagName("head").item(0),d.insertBefore(c,d.firstChild))),b},scaleBaseFontSize:function(b,c){e.log.debug("themedefaultfont size: "+b+", ratio: "+c);var d=Math.max(Math.floor(b*c),4);a("html.ui-mobile").css({"font-size":d+"px"}),e.log.debug("html:font size is set to "+d),a(document).ready(function(){a(".ui-mobile").children("body").css({"font-size":d+"px"})})},setScaling:function(){var b=this.frameworkData.viewportWidth,d=this.frameworkData.defaultFontSize,f=1;a("body").attr("data-tizen-theme-default-font-size",d);if(!e.util.isMobileBrowser())return;this.frameworkData.viewportScale==1&&(b="screen-width"),"screen-width"==b&&(c.self==c.top?b=c.outerWidth:b=document.documentElement.clientWidth),b=this.setViewport(b),b!="device-width"&&(f=parseFloat(b/this.frameworkData.defaultViewportWidth),this.scaleBaseFontSize(d,f))}};f(a,e),e.getParams(),e.loadTheme(),e.setScaling(),e.setGlobalize(),a.mobile.autoInitializePage=!1,a(document).ready(function(){a.mobile.initializePage()})}(jQuery,window.Globalize,window),function(a,b){a.widget("tizen.notification",a.mobile.widget,{btn:null,text_bg:[],icon_img:[],interval:null,seconds:null,running:!1,_get_text:function(){var b=new Array(2);return this.type==="ticker"?(b[0]=a(this.text_bg[0]).text(),b[1]=a(this.text_bg[1]).text()):b[0]=a(this.text_bg[0]).text(),b},_set_text:function(b,c){var d=function(a,b){if(!b)return;a.text(b)};this.type==="ticker"?(d(a(this.text_bg[0]),b),d(a(this.text_bg[1]),c)):d(a(this.text_bg[0]),b)},text:function(a,b){if(a===undefined&&b===undefined)return this._get_text();this._set_text(a,b)},icon:function(b){if(b===undefined)return;this.icon_img.detach(),this.icon_img=a("<img src='"+b+"' class='ui-ticker-icon'>"),a(this.element).find(".ui-ticker").append(this.icon_img)},_refresh:function(){var b=this._get_container();a(b).addClass("fix").removeClass("show").removeClass("hide"),this._set_interval()},open:function(){var b=this._get_container();if(this.running){this._refresh();return}a(b).addClass("show").removeClass("hide").removeClass("fix"),this.running=!0,this.type==="popup"&&this._set_position(),this._set_interval()},close:function(){var b=this._get_container();if(!this.running)return;a(b).addClass("hide").removeClass("show").removeClass("fix"),this.running=!1,clearInterval(this.interval)},destroy:function(){var b=this._get_container();a(b).removeClass("show").removeClass("hide").removeClass("fix"),this._del_event(),this.running=!1},_get_container:function(){return this.type==="ticker"?a(this.element).find(".ui-ticker"):a(this.element).find(".ui-smallpopup")},_set_interval:function(){var a=this;clearInterval(this.interval),this.seconds!==undefined&&this.second!==0&&(this.interval=setInterval(function(){a.close()},this.seconds))},_add_event:function(){var a=this,b=this._get_container();this.type==="ticker"&&(b.find(".ui-ticker-btn").append(this.btn).trigger("create"),this.btn.bind("vmouseup",function(){a.close()})),b.bind("vmouseup",function(){a.close()})},_del_event:function(){var a=this._get_container();this.type==="ticker"&&this.btn.unbind("vmouseup"),a.unbind("vmouseup"),clearInterval(this.interval)},_set_position:function(){var b=this._get_container(),c=a(".ui-page-active").children(".ui-footer"),d=c.outerHeight()||0;b.css("bottom",d)},_create:function(){var c=this,d=a(this.element),e;this.btn=a('<div data-role="button" data-inline="true">Close</div>'),this.seconds=d.jqmData("interval"),this.type=d.jqmData("type")||"popup";if(this.type==="ticker"){d.wrapInner("<div class='ui-ticker'></div>"),d.find(".ui-ticker").append("<div class='ui-ticker-body'></div><div class='ui-ticker-btn'></div>"),this.text_bg=d.find("p");if(this.text_bg.length<2)d.find(".ui-ticker").append("<p></p><p></p>"),this.text_bg=d.find("p");else if(this.text_bg.length>2)for(e=2;e<this.text_bg.length;e++)a(this.text_bg[e]).css("display","none");a(this.text_bg[0]).addClass("ui-ticker-text1-bg"),a(this.text_bg[1]).addClass("ui-ticker-text2-bg"),this.icon_img=d.find("img");if(this.icon_img.length){a(this.icon_img).addClass("ui-ticker-icon");for(e=1;e<this.icon_img.length;e++)a(this.icon_img[e]).css("display","none")}}else{d.wrapInner("<div class='ui-smallpopup'></div>"),this.text_bg=d.find("p").addClass("ui-smallpopup-text-bg");if(this.text_bg.length<1)d.find(".ui-smallpopup").append("<p class='ui-smallpopup-text-bg'></p>"),this.text_bg=d.find("p");else if(this.text_bg.length>1)for(e=1;e<this.text_bg.length;e++)a(this.text_bg[e]).css("display","none");this._set_position()}this._add_event(),a(b).bind("resize",function(){if(!c.running)return;c._refresh(),c.type==="popup"&&c._set_position()})}}),a(document).bind("pagecreate create",function(b){a(b.target).find(":jqmData(role='notification')").notification()}),a(document).bind("pagebeforehide",function(b){a(b.target).find(":jqmData(role='notification')").notification("destroy")})}(jQuery,this),function(a,b,c){a.widget("tizen.tizenslider",a.mobile.widget,{options:{popup:!0},popup:null,handle:null,handleText:null,_create:function(){this.currentValue=null,this.popupVisible=!1;var b=this,d=a(this.element),e,f,g,h,i,j,k,l,m,n,o;d.slider(),d.hide(),b.popup=a('<div class="ui-slider-popup"></div>'),g=d.jqmData("popup"),g!==c&&(b.options.popup=g==1),e=d.next(".ui-slider"),h=d.attr("data-icon"),e.wrap('<div class="ui-slider-container"></div>'),b.handle=e.find(".ui-slider-handle"),e.removeClass("ui-btn-corner-all"),e.find("*").removeClass("ui-btn-corner-all");switch(h){case"bright":case"volume":l=a('<div class="ui-slider-left-'+h+'"></div>'),m=a('<div class="ui-slider-right-'+h+'"></div>'),e.before(l),e.after(m),n=l.width()+16,o=m.width()+16;break;case"text":j=d.attr("data-text-left")===c?"":d.attr("data-text-left"
+).substring(0,3),i=d.attr("data-text-right")===c?"":d.attr("data-text-right").substring(0,3),k=Math.max(j.length,i.length)+1,n=k+"rem",o=k+"rem",l=a('<div class="ui-slider-left-text" style="left:'+ -k+"rem; width:"+k+'rem;">'+'<span style="position:relative;top:0.4em;">'+j+"</span></div>"),m=a('<div class="ui-slider-right-text" style="right:'+ -k+"rem; width:"+k+'rem;">'+'<span style="position:relative;top:0.4em;">'+i+"</span></div>"),e.before(l),e.after(m)}h&&e.parent(".ui-slider-container").css({"margin-left":n,"margin-right":o}),e.append(a('<div class="ui-slider-handle-press"></div>')),b.handle_press=e.find(".ui-slider-handle-press"),b.handle_press.css("display","none"),e.parents(".ui-page").append(b.popup),b.popup.hide(),b.handleText=e.find(".ui-btn-text"),b.updateSlider(),this.element.bind("change",function(){b.updateSlider()}),b.handle.bind("vmousedown",function(){b.showPopup()}),e.add(document).bind("vmouseup",function(){b.hidePopup()})},_handle_press_show:function(){this.handle_press.css("display","")},_handle_press_hide:function(){this.handle_press.css("display","none")},positionPopup:function(){var a=this.handle.offset();this.popup.offset({left:a.left+(this.handle.width()-this.popup.width())/2,top:a.top-this.popup.height()}),this.handle_press.offset({left:a.left,top:a.top})},updateSlider:function(){var a,b,c,d,e,f=function(a){var b=Math.abs(a),c;return b>999?c=4:b>99?c=3:b>9?c=2:c=1,a<0&&c++,c};this.handle.removeAttr("title"),e=this.element.val(),b=f(e);if(this.popupVisible){this.positionPopup();switch(b){case 1:case 2:a="1.5rem",d="0.15rem";break;case 3:a="1rem",d="0.5rem";break;default:a="0.8rem",d="0.5rem"}this.popup.css({"font-size":a,"padding-top":d})}if(e===this.currentValue)return;switch(b){case 1:a="0.95rem",c="0";break;case 2:a="0.85rem",c="-0.01rem";break;case 3:a="0.65rem",c="-0.05rem";break;default:a="0.45rem",c="-0.15rem"}a!=this.handleText.css("font-size")&&this.handleText.css({"font-size":a,top:c}),this.currentValue=e,this.handleText.text(e),this.popup.html(e),this.element.trigger("update",e)},showPopup:function(){if(!this.options.popup||this.popupVisible)return;this.popup.show(),this.popupVisible=!0,this._handle_press_show()},hidePopup:function(){if(!this.options.popup||!this.popupVisible)return;this.popup.hide(),this.popupVisible=!1,this._handle_press_hide()},_setOption:function(a,b){var c=b!==this.options[a];if(!c)return;switch(a){case"popup":this.options.popup=b,this.options.popup?this.updateSlider():this.hidePopup()}}}),a(document).bind("pagebeforecreate",function(d){a.data(b,"jqmSliderInitSelector")===c&&(a.data(b,"jqmSliderInitSelector",a.mobile.slider.prototype.options.initSelector),a.mobile.slider.prototype.options.initSelector=null)}),a(document).bind("pagecreate create",function(c){var d=a.data(b,"jqmSliderInitSelector");a(c.target).find(d).each(function(){var b=a(this);b.is("select")?b.slider():b.tizenslider()})})}(jQuery,this),function(a,b,c){a.tizen.scrollview.prototype.options.handler=!1,a.tizen.scrollview.prototype.options.handlerTheme="s";var d=a.tizen.scrollview.prototype._setOption,e=function(d){var e=d,f='<div class="ui-handler ui-handler-direction-',g='"><div class="ui-handler-track"><div class="ui-handler-thumb"></div></div></div>',h=e.data("scrollview"),i=h.options,j=i.direction,k=a.mobile.getInheritedTheme(h,"s"),l=i.theme||k,m=h.options.direction==="x",n=h._$view,o=h._$clip,p=e.find(".ui-scrollbar"),q=null,r=null,s=0,t=0,u=0,v=0,w=0,x,y=a.support.touch,z=(y?"touchstart":"mousedown")+".handler",A=(y?"touchmove":"mousemove")+".handler",B=(y?"touchend":"mouseup")+".handler",C=(y?" touchleave":" mouseleave")+".handler",D=function(){t=m?o.width():o.height(),s=(m?n.width():n.height())-t,w=t-u-v*2},E=function(a){var b=Math.round((m?a.x:a.y)/s*w);r[0].style[m?"left":"top"]=b+"px"},F=function(){a(b).unbind(".handler"),e.moveData=null,n.trigger("scrollstop")};if(e.find(".ui-handler-thumb").length!==0||typeof j!="string")return;q=a([f,j,g].join("")).appendTo(e.addClass(" ui-handler-"+l)),r=e.find(".ui-handler-thumb").attr({tabindex:"0","aria-label":m?"Horizontal handler, double tap and move to scroll":"Verticalhandler, double tap and move to scroll"}).hide(),u=m?r.width():r.height(),v=m?parseInt(q.css("right"),10):parseInt(q.css("bottom"),10),a.extend(e,{moveData:null}),r.bind(z,{e:r[0]},function(c){h._stopMScroll();var d=c.data.e,f=y?c.originalEvent.targetTouches[0]:c;d.style.opacity=1,e.moveData={target:d,X:parseInt(d.style.left,10)||0,Y:parseInt(d.style.top,10)||0,pX:f.pageX,pY:f.pageY},D(),n.trigger("scrollstart"),y||c.preventDefault(),a(b).bind(A,function(a){var b=e.moveData,c=b.target,d=0,f=0,g=y?a.originalEvent.targetTouches[0]:a;d=m?b.X+g.pageX-b.pX:b.Y+g.pageY-b.pY,d<0&&(d=0),d>w&&(d=w),f=-Math.round(d/w*s),m?(h._setScrollPosition(f,0),c.style.left=d+"px"):(h._setScrollPosition(0,f),c.style.top=d+"px"),a.preventDefault()}).bind(B+C,function(a){F()})}),n.bind(B,function(a){F()}),e.bind("scrollstart",function(a){if(!h.enableHandler())return;D();if(s<0||t<u){p.is(":hidden")&&p.show();return}p.is(":visible")&&p.hide(),x&&(clearInterval(x),x=c),q.addClass("ui-handler-visible"),r.stop(!0,!0).fadeIn()}).bind("scrollupdate",function(a,b){if(!h.enableHandler()||s<0||t<u)return;E(h.getScrollPosition())}).bind("scrollstop",function(a){if(!h.enableHandler()||s<0||t<u)return;x=setInterval(function(){E(h.getScrollPosition()),h._gesture_timer||(clearInterval(x),x=c)},10),h._handlerTimer&&(clearTimeout(h._handlerTimer),h._handlerTimer=0),h._handlerTimer=setTimeout(function(){h._timerID===0&&e.moveData===null&&(r.stop(!0,!0).css("opacity",1).fadeOut(function(){q.removeClass("ui-handler-visible")}),h._handlerTimer=0)},1e3)}).bind("mousewheel",function(a){q.removeClass("ui-handler-visible"),E(h.getScrollPosition())})};a.extend(a.tizen.scrollview.prototype,{enableHandler:function(a){if(typeof a=="undefined")return this.options.handler;this.options.handler=!!a;var b=this.element;this.options.handler?(b.find(".ui-handler").length===0&&e(b),b.find(".ui-scrollbar").hide(),b.find(".ui-handler").show()):(b.find(".ui-handler").removeClass("ui-handler-visible").hide(),b.find(".ui-scrollbar").show())},_setHandlerTheme:function(a){if(!a)return;var b="ui-handler-"+this.options.handlerTheme,c="ui-handler-"+a;this.element.removeClass(b).addClass(c),this.options.handlerTheme=a},_setOption:function(a,b){switch(a){case"handler":this.enableHandler(b);break;case"handlerTheme":this._setHandlerTheme(b);break;default:d.call(this,a,b)}},_handlerTimer:0}),a(b).delegate(":jqmData(scroll)","scrollviewcreate",function(){var b=a(this);if(b.attr("data-"+a.mobile.ns+"scroll")==="none"||b.attr("data-"+a.mobile.ns+"handler")!=="true")return;b.scrollview("enableHandler","true")})}(jQuery,document),function(a,b,c,d){a.widget("tizen.tokentextarea",a.mobile.widget,{_focusStatus:null,_items:null,_viewWidth:0,_reservedWidth:0,_currentWidth:0,_fontSize:0,_anchorWidth:0,_labelWidth:0,_marginWidth:0,options:{label:"To : ",link:null,description:"+ {0}"},_create:function(){var b=this,d=this.element,e=d.jqmData("role"),f=this.options,g="ui-tokentextarea-link",h=a(c.createElement("input")),i=a(c.createElement("span")),j=a(c.createElement("a"));d.hide().empty().addClass("ui-"+e),a(i).text(f.label).addClass("ui-tokentextarea-label").attr("tabindex",0),d.append(i),a(h).addClass("ui-tokentextarea-input ui-tokentextarea-input-visible ui-input-text ui-body-s").attr("role","textbox"),d.append(h);if(f.link===null||a.trim(f.link).length<1||a(f.link).length===0)g+="-dim";a(j).attr("data-role","button").buttonMarkup({inline:!0,icon:"plus",style:"circle"}).attr({href:a.trim(f.link),tabindex:0}).addClass("ui-tokentextarea-link-base").addClass(g).find("span.ui-btn-text").text("Add recipient"),d.append(j),this._bindEvents(),b._focusStatus="init",d.show(),b._viewWidth=d.innerWidth(),b._reservedWidth+=b._calcBlockWidth(j),b._reservedWidth+=b._calcBlockWidth(i),b._fontSize=parseInt(a(j).css("font-size"),10),b._currentWidth=b._reservedWidth,b._modifyInputBoxWidth()},_bindEvents:function(){var b=this,d=b.element,e=b.options,f=d.find(".ui-tokentextarea-input"),g=d.find(".ui-tokentextarea-link-base");d.delegate("div","click",function(c){a(this).hasClass("ui-tokentextarea-sblock")&&b._removeTextBlock();var e=d.find("div.ui-tokentextarea-sblock");typeof e!="undefined"&&e.removeClass("ui-tokentextarea-sblock").addClass("ui-tokentextarea-block"),a(this).removeClass("ui-tokentextarea-block").addClass("ui-tokentextarea-sblock"),d.trigger("select")}),f.bind("keyup",function(c){var d=c.keyCode,e=a(f).val(),g=[],h,i=!1;if(d===8)e.length===0&&b._validateTargetBlock();else if(d===13||d===186||d===188){if(e.length!==0){g=e.split(/[,;]/);for(h=0;h<g.length;h++)g[h].length!==0&&g[h].replace(/\s/g,"").length!==0&&b._addTextBlock(g[h])}f.val(""),i=!0}else b._unlockTextBlock();return!i}),g.click(function(){if(a(g).hasClass("ui-tokentextarea-link-dim"))return;a(f).removeClass("ui-tokentextarea-input-visible").addClass("ui-tokentextarea-input-invisible"),a.mobile.changePage(e.link,{transition:"slide",reverse:!1,changeHash:!1})}),a(c).bind("pagechange.mbe",function(c){if(d.innerWidth()===0)return;b.refresh(),a(f).removeClass("ui-tokentextarea-input-invisible").addClass("ui-tokentextarea-input-visible")}),d.bind("click",function(a){b._focusStatus==="focusOut"&&b.focusIn()})},_addTextBlock:function(b,d){if(arguments.length===0)return;if(!b)return;var e=this,f=e.element,g=b,h=d,i=null,j=null;e._viewWidth===0&&(e._viewWidth=f.innerWidth()),j=a(c.createElement("div")),j.text(g).addClass("ui-tokentextarea-block").attr({"aria-label":"double tap to edit",tabindex:0}),j.css({visibility:"hidden"}),i=f.find("div"),h!==null&&h<=i.length?a(i[h]).before(j):f.find(".ui-tokentextarea-input").before(j),j=e._ellipsisTextBlock(j),j.css({visibility:"visible"}),e._modifyInputBoxWidth(),j.hide(),j.fadeIn("fast",function(){e._currentWidth+=e._calcBlockWidth(j),f.trigger("add")})},_removeTextBlock:function(){var a=this,b=this.element,c=b.find("div.ui-tokentextarea-sblock"),d=null,e=function(){};c!==null&&c.length>0?(a._currentWidth-=a._calcBlockWidth(c),c.fadeOut("fast",function(){c.remove(),a._modifyInputBoxWidth()}),this._eventRemoveCall=!0,b[0].remove&&(d=b[0].remove,b[0].remove=e),b.triggerHandler("remove"),d&&(b[0].remove=d),this._eventRemoveCall=!1):b.find("div:last").removeClass("ui-tokentextarea-block").addClass("ui-tokentextarea-sblock")},_calcBlockWidth:function(b){return a(b).outerWidth(!0)},_unlockTextBlock:function(){var a=this.element,b=a.find("div.ui-tokentextarea-sblock");b&&b.removeClass("ui-tokentextarea-sblock").addClass("ui-tokentextarea-block")},_validateTargetBlock:function(){var a=this,b=a.element,c=b.find("div:last"),d=null;c.hasClass("ui-tokentextarea-sblock")?a._removeTextBlock():(d=b.find("div.ui-tokentextarea-sblock"),d.removeClass("ui-tokentextarea-sblock").addClass("ui-tokentextarea-block"),c.removeClass("ui-tokentextarea-block").addClass("ui-tokentextarea-sblock"))},_ellipsisTextBlock:function(b){var c=this,d=c.element,e=c._viewWidth/2;return c._calcBlockWidth(b)>e&&a(b).width(e-c._marginWidth),b},_modifyInputBoxWidth:function(){var b=this,c=b.element,d=0,e=0,f=0,g=0,h=c.find("div"),i=0,j=0,k=10,l=c.find(".ui-tokentextarea-input");if(c.width()===0)return;b._labelWidth===0&&(b._labelWidth=c.find(".ui-tokentextarea-label").outerWidth(!0),b._anchorWidth=c.find(".ui-tokentextarea-link-base").outerWidth(!0),b._marginWidth=parseInt(a(l).css("margin-left"),10),b._marginWidth+=parseInt(a(l).css("margin-right"),10),b._viewWidth=c.innerWidth()),d=b._marginWidth,e=b._labelWidth,f=b._anchorWidth,g=b._viewWidth-e;for(j=0;j<h.length;j+=1)i=b._calcBlockWidth(h[j]),i>=g+f?i>=g?g=b._viewWidth-i:g=b._viewWidth:i>g?g=b._viewWidth-i:g-=i;g-=d,g<f*2&&(g=b._viewWidth-d),a(l).width(g-f-k)},_stringFormat:function(a){var b=null,c=a,d=0;for(d=1;d<arguments.length;d+=1)b="{"+(d-1)+"}",c=c.replace(b,arguments[d]);return c},_resizeBlocks:function(){var b=this,c=b.element,d=c.find("div"),e=0;for(e=0;e<d.length;e+=1)a(d[e]).css("width","auto"),d[e]=b._ellipsisTextBlock(d[e])},focusIn:function(){if(this._focusStatus==="focusIn")return;var a=this.element;a.find(".ui-tokentextarea-label").attr("tabindex",0).show(),a.find(".ui-tokentextarea-desclabel").remove(),a.find("div.ui-tokentextarea-sblock").removeClass("ui-tokentextarea-sblock").addClass("ui-tokentextarea-block"),a.find("div").attr({"aria-label":"double tap to edit",tabindex:0}).show(),a.find(".ui-tokentextarea-input").removeClass("ui-tokentextarea-input-invisible").addClass("ui-tokentextarea-input-visible").attr("tabindex",0),a.find("a").attr("tabindex",0).show(),this._modifyInputBoxWidth(),this._focusStatus="focusIn",a.removeClass("ui-tokentextarea-focusout").addClass("ui-tokentextarea-focusin").removeAttr("tabindex"),a.find(".ui-tokentextarea-input").focus()},focusOut:function(){if(this._focusStatus==="focusOut")return;var b=this,d=b.element,e=null,f=null,g=null,h="",i=0,j=10,k=d.find(".ui-tokentextarea-label"),l=d.find("span"),m=d.find("div"),n=d.outerWidth(!0)-l.outerWidth(!0)-k.outerWidth(!0),o=0;k.removeAttr("tabindex"),d.find(".ui-tokentextarea-input").removeClass("ui-tokentextarea-input-visible").addClass("ui-tokentextarea-input-invisible").removeAttr("tabindex"),d.find("a").removeAttr("tabindex").hide(),m.removeAttr("aria-label").removeAttr("tabindex").hide(),n-=b._reservedWidth;for(i=0;i<m.length;i++){o=a(m[i]).outerWidth(!0);if(n-o<=0){j=i-1;break}a(m[i]).show(),n-=o}j!==m.length&&(h=b._stringFormat(b.options.description,m.length-j-1),e=a(c.createElement("span")),e.addClass("ui-tokentextarea-desclabel").attr({"aria-label":"more, double tap to edit",tabindex:"-1"}),f=a(c.createElement("span")).text(h).attr("aria-hidden","true"),g=a(c.createElement("span")).text(m.length-j-1).attr("aria-label","and").css("visibility","hidden"),e.append(f),e.append(g),a(m[j]).after(e)),this._focusStatus="focusOut",d.removeClass("ui-tokentextarea-focusin").addClass("ui-tokentextarea-focusout").attr("tabindex",0)},inputText:function(a){var b=this.element;return arguments.length===0?b.find(".ui-tokentextarea-input").val():(b.find(".ui-tokentextarea-input").val(a),a)},select:function(b){var c=this.element,d=null,e=null;if(this._focusStatus==="focusOut")return;return arguments.length===0?(d=c.find("div.ui-tokentextarea-sblock"),d?d.text():null):(this._unlockTextBlock(),e=c.find("div"),e.length>b&&(a(e[b]).removeClass("ui-tokentextarea-block").addClass("ui-tokentextarea-sblock"),c.trigger("select")),null)},add:function(a,b){if(this._focusStatus==="focusOut")return;this._addTextBlock(a,b)},remove:function(b){var c=this,d=this.element,e=d.find("div"),f=0,g=null,h=function(){};if(this._focusStatus==="focusOut")return;arguments.length===0?e.fadeOut("fast",function(){e.remove(),c._modifyInputBoxWidth(),c._trigger("clear")}):isNaN(b)||(f=b<e.length?b:e.length-1,a(e[f]).fadeOut("fast",function(){a(e[f]).remove(),c._modifyInputBoxWidth()}),this._eventRemoveCall=!0,d[0].remove&&(g=d[0].remove,d[0].remove=h),d.triggerHandler("remove"),g&&(d[0].remove=g),this._eventRemoveCall=!1)},length:function(){return this.element.find("div").length},refresh:function(){var a=this,b=this.element.innerWidth();b&&a._viewWidth!==b&&(a._viewWidth=b),a._resizeBlocks(),a._modifyInputBoxWidth()},destroy:function(){var a=this.element,b=null,c=function(){};if(this._eventRemoveCall)return;a.find(".ui-tokentextarea-label").remove(),a.find("div").undelegate("click").remove(),a.find("a").remove(),a.find(".ui-tokentextarea-input").unbind("keyup").remove(),this._eventRemoveCall=!0,a[0].remove&&(b=a[0].remove,a[0].remove=c),a.remove(),b&&(a[0].remove=b),this._eventRemoveCall=!1,this._trigger("destroy")}}),a(c).bind("pagecreate create",function(){a(":jqmData(role='tokentextarea')").tokentextarea()}),a(b).bind("resize",function(){a(":jqmData(role='tokentextarea')").tokentextarea("refresh")})}(jQuery,window,document),function(a,b){a.widget("tizen.searchbar",a.mobile.widget,{options:{theme:null,initSelector:"input[type='search'],:jqmData(type='search'), input[type='tizen-search'],:jqmData(type='tizen-search')"},_create:function(){function t(){setTimeout(function(){h.toggleClass("ui-input-clear-hidden",!c.val())},0)}function u(){g.addClass("ui-input-search-default").removeClass("ui-input-search-wide"),i.addClass("ui-btn-cancel-show").removeClass("ui-btn-cancel-hide")}function v(){g.addClass("ui-input-search-wide").removeClass("ui-input-search-default"),i.addClass("ui-btn-cancel-hide").removeClass("ui-btn-cancel-show"),t()}function w(){var b=a(c).jqmData("icon"),d=a("<div data-role='button' data-style='circle'></div>");d.appendTo(g.parent()).buttonMarkup({icon:b,iconpos:"notext",corners:!0,shadow:!0}),d.addClass("ui-btn-search-front-icon")}var c=this.element,d=this.options,e=d.theme||a.mobile.getInheritedTheme(this.element,"c"),f=" ui-body-"+e,g,h,i,j,k,l,m,n,o,p,q,r=!1,s=!1;a("label[for='"+c.attr("id")+"']").addClass("ui-input-text"),typeof c[0].autocorrect!="undefined"&&!a.support.touchOverflow&&(c[0].setAttribute("autocorrect","off"),c[0].setAttribute("autocomplete","off")),g=c.wrap("<div class='ui-input-search ui-shadow-inset ui-corner-all ui-btn-shadow"+f+"'></div>").parent(),a(this.element).data("cancel-btn")===!0&&(r=!0,g.addClass("ui-input-search-default")),a(this.element).data("icon")!=b&&(s=!0,g.addClass("ui-search-bar-icon")),h=a("<a href='#' class='ui-input-clear' title='clear text'>clear text</a>").bind("click",function(a){if(c.attr("disabled")=="disabled")return!1;c.val("").focus().trigger("change"),h.addClass("ui-input-clear-hidden"),a.preventDefault()}).appendTo(g).buttonMarkup({icon:"deleteSearch",iconpos:"notext",corners:!0,shadow:!0}),t(),c.bind("paste cut keyup focus change blur",t),g.wrapAll("<div class='input-search-bar'></div>"),p=a("<div class='ui-image-search'></div>").appendTo(g),s&&w(),r&&(i=a("<div data-role='button' class='ui-input-cancel' title='clear text'>Cancel</div>").bind("click",function(a){if(c.attr("disabled")=="disabled")return!1;a.preventDefault(),a.stopPropagation(),c.val("").blur().trigger("change"),r&&v()}).appendTo(g.parent()).buttonMarkup({iconpos:"cancel",corners:!0,shadow:!0})),c.focus(function(){if(c.attr("disabled")=="disabled")return!1;r&&u(),g.addClass(a.mobile.focusClass)}).blur(function(){g.removeClass(a.mobile.focusClass)}),j=c.jqmData("default-text"),j!=b&&j.length>0&&(k="ui-input-default-text",l=j.replace(/\s/g,""),m=k+"-"+l,n=a("<style>."+m+":after"+"{content:"+"'"+j+"'"+"}"+"</style>"),a("html > head").append(n),o=a("<div></div>"),o.addClass(k),o.addClass(m),o.tap(function(a){c.blur(),c.focus()}),c.parent().append(o),c.focus(function(){c.parent().find("div.ui-input-default-text").addClass("ui-input-default-hidden")}).blur(function(){var a=c.val();a.length>0?c.parent().find("div.ui-input-default-text").addClass("ui-input-default-hidden"):c.parent().find("div.ui-input-default-text").removeClass("ui-input-default-hidden")})),c.attr("placeholder")||c.attr("placeholder","Search")},disable:function(){this.element.attr("disabled",!0),this.element.parent().addClass("ui-disabled"),a(this.element).blur(),this.element.parent().parent().find(".ui-input-cancel").addClass("ui-disabled")},enable:function(){this.element.attr("disabled",!1),this.element.parent().removeClass("ui-disabled"),this.element.parent().parent().find(".ui-input-cancel").removeClass("ui-disabled"),a(this.element).focus()}}),a(document).bind("pagecreate create",function(b){a.tizen.searchbar.prototype.enhanceWithin(b.target)})}(jQuery),function(a,b,c,d){function e(a,b){var c=a%b;return c<0&&(c=b+c),c}function f(b){this.options=a.extend({},b),this.easing="easeOutQuad",this.reset()}function l(){return Date.now()}var g={scrolling:0,done:1},h=0,i=1,j=-1,k=/src\s*=\s*[\"\'][\w\/.]+.[A-z]+[\"\']/;a.extend(f.prototype,{start:function(a,b,c){this.state=b!==0?g.scrolling:g.done,this.pos=a,this.speed=b,this.duration=c,this.fromPos=0,this.toPos=0,this.startTime=l()},reset:function(){this.state=g.done,this.pos=0,this.speed=0,this.duration=0},update:function(){var b=this.state,c,d,e,f;return b==g.done?this.pos:(c=this.duration,d=l()-this.startTime,d=d>c?c:d,e=this.speed*(1-a.easing[this.easing](d/c,d,0,1,c)),f=this.pos+e/2,this.pos=f,d>=c&&(this.state=g.done),this.pos)},done:function(){return this.state==g.done},getPosition:function(){return this.pos}}),jQuery.widget("mobile.virtualgrid",jQuery.mobile.widget,{options:{template:"",direction:"y",rotation:!1},create:function(){this._create.apply(this,arguments)},_create:function(b){a.extend(this,{_$view:null,_$clip:null,_$rows:null,_tracker:null,_viewSize:0,_clipSize:0,_cellSize:d,_currentItemCount:0,_itemCount:1,_inheritedSize:null,_timerInterval:0,_timerID:0,_timerCB:null,_lastMove:null,_itemData:function(a){return null},_numItemData:0,_cacheItemData:function(a,b){},_totalRowCnt:0,_templateText:null,_maxViewSize:0,_modifyViewPos:0,_maxSizeExceptClip:0,_maxSize:0,_direction:!1,_didDrag:!0,_reservedPos:0,_scalableSize:0,_eventPos:0,_nextPos:0,_movePos:0,_lastY:0,_speedY:0,_lastX:0,_speedX:0,_rowsPerView:0,_fragment:null,_filterRatio:.9,_overflowStartPos:0,_overflowDir:0,_overflowMaxDragDist:100});var e=this,f=a(e.element),g=e.options,h=null;if(!b)return;if(!e._loadData(b))return;e._fragment=c.createDocumentFragment(),e._inheritedSize=e._getinheritedSize(e.element),e._direction=g.direction==="x"?!0:!1,e._$clip=f.addClass("ui-scrollview-clip").addClass("ui-virtualgrid-view"),h=a(c.createElement("div")).addClass("ui-scrollview-view"),e._clipSize=e._calculateClipSize(),e._$clip.append(h),e._$view=h,e._$clip.css("overflow","hidden"),e._$view.css("overflow","hidden"),e._scrollView=a.tizen.scrollview.prototype,e._initScrollView(),e._createTracker(),e._makePositioned(e._$clip),e._timerInterval=1e3/e.options.fps,e._timerID=0,e._timerCB=function(){e._handleMomentumScroll()},f.closest(".ui-content").addClass("ui-virtualgrid-content").css("overflow","hidden"),e._addBehaviors(),e._currentItemCount=0,e._createOverflowArea(),e._createScrollBar(),e.refresh()},_loadData:function(a){var b=this;if(!a.itemData||typeof a.itemData!="function")return!1;b._itemData=a.itemData;if(!a.numItemData)return!1;if(typeof a.numItemData=="function")b._numItemData=a.numItemData();else{if(typeof a.numItemData!="number")return!1;b._numItemData=a.numItemData}return b._getObjectNames(b._itemData(0)),!0},_initLayout:function(){var a=this,b=a.options,c,d;for(c=-1;c<a._rowsPerView+1;c+=1)d=a._$rows[e(c,a._$rows.length)],a._$view.append(d);a._setElementTransform(-a._cellSize),a._replaceRow(a._$view[0].firstChild,a._totalRowCnt-1),b.rotation&&a._rowsPerView>=a._totalRowCnt&&a._replaceRow(a._$view[0].lastChild,0),a._setViewSize()},_setViewSize:function(){var a=this,b=0,c=0;a._direction?(c=a._cellSize*(a._rowsPerView+2),c=parseInt(c,10)+1,a._$view.width(c),a._viewSize=a._$view.width()):(a._$view.height(a._cellSize*(a._rowsPerView+2)),a._$clip.height(a._clipSize),a._viewSize=a._$view.height())},_getViewWidth:function(){var a=this;return a._maxSize},_getViewHeight:function(){var a=this;return a._maxSize},refresh:function(){var b=this,c=b.options,d=0,e=0,f=null;f=a("#"+c.template);if(!f)return;b._templateText=b._insertAriaAttrToTmpl(f.text()),d=b._calculateClipWidth(),e=b._calculateClipHeight(),b._$view.width(d).height(e),b._$clip.width(d).height(e),b._clipSize=b._calculateClipSize(),b._calculateColumnSize(),b._initPageProperty(),b._setScrollBarSize()},_initPageProperty:function(){var b=this,c=0,d,e=0,f=0,g=b._direction?"width":"height";e=b._calculateColumnCount(),f=parseInt(b._numItemData/e,10),b._totalRowCnt=b._numItemData%e===0?f:f+1,b._itemCount=e;if(b._cellSize<=0)return;c=b._clipSize/b._cellSize,c=Math.ceil(c),b._rowsPerView=parseInt(c,10),d=a(b._makeRows(c+2)),b._$view.append(d.children()),b._$view.children().css(g,b._cellSize+"px"),b._$rows=b._$view.children().detach(),b._reservedPos=-b._cellSize,b._scalableSize=-b._cellSize,b._initLayout(),b._blockScroll=b._rowsPerView>b._totalRowCnt,b._maxSizeExceptClip=(b._totalRowCnt-b._rowsPerView)*b._cellSize,b._maxSize=b._totalRowCnt*b._cellSize,b._maxViewSize=b._rowsPerView*b._cellSize,b._modifyViewPos=-b._cellSize,b._clipSize<b._maxViewSize&&(b._modifyViewPos=-b._cellSize+(b._clipSize-b._maxViewSize))},_getinheritedSize:function(b){var c=a(b),d,e,f={ELEMENT_NODE:1,TEXT_NODE:3},g={isDefinedWidth:!1,isDefinedHeight:!1,width:0,height:0};while(c[0].nodeType===f.ELEMENT_NODE&&(g.isDefinedWidth===!1||g.isHeightDefined===!1)){d=c[0].style.height,e=c[0].style.width,g.isDefinedHeight===!1&&d!==""&&(g.isDefinedHeight=!0,g.height=parseInt(d,10)),g.isDefinedWidth===!1&&e!==""&&(g.isDefinedWidth=!0,g.width=parseInt(e,10)),c=c.parent();if(c.hasClass("ui-content"))break}return g},_resize:function(){var a=this,b=null,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=null,l=0;a._direction?(l=a._calculateClipHeight(),a._$view.height(l),a._$clip.height(l)):(l=a._calculateClipWidth(),a._$view.width(l),a._$clip.width(l)),d=a._calculateColumnCount(),d!=a._itemCount&&(e=parseInt(a._numItemData/d,10),a._totalRowCnt=a._numItemData%d===0?e:e+1,h=a._itemCount,a._itemCount=d,i=a._getClipPosition(),a._$view.hide(),f=a._replaceRows(d,h,a._totalRowCnt,i),a._maxSizeExceptClip=(a._totalRowCnt-a._rowsPerView)*a._cellSize,a._maxSize=a._totalRowCnt*a._cellSize,a._scalableSize+=-f*a._cellSize,a._reservedPos+=-f*a._cellSize,a._setScrollBarSize(),a._setScrollBarPosition(f),a._$view.show()),g=a._calculateClipSize(),g!==a._clipSize&&(c=g/a._cellSize,c=parseInt(Math.ceil(c),10),c>a._rowsPerView?a._increaseRow(c-a._rowsPerView):c<a._rowsPerView&&a._decreaseRow(a._rowsPerView-c),a._$rows=a._$view.children(),a._$rows.sort(function(a,b){return a.getAttribute("row-index")-b.getAttribute("row-index")}),a._rowsPerView=c,a._clipSize=g,a._blockScroll=a._rowsPerView>a._totalRowCnt,a._maxSizeExceptClip=(a._totalRowCnt-a._rowsPerView)*a._cellSize,a._maxSize=a._totalRowCnt*a._cellSize,a._maxViewSize=a._rowsPerView*a._cellSize,a._clipSize<a._maxViewSize&&(a._modifyViewPos=-a._cellSize+(a._clipSize-a._maxViewSize)),a._direction?a._$clip.width(a._clipSize):a._$clip.height(a._clipSize),a._setScrollBarSize(),a._setScrollBarPosition(0),a._setViewSize())},resize:function(){var b=this,c=0,d=a(".ui-virtualgrid-view");b._inheritedSize=b._getinheritedSize(b.element),d.length!==0&&b._resize()},_initScrollView:function(){var b=this,c=b.options.direction;a.extend(b.options,b._scrollView.options),b.options.direction=c,b.options.moveThreshold=10,b.options.showScrollBars=!1,b._getScrollHierarchy=b._scrollView._getScrollHierarchy,b._makePositioned=b._scrollView._makePositioned,b._set_scrollbar_size=b._scrollView._set_scrollbar_size,b._setStyleTransform=b._scrollView._setElementTransform,b._hideOverflowIndicator=b._scrollView._hideOverflowIndicator,b._showOverflowIndicator=b._scrollView._showOverflowIndicator,b._setGestureScroll=b._scrollView._setGestureScroll},_createTracker:function(){var a=this;a._tracker=new f(a.options),a._direction?(a._hTracker=a._tracker,a._$clip.width(a._clipSize)):(a._vTracker=a._tracker,a._$clip.height(a._clipSize))},_createOverflowArea:function(){var b=this,c='<div class="ui-virtualgrid-overflow-indicator-',d='-top"></div>',e='-bottom"></div>';if(b.options.rotation)return;b._direction?(b._overflowTop=a(c+"x"+d),b._overflowBottom=a(c+"x"+e)):(b._overflowTop=a(c+"y"+d),b._overflowBottom=a(c+"y"+e)),b._$clip.append(b._overflowTop),b._$clip.append(b._overflowBottom),b._overflowDisplayed=!1},_hideVGOverflowIndicator:function(){if(this._overflowDisplayed===!1)return;this._overflowTop.animate({opacity:0},300),this._overflowBottom.animate({opacity:0},300),this._overflowDisplayed=!1},_createScrollBar:function(){var a=this,b='<div class="ui-scrollbar ui-scrollbar-',c='"><div class="ui-scrollbar-track"><div class="ui-scrollbar-thumb"></div></div></div>';if(a.options.rotation)return;a._direction?(a._$clip.append(b+"x"+c),a._hScrollBar=a._$clip.children(".ui-scrollbar-x"),a._hScrollBar.find(".ui-scrollbar-thumb").addClass("ui-scrollbar-thumb-x")):(a._$clip.append(b+"y"+c),a._vScrollBar=a._$clip.children(".ui-scrollbar-y"),a._vScrollBar.find(".ui-scrollbar-thumb").addClass("ui-scrollbar-thumb-y"))},_setScrollBarSize:function(){var a=this,b=0,c=0,d,e,f;if(a.options.rotation)return;b=parseInt(a._maxViewSize/a._clipSize,10),a._direction?(d=a._hScrollBar.find(".ui-scrollbar-thumb"),e="width",c=d.width(),f="ui-scrollbar-thumb-x",a._hScrollBar.css("width",a._clipSize)):(d=a._vScrollBar.find(".ui-scrollbar-thumb"),e="height",f="ui-scrollbar-thumb-y",c=d.height(),a._vScrollBar.css("height",a._clipSize)),b>c?(d.removeClass(f),d.css(e,b)):b=c,a._itemScrollSize=parseFloat((a._clipSize-b)/(a._totalRowCnt-a._rowsPerView)),a._itemScrollSize=Math.round(a._itemScrollSize*100)/100},_setScrollBarPosition:function(a,b){var c=this,d=null,e="0px",f="0px",g;if(c.options.rotation)return;c._currentItemCount=c._currentItemCount+a,c._vScrollBar?(d=c._vScrollBar.find(".ui-scrollbar-thumb"),f=c._currentItemCount*c._itemScrollSize+"px"):(d=c._hScrollBar.find(".ui-scrollbar-thumb"),e=c._currentItemCount*c._itemScrollSize+"px"),c._setStyleTransform(d,e,f,b)},_hideScrollBars:function(){var a=this,b="ui-scrollbar-visible";if(a.options.rotation)return;a._vScrollBar?a._vScrollBar.removeClass(b):a._hScrollBar.removeClass(b)},_showScrollBars:function(){var a=this,b="ui-scrollbar-visible";if(a.options.rotation)return;a._vScrollBar?a._vScrollBar.addClass(b):a._hScrollBar.addClass(b)},centerTo:function(b){var c=this,d=null,e=null,f=-1,g=c._$rows.length,h,i;if(!c.options.rotation)return;for(i=0;i<g;++i){d=a(c._$rows[i]),e=d.children("."+b);if(e.length){f=parseInt(d.attr("row-index"),10);break}}if(f===-1){f=c._getTargetRowIndex(b);if(f===-1)return}h=-(f*c._cellSize-(c._clipSize-c._cellSize)/2),c._direction?c.scrollTo(h,0):c.scrollTo(0,h)},_getTargetRowIndex:function(a){var b=this,c=b._numItemData,d=b._itemCount,e=b._direction?"top":"left",f="",g=b._totalRowCnt,h;for(h=0;h<c;++h){f=b._makeHtmlData(h,h%d,e);if(b._hasClassItem(f,a)){g=parseInt(h/d,10);break}}return g===b._totalRowCnt?-1:g},_hasClassItem:function(a,b){var c=this,d=c._getItemClass(a);return d.indexOf(b)===-1?!1:d.indexOf("virtualgrid-item")===-1?!1:!0},_getItemClass:function(a){var b=a.indexOf("class"),c=Math.min(a.indexOf('"',b),a.indexOf("'",b)),d=Math.min(a.indexOf('"',c+1),a.indexOf("'",c+1));return a.slice(c+1,d)},scrollTo:function(a,b,c){var d=this;d._direction?(a-=d._cellSize,d._sx=d._reservedPos,d._reservedPos=a):(b-=d._cellSize,d._sy=d._reservedPos,d._reservedPos=b),d._scrollView.scrollTo.apply(this,[a,b,c])},getScrollPosition:function(){return this.direction?{x:-this._ry,y:0}:{x:0,y:-this._ry}},_setScrollPosition:function(a,b){var c=this,d=c._scalableSize,f=c._direction?a:b,g=f-d,k=parseInt(g/c._cellSize,10),l=0,m=0,n=0,o=c._rowsPerView+2,p=c._$view[0];if(c._blockScroll){g>0&&f>=-c._cellSize&&c._scalableSize>=-c._cellSize&&(c._overflowDir=i),g<0&&c._scalableSize<=-(c._maxSizeExceptClip+c._cellSize)&&(c._overflowDir=j);return}if(!c.options.rotation){if(g>0&&f>=-c._cellSize&&c._scalableSize>=-c._cellSize){c._stopMScroll(),c._scalableSize=-c._cellSize,c._setElementTransform(-c._cellSize),c._overflowDir===h&&(c._overflowDir=i);return}if(g<0&&c._scalableSize<=-(c._maxSizeExceptClip+c._cellSize)){c._stopMScroll(),c._scalableSize=-(c._maxSizeExceptClip+c._cellSize),c._setElementTransform(c._modifyViewPos),c._overflowDir===h&&(c._overflowDir=j);return}}n=Math.abs(k)<o?0:k>0?k-o:k+o;if(k>0)for(l=n;l<k;++l)m=-parseInt(d/c._cellSize+l+3,10),c._replaceRow(p.lastChild,e(m,c._totalRowCnt)),p.insertBefore(p.lastChild,p.firstChild);else if(k<0)for(l=n;l>k;--l)m=c._rowsPerView-parseInt(d/c._cellSize+l,10),c._replaceRow(p.firstChild,e(m,c._totalRowCnt)),p.insertBefore(p.firstChild,p.lastChild.nextSibling);c._setScrollBarPosition(-k),c._scalableSize+=k*c._cellSize,c._setElementTransform(f-c._scalableSize-c._cellSize)},_setElementTransform:function(a){var b=this,c=0,d=0;b._direction?c=a+"px":d=a+"px",b._setStyleTransform(b._$view,c,d)},_handleMomentumScroll:function(){var a=this,b=a.options,c=!1,d=this._$view,e=0,f=0,g=a._tracker;g&&(g.update(),a._direction?e=g.getPosition():f=g.getPosition(),c=!g.done()),a._setScrollPosition(e,f),b.rotation?a._reservedPos=a._direction?e:f:(c=!g.done(),a._reservedPos=a._direction?e:f,a._reservedPos=a._reservedPos<=-(a._maxSizeExceptClip-a._modifyViewPos)?-(a._maxSizeExceptClip+a._cellSize):a._reservedPos,a._reservedPos=a._reservedPos>-a._cellSize?-a._cellSize:a._reservedPos),a._$clip.trigger(a.options.updateEventName,[{x:e,y:f}]),c?a._timerID=setTimeout(a._timerCB,a._timerInterval):a._stopMScroll()},_startMScroll:function(a,b){var c=this;c._direction?c._sx=c._reservedPos:c._sy=c._reservedPos,c._scrollView._startMScroll.apply(c,[a,b])},_stopMScroll:function(){this._scrollView._stopMScroll.apply(this)},_enableTracking:function(){var a=this;a._$view.bind(a._dragMoveEvt,a._dragMoveCB),a._$view.bind(a._dragStopEvt
+,a._dragStopCB),a._scrollView._enableTracking.apply(a)},_disableTracking:function(){var a=this;a._$view.unbind(a._dragMoveEvt,a._dragMoveCB),a._$view.unbind(a._dragStopEvt,a._dragStopCB),a._scrollView._disableTracking.apply(a)},_handleDragStart:function(a,b,c){var d=this;d._scrollView._handleDragStart.apply(this,[a,b,c]),d._eventPos=d._direction?b:c,d._nextPos=d._reservedPos},_handleDragMove:function(a,b,c){var d=this,e=b-d._lastX,f=c-d._lastY,g=0,j=0,k=0,m=0,n=0,o=0,p=null;return d._lastMove=l(),d._speedX=e,d._speedY=f,d._didDrag=!0,d._lastX=b,d._lastY=c,d._direction?(d._movePos=b-d._eventPos,g=d._nextPos+d._movePos,o=b):(d._movePos=c-d._eventPos,j=d._nextPos+d._movePos,o=c),d._showScrollBars(),d._setScrollPosition(g,j),d._overflowDir!==h&&(p=d._overflowDir===i?d._overflowTop:d._overflowBottom,d._overflowDisplayed||(d._overflowDisplayed=!0,d._overflowStartPos=o),k=(o-d._overflowStartPos)*d._overflowDir,n=k<0?0:k>d._overflowMaxDragDist?1:k/d._overflowMaxDragDist,p.css("opacity",n)),!1},_handleDragStop:function(a){var b=this;return b._reservedPos=b._movePos?b._nextPos+b._movePos:b._reservedPos,b._scrollView._handleDragStop.apply(this,[a]),b._overflowDir!==h&&(b._overflowDir=h,b._hideVGOverflowIndicator()),b._didDrag?!1:d},_addBehaviors:function(){var d=this;d.options.eventType==="mouse"?(d._dragStartEvt="mousedown",d._dragStartCB=function(a){return d._handleDragStart(a,a.clientX,a.clientY)},d._dragMoveEvt="mousemove",d._dragMoveCB=function(a){return d._handleDragMove(a,a.clientX,a.clientY)},d._dragStopEvt="mouseup",d._dragStopCB=function(a){return d._handleDragStop(a,a.clientX,a.clientY)},d._$view.bind("vclick",function(a){return!d._didDrag})):(d._dragStartEvt="touchstart",d._dragStartCB=function(a){var b=a.originalEvent.targetTouches[0];return d._handleDragStart(a,b.pageX,b.pageY)},d._dragMoveEvt="touchmove",d._dragMoveCB=function(a){var b=a.originalEvent.targetTouches[0];return d._handleDragMove(a,b.pageX,b.pageY)},d._dragStopEvt="touchend",d._dragStopCB=function(a){return d._handleDragStop(a)}),d._$view.bind(d._dragStartEvt,d._dragStartCB),d._$view.delegate(".virtualgrid-item","click",function(b){var c=a(this);c.trigger("select",this)}),a(b).bind("resize",function(b){var c=0,e=a(".ui-virtualgrid-view");e.length!==0&&d._resize()}),a(c).one("pageshow",function(c){var e=a(d.element).parents(".ui-page"),f=e.find(":jqmData(role='header')"),g=e.find(":jqmData(role='footer')"),h=e.find(":jqmData(role='content')"),i=g?g.height():0,j=f?f.height():0;e&&h&&(h.height(b.innerHeight-j-i).css("overflow","hidden"),h.addClass("ui-virtualgrid-content"))})},_calculateClipSize:function(){var a=this,b=0;return a._direction?b=a._calculateClipWidth():b=a._calculateClipHeight(),b},_calculateClipWidth:function(){var c=this,d=c._$clip.parent(),e=0,f=a(b).width();return c._inheritedSize.isDefinedWidth?c._inheritedSize.width:(d.hasClass("ui-content")?(e=parseInt(d.css("padding-left"),10),f-=e||0,e=parseInt(d.css("padding-right"),10),f-=e||0):f=c._$clip.width(),f)},_calculateClipHeight:function(){var c=this,d=c._$clip.parent(),e=null,f=null,g=0,h=a(b).height();return c._inheritedSize.isDefinedHeight?c._inheritedSize.height:(d.hasClass("ui-content")?(g=parseInt(d.css("padding-top"),10),h-=g||0,g=parseInt(d.css("padding-bottom"),10),h-=g||0,e=d.siblings(".ui-header"),f=d.siblings(".ui-footer"),e&&(e.outerHeight(!0)===null?h-=a(".ui-header").outerHeight()||0:h-=e.outerHeight(!0)),f&&(h-=f.outerHeight(!0))):h=c._$clip.height(),h)},_calculateColumnSize:function(){var b=this,c,d;c=a(b._makeRows(1)),b._$view.append(c.children().first()),b._direction?(b._viewSize=b._$view.width(),d=b._$view.children().first().children().first(),b._cellSize=d.outerWidth(!0),b._cellOtherSize=d.outerHeight(!0)):(b._viewSize=b._$view.height(),d=b._$view.children().first().children().first(),b._cellSize=d.outerHeight(!0),b._cellOtherSize=d.outerWidth(!0)),c.remove(),b._$view.children().remove()},_calculateColumnCount:function(){var a=this,b=a._$clip,c=a._direction?b.innerHeight():b.innerWidth(),d=0;return a._direction?c-=parseInt(b.css("padding-top"),10)+parseInt(b.css("padding-bottom"),10):c-=parseInt(b.css("padding-left"),10)+parseInt(b.css("padding-right"),10),d=parseInt(c/a._cellOtherSize,10),d>0?d:1},_getClipPosition:function(){var a=this,b=null,c=null,d=-a._cellSize,e=a._$view.closest(".ui-scrollview-view");return e&&(b=e.css("-webkit-transform"),c=b.substr(7),c=c.substr(0,c.length-1),c=c.split(", "),d=Math.abs(c[5])),d},_makeRows:function(a){var b=this,c=0,d=null,e=null;e=b._createElement("div"),e.setAttribute("class","ui-scrollview-view");for(c=0;c<a;c+=1)d=b._makeRow(c),b._direction&&(d.style.top=0,d.style.left=c*b._cellSize),e.appendChild(d);return e},_makeRow:function(a){var b=this,c=a*b._itemCount,d=0,e=b._direction?"ui-virtualgrid-wrapblock-x":"ui-virtualgrid-wrapblock-y",f=b._createElement("div"),g="",h=b._direction?"top":"left";for(d=0;d<b._itemCount;d++)g+=b._makeHtmlData(c,d,h),c+=1;return f.innerHTML=g,f.setAttribute("class",e),f.setAttribute("row-index",String(a)),b._fragment.appendChild(f),f},_makeHtmlData:function(a,b,c){var d=this,e="",f=null;return f=d._itemData(a),f&&(e=d._getConvertedTmplStr(f),e=d._insertPosToTmplStr(e,c,b*d._cellOtherSize)),e},_insertPosToTmplStr:function(a,b,c){var d=a.indexOf(">"),e=-1,f,g,h,i=!1,j=0,k,l=0;if(d===-1)return;f=a.slice(0,d),g=a.slice(d,a.length),e=f.indexOf("class");if(e!==-1){k=f.length;for(l=e+6;l<k;l++)if(f.charAt(l)==='"'||f.charAt(l)==="'"){if(i!==!1){j=l;break}i=!0}h=f.slice(0,j)+" virtualgrid-item"+f.slice(j,k)+g}else h=f+' class="virtualgrid-item"'+g;return isNaN(c)||(h=h.replace(">",' style="'+b+": "+String(c)+'px">')),h},_increaseRow:function(b){var c=this,d=c.options.rotation,f=c._totalRowCnt,g=c._$view[0],h=null,i=g.lastChild,j=null,k=0,l=0,m;if(!i)return;l=parseInt(i.getAttribute("row-index"),10),d||(h=g.firstChild,k=parseInt(h.getAttribute("row-index"),10));for(m=0;m<b;++m){if(l>=f-1&&!d){if(k==0)break;j=c._makeRow(--k),g.insertBefore(j,h),h=j}else j=c._makeRow(e(++l,f)),g.appendChild(j);c._direction?a(j).width(c._cellSize):a(j).height(c._cellSize)}},_decreaseRow:function(a){var b=this,c=b._$view[0],d;for(d=0;d<a;++d)c.removeChild(c.lastChild)},_replaceRows:function(b,c,d,f){var g=this,h=g._$view.children(),i=0,j=0,k=0,l=1,m=g._filterRatio*g._cellSize+g._cellSize,n=0;m<f&&(l+=1),i=parseInt(a(h[l]).attr("row-index"),10),i===0?j=d-l:(j=Math.round(i*c/b),j+g._rowsPerView>=d&&(j=d-g._rowsPerView),k=i-j,j-=l);for(n=0;n<h.length;n+=1)g._replaceRow(h[n],e(j,g._totalRowCnt)),j++;return-k},_replaceRow:function(a,b){var c=this,d=null;while(a.hasChildNodes())a.removeChild(a.lastChild);d=c._makeRow(b);while(d.children.length)a.appendChild(d.children[0]);a.setAttribute("row-index",d.getAttribute("row-index")),d.parentNode.removeChild(d)},_createElement:function(a){var b=c.createElement(a);return this._fragment.appendChild(b),b},_getObjectNames:function(a){var b=[],c="";for(c in a)b.push(c);this._properties=b},_getConvertedTmplStr:function(a){var b=this,c=b._properties,d=0,e,f="";if(!a)return;e=b._templateText;for(d=0;d<c.length;d++)e=b._strReplace(e,"${"+c[d]+"}",a[c[d]]);return e=b._changeImgSrcAriaAttrFromTmpl(e),e},_changeImgSrcAriaAttrFromTmpl:function(a){var b=this,c="",d,e="",f="",g,h,i,j;i=a,d=i.indexOf("$ARIA-IMG-SRC-ALT$");while(d!==-1)g="",e+=i.slice(0,d+19),f=i.slice(d+19,i.length),j=f.match(k),j&&(h=j[0].lastIndexOf("/"),h!==-1&&(g=j[0].slice(h+1,-1))),e=e.replace("$ARIA-IMG-SRC-ALT$",g),i=f,d=i.indexOf("$ARIA-IMG-SRC-ALT$"),c=e+f;return c===""&&(c=a),c},_insertAriaAttrToTmpl:function(a){var b="",c,d="",e="",f;f=a.replace("<div",'<div tabindex="0" aria-selected="true"'),c=f.indexOf("<img");if(c!==-1){while(c!==-1)d+=f.slice(0,c+4),e=f.slice(c+4,f.length),d+=' role="img" alt="$ARIA-IMG-SRC-ALT$"',f=e,c=f.indexOf("<img"),b=d+e;f=b,c=f.indexOf("<span"),d="";while(c!==-1)d+=f.slice(0,c+5),e=f.slice(c+5,f.length),d+=' aria-hidden="true" tabindex="-1"',f=e,c=f.indexOf("<span"),b=d+e}return b===""&&(b=a),b},_strReplace:function(a,b,c){var d=a,e=a.indexOf(b);while(e!==-1)d=d.replace(b,c),e=d.indexOf(b);return d}}),a(c).bind("pagecreate create",function(b){a(":jqmData(role='virtualgrid')").virtualgrid()})}(jQuery,window,document),function(a,b){ensureNS("jQuery.mobile.tizen"),jQuery.extend(jQuery.mobile.tizen,{_widgetPrototypes:{},loadPrototype:function(c,d){function h(a){return a.replace(/\$\{FRAMEWORK_ROOT\}/g,g)}function i(a,b){var c;for(var d in a)typeof a[d]=="string"?(c=a[d],a[d]=b.find(a[d]),c.substring(0,1)==="#"&&a[d].removeAttr("id")):typeof a[d]=="object"&&(a[d]=i(a[d],b));return a}var e=b,f=a("script[data-framework-version][data-framework-root][data-framework-theme]"),g=f.attr("data-framework-root")+"/"+f.attr("data-framework-version")+"/";if(typeof c=="string"){e=a.mobile.tizen._widgetPrototypes[c];if(e===b){var j=g+"proto-html"+"/"+f.attr("data-framework-theme");a.ajax({url:j+"/"+c+".prototype.html",async:!1,dataType:"html"}).success(function(b,d,f){a.mobile.tizen._widgetPrototypes[c]=a("<div>").html(h(b)),e=a.mobile.tizen._widgetPrototypes[c].clone()})}}else c.key!==b&&(e=a.mobile.tizen._widgetPrototypes[c.key]),e===b?c.proto!==b&&(e=a("<div>").html(h(c.proto)),c.key!==b&&(a.mobile.tizen._widgetPrototypes[c.key]=e.clone())):e=e.clone();return e!=b&&d!=b&&(e=i(d,e)),e}})}(jQuery),function(a,b,c){a.widget("tizen.progress",a.mobile.widget,{options:{style:"circle",running:!1},show:function(){a(this.element).show()},hide:function(){a(this.element).hide()},_start:function(){this.init||(a(this.element).append(this.html),this.init=!0),this.show(),a(this.element).find(".ui-progress-"+this.options.style).addClass(this.runningClass)},_stop:function(){a(this.element).find(".ui-progress-"+this.options.style).removeClass(this.runningClass)},running:function(a){if(a===c)return this.options.running;this._setOption("running",a)},_setOption:function(a,c){if(a==="running"){if(typeof c!="boolean"){b.alert("running value MUST be boolean type!");return}this.options.running=c,this._refresh()}},_refresh:function(){this.options.running?this._start():this._stop()},_create:function(){var b=this,c=this.element,d=c.jqmData("style"),e,f;d?this.options.style=d:d=this.options.style,d=="circle"?(a(this.element).addClass("ui-progress-container-circle"),e='<div class="ui-progress-circle"></div>'):d==="pending"&&(a(this.element).addClass("ui-progressbar"),e='<div class="ui-progressbar-bg"><div class="ui-progress-pending"></div></div>'),this.html=a(e),f="ui-progress-"+d+"-running",a.extend(this,{init:!1,runningClass:f}),d==="pending"&&(a(this.element).append(this.html),this.init=!0),this._refresh()}}),a(document).bind("pagecreate create",function(b){a(b.target).find(":jqmData(role='progress')").progress()})}(jQuery,this),function(a,b){function c(){var b=a("script[data-framework-version][data-framework-root][data-framework-theme]");return b.attr("data-framework-root")+"/"+b.attr("data-framework-version")+"/themes/"+b.attr("data-framework-theme")+"/proto-html"}a.widget("tizen.widgetex",a.mobile.widget,{_createWidget:function(){a.tizen.widgetex.loadPrototype.call(this,this.namespace+"."+this.widgetName),a.mobile.widget.prototype._createWidget.apply(this,arguments)},_init:function(){if(this.element===b)return;var c=this.element.closest(".ui-page"),d=this,e={};c.is(":visible")?this._realize():c.bind("pageshow",function(){d._realize()}),a.extend(e,this.options),this.options={},this._setOptions(e)},_getCreateOptions:function(){if(this.element.is("input")&&this._value!==b){var c=this.element.attr("type")==="checkbox"||this.element.attr("type")==="radio"?this.element.is(":checked"):this.element.is("[value]")?this.element.attr("value"):b;c!=b&&this.element.attr(this._value.attr,c)}return a.mobile.widget.prototype._getCreateOptions.apply(this,arguments)},_setOption:function(c,d){var e="_set"+c.replace(/^[a-z]/,function(a){return a.toUpperCase()});this[e]!==b?this[e](d):a.mobile.widget.prototype._setOption.apply(this,arguments)},_setDisabled:function(b){a.Widget.prototype._setOption.call(this,"disabled",b),this.element.is("input")&&this.element.attr("disabled",b)},_setValue:function(b){a.tizen.widgetex.setValue(this,b)},_realize:function(){}}),a.tizen.widgetex.setValue=function(a,c){if(a._value!==b){var d=a._value.makeString?a._value.makeString(c):c,e;a.element.attr(a._value.attr,d),a._value.signal!==b&&a.element.triggerHandler(a._value.signal,c),a.element.is("input")&&(e=a.element.attr("type"),e==="checkbox"||e==="radio"?c?a.element.attr("checked",!0):a.element.removeAttr("checked"):a.element.attr("value",d),a.element.trigger("change"))}},a.tizen.widgetex.assignElements=function(b,c){var d={},e;for(e in c)typeof c[e]=="string"?(d[e]=b.find(c[e]),c[e].match(/^#/)&&d[e].removeAttr("id")):typeof c[e]=="object"&&(d[e]=a.tizen.widgetex.assignElements(b,c[e]));return d},a.tizen.widgetex.loadPrototype=function(d,e){var f=d.split("."),g,h,i,j=!1,k,l;f.length==2&&(g=f[0],h=f[1],a[g][h].prototype._htmlProto!==b&&(i=a[g][h].prototype._htmlProto.source,i===b&&(i=h,j=!0),typeof i=="string"?j?(d=i,l=c(),a.ajax({url:l+"/"+d+".prototype.html",async:!1,dataType:"html"}).success(function(b,c,d){i=a("<div></div>").html(b).jqmData("tizen.widgetex.ajax.fail",!1)}),i=a("<div></div>").text("Failed to load proto for widget "+g+"."+h+"!").css({background:"red",color:"blue",border:"1px solid black"}).jqmData("tizen.widgetex.ajax.fail",!0)):i=a(i).jqmData("tizen.widgetex.ajax.fail",!1):i.jqmData("tizen.widgetex.ajax.fail",!1),k=i,a[g][h].prototype._htmlProto.source=i,a[g][h].prototype._htmlProto.ui!==b&&a.extend(this,{_ui:a.tizen.widgetex.assignElements(k.clone(),a[g][h].prototype._htmlProto.ui)})))}}(jQuery),function(a,b,c){a.widget("tizen.progressbar",a.mobile.widget,{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()}),this.valueDiv=a("<div class='ui-progressbar-value'></div>").appendTo(this.element),this.valueDiv.wrap("<div class='ui-progressbar-bg'></div>"),this.oldValue=this._value(),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(a){return a===c?this._value():(this._setOption("value",a),this)},_setOption:function(a,b){a==="value"&&(this.options.value=b,this._refreshValue(),this._value()===this.options.max&&this.element.trigger("complete"))},_value:function(){var a=this.options.value;return typeof a!="number"&&(a=0),Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var a=this.value(),b=this._percentage();this.oldValue!==a&&(this.oldValue=a,this.element.trigger("change")),this.valueDiv.toggle(a>this.min).width(b.toFixed(0)+"%"),this.element.attr("aria-valuenow",a)}}),a(document).bind("pagecreate",function(b){a(b.target).find(":jqmData(role='progressbar')").progressbar()})}(jQuery,this),function(a){a.widget("tizen.swipe",a.mobile.widget,{options:{theme:null},_create:function(){var a=this.element.jqmData("theme")||this.options.theme||this.element.parent().jqmData("theme")||"s";this.options.theme=a,this._isopen=!1,this.refresh()},refresh:function(){this._cleanupDom();var b=this,c,d,e,f,g;c="ui-body-"+this.options.theme,this.element.parent().hasClass("ui-listview")||this.element.parent().listview(),this.element.addClass("ui-swipe"),d=this.element.find(':jqmData(role="swipe-item-cover")'),f=this.element.find(':jqmData(role="swipe-item")'),this._covers=d,this._item=f,f.addClass("ui-swipe-item"),e=c,g=f.parent().attr("class").match(/ui\-body\-[a-z]|ui\-bar\-[a-z]/),d.each(function(){var c=a(this);g&&(e=g[0]),c.addClass("ui-swipe-item-cover"),c.addClass(e),c.has(".ui-swipe-item-cover-inner").length===0&&c.wrapInner(a("<span/>").addClass("ui-swipe-item-cover-inner"));if(!c.data("animateRight")||!c.data("animateLeft"))c.data("animateRight",function(){b._animateCover(c,110,f)}),c.data("animateLeft",function(){b._animateCover(c,0,f)});f.bind("swipeleft",c.data("animateLeft")),c.bind("swiperight",c.data("animateRight")),f.find(".ui-btn").bind("vclick",c.data("animateLeft"))})},_cleanupDom:function(){var a=this,b,c,d=b,e,f,g,h,i;b="ui-body-"+this.options.theme,this.element.removeClass("ui-swipe"),c=this.element.find(':jqmData(role="swipe-item-cover")'),e=this.element.find(':jqmData(role="swipe-item")'),e.removeClass("ui-swipe-item"),c.removeClass("ui-swipe-item-cover"),f=e.attr("class"),g=f&&f.match(/ui\-body\-[a-z]|ui\-bar\-[a-z]/),g&&(d=g[0]),c.removeClass(d),i=c.find(".ui-swipe-item-cover-inner"),i.children().unwrap(),h=i.text(),h&&(c.append(h),i.remove()),c.data("animateRight")&&c.data("animateLeft")&&(c.unbind("swiperight",c.data("animateRight")),e.unbind("swipeleft",c.data("animateLeft")),e.find(".ui-btn").unbind("vclick",c.data("animateLeft")),c.data("animateRight",null),c.data("animateLeft",null))},_animateCover:function(b,c,d){var e=this,f={easing:"linear",duration:"normal",queue:!0,complete:function(){b.trigger("animationend")}};a(this.element.parent()).find(":jqmData(role='swipe')").each(function(){this!==e.element.get(0)&&a(this).swipe("opened")&&a(this).swipe("close")}),c==110?this._isopen=!0:this._isopen=!1,b.stop(),b.clearQueue(),b.trigger("animationstart"),b.animate({left:c+"%"},f),c==0?d.animate({opacity:0},"slow"):d.animate({opacity:1},"slow")},destroy:function(){this._cleanupDom()},open:function(){var b=this;a(b._covers).each(function(){var c=a(this);b._animateCover(c,110,b._item)})},opened:function(){return this._isopen},close:function(){var b=this;a(b._covers).each(function(){var c=a(this);b._animateCover(c,0,b._item)})}}),a(document).bind("pagecreate",function(b){a(b.target).find(":jqmData(role='swipe')").swipe()})}(jQuery),function(a,b){a.widget("tizen.tabbar",a.mobile.widget,{options:{iconpos:"top",grid:null,defaultList:4,initSelector:":jqmData(role='tabbar')"},_create:function(){var c=this.element,d,e,f,g=a.mobile.listview.prototype.options.theme,h=window.innerWidth||a(window).width(),i=window.innerHeight||a(window).height(),j="<div class='ui-tabbar-divider ui-tabbar-divider-left'></div>",k="<div class='ui-tabbar-divider ui-tabbar-divider-right'></div>",l;l=h>i&&h-i,l?c.removeClass("ui-portrait-tabbar").addClass("ui-landscape-tabbar"):c.removeClass("ui-landscape-tabbar").addClass("ui-portrait-tabbar"),c.find("a").length&&(d=c.find("a"),f=d.filter(":jqmData(icon)").length?this.options.iconpos:b,e=d.html().length?!0:!1),c.parents(".ui-header").length&&c.parents(".ui-scrollview-view").length?(c.find("li").addClass("tabbar-scroll-li"),c.find("ul").addClass("tabbar-scroll-ul"),a(j).appendTo(c.parents(".ui-scrollview-clip")),a(k).appendTo(c.parents(".ui-scrollview-clip")),a(".ui-tabbar-divider-left").hide(),a(".ui-tabbar-divider-right").hide(),c.parents(".ui-scrollview-view").data("default-list")&&(this.options.defaultList=c.parents(".ui-scrollview-view").data("default-list")),c.find("li").css("width",window.innerWidth/this.options.defaultList+"px")):c.find("ul").children().length&&c.addClass("ui-navbar").find("ul").grid({grid:this.options.grid}),c.parents(".ui-footer").length&&c.find("li").addClass("ui-tab-btn-style"),c.siblings(".ui-title").length&&c.parents(".ui-header").addClass("ui-title-tabbar"),f||c.addClass("ui-tabbar-noicons"),e||c.addClass("ui-tabbar-notext"),e&&f&&c.parents(".ui-header").addClass("ui-title-tabbar-multiline"),c.find("a").length&&d.buttonMarkup({corners:!1,shadow:!1,iconpos:f}),c.find(".ui-state-persist").length&&c.addClass("ui-tabbar-persist"),c.delegate("a","vclick",function(b){d.not(".ui-state-persist").removeClass(a.mobile.activeBtnClass),a(this).addClass(a.mobile.activeBtnClass)}),c.addClass("ui-tabbar"),a(document).bind("pagebeforeshow",function(b,c){var d=a(b.target).find(":jqmData(role='footer')"),e=d.find(":jqmData(role='tabbar')"),f=e.siblings(":jqmData(icon='naviframe-more')"),g=e.siblings(".ui-btn-back");d.css("position","fixed").css("bottom",0).css("height",e.height()),f.length&&e.addClass("ui-tabbar-margin-more"),g.length&&e.addClass("ui-tabbar-margin-back")}),c.bind("touchstart vmousedown",function(b){var c=a(b.target).parents(".ui-scrollview-view");c.offset()&&(c.offset().left<0?a(".ui-tabbar-divider-left").show():a(".ui-tabbar-divider-left").hide(),c.width()-c.parents(".ui-scrollview-clip").width()==Math.abs(c.offset().left)?a(".ui-tabbar-divider-right").hide():a(".ui-tabbar-divider-right").show())}),this._bindTabbarEvents(),this._initTabbarAnimation()},_initTabbarAnimation:function(){var b=!1,c=!1;a(document).bind("scrollstart.tabbar",function(d){a(d.target).find(".ui-tabbar").length&&(b=!0,c=!1)}),a(document).bind("scrollstop.tabbar",function(d){var e=a(d.target),f=a(d.target).find(".ui-tabbar"),g=a(d.target).find(".ui-tabbar li"),h=g.eq(0),i,j=-1;c=!0,f.length&&b==1&&(i=Math.abs(g.eq(0).offset().left),g.each(function(a){var b=g.eq(a).offset();Math.abs(b.left)<i&&(i=Math.abs(b.left),j=a,h=g.eq(a))}),e.length&&b==c&&j!=-1&&(b=!1,e.scrollview("scrollTo",-(window.innerWidth/f.data("defaultList")*j),0,357))),a(".ui-tabbar-divider-left").hide(),a(".ui-tabbar-divider-right").hide()})},_bindTabbarEvents:function(){var b=this.element;a(window).bind("orientationchange",function(c,d){var e=window.innerWidth||a(window).width(),f=window.innerHeight||a(window).height(),g=e>f&&e-f;g?b.removeClass("ui-portrait-tabbar").addClass("ui-landscape-tabbar"):b.removeClass("ui-landscape-tabbar").addClass("ui-portrait-tabbar")})},_setDisabled:function(a,b){this.element.find("li").eq(b).attr("disabled",a),this.element.find("li").eq(b).attr("aria-disabled",a)},disable:function(a){this._setDisabled(!0,a),this.element.find("li").eq(a).addClass("ui-disabled")},enable:function(a){this._setDisabled(!1,a),this.element.find("li").eq(a).removeClass("ui-disabled")}}),a(document).bind("pagecreate create",function(b){a(a.tizen.tabbar.prototype.options.initSelector,b.target).tabbar()})}(jQuery),function(a,b){a.widget("tizen.triangle",a.tizen.widgetex,{options:{extraClass:"",offset:null,color:null,location:"top",initSelector:":jqmData(role='triangle')"},_create:function(){var b=a("<div></div>",{"class":"ui-triangle"});a.extend(this,{_triangle:b}),this.element.addClass("ui-triangle-container").append(b)},_doCSS:function(){var b=this.options.location||"top",c=a.inArray(b,["top","bottom"])===-1?"top":"left",d={"border-bottom-color":"top"===b?this.options.color:"transparent","border-top-color":"bottom"===b?this.options.color:"transparent","border-left-color":"right"===b?this.options.color:"transparent","border-right-color":"left"===b?this.options.color:"transparent"};d[c]=this.options.offset,this._triangle.removeAttr("style").css(d)},_setOffset:function(b){this.options.offset=b,this.element.attr("data-"+(a.mobile.ns||"")+"offset",b),this._doCSS()},_setExtraClass:function(b){this._triangle.addClass(b),this.options.extraClass=b,this.element.attr("data-"+(a.mobile.ns||"")+"extra-class",b)},_setColor:function(b){this.options.color=b,this.element.attr("data-"+(a.mobile.ns||"")+"color",b),this._doCSS()},_setLocation:function(b){this.element.removeClass("ui-triangle-container-"+this.options.location).addClass("ui-triangle-container-"+b),this._triangle.removeClass("ui-triangle-"+this.options.location).addClass("ui-triangle-"+b),this.options.location=b,this.element.attr("data-"+(a.mobile.ns||"")+"location",b),this._doCSS()}}),a(document).bind("pagecreate create",function(b){a(a.tizen.triangle.prototype.options.initSelector,b.target).not(":jqmData(role='none'), :jqmData(role='nojs')").triangle()})}(jQuery),function(a,b){a.widget("tizen.popupwindow",a.tizen.widgetex,{options:{theme:null,overlayTheme:"s",style:"custom",disabled:!1,shadow:!0,corners:!0,fade:!1,opacity:.7,widthRatio:.8612,transition:a.mobile.defaultDialogTransition,initSelector:":jqmData(role='popupwindow')"},_htmlProto:{source:["<div><div>"," <div id='popupwindow-screen' class='ui-selectmenu-screen ui-screen-hidden ui-popupwindow-screen'></div>"," <div id='popupwindow-container' class='ui-popupwindow ui-popupwindow-padding ui-selectmenu-hidden ui-overlay-shadow ui-corner-all'></div>","</div>","</div>"].join(""),ui:{screen:"#popupwindow-screen",container:"#popupwindow-container"}},_setStyle:function(){var a=this.element,b=a.attr("data-style");b&&(this.options.style=b),a.addClass(this.options.style),a.find(":jqmData(role='title')").wrapAll("<div class='popup-title'></div>"),a.find(":jqmData(role='text')").wrapAll("<div class='popup-text'></div>"),a.find(":jqmData(role='button-bg')").wrapAll("<div class='popup-button-bg'></div>"),a.find(":jqmData(role='check-bg')").wrapAll("<div class='popup-check-bg'></div>"),a.find(":jqmData(role='scroller-bg')").addClass("popup-scroller-bg"),a.find(":jqmData(role='text-bottom-bg')").wrapAll("<div class='popup-text-bottom-bg'></div>"),a.find(":jqmData(role='text-left')").wrapAll("<div class='popup-text-left'></div>"),a.find(":jqmData(role='text-right')").wrapAll("<div class='popup-text-right'></div>"),a.find(":jqmData(role='progress-bg')").wrapAll("<div class='popup-progress-bg'></div>")},_create:function(){console.warn("popupwindow() was deprecated. use popup() instead.");var b=this.element.closest(":jqmData(role='page')"),c=this;b.length===0&&(b=a("body")),this._ui.placeholder=a("<div><!-- placeholder for "+this.element.attr("id")+" --></div>").css("display","none").insertBefore(this.element),b.append(this._ui.screen),this._ui.container.insertAfter(this._ui.screen),this._ui.container.append(this.element),this._setStyle(),this._isOpen=!1,this._ui.screen.bind("vclick",function(a){return c.close(),!1}),this.element.bind("vclick",function(b){a(b.target).is("ui-btn-ctxpopup-close")&&c.close()})},destroy:function(){this.element.insertBefore(this._ui.placeholder),this._ui.placeholder.remove(),this._ui.container.remove(),this._ui.screen.remove(),this.element.triggerHandler("destroyed"),a.Widget.prototype.destroy.call(this)},_placementCoords:function(b,c,d,e){var f=a(window).height(),g=a(window).width(),h=e/2,i=parseFloat(this._ui.container.css("max-width")),j=c,k=f-c,l,m;return j>e/2&&k>e/2?l=c-h:l=j>k?f-e-30:30,d<i?m=(g-d)/2:(m=b-d/2,m<10?m=10:m+d>g&&(m=g-d-10)),{x:m,y:l}},_setPosition:function(c,d){var e=b===c?a(window).width()/2:c,f=b===d?a(window).height()/2:d,g,h=this.element.data("ctxpopup"),i,j,k,l,m,n,o,p,q,r,s;h||(i=a(window).width()*this.options.widthRatio,this._ui.container.css("width",i),this._ui.container.outerWidth()>a(window).width()&&this._ui.container.css({"max-width":a(window).width()-30})),g=this._placementCoords(e,f,this._ui.container.outerWidth(),this._ui.container.outerHeight()),j=this._ui.container.innerHeight(),k=this._ui.container.innerWidth(),l=a(window).height(),m=a(window).width(),n=f,o=l-f,p=j/2,q=parseFloat(this._ui.container.css("max-width")),r=(l-j)/2,!q||k<q?s=(m-k)/2:(s=e-k/2,s<30?s=30:s+k>m&&(s=m-k-30)),h&&(r=g.y,s=g.x),this._ui.container.css({top:r,left:s}),this._ui.screen.css("height",l)},open:function(b,c,d){var e=this,f=0;if(this._isOpen||this.options.disabled)return;a(document).find("*").each(function(){var b=a(this),c=parseInt(b.css("z-index"),10);b.is(e._ui.container)||b.is(e._ui.screen)||isNaN(c)||(f=Math.max(f,c))}),this._ui.screen.css("height",a(window).height()),d?this._ui.screen.css("opacity",0).removeClass("ui-screen-hidden"):(this._ui.removeClass("ui-screen-hidden"),this.options.fade?this._ui.screen.animate({opacity:this.options.opacity},"fast"):this._ui.screen.css({opacity:this.options.opacity})),this._setPosition(b,c),this.element.trigger("popupbeforeposition"),this._ui.container.removeClass("ui-selectmenu-hidden").addClass("in").animationComplete(function(){e.element.trigger("popupafteropen")}),this._isOpen=!0,this._reflow||(this._reflow=function(){if(!e._isOpen)return;e._setPosition(b,c)},a(window).bind("resize",this._reflow))},close:function(){if(!this._isOpen)return;this._reflow&&(a(window).unbind("resize",this._reflow),this._reflow=null);var b=this,c=function(){b._ui.screen.addClass("ui-screen-hidden"),b._isOpen=!1};this._ui.container.removeClass("in").addClass("reverse out"),this.options.transition==="none"?(this._ui.container.addClass("ui-selectmenu-hidden").removeAttr("style"),this.element.trigger("popupafterclose")):this._ui.container.animationComplete(function(){b._ui.container.removeClass("reverse out").addClass("ui-selectmenu-hidden").removeAttr("style"),b.element.trigger("popupafterclose")}),this.options.fade?this._ui.screen.animate({opacity:0},"fast",c):c()},_realSetTheme:function(a,b){var c=(a.attr("class")||"").split(" "),d=!0,e=null,f;while(c.length>0){e=c.pop(),f=e.match(/^ui-body-([a-z])$/);if(f&&f.length>1){e=f[1];break}e=null}a.removeClass("ui-body-"+e),(b||"").match(/[a-z]/)&&a.addClass("ui-body-"+b)},_setTheme:function(b){this._realSetTheme(this.element,b),this.options.theme=b,this.element.attr("data-"+(a.mobile.ns||"")+"theme",b)},_setOverlayTheme:function(b){this._realSetTheme(this._ui.container,b),this.options.overlayTheme=b,this.element.attr("data-"+(a.mobile.ns||"")+"overlay-theme",b)},_setShadow:function(b){this.options.shadow=b,this.element.attr("data-"+(a.mobile.ns||"")+"shadow",b),this._ui.container[b?"addClass":"removeClass"]("ui-overlay-shadow")},_setCorners:function(b){this.options.corners=b,this.element.attr("data-"+(a.mobile.ns||"")+"corners",b),this._ui.container[b?"addClass":"removeClass"]("ui-corner-all")},_setFade:function(b){this.options.fade=b,this.element.attr("data-"+(a.mobile.ns||"")+"fade",b)},_setTransition:function(b){this._ui.container.removeClass(this.options.transition||"").addClass(b),this.options.transition=b,this.element.attr("data-"+(a.mobile.ns||"")+"transition",b)},_setDisabled:function(b){a.Widget.prototype._setOption.call(this,"disabled",b),b&&this.close()}}),a.tizen.popupwindow.bindPopupToButton=function(a,b){if(a.length===0||b.length===0)return;var c=function(c){return b.jqmData("overlay-theme-set")||b.popupwindow("option","overlayTheme",a.jqmData("theme")),b.popupwindow("open",a.offset().left+a.outerWidth()/2,a.offset().top+a.outerHeight()/2),!1};(b.popupwindow("option","overlayTheme")||"").match(/[a-z]/)&&b.jqmData("overlay-theme-set",!0),a.attr({"aria-haspopup":!0,"aria-owns":a.attr("href")}).removeAttr("href").bind("vclick",c),b.bind("destroyed",function(){a.unbind("vclick",c)})},a(document).bind("pagecreate create",function(b){a(a.tizen.popupwindow.prototype.options.initSelector,b.target).not(":jqmData(role='none'), :jqmData(role='nojs')").popupwindow(),a("a[href^='#']:jqmData(rel='popupwindow')",b.target).each(function(){a.tizen.popupwindow.bindPopupToButton(a(this),a(a(this).attr("href")))})})}(jQuery),function(a,b){a.widget("tizen.ctxpopup",a.tizen.widgetex,{options:a.extend({},a.tizen.popupwindow.prototype.options,{initSelector:":jqmData(show-arrow)"}),_htmlProto:{source:["<div><div id='outer' class='ui-ctxpopup'>"," <div id='top' class='ui-ctxpopup-row' data-role='triangle' data-location='top'></div>"," <div class='ui-ctxpopup-row'>"," <div id='left' class='ui-ctxpopup-cell' data-role='triangle' data-location='left'></div>"," <div id='container' class='ui-ctxpopup-cell'></div>"," <div id='right' class='ui-ctxpopup-cell' data-role='triangle' data-location='right'></div>"," </div>"," <div id='bottom' class='ui-ctxpopup-row' data-role='triangle' data-location='bottom'></div>","</div>","</div>"].join(""),ui:{outer:"#outer",container:"#container",arrow:{all:":jqmData(role='triangle')",l:"#left",t:"#top",r:"#right",b:"#bottom"}}},_create:function(){console.warn("ctxpopup() was deprecated. use popup() instead."),this.element.data("popupwindow")||this.element.popupwindow(),this.element.data("popupwindow")._ui.container.removeClass("ui-popupwindow-padding").append(this._ui.outer),this._ui.outer.trigger("create"),this._ui.container.addClass("ui-popupwindow-padding").append(this.element)},_setOption:function(b,c){a.tizen.popupwindow.prototype._setOption.apply(this.element.data("popupwindow"),arguments),this.options[b]=c}});var c=a.tizen.popupwindow.prototype.open,d=a.tizen.popupwindow.prototype._setOption,e=a.tizen.popupwindow.prototype._placementCoords;a.tizen.popupwindow.prototype._setOption=function(a,b){var c=this.element.data("ctxpopup"),e=!0,f;if(c){if("shadow"===a||"overlayTheme"===a||"corners"===a)f=this._ui.container,this._ui.container=c._ui.container,d.apply(this,arguments),this._ui.container=f,e=!1;c.options[a]=b}e&&d.apply(this,arguments)},a.tizen.popupwindow.prototype._placementCoords=function(c,d,f,g){function m(a,b,f){h._ui.arrow.all.hide(),h._ui.arrow[a].show();var g="b"===a||"t"===a,j=g?{point:"x",size:"cx",beg:"left",outerSize:"outerWidth",niceSize:"width",triangleSize:"height"}:{point:"y",size:"cy",beg:"top",outerSize
+:"outerHeight",niceSize:"height",triangleSize:"width"},k={cx:i._ui.container.width(),cy:i._ui.container.height()},l={cx:k.cx/2,cy:k.cy/2},m={x:c+l.cx*b,y:d+l.cy*f},n=e.call(i,m.x,m.y,k.cx,k.cy),o=h._ui.arrow[a].offset()[j.beg],p=h._ui.arrow[a][j.outerSize](!0),q=i.element.offset()[j.beg],r=i.element[j.outerSize](!0),s=h._ui.arrow[a][j.triangleSize](),t=Math.max(s+Math.max(0,q-o),Math.min(p-s-Math.max(0,o+p-(q+r)),p/2+m[j.point]-n[j.point]-l[j.size])),u={x:n.x+(g?t:0)+("r"===a?k.cx:0),y:n.y+(g?0:t)+("b"===a?k.cy:0)},v={actual:n,triangleOffset:t,absDiff:Math.abs(c-u.x)+Math.abs(d-u.y)};return h._ui.arrow[a].hide(),v}var h=this.element.data("ctxpopup"),i=this,j={},k,l;return h?(j={l:m("l",1,0),r:m("r",-1,0),t:m("t",0,1),b:m("b",0,-1)},a.each(j,function(a,c){if(k===b||c.absDiff<k)k=c.absDiff,l=a}),h._ui.arrow[l].show().triangle("option","offset",j[l].triangleOffset),j[l].actual):e.call(this,c,d,f,g)},a.tizen.popupwindow.prototype.open=function(b,d){var e=this.element.data("ctxpopup");e&&(this._setFade(!1),this._setShadow(!1),this._setCorners(!1),this._setOverlayTheme(null),this._setOption("overlayTheme",e.options.overlayTheme),e._ui.arrow.all.triangle("option","color",e._ui.container.css("background-color")),a(".ui-popupwindow").css("background","none")),c.call(this,b,d,!0)},a(document).bind("pagecreate create",function(b){var c=a(a.tizen.ctxpopup.prototype.options.initSelector,b.target);a.tizen.ctxpopup.prototype.enhanceWithin(b.target)})}(jQuery),function(a,b,c){a.widget("tizen.datetimepicker",a.tizen.widgetex,{options:{type:null,format:null,date:null,initSelector:"input[type='date'], input[type='datetime'], input[type='time'], :jqmData(role='datetimepicker')"},container:null,_calendar:function(){return b.Globalize.culture().calendars.standard},_value:{attr:"data-"+(a.mobile.ns||"")+"date",signal:"date-changed"},_daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],_isLeapYear:function(a){return a%4?0:a%100?1:a%400?0:1},_makeTwoDigits:function(a){var b=a.toString(10);return a<10&&(b="0"+b),b},_setType:function(b){switch(b){case"datetime":case"date":case"time":this.options.type=b;break;default:this.options.type="datetime"}return this.element.attr("data-"+(a.mobile.ns?a.mobile.ns+"-":"")+"type",this.options.type),this.options.type},_setFormat:function(b){if(this.options.format==b)return;this.options.format=b,this.ui.children().remove();var c=this._parsePattern(b),d=document.createElement("div"),e,f,g,h,i=this;while(c.length>0){e=c.shift(),f='<span class="ui-datefield-%1" data-pat="'+e+'">%2</span>';switch(e){case"H":case"HH":case"h":case"hh":a(d).append(f.replace("%1","hour"));break;case"mm":case"m":this.options.type=="date"?a(d).append(f.replace("%1","month")):a(d).append(f.replace("%1","min"));break;case"ss":case"s":a(d).append(f.replace("%1","sec"));break;case"d":case"dd":a(d).append(f.replace("%1","day"));break;case"M":case"MM":case"MMM":case"MMMM":a(d).append(f.replace("%1","month"));break;case"yy":case"yyyy":a(d).append(f.replace("%1","year"));break;case"t":case"tt":h='<a href="#" class="ui-datefield-period" data-role="button" data-inline="true">period</a>',a(d).append(h);break;case"g":case"gg":a(d).append(f.replace("%1","era").replace("%2",this._calendar().eras.name));break;case"\t":a(d).append(f.replace("%1","tab").replace("%2",e));break;default:a(d).append(f.replace("%1","seperator").replace("%2",e))}}return this.ui.append(d),this.options.date&&this._setDate(this.options.date),this.ui.find(".ui-datefield-period").buttonMarkup().bind("vclick",function(a){i._switchAmPm(i)}),this.element.attr("data-"+(a.mobile.ns?a.mobile.ns+"-":"")+"format",this.options.format),this.options.format},_setDate:function(b){function i(){return b.getMonth()+1}typeof b=="string"&&(b=new Date(b));var c=a("span,a",this.ui),d,e,f,g,h;for(h=0;h<c.length;h++){f=a(c[h]),d=f.attr("class").match(/ui-datefield-([\w]*)/),d||(d="");switch(d[1]){case"hour":e=b.getHours;break;case"min":e=b.getMinutes;break;case"sec":e=b.getSeconds;break;case"year":e=b.getFullYear;break;case"month":e=i;break;case"day":e=b.getDate;break;case"period":e=b.getHours()<12?this._calendar().AM[0]:this._calendar().PM[0],g=f.find(".ui-btn-text"),g.length==0?f.text(e):g.text()!=e&&g.text(e),e=null;break;default:e=null}e&&this._updateField(f,e.call(b))}return this.options.date=b,this._setValue(b),this.element.attr("data-"+(a.mobile.ns?a.mobile.ns+"-":"")+"date",this.options.date),this.options.date},destroy:function(){this.ui&&this.ui.remove(),this.element&&this.element.show()},value:function(a){function b(a,b){return b._makeTwoDigits(a.getHours())+":"+b._makeTwoDigits(a.getMinutes())+":"+b._makeTwoDigits(a.getSeconds())}function c(a,b){return(a.getFullYear()%1e4+1e4).toString().substr(1)+"-"+b._makeTwoDigits(a.getMonth()+1)+"-"+b._makeTwoDigits(a.getDate())}var d=null;if(a)d=this._setDate(a);else switch(this.options.type){case"time":d=b(this.options.date,this);break;case"date":d=c(this.options.date,this);break;default:d=c(this.options.date,this)+"T"+b(this.options.date,this)}return d},setValue:function(a){return console.warn("setValue was deprecated. use datetimepicker('option', 'date', value) instead."),this.value(a)},getValue:function(){return console.warn("getValue() was deprecated. use datetimepicker('value') instead."),this.value()},_updateField:function(a,b){if(!a||a.length==0)return;b==0&&(b="0");var c=a.jqmData("pat"),d,e,f=this;switch(c){case"H":case"HH":case"h":case"hh":d=b,c.charAt(0)=="h"&&(d>12?d-=12:d==0&&(d=12)),d=this._makeTwoDigits(d),e=d;break;case"m":case"M":case"d":case"s":e=b;break;case"mm":case"dd":case"MM":case"ss":e=this._makeTwoDigits(b);break;case"MMM":e=this._calendar().months.namesAbbr[b-1];break;case"MMMM":e=this._calendar().months.names[b-1];break;case"yy":e=this._makeTwoDigits(b%100);break;case"yyyy":b<10?b="000"+b:b<100?b="00"+b:b<1e3&&(b="0"+b),e=b}a.text()!=e&&(a.hasClass("ui-datefield-selected")?(a.addClass("out"),this._new_value=e,a.animationComplete(function(){a.text(f._new_value),a.addClass("in").removeClass("out"),a.animationComplete(function(){a.removeClass("in").removeClass("ui-datefield-selected")})})):a.text(e))},_switchAmPm:function(a){if(this._calendar().AM!=null){var b=new Date(this.options.date),c,d=432e5;b.getHours()>11&&(d=-d),b.setTime(b.getTime()+d),this._setDate(b)}},_parsePattern:function(a){var b=/\/|\s|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|f|gg|g|\'[\w\W]*\'$|[\w\W]/g,c,d;c=a.match(b);for(d=0;d<c.length;d++)c[d].charAt(0)=="'"&&(c[d]=c[d].substr(1,c[d].length-2));return c},changeTypeFormat:function(a,b){console.warn('changeTypeFormat() was deprecated. use datetimepicker("option", "type"|"format", value) instead'),a&&this._setType(a),b&&this._setFormat(b)},_create:function(){var c=this;this.element.is("input")&&function(a){var b,c,d;b=a.element.get(0).getAttribute("type"),a.options.type=b,c=a.element.get(0).getAttribute("value"),c&&(a.options.date=new Date(c))}(this);if(!this.options.format)switch(this.options.type){case"datetime":this.options.format=this._calendar().patterns.d+"\t"+this._calendar().patterns.t;break;case"date":this.options.format=this._calendar().patterns.d;break;case"time":this.options.format=this._calendar().patterns.t}this.options.date||(this.options.date=new Date),this.element.hide(),this.ui=a('<div class="ui-datefield"></div>'),a(this.element).after(this.ui),this._popup_open=!1,this.ui.bind("vclick",function(a){c._showDataSelector(c,this,a.target)}),a.extend(this,{_globalHandlers:[{src:a(b),handler:{orientationchange:a.proxy(this,"_orientationHandler")}}]}),a.each(this._globalHandlers,function(a,b){b.src.bind(b.handler)})},_orientationHandler:function(){var a=this;return a._popup_open&&(a._popup_open=!1,a.container.popupwindow("close")),!1},_populateDataSelector:function(a,c){var d,e,f,g,h=b.range,i,j,k,l;switch(a){case"hour":c=="H"||c=="HH"?(d=h(0,23),g=h(0,23),f=this.options.date.getHours()):(d=h(1,12),f=this.options.date.getHours()-1,f>=11?(f-=12,g=h(13,23),g.push(12)):(g=h(1,11),g.push(0)),f<0&&(f=11)),c.length==2&&(d=d.map(this._makeTwoDigits)),e=d.length;break;case"min":case"sec":d=h(0,59),c.length==2&&(d=d.map(this._makeTwoDigits)),g=h(0,59),f=a=="min"?this.options.date.getMinutes():this.options.date.getSeconds(),e=d.length;break;case"year":j=1900,k=2100,g=h(j,k),f=this.options.date.getFullYear()-j,d=h(j,k),e=d.length;break;case"month":switch(c.length){case 1:d=h(1,12);break;case 2:d=h(1,12).map(this._makeTwoDigits);break;case 3:d=this._calendar().months.namesAbbr.slice();break;case 4:d=this._calendar().months.names.slice()}d.length==13&&d[12]==""&&d.pop(),g=h(1,d.length),f=this.options.date.getMonth(),e=d.length;break;case"day":l=this._daysInMonth[this.options.date.getMonth()],l==28&&(l+=this._isLeapYear(this.options.date.getFullYear())),d=h(1,l),c.length==2&&(d=d.map(this._makeTwoDigits)),g=h(1,l),f=this.options.date.getDate()-1,e=l}return{values:d,data:g,numItems:e,current:f}},_showDataSelector:function(d,e,f){f=a(f);var g=f.attr("class"),h=g?g.match(/ui-datefield-([\w]*)/):c,i,j,k,l,m,n,o,p,q,r,s,t,u,v=10,w=this;if(!g)return;if(!h)return;if(this._popup_open)return;f.not(".ui-datefield-seperator").addClass("ui-datefield-selected"),i=f.jqmData("pat"),j=d._populateDataSelector.call(d,h[1],i),k=j.values,l=j.numItems,m=j.current,n=j.data;if(k){p="data-"+(a.mobile.ns?a.mobile.ns+"-":"")+'val="';for(u=0;u<k.length;u++)o+='<li><a class="ui-link" '+p+n[u]+'">'+k[u]+"</a></li>";q=a("<ul></ul>"),r=a('<div class="ui-datetimepicker-selector" data-transition="fade" data-fade="false"></div>'),r.append(q).appendTo(e),s=r.ctxpopup(),s.parents(".ui-popupwindow").addClass("ui-datetimepicker"),t=a(o),a(t[m]).addClass("current"),r.jqmData("list",t),r.circularview(),d._reflow||(d._reflow=function(){r.circularview("reflow"),r.circularview("centerTo",".current",0)},a(b).bind("resize",d._reflow)),a(b).width()/2<f.offset().left&&(v=-10),s.popupwindow("open",f.offset().left+f.width()/2+v-b.pageXOffset,f.offset().top+f.height()-b.pageYOffset),this.container=s,this._popup_open=!0,r.bind("popupafterclose",function(c){d._reflow&&(a(b).unbind("resize",d._reflow),d._reflow=null),!f.hasClass("in")&&!f.hasClass("out")&&f.removeClass("ui-datefield-selected"),r.unbind("popupafterclose"),q.unbind("vclick"),a(d).unbind("update"),s.popupwindow("destroy"),r.remove(),w._popup_open=!1}),a(d).bind("update",function(a,b){var c=new Date(this.options.date),e,f=function(){c.setDate(1),c.setDate(c.getDate()-1)};switch(h[1]){case"min":c.setMinutes(b);break;case"hour":c.setHours(b);break;case"sec":c.setSeconds(b);break;case"year":e=c.getMonth(),c.setFullYear(b),c.getMonth()!=e&&f();break;case"month":c.setMonth(b-1),c.getMonth()==b&&f();break;case"day":c.setDate(b)}d._setDate(c),s.popupwindow("close")}),q.bind("click",function(b){if(a(b.target).is("a")){q.find(".current").removeClass("current"),a(b.target).parent().addClass("current");var c=a(b.target).jqmData("val");a(d).trigger("update",c)}}),r.circularview("centerTo",".current",500),r.bind("scrollend",function(c){d._reflow||(d._reflow=function(){r.circularview("reflow")},a(b).bind("resize",d._reflow))})}return e}}),a(document).bind("pagecreate create",function(b){a(a.tizen.datetimepicker.prototype.options.initSelector,b.target).not(":jqmData(role='none'), :jqmData(role='nojs')").datetimepicker()})}(jQuery,this),function(a){a.tizen.frameworkData.pkgVersion="0.2.24"}(jQuery);
\ No newline at end of file
text-align: left;
margin: 0.7272727272727273rem 0.36363636363636365rem 0.2272727272727273rem 0.36363636363636365rem;
}
-.ui-header.ui-bar-s > .ui-btn .ui-btn-inner.ui-btn-icon-only {
+.ui-header.ui-bar-s > .ui-btn .ui-btn-inner.ui-btn-icon-only,
+.ui-header.ui-bar-s > .naviframe-button.ui-btn .ui-btn-inner.ui-btn-icon-only {
-o-box-sizing: border-box;
-ms-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
height: 100%;
}
-.ui-header.ui-bar-s > .ui-btn .ui-btn-inner.ui-btn-icon-only .ui-icon {
+.ui-header.ui-bar-s > .ui-btn .ui-btn-inner.ui-btn-icon-only .ui-icon,
+.ui-header.ui-bar-s > .naviframe-button.ui-btn .ui-btn-inner.ui-btn-icon-only .ui-icon {
top: 0px;
}
-.ui-header.ui-bar-s > .ui-btn:not(.ui-btn-icon-notext) .ui-btn-inner.ui-btn-icon-only {
+.ui-header.ui-bar-s > .naviframe-button.ui-btn .ui-btn-inner .ui-icon {
+ margin-top: 0px;
+}
+.ui-header.ui-bar-s > .ui-btn:not(.ui-btn-icon-notext) .ui-btn-inner.ui-btn-icon-only,
+.ui-header.ui-bar-s > .naviframe-button.ui-btn:not(.ui-btn-icon-notext) .ui-btn-inner.ui-btn-icon-only {
padding-left: 0px;
}
-.ui-header.ui-bar-s > .ui-btn:not(.ui-btn-icon_only) {
+.ui-header.ui-bar-s > .ui-btn:not(.ui-btn-icon_only),
+.ui-header.ui-bar-s > .naviframe-button.ui-btn:not(.ui-btn-icon_only) {
width: 2.409090909090909rem;
height: 0.8181818181818182rem;
top: auto;
bottom: 0.4545454545454546rem;
}
-.ui-header.ui-bar-s > .ui-btn:not(.ui-btn-icon_only) .ui-btn-inner {
+.ui-header.ui-bar-s > .ui-btn:not(.ui-btn-icon_only) .ui-btn-inner,
+.ui-header.ui-bar-s > .naviframe-button.ui-btn:not(.ui-btn-icon_only) .ui-btn-inner {
padding: 0;
}
.ui-header.ui-bar-s > .ui-btn.ui-btn-back,
left: 0px;
}
.ui-header.ui-bar-s img {
+ position: absolute;
display: inline-block;
height: 0.7272727272727273rem;
width: 0.7272727272727273rem;
margin-left: 0.36363636363636365rem;
+ margin-top: 1.0909090909090908rem;
}
.ui-header.ui-bar-s .ui-title-text-sub {
position: absolute;
width: 0.7272727272727273rem;
margin-left: 0.36363636363636365rem;
}
-.ui-header.ui-bar-s > .ui-btn {
+.ui-header.ui-bar-s > .ui-btn,
+.ui-header.ui-bar-s > .naviframe-button.ui-btn {
position: absolute;
top: 0.7272727272727273rem;
margin-top: 0px;
.ui-header.ui-bar-s.ui-title-tabbar > .ui-btn {
top: 0.36363636363636365rem;
}
-.ui-header.ui-bar-s > .ui-btn.ui-btn-icon_only {
+.ui-header.ui-bar-s > .ui-btn.ui-btn-icon_only,
+.ui-header.ui-bar-s > .naviframe-button.ui-btn.ui-btn-icon_only {
-o-border-radius: 0px;
-ms-border-radius: 0px;
-moz-border-radius: 0px;
.ui-header.ui-bar-s .ui-btn-right-1 {
right: 2.5454545454545454rem;
}
-.ui-header.ui-bar-s > .ui-btn:not(.ui-btn-icon_only):nth-child(2) {
+.ui-header.ui-bar-s > .ui-btn:not(.ui-btn-icon_only):nth-child(2),
+.ui-header.ui-bar-s > .naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(2) {
right: 0.3181818181818182rem;
}
-.ui-header.ui-bar-s > .ui-btn:not(.ui-btn-icon_only):nth-child(3) {
+.ui-header.ui-bar-s > .ui-btn:not(.ui-btn-icon_only):nth-child(3),
+.ui-header.ui-bar-s > .naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(3) {
right: 2.8181818181818183rem;
}
-.ui-header.ui-bar-s > img + h1 + .ui-btn:not(.ui-btn-icon_only):nth-child(3) {
+.ui-header.ui-bar-s > img + h1 {
+ padding-left: 1.0909090909090908rem;
+}
+.ui-header.ui-bar-s > img + h1 + .ui-btn:not(.ui-btn-icon_only):nth-child(3),
+.ui-header.ui-bar-s > img + h1 + .naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(3) {
right: 0.3181818181818182rem;
}
-.ui-header.ui-bar-s > img + h1 + .ui-btn:not(.ui-btn-icon_only):nth-child(3) + .ui-btn:not(.ui-btn-icon_only) {
+.ui-header.ui-bar-s > img + h1 + .ui-btn:not(.ui-btn-icon_only):nth-child(3) + .ui-btn:not(.ui-btn-icon_only),
+.ui-header.ui-bar-s > img + h1 + .naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(3) + .naviframe-button.ui-btn:not(.ui-btn-icon_only) {
right: 2.8181818181818183rem;
}
-.ui-header.ui-bar-s > img + h1 + span.ui-title-text-sub + .ui-btn:not(.ui-btn-icon_only):nth-child(4) {
+.ui-header.ui-bar-s > img + h1 + span.ui-title-text-sub + .ui-btn:not(.ui-btn-icon_only):nth-child(4),
+.ui-header.ui-bar-s > img + h1 + span.ui-title-text-sub + .naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(4) {
right: 0.3181818181818182rem;
}
-.ui-header.ui-bar-s > img + h1 + span.ui-title-text-sub + .ui-btn:not(.ui-btn-icon_only):nth-child(4) + .ui-btn:not(.ui-btn-icon_only) {
+.ui-header.ui-bar-s > img + h1 + span.ui-title-text-sub + .ui-btn:not(.ui-btn-icon_only):nth-child(4) + .ui-btn:not(.ui-btn-icon_only),
+.ui-header.ui-bar-s > img + h1 + span.ui-title-text-sub + .naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(4) + .naviframe-button.ui-btn:not(.ui-btn-icon_only) {
right: 2.8181818181818183rem;
}
.ui-header.ui-bar-s > .ui-btn.ui-btn-down-s {
background: rgba(64, 147, 247, 0.1);
color: #3b73b6;
}
+.ui-header.ui-bar-s.ui-title-multiline img {
+ margin-top: 0.6363636363636364rem;
+}
.ui-header.ui-bar-s.ui-title-multiline .ui-title {
min-height: 1.0909090909090908rem;
max-height: 1.0909090909090908rem;
border: none;
box-shadow: none;
}
+.ui-header .naviframe-button.ui-btn.ui-btn-box-s.ui-btn-down-s {
+ background: rgba(64, 147, 247, 0.1);
+}
.ui-btn-icon-top .ui-btn-inner.ui-btn-hastxt,
.ui-li .ui-btn-icon-top .ui-btn-inner.ui-btn-hastxt {
padding-top: 2.3636363636363638rem;
height: 100%;
outline: 0 !important;
}
-.ui-checkbox.favorite .ui-btn.ui-btn-icon-left {
- display: block;
-}
.ui-checkbox.favorite .ui-btn.ui-btn-icon-left .ui-btn-inner {
display: inline-block;
line-height: 1.4545454545454546rem;
padding-left: 0.4545454545454546rem;
padding-right: 0.4545454545454546rem;
}
+.ui-controlgroup-horizontal label {
+ width: 100%;
+}
.ui-controlgroup-horizontal label > span.ui-btn-inner {
padding-top: 0.13636363636363635rem;
padding-bottom: 0.13636363636363635rem;
display: block;
left: 0;
top: 0;
- width: 0.4545454545454546rem;
+ width: 56%;
height: 100%;
opacity: 0;
- background: -webkit-gradient(linear, right top, left top, color-stop(0, rgba(128, 128, 128, 0)), color-stop(1, #808080));
+ background-repeat: no-repeat;
+ -webkit-background-size: 100% 100%;
+ background-image: url(./images/00_grid_overscrolling_left.png);
pointer-events: none;
}
.ui-virtualgrid-overflow-indicator-x-bottom {
display: block;
right: 0;
bottom: 0;
- width: 0.4545454545454546rem;
+ width: 56%;
height: 100%;
opacity: 0;
- background: -webkit-gradient(linear, right top, left top, color-stop(0, #808080), color-stop(1, rgba(128, 128, 128, 0)));
+ background-repeat: no-repeat;
+ -webkit-background-size: 100% 100%;
+ background-image: url(./images/00_grid_overscrolling_right.png);
pointer-events: none;
}
.ui-virtualgrid-overflow-indicator-y-top {
display: block;
top: 0;
width: 100%;
- height: 0.4545454545454546rem;
+ height: 32%;
opacity: 0;
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, rgba(128, 128, 128, 0)), color-stop(1, #808080));
+ background-repeat: no-repeat;
+ -webkit-background-size: 100% 100%;
+ background-image: url(./images/00_grid_overscrolling_top.png);
pointer-events: none;
}
.ui-virtualgrid-overflow-indicator-y-bottom {
display: block;
bottom: 0;
width: 100%;
- height: 0.4545454545454546rem;
+ height: 32%;
opacity: 0;
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #808080), color-stop(1, rgba(128, 128, 128, 0)));
+ background-repeat: no-repeat;
+ -webkit-background-size: 100% 100%;
+ background-image: url(./images/00_grid_overscrolling_bottom.png);
pointer-events: none;
}
/*
.ui-tabbar-divider {
position: absolute;
top: 0px;
- width: 0.4545454545454546rem;
+ width: 3.681818181818182rem;
height: 2.5rem;
- background: -webkit-linear-gradient(left, #00009b 0%, #f6f8ef 100%);
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
}
.ui-tabbar-divider-left {
left: 0px;
- border-top-right-radius: 0.4545454545454546rem;
- border-bottom-right-radius: 0.4545454545454546rem;
- background: -webkit-linear-gradient(left, #999999 0%, #f6f8ef 100%);
+ background-image: url(images/00_effect_title_tab_bounce_left.png);
}
.ui-tabbar-divider-right {
right: 0px;
- border-top-left-radius: 0.4545454545454546rem;
- border-bottom-left-radius: 0.4545454545454546rem;
- background: -webkit-linear-gradient(right, #999999 0%, #f6f8ef 100%);
+ background-image: url(images/00_effect_title_tab_bounce_right.png);
}
/****************************
* Tizen Common Less Header *
-.ui-bar-s{border:0;background:#202327;color:#70a9ee;font-family:Helvetica,Arial,sans-serif;font-weight:700;font-size:1.2727272727272727rem}.ui-bar-s .ui-link-inherit{color:#70a9ee}.ui-bar-s>.ui-btn.ui-btn-back,.ui-bar-s>.ui-btn.ui-btn-footer-down{background:transparent;position:absolute;right:0}.ui-bar-s>.ui-btn.ui-btn-back .ui-icon-header-back-btn,.ui-bar-s>.ui-btn.ui-btn-footer-down .ui-icon-header-back-btn{top:.36363636363636365rem;left:auto;right:.5909090909090909rem;margin-top:0}.ui-bar-s>.ui-btn.ui-btn-footer-down{border:0;box-shadow:none}.ui-bar-s>.ui-btn.ui-btn-footer-down .ui-icon{top:.36363636363636365rem;margin-top:0}.ui-header.ui-bar-s{position:fixed;top:0;min-height:2.5rem}.ui-header.ui-bar-s .ui-title{display:inline-block;color:#70a9ee;min-height:1.2727272727272727rem;max-height:1.5454545454545454rem;font-size:1.2727272727272727rem;font-weight:500;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;outline:0!important;text-align:left;margin:.7272727272727273rem .36363636363636365rem .2272727272727273rem .36363636363636365rem}.ui-header.ui-bar-s>.ui-btn .ui-btn-inner.ui-btn-icon-only{-o-box-sizing:border-box;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%}.ui-header.ui-bar-s>.ui-btn .ui-btn-inner.ui-btn-icon-only .ui-icon{top:0}.ui-header.ui-bar-s>.ui-btn:not(.ui-btn-icon-notext) .ui-btn-inner.ui-btn-icon-only{padding-left:0}.ui-header.ui-bar-s>.ui-btn:not(.ui-btn-icon_only){width:2.409090909090909rem;height:.8181818181818182rem;top:auto;bottom:.4545454545454546rem}.ui-header.ui-bar-s>.ui-btn:not(.ui-btn-icon_only) .ui-btn-inner{padding:0}.ui-header.ui-bar-s>.ui-btn.ui-btn-back,.ui-header.ui-bar-s>.ui-btn.ui-btn-footer-down{right:.5909090909090909rem}.ui-header.ui-bar-s>.ui-btn.ui-btn-back .ui-icon-header-back-btn,.ui-header.ui-bar-s>.ui-btn.ui-btn-footer-down .ui-icon-header-back-btn{left:0}.ui-header.ui-bar-s img{display:inline-block;height:.7272727272727273rem;width:.7272727272727273rem;margin-left:.36363636363636365rem}.ui-header.ui-bar-s .ui-title-text-sub{position:absolute;top:1.6363636363636365rem;left:.36363636363636365rem;font-size:.5454545454545454rem}.ui-header.ui-bar-s .ui-title-text-sub img{height:.7272727272727273rem;width:.7272727272727273rem;margin-left:.36363636363636365rem}.ui-header.ui-bar-s>.ui-btn{position:absolute;top:.7272727272727273rem;margin-top:0;height:1.5454545454545454rem;width:1.5454545454545454rem;background:transparent;color:#3a3a3a}.ui-header.ui-bar-s.ui-title-tabbar>.ui-btn{top:.36363636363636365rem}.ui-header.ui-bar-s>.ui-btn.ui-btn-icon_only{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-header.ui-bar-s .ui-btn-right-0{right:.5rem}.ui-header.ui-bar-s .ui-btn-right-1{right:2.5454545454545454rem}.ui-header.ui-bar-s>.ui-btn:not(.ui-btn-icon_only):nth-child(2){right:.3181818181818182rem}.ui-header.ui-bar-s>.ui-btn:not(.ui-btn-icon_only):nth-child(3){right:2.8181818181818183rem}.ui-header.ui-bar-s>img+h1+.ui-btn:not(.ui-btn-icon_only):nth-child(3){right:.3181818181818182rem}.ui-header.ui-bar-s>img+h1+.ui-btn:not(.ui-btn-icon_only):nth-child(3)+.ui-btn:not(.ui-btn-icon_only){right:2.8181818181818183rem}.ui-header.ui-bar-s>img+h1+span.ui-title-text-sub+.ui-btn:not(.ui-btn-icon_only):nth-child(4){right:.3181818181818182rem}.ui-header.ui-bar-s>img+h1+span.ui-title-text-sub+.ui-btn:not(.ui-btn-icon_only):nth-child(4)+.ui-btn:not(.ui-btn-icon_only){right:2.8181818181818183rem}.ui-header.ui-bar-s>.ui-btn.ui-btn-down-s{background:rgba(64,147,247,.1);color:#3b73b6}.ui-header.ui-bar-s.ui-title-multiline .ui-title{min-height:1.0909090909090908rem;max-height:1.0909090909090908rem;font-size:1rem;margin:.4090909090909091rem .36363636363636365rem 1rem .36363636363636365rem}.ui-footer.ui-bar-s{height:2.2272727272727275rem;text-align:center;bottom:0}.ui-footer.ui-bar-s>.ui-btn.ui-btn-back,.ui-footer.ui-bar-s>.ui-btn.ui-btn-footer-down,.ui-footer.ui-bar-s>[data-icon="naviframe-more"]{background:transparent}.ui-footer.ui-bar-s>.ui-btn.ui-btn-back>.ui-btn-icon-only,.ui-footer.ui-bar-s>.ui-btn.ui-btn-footer-down>.ui-btn-icon-only,.ui-footer.ui-bar-s>[data-icon="naviframe-more"]>.ui-btn-icon-only{width:2.5454545454545454rem;height:2.2272727272727275rem;padding:0;-webkit-box-shadow:none}.ui-footer.ui-bar-s>.ui-btn.ui-btn-back,.ui-footer.ui-bar-s>.ui-btn.ui-btn-footer-down{top:0}.ui-footer.ui-bar-s>.ui-btn.ui-btn-footer-down .ui-icon{left:auto;right:.5909090909090909rem}.ui-footer.ui-bar-s [data-icon="naviframe-more"]{position:absolute;left:0rem;top:0rem;box-shadow:none;border-width:0}.ui-footer.ui-bar-s [data-icon="naviframe-more"] .ui-icon-naviframe-more{left:.5909090909090909rem;top:.36363636363636365rem;margin-top:0}.ui-footer.ui-bar-s [data-icon="naviframe-more"] .ui-btn-inner{border:0;background:transparent;box-shadow:none}.ui-footer.ui-bar-s>[data-role="button"]{font-size:.6818181818181819rem;font-weight:700;color:#bababa}.ui-footer.ui-bar-s [data-role="controlgroup"]{margin-left:auto;margin-right:auto;margin-top:.2727272727272727rem;margin-bottom:.2727272727272727rem;padding-left:2.6363636363636362rem;padding-right:2.6363636363636362rem}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"]{background:transparent;border-style:solid;border-color:#3b3e40;border-top-width:0;border-bottom-width:0;border-left-width:1px;border-right-width:1px;-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;box-shadow:none;padding:0;margin-left:-.18181818181818182rem;margin-right:-.2272727272727273rem}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-btn-hover-s{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-btn-down-s,.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"] .ui-btn-active-s{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-btn-down-s .ui-btn-inner,.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"] .ui-btn-active-s .ui-btn-inner{background:#202327}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-btn-down-s .ui-btn-inner .ui-btn-text,.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"] .ui-btn-active-s .ui-btn-inner .ui-btn-text{color:#70a9ee}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"]>.ui-btn-inner{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border:0 solid;box-shadow:none}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"] .ui-btn-text{font-size:.7727272727272727rem;color:#3a3a3a}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-corner-right{border-right-width:0}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-corner-left{border-left-width:0}.ui-footer.ui-bar-s>[data-role="button"]:not([data-icon="naviframe-more"]){top:.2727272727272727rem}.ui-footer.ui-bar-s>p{margin-top:.36363636363636365rem;margin-bottom:.36363636363636365rem}.ui-footer.ui-bar-s>h1,.ui-footer.ui-bar-s h2,.ui-footer.ui-bar-s h3,.ui-footer.ui-bar-s h4,.ui-footer.ui-bar-s h5,.ui-footer.ui-bar-s h6{display:inline-block}.ui-content{position:relative;top:0}.ui-body-s{border:1px solid #2a2a2a;background:#202327;color:#f9f9f9;font-weight:400;font-family:Helvetica,Arial,sans-serif}.ui-body-s .ui-link-inherit{color:#fff}.ui-body-s .ui-link{color:#2489CE;font-weight:700}.ui-body-s .ui-link:hover{color:#2489CE}.ui-body-s .ui-link:active{color:#2489CE}.ui-body-s .ui-link:visited{color:#2489CE}.ui-btn-box-s{padding:.045454545454545456rem}.ui-btn-box-s.ui-btn-up-s{color:#3a3a3a;background:#202327;background:-webkit-linear-gradient(top, #202327, #202327);background:-moz-linear-gradient(top, #ebe8e3, #eae7e2);background:-o-linear-gradient(top, #ebe8e3, #eae7e2);background:-ms-linear-gradient(top, #ebe8e3, #eae7e2);border:1px solid;border-color:#000;-o-box-shadow:0 0 1px 1px #000;-ms-box-shadow:0 0 1px 1px #000;-moz-box-shadow:0 0 1px 1px #000;-webkit-box-shadow:0 0 1px 1px #000;box-shadow:0 0 1px 1px #000;-o-border-radius:.3rem;-ms-border-radius:.3rem;-moz-border-radius:.3rem;-webkit-border-radius:.3rem;border-radius:.3rem;font-family:Helvetica,Arial,sans-serif;font-weight:400;font-size:1.0rem;font-style:normal;color:#bababa}.ui-btn.ui-btn-corner-all .ui-btn-box-s.ui-btn-up-s{-o-border-radius:1.2rem;-ms-border-radius:1.2rem;-moz-border-radius:1.2rem;-webkit-border-radius:1.2rem;border-radius:1.2rem}.ui-btn-box-s .ui-btn-inner{border:1px solid;border-color:#000;-o-border-radius:.3rem;-ms-border-radius:.3rem;-moz-border-radius:.3rem;-webkit-border-radius:.3rem;border-radius:.3rem;-o-box-sizing:border-box;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;background:#202327;background:-webkit-linear-gradient(top, #202327, #202327);background:-ms-linear-gradient(top, #faf7f2, #f8f5f0);background:-o-linear-gradient(top, #faf7f2, #f8f5f0);background:-moz-linear-gradient(top, #faf7f2, #f8f5f0);-o-box-shadow:none;-ms-box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;height:100%}.ui-btn.ui-btn-corner-all.ui-btn-box-s .ui-btn-inner{-o-border-radius:1.2rem;-ms-border-radius:1.2rem;-moz-border-radius:1.2rem;-webkit-border-radius:1.2rem;border-radius:1.2rem}.ui-ctxpopup .ui-btn-box-s.ui-btn-up-s,.ui-ctxpopup .ui-btn-box-s.ui-btn-hover-s{background:transparent!important;border:0;box-shadow:none;padding:0;color:#fff!important}.ui-ctxpopup .ui-btn-box-s.ui-btn-down-s{background:#3b73b6!important;border:0;box-shadow:none;padding:0;color:#fff!important;-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-ctxpopup .ui-btn-box-s .ui-btn-inner{background:transparent ! important;box-shadow:none;border:0}.ui-ctxpopup .ui-btn-down-s{background:#3b73b6!important}.ui-header .ui-btn-box-s,.ui-footer .ui-btn-box-s,.ui-btn-back.ui-btn-up-s,.ui-btn-back.ui-btn-hover-s,.ui-btn-back.ui-btn-down-s,.ui-btn-footer-down.ui-btn-up-s,.ui-btn-footer-down.ui-btn-hover-s,.ui-btn-footer-down.ui-btn-down-s,.ui-popup-container .ui-btn-box-s{font-weight:400;-o-border-radius:.9 rem;-ms-border-radius:.9 rem;-moz-border-radius:.9 rem;-webkit-border-radius:.9 rem;border-radius:.9 rem}.ui-btn-box-s.ui-btn-hover-s{color:#3a3a3a;font-family:Helvetica,Arial,sans-serif;font-weight:400;font-size:1.0rem;font-style:normal;color:#bababa;-o-border-radius:.3em ! important;-ms-border-radius:.3em ! important;-moz-border-radius:.3em ! important;-webkit-border-radius:.3em ! important;border-radius:.3em ! important}.ui-btn-box-s.ui-btn-hover-s.ui-btn-corner-circle{-o-border-radius:1em ! important;-ms-border-radius:1em ! important;-moz-border-radius:1em ! important;-webkit-border-radius:1em ! important;border-radius:1em ! important}.ui-btn-box-s.ui-btn-hover-s.ui-btn-corner-all{-o-border-radius:1.2em ! important;-ms-border-radius:1.2em ! important;-moz-border-radius:1.2em ! important;-webkit-border-radius:1.2em ! important;border-radius:1.2em ! important}.ui-btn-box-s.ui-btn-hover-s.ui-btn-round{-o-border-radius:1.2em ! important;-ms-border-radius:1.2em ! important;-moz-border-radius:1.2em ! important;-webkit-border-radius:1.2em ! important;border-radius:1.2em ! important}.ui-btn-box-s.ui-btn-down-s .ui-btn-inner{background:#3b73b6;color:#fff}.ui-btn-up-s,.ui-btn-hover-s,.ui-btn-down-s{font-family:Helvetica,Arial,sans-serif;text-decoration:none}a.ui-link-inherit{text-decoration:none!important}.ui-btn-active{color:#3a3a3a;cursor:pointer;text-decoration:none;background:#3b73b6;outline:0}.ui-btn-active a.ui-link-inherit{color:#3a3a3a}.ui-corner-tl{-moz-border-radius-topleft:.3em;-webkit-border-top-left-radius:.3em;border-top-left-radius:.3em}.ui-corner-tr{-moz-border-radius-topright:.3em;-webkit-border-top-right-radius:.3em;border-top-right-radius:.3em}.ui-corner-bl{-moz-border-radius-bottomleft:.3em;-webkit-border-bottom-left-radius:.3em;border-bottom-left-radius:.3em}.ui-corner-br{-moz-border-radius-bottomright:.3em;-webkit-border-bottom-right-radius:.3em;border-bottom-right-radius:.3em}.ui-corner-top{-moz-border-radius-topleft:.3em;-webkit-border-top-left-radius:.3em;border-top-left-radius:.3em;-moz-border-radius-topright:.3em;-webkit-border-top-right-radius:.3em;border-top-right-radius:.3em}.ui-corner-bottom{-moz-border-radius-bottomleft:.3em;-webkit-border-bottom-left-radius:.3em;border-bottom-left-radius:.3em;-moz-border-radius-bottomright:.3em;-webkit-border-bottom-right-radius:.3em;border-bottom-right-radius:.3em}.ui-corner-right{-moz-border-radius-topright:.3em;-webkit-border-top-right-radius:.3em;border-top-right-radius:.3em;-moz-border-radius-bottomright:.3em;-webkit-border-bottom-right-radius:.3em;border-bottom-right-radius:.3em}.ui-corner-left{-moz-border-radius-topleft:.3em;-webkit-border-top-left-radius:.3em;border-top-left-radius:.3em;-moz-border-radius-bottomleft:.3em;-webkit-border-bottom-left-radius:.3em;border-bottom-left-radius:.3em}.ui-corner-none{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-header .ui-btn .ui-btn-icon-only .ui-icon,.ui-footer .ui-btn .ui-btn-icon-only .ui-icon{width:1.4545454545454546rem;height:1.4545454545454546rem}.ui-btn-back .ui-btn-inner .ui-icon-header-back-btn,.ui-btn-footer-down .ui-btn-inner .ui-icon{width:1.4545454545454546rem;height:1.4545454545454546rem;background-repeat:no-repeat;background-size:100% 100%}.ui-btn-up-s{}.ui-btn-up-s .ui-icon-header-back-btn{background-image:url(images/page/00_icon_Back.png)}.ui-btn-up-s .ui-icon-naviframe-more{background-image:url(images/page/00_icon_more.png)}.ui-btn-up-s .ui-icon-naviframe-cancel{background-image:url(images/00_icon_cancel.png)}.ui-btn-up-s .ui-icon-naviframe-edit{background-image:url(images/page/00_icon_edit.png)}.ui-btn-up-s .ui-icon-naviframe-plus{background-image:url(images/page/00_icon_plus.png)}.ui-btn-up-s .ui-icon-down{background-image:url(images/controls/button/00_icon_SIP_close_web_web.png)}.ui-btn-hover-s .ui-icon-header-back-btn{background-image:url(images/page/00_icon_Back.png)}.ui-btn-hover-s .ui-icon-naviframe-more{background-image:url(images/page/00_icon_more.png)}.ui-btn-hover-s .ui-icon-naviframe-cancel{background-image:url(images/00_icon_cancel.png)}.ui-btn-hover-s .ui-icon-naviframe-edit{background-image:url(images/page/00_icon_edit.png)}.ui-btn-hover-s .ui-icon-naviframe-plus{background-image:url(images/page/00_icon_plus.png)}.ui-btn-hover-s .ui-icon-down{background-image:url(images/controls/button/00_icon_SIP_close_web_web.png)}.ui-btn-down-s .ui-icon-header-back-btn{background-image:url(images/page/00_icon_Back_press.png)}.ui-btn-down-s .ui-icon-naviframe-more{background-image:url(images/page/00_icon_more_press.png)}.ui-btn-down-s .ui-icon-naviframe-cancel{background-image:url(images/00_icon_cancel_press.png)}.ui-btn-down-s .ui-icon-naviframe-edit{background-image:url(images/page/00_icon_edit_press.png)}.ui-btn-down-s .ui-icon-naviframe-plus{background-image:url(images/page/00_icon_plus_press.png)}.ui-btn-down-s .ui-icon-down{background-image:url(images/controls/button/00_icon_SIP_close_press_web.png)}.ui-disabled{filter:alpha(opacity=30);opacity:.3;zoom:1}.ui-disabled,.ui-disabled a{cursor:default!important;pointer-events:none}.ui-mobile,.ui-mobile body{height:100%;font-size:22px}@media all and (max-width: 359px){.ui-mobile,.ui-mobile body{ font-size:19px}}.ui-mobile fieldset,.ui-page{padding:0;margin:0}.ui-mobile a img,.ui-mobile fieldset{border:0}.ui-mobile-viewport{margin:0;overflow-x:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ui-mobile [data-role=page],.ui-mobile [data-role=dialog],.ui-page{top:0;left:0;width:100%;position:absolute;display:none;border:0}.ui-mobile .ui-page-active{display:block;overflow:visible}.ui-page{outline:0}.ui-mobile,.ui-mobile .ui-page{background:#202327;color:#f9f9f9}.ui-page.ui-mobile-touch-overflow,.ui-mobile-touch-overflow.ui-native-fixed .ui-content{overflow:auto;height:100%;-webkit-overflow-scrolling:touch;-moz-overflow-scrolling:touch;-o-overflow-scrolling:touch;-ms-overflow-scrolling:touch;overflow-scrolling:touch}.ui-page.ui-mobile-touch-overflow,.ui-page.ui-mobile-touch-overflow *{transform:rotateY(0);-ms-transform:rotateY(0);-moz-transform:rotateY(0);-webkit-transform:rotateY(0);-o-transform:rotateY(0)}.ui-page.ui-mobile-pre-transition{display:block}.ui-loading .ui-mobile-viewport{overflow:hidden!important}.ui-loading .ui-loader{display:block}.ui-loading .ui-page{overflow:hidden}.ui-loader{display:none;position:absolute;opacity:.85;z-index:100;left:50%;width:200px;margin-left:-130px;margin-top:-35px;padding:10px 30px}.ui-loader h1{font-size:1.4545454545454546rem;text-align:center}.ui-loader .ui-icon{position:static;display:block;opacity:.9;margin:0 auto;width:35px;height:35px;background-color:transparent}.ui-blocker{width:100%;height:100%;z-index:2147483647}.ui-mobile-rendering>*{visibility:hidden}.ui-bar,.ui-body{position:relative;padding:.4em 15px;overflow:hidden;display:block;clear:both}.ui-bar{font-size:16px;margin:0}.ui-bar h1,.ui-bar h2,.ui-bar h3,.ui-bar h4,.ui-bar h5,.ui-bar h6{margin:0;padding:0;font-size:16px;display:inline-block}.ui-header,.ui-footer{display:block}.ui-page .ui-header,.ui-page .ui-footer{position:fixed;z-index:1000}.ui-header .ui-btn-left{top:.4em;float:left}.ui-header .ui-btn-right{float:right;top:.4em}.ui-header .ui-title,.ui-footer .ui-title{min-height:1.1em;text-align:center;font-size:16px;display:block;margin:.6em 90px .8em;padding:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;outline:0!important}.ui-content{border-width:0;overflow:visible;overflow-x:hidden;padding:15px}.ui-page-fullscreen .ui-content{padding:0}.ui-mobile-touch-overflow.ui-page.ui-native-fixed,.ui-mobile-touch-overflow.ui-page.ui-native-fullscreen{overflow:visible}.ui-mobile-touch-overflow.ui-native-fixed .ui-header,.ui-mobile-touch-overflow.ui-native-fixed .ui-footer{position:fixed;left:0;right:0;top:0;z-index:200}.ui-mobile-touch-overflow.ui-page.ui-native-fixed .ui-footer{top:auto;bottom:0}.ui-mobile-touch-overflow.ui-native-fixed .ui-content{padding-top:2.5em;padding-bottom:3em;top:0;bottom:0;height:auto;position:absolute}.ui-mobile-touch-overflow.ui-native-fullscreen .ui-content{padding-top:0;padding-bottom:0}.ui-mobile-touch-overflow.ui-native-fullscreen .ui-header,.ui-mobile-touch-overflow.ui-native-fullscreen .ui-footer{opacity:.9}.ui-native-bars-hidden{display:none}.ui-icon{width:18px;height:18px}.ui-fullscreen img{max-width:100%}.ui-nojs{position:absolute;left:-9999px}.ui-mobile-viewport-transitioning,.ui-mobile-viewport-transitioning .ui-page{width:100%;height:100%;overflow:hidden}.in{-ms-animation-timing-function:ease-out;-ms-animation-duration:350ms;-o-animation-timing-function:ease-out;-o-animation-duration:350ms;-webkit-animation-timing-function:ease-out;-webkit-animation-duration:350ms;-moz-animation-timing-function:ease-out;-moz-animation-duration:350ms}.out{-ms-animation-timing-function:ease-in;-ms-animation-duration:225ms;-o-animation-timing-function:ease-in;-o-animation-duration:225;-webkit-animation-timing-function:ease-in;-webkit-animation-duration:225ms;-moz-animation-timing-function:ease-in;-moz-animation-duration:225}@-webkit-keyframes fadein{from{ opacity:0}to{opacity:1}}@-moz-keyframes fadein{from{ opacity:0}to{opacity:1}}@-webkit-keyframes fadeout{from{ opacity:1}to{opacity:0}}@-moz-keyframes fadeout{from{ opacity:1}to{opacity:0}}.fade.out{opacity:0;-ms-animation-duration:125ms;-ms-animation-name:fadeout;-o-animation-duration:125ms;-o-animation-name:fadeout;-webkit-animation-duration:125ms;-webkit-animation-name:fadeout;-moz-animation-duration:125ms;-moz-animation-name:fadeout}.fade.in{opacity:1;-ms-animation-duration:225ms;-ms-animation-name:fadein;-o-animation-duration:225ms;-o-animation-name:fadein;-webkit-animation-duration:225ms;-webkit-animation-name:fadein;-moz-animation-duration:225ms;-moz-animation-name:fadein}.viewport-flip{-ms-perspective:1000;-o-perspective:1000;-webkit-perspective:1000;-moz-perspective:1000;position:absolute}.flip{-webkit-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-backface-visibility:hidden;-moz-transform:translate3d(0,0,0)}.flip.out{-webkit-transform:rotateY(-90deg) scale(.9);-webkit-animation-name:flipouttoleft;-webkit-animation-duration:175ms;-moz-transform:rotateY(-90deg) scale(.9);-moz-animation-name:flipouttoleft;-moz-animation-duration:175ms}.flip.in{-webkit-animation-name:flipintoright;-webkit-animation-duration:225ms;-moz-animation-name:flipintoright;-moz-animation-duration:225ms}.flip.out.reverse{-webkit-transform:rotateY(90deg) scale(.9);-webkit-animation-name:flipouttoright;-moz-transform:rotateY(90deg) scale(.9);-moz-animation-name:flipouttoright}.flip.in.reverse{-webkit-animation-name:flipintoleft;-moz-animation-name:flipintoleft}@-webkit-keyframes flipouttoleft{from{ -webkit-transform:rotateY(0)}to{-webkit-transform:rotateY(-90deg) scale(.9)}}@-moz-keyframes flipouttoleft{from{ -moz-transform:rotateY(0)}to{-moz-transform:rotateY(-90deg) scale(.9)}}@-webkit-keyframes flipouttoright{from{ -webkit-transform:rotateY(0)}to{-webkit-transform:rotateY(90deg) scale(.9)}}@-moz-keyframes flipouttoright{from{ -moz-transform:rotateY(0)}to{-moz-transform:rotateY(90deg) scale(.9)}}@-webkit-keyframes flipintoleft{from{ -webkit-transform:rotateY(-90deg) scale(.9)}to{-webkit-transform:rotateY(0)}}@-moz-keyframes flipintoleft{from{ -moz-transform:rotateY(-90deg) scale(.9)}to{-moz-transform:rotateY(0)}}@-webkit-keyframes flipintoright{from{ -webkit-transform:rotateY(90deg) scale(.9)}to{-webkit-transform:rotateY(0)}}@-moz-keyframes flipintoright{from{ -moz-transform:rotateY(90deg) scale(.9)}to{-moz-transform:rotateY(0)}}.flow{-webkit-transform-origin:50% 30%;-moz-transform-origin:50% 30%;-webkit-box-shadow:0 0 20px rgba(0,0,0,.4);-moz-box-shadow:0 0 20px rgba(0,0,0,.4)}.ui-dialog.flow{-webkit-transform-origin:none;-moz-transform-origin:none;-webkit-box-shadow:none;-moz-box-shadow:none}.flow.out{-webkit-transform:translate3d(-100%,0,0) scale(.7);-webkit-animation-name:flowouttoleft;-webkit-animation-timing-function:ease;-webkit-animation-duration:350ms;-moz-transform:translate3d(-100%,0,0) scale(.7);-moz-animation-name:flowouttoleft;-moz-animation-timing-function:ease;-moz-animation-duration:350ms}.flow.in{-webkit-transform:translate3d(0,0,0) scale(1);-webkit-animation-name:flowinfromright;-webkit-animation-timing-function:ease;-webkit-animation-duration:350ms;-moz-transform:translate3d(0,0,0) scale(1);-moz-animation-name:flowinfromright;-moz-animation-timing-function:ease;-moz-animation-duration:350ms}.flow.out.reverse{-webkit-transform:translate3d(100%,0,0);-webkit-animation-name:flowouttoright;-moz-transform:translate3d(100%,0,0);-moz-animation-name:flowouttoright}.flow.in.reverse{-webkit-animation-name:flowinfromleft;-moz-animation-name:flowinfromleft}@-webkit-keyframes flowouttoleft{0%{ -webkit-transform:translate3d(0,0,0) scale(1)}60%,70%{-webkit-transform:translate3d(0,0,0) scale(.7)}100%{-webkit-transform:translate3d(-100%,0,0) scale(.7)}}@-moz-keyframes flowouttoleft{0%{ -moz-transform:translate3d(0,0,0) scale(1)}60%,70%{-moz-transform:translate3d(0,0,0) scale(.7)}100%{-moz-transform:translateX(-100%) scale(.7)}}@-webkit-keyframes flowouttoright{0%{ -webkit-transform:translate3d(0,0,0) scale(1)}60%,70%{-webkit-transform:translate3d(0,0,0) scale(.7)}100%{-webkit-transform:translate3d(100%,0,0) scale(.7)}}@-moz-keyframes flowouttoright{0%{ -moz-transform:translate3d(0,0,0) scale(1)}60%,70%{-moz-transform:translate3d(0,0,0) scale(.7)}100%{-moz-transform:translate3d(100%,0,0) scale(.7)}}@-webkit-keyframes flowinfromleft{0%{ -webkit-transform:translate3d(-100%,0,0) scale(.7)}30%,40%{-webkit-transform:translate3d(0,0,0) scale(.7)}100%{-webkit-transform:translate3d(0,0,0) scale(1)}}@-moz-keyframes flowinfromleft{0%{ -moz-transform:translate3d(-100%,0,0) scale(.7)}30%,40%{-moz-transform:translate3d(0,0,0) scale(.7)}100%{-moz-transform:translate3d(0,0,0) scale(1)}}@-webkit-keyframes flowinfromright{0%{ -webkit-transform:translate3d(100%,0,0) scale(.7)}30%,40%{-webkit-transform:translate3d(0,0,0) scale(.7)}100%{-webkit-transform:translate3d(0,0,0) scale(1)}}@-moz-keyframes flowinfromright{0%{ -moz-transform:translate3d(100%,0,0) scale(.7)}30%,40%{-moz-transform:translate3d(0,0,0) scale(.7)}100%{-moz-transform:translate3d(0,0,0) scale(1)}}.pop{-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%}.pop.in{-webkit-transform:scale(1);-moz-transform:scale(1);opacity:1;-webkit-animation-name:popin;-moz-animation-name:popin;-webkit-animation-duration:350ms;-moz-animation-duration:350ms}.pop.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;opacity:0;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.pop.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein}.pop.out.reverse{-webkit-transform:scale(.8);-moz-transform:scale(.8);-webkit-animation-name:popout;-moz-animation-name:popout}@-webkit-keyframes popin{from{ -webkit-transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);opacity:1}}@-moz-keyframes popin{from{ -moz-transform:scale(.8);opacity:0}to{-moz-transform:scale(1);opacity:1}}@-webkit-keyframes popout{from{ -webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(.8);opacity:0}}@-moz-keyframes popout{from{ -moz-transform:scale(1);opacity:1}to{-moz-transform:scale(.8);opacity:0}}@-webkit-keyframes slideinfromright{from{ -webkit-transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideinfromright{from{ -moz-transform:translate3d(100%,0,0)}to{-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slideinfromleft{from{ -webkit-transform:translate3d(-100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideinfromleft{from{ -moz-transform:translate3d(-100%,0,0)}to{-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slideouttoleft{from{ -webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-100%,0,0)}}@-moz-keyframes slideouttoleft{from{ -moz-transform:translate3d(0,0,0)}to{-moz-transform:translate3d(-100%,0,0)}}@-webkit-keyframes slideouttoright{from{ -webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(100%,0,0)}}@-moz-keyframes slideouttoright{from{ -moz-transform:translate3d(0,0,0)}to{-moz-transform:translate3d(100%,0,0)}}.slide.out,.slide.in{-webkit-animation-timing-function:ease-out;-webkit-animation-duration:350ms;-moz-animation-timing-function:ease-out;-moz-animation-duration:350ms}.slide.out{-webkit-transform:translate3d(-100%,0,0);-webkit-animation-name:slideouttoleft;-moz-transform:translate3d(-100%,0,0);-moz-animation-name:slideouttoleft}.slide.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slideinfromright;-moz-transform:translate3d(0,0,0);-moz-animation-name:slideinfromright}.slide.out.reverse{-webkit-transform:translate3d(100%,0,0);-webkit-animation-name:slideouttoright;-moz-transform:translate3d(100%,0,0);-moz-animation-name:slideouttoright}.slide.in.reverse{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slideinfromleft;-moz-transform:translate3d(0,0,0);-moz-animation-name:slideinfromleft}.slidedown.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.slidedown.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slideinfromtop;-moz-transform:translate3d(0,0,0);-moz-animation-name:slideinfromtop;-webkit-animation-duration:250ms;-moz-animation-duration:250ms}.slidedown.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein;-webkit-animation-duration:150ms;-moz-animation-duration:150ms}.slidedown.out.reverse{-webkit-transform:translate3d(0,-100%,0);-moz-transform:translate3d(0,-100%,0);-webkit-animation-name:slideouttotop;-moz-animation-name:slideouttotop;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}@-webkit-keyframes slideinfromtop{from{ -webkit-transform:translate3d(0,-100%,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideinfromtop{from{ -moz-transform:translate3d(0,-100%,0)}to{-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slideouttotop{from{ -webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(0,-100%,0)}}@-moz-keyframes slideouttotop{from{ -moz-transform:translate3d(0,0,0)}to{-moz-transform:translate3d(0,-100%,0)}}.slideup.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.slideup.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slideinfrombottom;-moz-transform:translate3d(0,0,0);-moz-animation-name:slideinfrombottom;-webkit-animation-duration:250ms;-moz-animation-duration:250ms}.slideup.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein;-webkit-animation-duration:150ms;-moz-animation-duration:150ms}.slideup.out.reverse{-webkit-transform:translate3d(0,100%,0);-moz-transform:translate3d(0,100%,0);-webkit-animation-name:slideouttobottom;-moz-animation-name:slideouttobottom;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}@-webkit-keyframes slideinfrombottom{from{ -webkit-transform:translate3d(0,100%,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideinfrombottom{from{ -moz-transform:translate3d(0,100%,0)}to{-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slideouttobottom{from{ -webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(0,100%,0)}}@-moz-keyframes slideouttobottom{from{ -moz-transform:translate3d(0,0,0)}to{-moz-transform:translate3d(0,100%,0)}}.slideupfade.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.slideupfade.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slideupfadeinfrombottom;-moz-transform:translate3d(0,0,0);-moz-animation-name:slideupfadeinfrombottom;-webkit-animation-duration:250ms;-moz-animation-duration:250ms}.slideupfade.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein;-webkit-animation-duration:150ms;-moz-animation-duration:150ms}.slideupfade.out.reverse{-webkit-transform:translate3d(0,5%,0);-moz-transform:translate3d(0,5%,0);-webkit-animation-name:slideupfadeouttobottom;-moz-animation-name:slideupfadeouttobottom;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}@-webkit-keyframes slideupfadeinfrombottom{from{ opacity:0;-webkit-transform:translate3d(0,5%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideupfadeinfrombottom{from{ opacity:0;-moz-transform:translate3d(0,5%,0)}to{opacity:1;-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slideupfadeouttobottom{from{ opacity:1;-webkit-transform:translate3d(0,0,0)}to{opacity:0;-webkit-transform:translate3d(0,5%,0)}}@-moz-keyframes slideupfadeouttobottom{from{ opacity:1;-moz-transform:translate3d(0,0,0)}to{opacity:0;-moz-transform:translate3d(0,5%,0)}}.slidedownfade.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.slidedownfade.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slidedownfadeinfromtop;-moz-transform:translate3d(0,0,0);-moz-animation-name:slidedownfadeinfromtop;-webkit-animation-duration:250ms;-moz-animation-duration:250ms}.slidedownfade.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein;-webkit-animation-duration:150ms;-moz-animation-duration:150ms}.slidedownfade.out.reverse{-webkit-transform:translate3d(0,-5%,0);-moz-transform:translate3d(0,-5%,0);-webkit-animation-name:slidedownfadeouttotop;-moz-animation-name:slidedownfadeouttotop;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}@-webkit-keyframes slidedownfadeinfromtop{from{ opacity:0;-webkit-transform:translate3d(0,-5%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slidedownfadeinfromtop{from{ opacity:0;-moz-transform:translate3d(0,-5%,0)}to{opacity:1;-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slidedownfadeouttotop{from{ opacity:1;-webkit-transform:translate3d(0,0,0)}to{opacity:0;-webkit-transform:translate3d(0,-5%,0)}}@-moz-keyframes slidedownfadeouttotop{from{ opacity:1;-moz-transform:translate3d(0,0,0)}to{opacity:0;-moz-transform:translate3d(0,-5%,0)}}.slidefade.out{-webkit-transform:translate3d(-100%,0,0);-webkit-animation-name:slideouttoleft;-moz-transform:translate3d(-100%,0,0);-moz-animation-name:slideouttoleft;-webkit-animation-duration:225ms;-moz-animation-duration:225ms}.slidefade.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:fadein;-moz-transform:translate3d(0,0,0);-moz-animation-name:fadein;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}.slidefade.out.reverse{-webkit-transform:translate3d(100%,0,0);-webkit-animation-name:slideouttoright;-moz-transform:translate3d(100%,0,0);-moz-animation-name:slideouttoright;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}.slidefade.in.reverse{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:fadein;-moz-transform:translate3d(0,0,0);-moz-animation-name:fadein;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}.viewport-turn{-webkit-perspective:1000;-moz-perspective:1000;position:absolute}.turn{-webkit-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-webkit-transform-origin:0;-moz-backface-visibility:hidden;-moz-transform:translate3d(0,0,0);-moz-transform-origin:0}.turn.out{-webkit-transform:rotateY(-90deg) scale(.9);-webkit-animation-name:flipouttoleft;-moz-transform:rotateY(-90deg) scale(.9);-moz-animation-name:flipouttoleft;-webkit-animation-duration:125ms;-moz-animation-duration:125ms}.turn.in{-webkit-animation-name:flipintoright;-moz-animation-name:flipintoright;-webkit-animation-duration:250ms;-moz-animation-duration:250ms}.turn.out.reverse{-webkit-transform:rotateY(90deg) scale(.9);-webkit-animation-name:flipouttoright;-moz-transform:rotateY(90deg) scale(.9);-moz-animation-name:flipouttoright}.turn.in.reverse{-webkit-animation-name:flipintoleft;-moz-animation-name:flipintoleft}@-webkit-keyframes flipouttoleft{from{ -webkit-transform:rotateY(0)}to{-webkit-transform:rotateY(-90deg) scale(.9)}}@-moz-keyframes flipouttoleft{from{ -moz-transform:rotateY(0)}to{-moz-transform:rotateY(-90deg) scale(.9)}}@-webkit-keyframes flipouttoright{from{ -webkit-transform:rotateY(0)}to{-webkit-transform:rotateY(90deg) scale(.9)}}@-moz-keyframes flipouttoright{from{ -moz-transform:rotateY(0)}to{-moz-transform:rotateY(90deg) scale(.9)}}@-webkit-keyframes flipintoleft{from{ -webkit-transform:rotateY(-90deg) scale(.9)}to{-webkit-transform:rotateY(0)}}@-moz-keyframes flipintoleft{from{ -moz-transform:rotateY(-90deg) scale(.9)}to{-moz-transform:rotateY(0)}}@-webkit-keyframes flipintoright{from{ -webkit-transform:rotateY(90deg) scale(.9)}to{-webkit-transform:rotateY(0)}}@-moz-keyframes flipintoright{from{ -moz-transform:rotateY(90deg) scale(.9)}to{-moz-transform:rotateY(0)}}.depth{-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%}.depth.out{-webkit-animation-name:depthout;-moz-animation-name:depthout;opacity:0;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;-webkit-animation-timing-function:ease;-moz-animation-timing-function:ease}.depth.in{-webkit-transform:scale(1);-moz-transform:scale(1);opacity:1;-webkit-animation-name:depthin;-moz-animation-name:depthin;-webkit-animation-duration:350ms;-moz-animation-duration:350ms;-webkit-animation-timing-function:ease;-moz-animation-timing-function:ease}.depth.in.reverse{-webkit-animation-name:depthinreverse;-moz-animation-name:depthinreverse}.depth.out.reverse{-webkit-transform:scale(.9);-moz-transform:scale(.9);-webkit-animation-name:depthoutreverse;-moz-animation-name:depthoutreverse}@-webkit-keyframes depthout{from{ -webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(1.1);opacity:0}}@-moz-keyframes depthout{from{ -moz-transform:scale(1);opacity:1}to{-moz-transform:scale(1.1);opacity:0}}@-webkit-keyframes depthin{0%{ -webkit-transform:scale(.9);opacity:0}30%{-webkit-transform:scale(.9);opacity:0}100%{-webkit-transform:scale(1);opacity:1}}@-moz-keyframes depthin{0%{ -moz-transform:scale(.9);opacity:0}30%{-moz-transform:scale(.9);opacity:0}100%{-moz-transform:scale(1);opacity:1}}@-webkit-keyframes depthinreverse{0%{ -webkit-transform:scale(1.1);opacity:0}30%{-webkit-transform:scale(1.1);opacity:0}100%{-webkit-transform:scale(1);opacity:1}}@-moz-keyframes depthinreverse{0%{ -moz-transform:scale(1.1);opacity:0}30%{-moz-transform:scale(1.1);opacity:0}100%{-moz-transform:scale(1);opacity:1}}@-webkit-keyframes depthoutreverse{from{ -webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(.9);opacity:0}}@-moz-keyframes depthoutreverse{from{ -moz-transform:scale(1);opacity:1}to{-moz-transform:scale(.9);opacity:0}}.ui-grid-a,.ui-grid-b,.ui-grid-c,.ui-grid-d{overflow:hidden}.ui-block-a,.ui-block-b,.ui-block-c,.ui-block-d,.ui-block-e{margin:0;padding:0;border:0;float:left;min-height:1px}.ui-grid-solo .ui-block-a{width:100%;float:none}.ui-grid-a .ui-block-a,.ui-grid-a .ui-block-b{width:50%}.ui-grid-a .ui-block-a{clear:left}.ui-grid-b .ui-block-a,.ui-grid-b .ui-block-b,.ui-grid-b .ui-block-c{width:33.333%}.ui-grid-b .ui-block-a{clear:left}.ui-grid-c .ui-block-a,.ui-grid-c .ui-block-b,.ui-grid-c .ui-block-c,.ui-grid-c .ui-block-d{width:25%}.ui-grid-c .ui-block-a{clear:left}.ui-grid-d .ui-block-a,.ui-grid-d .ui-block-b,.ui-grid-d .ui-block-c,.ui-grid-d .ui-block-d,.ui-grid-d .ui-block-e{width:20%}.ui-grid-d .ui-block-a{clear:left}.ui-header,.ui-footer,.ui-page-fullscreen .ui-header,.ui-page-fullscreen .ui-footer{position:absolute;overflow:hidden;width:100%;border-left-width:0;border-right-width:0}.ui-header-fixed,.ui-footer-fixed{z-index:1000;-webkit-transform:translateZ(0)}.ui-footer-duplicate,.ui-page-fullscreen .ui-fixed-inline{display:none}.ui-page-fullscreen .ui-header,.ui-page-fullscreen .ui-footer{opacity:.9}.ui-navbar{overflow:hidden}.ui-navbar ul,.ui-navbar-expanded ul{list-style:none;padding:0;margin:0;position:relative;display:block;border:0}.ui-navbar-collapsed ul{float:left;width:75%;margin-right:-2px}.ui-navbar-collapsed .ui-navbar-toggle{float:left;width:25%}.ui-navbar li.ui-navbar-truncate{position:absolute;left:-9999px;top:-9999px}.ui-navbar li .ui-btn,.ui-navbar .ui-navbar-toggle .ui-btn{display:block;font-size:12px;text-align:center;margin:0;border-right-width:0}.ui-navbar li .ui-btn{margin-right:-1px}.ui-navbar li .ui-btn:last-child{margin-right:0}.ui-header .ui-navbar li .ui-btn,.ui-header .ui-navbar .ui-navbar-toggle .ui-btn,.ui-footer .ui-navbar li .ui-btn,.ui-footer .ui-navbar .ui-navbar-toggle .ui-btn{border-top-width:0;border-bottom-width:0}.ui-navbar .ui-btn-inner{padding-left:2px;padding-right:2px}.ui-navbar-noicons li .ui-btn .ui-btn-inner,.ui-navbar-noicons .ui-navbar-toggle .ui-btn-inner{padding-top:.8em;padding-bottom:.9em}.ui-navbar-expanded .ui-btn{margin:0;font-size:14px}.ui-navbar-expanded .ui-btn-inner{padding-left:5px;padding-right:5px}.ui-navbar-expanded .ui-btn-icon-top .ui-btn-inner{padding:45px 5px 15px;text-align:center}.ui-navbar-expanded .ui-btn-icon-top .ui-icon{top:15px}.ui-navbar-expanded .ui-btn-icon-bottom .ui-btn-inner{padding:15px 5px 45px;text-align:center}.ui-navbar-expanded .ui-btn-icon-bottom .ui-icon{bottom:15px}.ui-navbar-expanded li .ui-btn .ui-btn-inner{min-height:2.5em}.ui-navbar-expanded .ui-navbar-noicons .ui-btn .ui-btn-inner{padding-top:1.8em;padding-bottom:1.9em}.ui-btn{display:block;text-align:center;cursor:pointer;position:relative;vertical-align:middle}.ui-btn:focus,.ui-btn:active{outline:0}.ui-header .ui-btn,.ui-footer .ui-btn,.ui-bar .ui-btn{display:inline-block;font-size:.5909090909090909rem;margin:0}.ui-btn-inline{display:inline-block}.ui-btn-inner{padding:.5em .4090909090909091rem;display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;position:relative;zoom:1}.ui-btn-icon-notext{width:1.6363636363636365rem;height:1.6363636363636365rem}.ui-btn-icon-notext .ui-btn-inner{padding:.09090909090909091rem .045454545454545456rem .09090909090909091rem .13636363636363635rem}.ui-btn-icon-notext .ui-btn-inner .ui-icon{margin-left:-.7272727272727273rem;margin-top:-.7272727272727273rem}.ui-btn-icon-notext .ui-btn-text{position:absolute;left:-45.409090909090914rem}.ui-btn-icon-left .ui-btn-inner{padding-left:1.5rem}.ui-header .ui-btn-icon-left .ui-btn-inner,.ui-footer .ui-btn-icon-left .ui-btn-inner,.ui-bar .ui-btn-icon-left .ui-btn-inner{padding-left:1.2272727272727273rem}.ui-btn-icon-right .ui-btn-inner{padding-right:1.5rem}.ui-header .ui-btn-icon-right .ui-btn-inner,.ui-footer .ui-btn-icon-right .ui-btn-inner,.ui-bar .ui-btn-icon-right .ui-btn-inner{padding-right:1.2272727272727273rem}.ui-btn-icon-top .ui-btn-inner{padding-top:1.2272727272727273rem}.ui-header .ui-btn-icon-top .ui-btn-inner,.ui-footer .ui-btn-icon-top .ui-btn-inner,.ui-bar .ui-btn-icon-top .ui-btn-inner{padding-top:1.2272727272727273rem}.ui-btn-icon-bottom .ui-btn-inner{padding-bottom:1.5rem}.ui-header .ui-btn-icon-bottom .ui-btn-inner,.ui-footer .ui-btn-icon-bottom .ui-btn-inner,.ui-bar .ui-btn-icon-bottom .ui-btn-inner{padding-bottom:1.2272727272727273rem}.ui-btn-icon-notext .ui-icon{display:block}.ui-btn-icon-left .ui-icon,.ui-btn-icon-right .ui-icon,.ui-btn-icon-circle .ui-icon{position:absolute}.ui-btn-icon-top .ui-icon,.ui-btn-icon-bottom .ui-icon{position:absolute;left:50%;margin-left:-9px}.ui-btn-icon-left .ui-icon{left:0rem}.ui-btn-icon-circle .ui-icon{left:0rem}.ui-btn-icon-right .ui-icon{right:.4545454545454546rem}.ui-btn-icon-top .ui-icon{top:0rem;margin-top:0}.ui-btn-icon-bottom .ui-icon{bottom:0rem}.ui-header .ui-btn-icon-right .ui-icon,.ui-footer .ui-btn-icon-right .ui-icon,.ui-bar .ui-btn-icon-right .ui-icon{right:.18181818181818182rem}.ui-header .ui-btn-icon-top .ui-icon,.ui-footer .ui-btn-icon-top .ui-icon,.ui-bar .ui-btn-icon-top .ui-icon{top:.18181818181818182rem}.ui-header .ui-btn-icon-bottom .ui-icon,.ui-footer .ui-btn-icon-bottom .ui-icon,.ui-bar .ui-btn-icon-bottom .ui-icon{bottom:.18181818181818182rem}.ui-btn-hidden{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-appearance:button;opacity:.1;cursor:pointer;background:transparent;font-size:.045454545454545456rem;border:0;line-height:45.409090909090914rem}.ui-btn-text{margin-left:auto;margin-right:auto;padding:0 1px}.ui-li .ui-btn.ui-btn-icon_only{top:50%;margin-top:-.7272727272727273rem}.ui-li .ui-btn .ui-btn-inner.ui-btn-hastxt{padding:.2em .5em}.ui-btn-icon-nobg.ui-btn-down-s .ui-btn-inner{background:transparent ! important}.ui-btn.ui-btn-box-s.ui-btn-down-s .ui-btn-inner{color:#fff}.ui-header .ui-btn-box-s:not(.ui-input-cancel):not(.ui-btn-search-front-icon),.ui-header .ui-btn-box-s:not(.ui-input-cancel):not(.ui-btn-search-front-icon) .ui-btn-inner,.ui-header .ui-btn.ui-btn-box-s.ui-btn-down-s:not(.ui-input-cancel):not(.ui-btn-search-front-icon) .ui-btn-inner,.ui-btn.ui-btn-back.ui-btn-up-s .ui-btn-inner,.ui-btn.ui-btn-back.ui-btn-hover-s .ui-btn-inner,.ui-btn.ui-btn-back.ui-btn-down-s .ui-btn-inner,.ui-btn.ui-btn-footer-down.ui-btn-up-s>.ui-btn-inner,.ui-btn.ui-btn-footer-down.ui-btn-hover-s>.ui-btn-inner,.ui-btn.ui-btn-footer-down.ui-btn-down-s>.ui-btn-inner{background:transparent;border:0;box-shadow:none}.ui-btn-icon-top .ui-btn-inner.ui-btn-hastxt,.ui-li .ui-btn-icon-top .ui-btn-inner.ui-btn-hastxt{padding-top:2.3636363636363638rem}.ui-btn-icon-bottom .ui-btn-inner.ui-btn-hastxt,.ui-li .ui-btn-icon-bottom .ui-btn-inner.ui-btn-hastxt{padding-bottom:2.3636363636363638rem}.ui-btn .ui-icon{width:1.4545454545454546rem;height:1.4545454545454546rem}.ui-btn.ui-btn-edit .ui-icon{width:3.3636363636363638rem;height:3.3636363636363638rem}.ui-btn .ui-btn-text.ui-btn-text-padding-left{padding-left:2rem}.ui-btn .ui-btn-text.ui-btn-text-padding-right{padding-right:2.1818181818181817rem}.ui-btn .ui-btn-text.ui-btn-text-padding-top{padding-top:1.4545454545454546rem}.ui-icon{background-repeat:no-repeat;vertical-align:middle;background-position:0 0;background-size:100%}.ui-btn-box.s .ui-icon{position:absolute}.ui-btn-box-s.ui-btn-icon-left .ui-icon,.ui-btn-box-s.ui-btn-icon-right .ui-icon{margin-top:-.7272727272727273rem;top:50%}.ui-btn-box-s.ui-btn-icon-top .ui-icon,.ui-btn-box-s.ui-btn-icon-bottom .ui-icon{margin-left:-.7272727272727273rem;left:50%}.tizen-icon-common{width:1.4545454545454546rem;height:1.4545454545454546rem}.tizen-smallicon-common{width:.9090909090909092rem ! important;height:.9090909090909092rem ! important;top:50% ! important;left:50% ! important;margin-top:-.4545454545454546rem ! important;margin-left:-.4545454545454546rem ! important}.ui-icon-bg{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_btn_circle_bg_normal.png);z-index:0}.ui-icon-arrow-l{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_left.png)}.ui-icon-arrow-r{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_right.png)}.ui-icon-arrow-u{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_opened.png)}.ui-icon-arrow-d{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_closed.png)}.ui-icon-delete{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_cancel.png)}.ui-icon-plus{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_plus.png)}.ui-icon-minus{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_minus.png)}.ui-icon-check{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_check.png)}.ui-icon-gear{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_gear.png)}.ui-icon-refresh{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_refresh.png)}.ui-icon-forward{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_send.png)}.ui-icon-back{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_back.png)}.ui-icon-grid{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_grid.png)}.ui-icon-star{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_star.png)}.ui-icon-alert{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_warning.png)}.ui-icon-info{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_info.png)}.ui-icon-home{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_home.png)}.ui-icon-search{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_search.png)}.ui-icon-call{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_call.png)}.ui-icon-rename{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_rename.png)}.ui-icon-scrolltop{width:.9090909090909092rem ! important;height:.9090909090909092rem ! important;top:50% ! important;left:50% ! important;margin-top:-.4545454545454546rem ! important;margin-left:-.4545454545454546rem ! important;background-image:url(images/controls/button/00_icon_jump.png)}.ui-icon-scrollleft{width:.9090909090909092rem ! important;height:.9090909090909092rem ! important;top:50% ! important;left:50% ! important;margin-top:-.4545454545454546rem ! important;margin-left:-.4545454545454546rem ! important;background-image:url(images/controls/button/00_icon_jump_left.png)}.ui-icon-expandable-divider-opened{width:1.9090909090909092rem;height:1.9090909090909092rem;position:absolute;right:1.2727272727272727rem;top:0rem;background-repeat:no-repeat;background-size:100% 100%;background-image:url(images/00_indexlist_icon_opened.png)}.ui-icon-expandable-divider-closed{width:1.9090909090909092rem;height:1.9090909090909092rem;position:absolute;right:1.2727272727272727rem;top:0rem;background-repeat:no-repeat;background-size:100% 100%;background-image:url(images/00_indexlist_icon_closed.png)}.ui-btn-down-s .ui-icon-bg,.ui-btn-down-s.ui-tizen-icon-bg{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_btn_circle_bg_press.png);z-index:0}.ui-btn-down-s .ui-icon-arrow-l{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_left_press.png)}.ui-btn-down-s .ui-icon-arrow-r{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_right_press.png)}.ui-btn-down-s .ui-icon-arrow-u{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_opened_press.png)}.ui-btn-down-s .ui-icon-arrow-d{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_closed_press.png)}.ui-btn-down-s .ui-icon-delete{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_cancel_press.png)}.ui-btn-down-s .ui-icon-plus{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_plus_press.png)}.ui-btn-down-s .ui-icon-minus{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_minus_press.png)}.ui-btn-down-s .ui-icon-check{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_check_press.png)}.ui-btn-down-s .ui-icon-gear{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_gear_press.png)}.ui-btn-down-s .ui-icon-refresh{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_refresh_press.png)}.ui-btn-down-s .ui-icon-forward{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_send_press.png)}.ui-btn-down-s .ui-icon-back{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_back_press.png)}.ui-btn-down-s .ui-icon-grid{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_grid_press.png)}.ui-btn-down-s .ui-icon-star{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_star_press.png)}.ui-btn-down-s .ui-icon-alert{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_warning_press.png)}.ui-btn-down-s .ui-icon-info{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_info_press.png)}.ui-btn-down-s .ui-icon-home{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_home_press.png)}.ui-btn-down-s .ui-icon-search{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_search_press.png)}.ui-btn-down-s .ui-icon-call{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_call_press.png)}.ui-btn-down-s .ui-icon-rename{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_rename_press.png)}.ui-btn-down-s .ui-icon-scrolltop{width:.9090909090909092rem ! important;height:.9090909090909092rem ! important;top:50% ! important;left:50% ! important;margin-top:-.4545454545454546rem ! important;margin-left:-.4545454545454546rem ! important;background-image:url(images/controls/button/00_icon_jump_press.png)}.ui-btn-down-s .ui-icon-scrollleft{width:.9090909090909092rem ! important;height:.9090909090909092rem ! important;top:50% ! important;left:50% ! important;margin-top:-.4545454545454546rem ! important;margin-left:-.4545454545454546rem ! important;background-image:url(images/controls/button/00_icon_jump_left_press.png)}.ui-btn-inner.ui-btn-icon-only{padding:.7272727272727273rem .7272727272727273rem}.ui-btn-icon-only .ui-btn-text{display:none;width:0;height:0;overflow:hidden}.ui-btn.ui-btn-corner-all{-o-border-radius:1.2em ! important;-ms-border-radius:1.2em ! important;-moz-border-radius:1.2em ! important;-webkit-border-radius:1.2em ! important;border-radius:1.2em ! important}.ui-btn.ui-btn-icon-nobg{box-shadow:none}.ui-btn-corner-circle{-o-border-radius:1em ! important;-ms-border-radius:1em ! important;-moz-border-radius:1em ! important;-webkit-border-radius:1em ! important;border-radius:1em ! important}.ui-btn-round{-o-border-radius:1.2em ! important;-ms-border-radius:1.2em ! important;-moz-border-radius:1.2em ! important;-webkit-border-radius:1.2em ! important;border-radius:1.2em ! important}.ui-btn-round .ui-btn-inner{-o-border-radius:1.2em ! important;-ms-border-radius:1.2em ! important;-moz-border-radius:1.2em ! important;-webkit-border-radius:1.2em ! important;border-radius:1.2em ! important}.ui-btn.ui-btn-icon-nobg,.ui-btn .ui-btn-icon-nobg{background:transparent;background-color:transparent;border:0}.ui-btn.ui-btn-edit .ui-btn-text{color:#f9f9f9}.ui-btn.ui-btn-edit .ui-btn-inner{background:#c95858;background:-webkit-gradient(linear,left top,left bottom,from( #c95858),to( #a12828));background:-moz_linear-gradient(top, #c95858, #a12828)}.ui-btn-box-s{color:#3a3a3a;background:#202327;background:-webkit-linear-gradient(top, #202327, #202327);background:-moz-linear-gradient(top, #ebe8e3, #eae7e2);background:-o-linear-gradient(top, #ebe8e3, #eae7e2);background:-ms-linear-gradient(top, #ebe8e3, #eae7e2);border:1px solid;border-color:#000;-o-box-shadow:0 0 1px 1px #000;-ms-box-shadow:0 0 1px 1px #000;-moz-box-shadow:0 0 1px 1px #000;-webkit-box-shadow:0 0 1px 1px #000;box-shadow:0 0 1px 1px #000}.ui-collapsible-inset{margin:.5em 0}.ui-collapsible-inset .ui-collapsible-heading{margin:0}.ui-collapsible-inset .ui-collapsible-heading .ui-btn{border-right-width:1px;border-left-width:1px}.ui-collapsible-collapsed+.ui-collapsible:not(.ui-collapsible-inset) .ui-collapsible-heading .ui-btn{border-top-width:0}.ui-collapsible-set .ui-collapsible:not(.ui-collapsible-inset) .ui-collapsible-heading .ui-btn{border-top-width:1px}.ui-collapsible-heading,.ui-collapsible-content>li{position:relative}.ui-collapsible-heading{font-size:1rem;display:block;margin:0 -15px;padding:0;position:relative}.ui-collapsible-heading .ui-btn{text-align:left;margin:0;border-left-width:0;border-right-width:0}.ui-collapsible-heading .ui-btn-text{color:#f9f9f9}.ui-collapsible-heading .ui-btn-inner,.ui-collapsible-heading .ui-btn-icon-left .ui-btn-inner{padding-left:40px}.ui-collapsible-heading .ui-btn-icon-right .ui-btn-inner{padding-left:12px;padding-right:40px}.ui-collapsible-heading .ui-btn-icon-top .ui-btn-inner,.ui-collapsible-heading .ui-btn-icon-bottom .ui-btn-inner{padding-right:40px;text-align:center}.ui-collapsible-heading .ui-btn-inner>.ui-icon-arrow-d{-webkit-transition:all .33s ease;-moz-transition:all .33s ease;-ms-transition:all .33s ease;-o-transition:all .33s ease;transition:all .33s ease;-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.ui-collapsible-heading .ui-btn-inner>.ui-icon-arrow-u{background-image:url(images/controls/button/00_button_expand_closed.png);-webkit-transition:all .33s ease;-moz-transition:all .33s ease;-ms-transition:all .33s ease;-o-transition:all .33s ease;transition:all .33s ease;-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}.ui-collapsible-heading .ui-btn span.ui-btn{position:absolute;left:6px;top:50%;margin:-12px 0 0 0;width:20px;height:20px;padding:1px 0 1px 2px;text-indent:-9999px}.ui-collapsible-heading .ui-btn span.ui-btn .ui-btn-inner{padding:10px 0}.ui-collapsible-heading .ui-btn span.ui-btn .ui-icon{left:0;margin-top:-10px}.ui-collapsible-heading-status{position:absolute;top:-9999px;left:0}.ui-collapsible-content{display:block;margin:0 -15px;padding:0 15px;border-left-width:0;border-right-width:0;border-top:0;background-image:none;visibility:visible;overflow:auto;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-ms-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}.ui-collapsible-inset .ui-collapsible-content{margin:0;border-right-width:1px;border-left-width:1px}.ui-collapsible-content-collapsed{overflow:hidden;max-height:0!important;visibility:hidden}.ui-collapsible-set{margin:.5em 0}.ui-collapsible-set .ui-collapsible{margin:-1px 0 0}.ui-collapsible-set .ui-collapsible:first-child{margin-top:0}.ui-dialog{min-height:480px}.ui-dialog .ui-header,.ui-dialog .ui-content,.ui-dialog .ui-footer{margin:15px;position:relative}.ui-dialog .ui-header,.ui-dialog .ui-footer{z-index:10;width:auto}.ui-dialog .ui-header .ui-btn-left{width:0;border-width:0}.ui-dialog .center_info{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center}.ui-dialog .center_info .popup-text{font-size:42px;background:#213c49;width:100%}.ui-dialog .center_info .popup-text p{text-align:center;padding:22px 16px}.ui-checkbox .ui-btn-inner,.ui-radio .ui-btn-inner{white-space:normal}.ui-checkbox,.ui-radio{position:relative;margin:0}.ui-checkbox .ui-btn-corner-all,.ui-radio .ui-btn-corner-all{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-checkbox .ui-btn-inner,.ui-radio .ui-btn-inner{border-top:0}.ui-checkbox .ui-btn-up-s,.ui-radio .ui-btn-up-s{border:0;background:transparent;font-weight:400}.ui-checkbox .ui-btn-hover-s,.ui-radio .ui-btn-hover-s{border:0;background:transparent;font-weight:400}.ui-checkbox .ui-btn-down-s,.ui-radio .ui-btn-down-s{border:0;background:transparent;font-weight:400}.ui-checkbox input,.ui-radio input{z-index:1;margin:0;left:.4545454545454546rem;position:absolute;outline:0!important}.ui-checkbox>input,.ui-radio>input{display:none}.ui-checkbox .ui-btn,.ui-radio .ui-btn{z-index:2;height:100%;margin:0;text-align:left}.ui-checkbox .ui-btn.ui-btn-icon-left,.ui-radio .ui-btn.ui-btn-icon-left{display:inline-block}.ui-checkbox .ui-btn.ui-btn-icon-left .ui-btn-inner,.ui-radio .ui-btn.ui-btn-icon-left .ui-btn-inner{min-width:1.8181818181818183rem;display:inline-block;line-height:1.4545454545454546rem;padding:0 .7272727272727273rem 0 .7272727272727273rem}.ui-checkbox .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text,.ui-radio .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text{display:inline-block;vertical-align:middle;min-height:1.4545454545454546rem}.ui-checkbox .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text.ui-btn-text-padding-left,.ui-radio .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text.ui-btn-text-padding-left{padding-left:1.0909090909090908rem}.ui-checkbox .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-icon,.ui-radio .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-icon{position:absolute;top:50%;width:1.4545454545454546rem;height:1.4545454545454546rem;margin-top:-.7272727272727273rem}.ui-checkbox.favorite input{position:absolute;left:-10000px;height:100%;outline:0!important}.ui-checkbox.favorite .ui-btn.ui-btn-icon-left{display:block}.ui-checkbox.favorite .ui-btn.ui-btn-icon-left .ui-btn-inner{display:inline-block;line-height:1.4545454545454546rem;padding:0 0 0 .7272727272727273rem}.ui-checkbox.favorite .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text{display:inline-block;vertical-align:middle}.ui-checkbox.favorite .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text.ui-btn-text-padding-left{padding-left:1.0909090909090908rem}.ui-checkbox.favorite .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-icon{position:absolute;top:50%;width:1.4545454545454546rem;height:1.4545454545454546rem;margin-top:-.7272727272727273rem}.ui-icon-checkbox-off,.ui-icon-checkbox-on,.favorite .ui-icon-checkbox-off,.favorite .ui-icon-checkbox-on,.ui-icon-checkbox-on-press,.ui-icon-checkbox-off-press,.ui-icon-radio-off,.ui-icon-radio-on,.ui-icon-radio-on-press,.ui-icon-radio-off-press{background-size:100% 100%;background-color:transparent}.ui-icon-checkbox-off{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_check_bg.png)}.ui-icon-checkbox-on{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_check_checking.png),url(images/00_check_bg.png);background-repeat:no-repeat}.ui-icon-checkbox-off-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_check_bg_press.png)}.ui-icon-checkbox-on-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_check_checking.png),url(images/00_check_bg_press.png);background-repeat:no-repeat}.favorite .ui-icon-checkbox-off,.favorite .ui-icon-checkbox-off-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/00_icon_favorite_off.png)}.favorite .ui-icon-checkbox-on,.favorite .ui-icon-checkbox-on-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/00_icon_favorite_on.png)}.ui-icon-radio-off{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_button_radio.png)}.ui-icon-radio-on{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_button_radio_select.png),url(images/00_button_radio.png)}.ui-icon-radio-on-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_button_radio.png)}.ui-icon-radio-off-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_button_radio.png)}.ui-field-contain{padding:1.5em 0;margin:0;border-bottom-width:1px;overflow:visible}.ui-field-contain:first-child{border-top-width:0}@media all{.ui-field-contain{ border-width:0;padding:0;margin:.8em 0}}.ui-select{display:block;position:relative}.ui-select select{position:absolute;left:-9999px;top:-9999px}.ui-select .ui-btn{overflow:hidden}.ui-select .ui-btn select{cursor:pointer;-webkit-appearance:button;left:0;top:0;width:100%;min-height:1.5em;min-height:100%;height:3em;max-height:100%;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);z-index:2}@-moz-document url-prefix(){.ui-select .ui-btn select{ opacity:.0001}}.ui-select .ui-btn select.ui-select-nativeonly{opacity:1;text-indent:0}.ui-select .ui-btn-icon-right .ui-btn-inner{padding-right:45px}.ui-select .ui-btn-icon-right .ui-icon{right:15px}label.ui-select{font-size:16px;line-height:1.4;font-weight:400;margin:0 0 .3em;display:block}.ui-select .ui-btn-text,.ui-selectmenu .ui-btn-text{display:block;min-height:1em}.ui-select .ui-btn-text{text-overflow:ellipsis;overflow:hidden}.ui-selectmenu{position:absolute;padding:0;z-index:100!important;width:80%;max-width:350px;padding:6px}.ui-selectmenu .ui-listview{margin:0}.ui-selectmenu .ui-btn.ui-li-divider{cursor:default}.ui-selectmenu-hidden{top:-9999px;left:-9999px}.ui-selectmenu-screen{position:absolute;top:0;left:0;width:100%;height:100%;z-index:99}.ui-screen-hidden,.ui-selectmenu-list .ui-li .ui-icon{display:none}.ui-selectmenu-list .ui-li .ui-icon{display:block}.ui-li.ui-selectmenu-placeholder{display:none}.ui-selectmenu .ui-header .ui-title{margin:.6em 46px .8em}@media all and (min-width: 450px){label.ui-select{ vertical-align:top;display:inline-block;width:20%;margin:0 2% 0 0}.ui-select{width:60%;display:inline-block}}.ui-selectmenu .ui-header h1:after{content:'.';visibility:hidden}label.ui-input-text{font-size:1rem;line-height:1.2;display:block;font-weight:400;margin:0 0 .3em}input.ui-input-text,textarea.ui-input-text{background-image:none;padding:.4em;line-height:1.4;font-size:.7272727272727273rem;display:block}input.ui-input-text{appearance:none;-webkit-appearance:none}textarea.ui-input-text{height:2.272727272727273rem;width:95%;resize:none;-webkit-transition:height 200ms linear;-moz-transition:height 200ms linear;-o-transition:height 200ms linear;-ms-transition:height 200ms linear;transition:height 200ms linear}.ui-input-search{position:relative;padding-right:1.6363636363636365rem;padding-left:1.6363636363636365rem;border:1px solid #999;-webkit-box-shadow:inset .09090909090909091rem .09090909090909091rem .09090909090909091rem #999;-moz-box-shadow:inset .09090909090909091rem .09090909090909091rem .09090909090909091rem #999;-o-box-shadow:inset .09090909090909091rem .09090909090909091rem .09090909090909091rem #999;-ms-box-shadow:inset .09090909090909091rem .09090909090909091rem .09090909090909091rem #999;box-shadow:inset .09090909090909091rem .09090909090909091rem .09090909090909091rem #999}.ui-input-search input.ui-input-text{width:100%;border:0;background:transparent none;outline:0!important}.ui-input-search .ui-btn-down-s,.ui-input-search .ui-btn-up-s,.ui-input-search .ui-btn-hover-s{border:0;background:transparent none}.ui-input-search .ui-btn-icon-notext.ui-input-clear{width:1.6363636363636365rem;height:1.5rem}.ui-input-search .ui-btn-icon-notext.ui-input-clear .ui-btn-inner{padding:.2727272727272727rem}.ui-input-search .ui-btn-inner .ui-icon-deleteSearch{width:1rem;height:1rem;margin-top:0;margin-left:0}.ui-input-search .ui-input-clear{position:absolute;right:0;top:0;vertical-align:middle}.ui-input-search .ui-input-clear-hidden{display:none}@media all and (min-width: 721px){label.ui-input-text:not([data-type='search']){ vertical-align:top;display:inline-block;margin:0 2% 0 0}input.ui-input-text:not([data-type='search']),textarea.ui-input-text:not([data-type='search']){width:60%;display:inline-block}.ui-input-search input.ui-input-text:not([data-type='search']){width:85%}}.ui-body-s>div>.ui-field-contain>.input-search-bar,.ui-body-s>.ui-field-contain>.input-search-bar{margin:-2.1818181818181817rem -.6818181818181819rem -1.4545454545454546rem -.6818181818181819rem}.input-search-bar{position:relative;background-color:#202327;padding:.5909090909090909rem;vertical-align:middle}.input-search-bar .ui-corner-all{-o-border-radius:.3em;-ms-border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em}.input-search-bar .ui-input-search{font-size:.7272727272727273rem;display:block;position:relative;background-color:#3c4147}.input-search-bar .ui-input-search .ui-input-text{height:1.5rem;padding:0;margin-right:1.7272727272727273rem}.input-search-bar .ui-input-search .ui-image-search{position:absolute;top:0;left:0;width:1rem;height:1rem;margin:.2727272727272727rem}.input-search-bar .ui-input-search-default{margin-right:3.409090909090909rem;-webkit-transition:all 400ms linear;-moz-transition:all 400ms linear;-o-transition:all 400ms linear;-ms-transition:all 400ms linear;transition:all 400ms linear}.input-search-bar .ui-input-search-wide{margin-right:0rem;-webkit-transition:all 400ms linear;-moz-transition:all 400ms linear;-o-transition:all 400ms linear;-ms-transition:all 400ms linear;transition:all 400ms linear}.input-search-bar .ui-btn-icon-cancel.ui-input-cancel{display:inline-block;position:absolute;top:.13636363636363635rem;right:0rem;height:1.5rem;margin-right:.4545454545454546rem;vertical-align:middle;padding:0;border-color:none;width:3.090909090909091rem;-webkit-transition:all 400ms linear;-moz-transition:all 400ms linear;-o-transition:all 400ms linear;-ms-transition:all 400ms linear;transition:all 400ms linear}.input-search-bar .ui-btn-icon-cancel.ui-input-cancel .ui-btn-inner{padding-top:.2727272727272727rem;padding-bottom:.2727272727272727rem}.input-search-bar .ui-btn-icon-cancel.ui-input-cancel .ui-btn-inner .ui-btn-text{font-size:.6818181818181819rem}.input-search-bar .ui-btn-icon-cancel.ui-input-cancel.ui-btn-cancel-hide{right:-3.409090909090909rem;visibility:hidden}.input-search-bar .ui-btn-icon-cancel.ui-input-cancel.ui-btn-cancel-show{right:0;visibility:visible}.input-search-bar .ui-search-bar-icon{margin-left:1.9090909090909092rem}.input-search-bar .ui-btn.ui-btn-search-front-icon{position:absolute;width:1.590909090909091rem;height:1.590909090909091rem;top:.09090909090909091rem;border-radius:3rem}.input-search-bar .ui-btn.ui-btn-search-front-icon>.ui-btn-inner.ui-btn-icon-only{border-radius:3rem}.ui-header .input-search-bar{padding-top:.18181818181818182rem;padding-bottom:.18181818181818182rem}.ui-image-search{background-image:url(images/controls/00_search_icon.png);background-repeat:no-repeat;background-size:100% 100%}.ui-icon-deleteSearch{background-image:url(images/controls/00_field_btn_clear.png);background-repeat:no-repeat;background-size:100% 100%}.ui-controlgroup,fieldset.ui-controlgroup{padding:0;margin:.5em 0 1em}.ui-bar .ui-controlgroup{margin:0 .3em}.ui-controlgroup-label{font-size:1em;line-height:1.4;font-weight:400;margin:0 0 .3em}.ui-controlgroup-controls{display:block}.ui-controlgroup li{list-style:none}.ui-controlgroup .ui-btn-inner{white-space:nowrap}.ui-controlgroup .ui-checkbox label label,.ui-controlgroup .ui-radio label{font-size:1em}.ui-controlgroup .ui-radio{width:25%;overflow:hidden}.ui-controlgroup .ui-radio label{text-align:center;white-space:nowrap}.ui-controlgroup .ui-radio-on .ui-btn-inner{background:#202327}.ui-controlgroup .ui-radio-on .ui-btn-inner .ui-btn-text{color:#70a9ee}.ui-controlgroup .ui-corner-left{border-left-width:0}.ui-controlgroup .ui-corner-right{border-right-width:0}.ui-controlgroup-vertical .ui-btn,.ui-controlgroup-vertical .ui-checkbox,.ui-controlgroup-vertical .ui-radio{margin:0;border-bottom-width:0}.ui-controlgroup-vertical .ui-controlgroup-last{border-bottom-width:1px}.ui-controlgroup-vertical .ui-radio{width:100%}.ui-controlgroup-vertical .ui-radio label{text-align:left}.ui-controlgroup-vertical .ui-radio label .ui-btn-inner{margin-left:.7272727272727273rem;margin-right:.7272727272727273rem}.ui-controlgroup-horizontal{padding:0}.ui-controlgroup-horizontal .ui-btn{display:inline-block;margin-left:-.18181818181818182rem;margin-right:-.13636363636363635rem}.ui-controlgroup-horizontal .ui-checkbox,.ui-controlgroup-horizontal .ui-radio{float:left;margin:0 -1px 0 0}.ui-controlgroup-horizontal .ui-controlgroup-last{margin-right:0}.ui-controlgroup-horizontal [data-role="button"]{border-top:0;border-bottom:0;border-radius:0;box-shadow:none;background:0}.ui-controlgroup-horizontal [data-role="button"].ui-btn-down-s .ui-btn-inner,.ui-controlgroup-horizontal [data-role="button"] .ui-btn-active-s .ui-btn-inner{background:#202327}.ui-controlgroup-horizontal [data-role="button"].ui-btn-down-s .ui-btn-inner .ui-btn-text,.ui-controlgroup-horizontal [data-role="button"] .ui-btn-active-s .ui-btn-inner .ui-btn-text{color:#70a9ee}.ui-controlgroup-horizontal [data-role="button"].ui-btn-down-s .ui-btn-inner{background:-webkit-linear-gradient(top, #000 0, #202327 100%)}.ui-controlgroup-horizontal [data-role="button"]>.ui-btn-inner{border:0 solid;box-shadow:none;padding-top:.2272727272727273rem;padding-bottom:.2272727272727273rem;padding-left:.4545454545454546rem;padding-right:.4545454545454546rem}.ui-controlgroup-horizontal label>span.ui-btn-inner{padding-top:.13636363636363635rem;padding-bottom:.13636363636363635rem}.ui-listview{margin:0;counter-reset:listnumbering;border-top-color:rgba(45,45,45,.5)}.ui-listview li.ui-btn>.ui-btn-hastxt>.ui-btn-text.ui-btn-text-padding-right{padding-right:0rem}.ui-listview .ui-li{border-left-width:0;border-right-width:0;border-top-width:0}.ui-listview .ui-li>.ui-btn-inner{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgba(45,45,45,.5);margin-left:.5909090909090909rem;margin-right:.5909090909090909rem}.ui-listview .ui-li-static{background-color:#202327;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgba(45,45,45,.5);margin-left:.5909090909090909rem;margin-right:.5909090909090909rem}.ui-listview .ui-li:not(.ui-li-divider):not(.ui-li-static){min-height:2.5rem}.ui-listview .ui-li.ui-li-has-multiline:not(.ui-li-divider):not(.ui-li-static){min-height:2.909090909090909rem}.ui-listview li.ui-btn-up-s,.ui-listview li.ui-btn-hover-s{background:0;background-color:#202327;color:#f9f9f9}.ui-listview li.ui-btn-down-s{background:0;background-color:#5787c2;color:#f9f9f9}.ui-listview li.ui-btn-up-s>.ui-li>.ui-btn-text>a.ui-link-inherit,.ui-listview li.ui-btn-hover-s>.ui-li>.ui-btn-text>a.ui-link-inherit{color:#d7d7d7}.ui-listview li.ui-btn-down-s>.ui-li>.ui-btn-text>a.ui-link-inherit{color:#fff}.ui-content .ui-listview{margin-left:-.36363636363636365rem;margin-right:-.36363636363636365rem;padding-bottom:1px}.ui-content .ui-listview .ui-listview{margin:0}.ui-content .ui-listview-inset{margin:1em 0}.ui-listview,.ui-li,.ui-collapsible-heading{list-style:none;padding:0;font-size:1rem}.ui-li,.ui-collapsible-heading,.ui-li.ui-field-contain{display:block;margin:0;position:relative;overflow:visible;text-align:left}.ui-li .ui-btn{top:50%;margin-top:-.8em}.ui-li h3,.ui-collapsible-heading h3,.ui-collapsible>.ui-collapsible-content h3,.ui-listview li h3{margin-top:0;margin-bottom:0;font-size:1rem;font-weight:400}.ui-li form,.ui-collapsible-heading form,.ui-collapsible>.ui-collapsible-content form,.ui-listview li form{display:inline-block}.ui-li .ui-btn-text,.ui-collapsible-heading .ui-btn-text,.ui-collapsible>.ui-collapsible-content .ui-btn-text,.ui-listview li .ui-btn-text{position:relative}.ui-li .ui-btn-text a.ui-link-inherit,.ui-collapsible-heading .ui-btn-text a.ui-link-inherit,.ui-collapsible>.ui-collapsible-content .ui-btn-text a.ui-link-inherit,.ui-listview li .ui-btn-text a.ui-link-inherit{white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li:last-child,.ui-collapsible-heading:last-child,.ui-collapsible>.ui-collapsible-content:last-child,.ui-listview li:last-child,.ui-li.ui-field-contain:last-child,.ui-collapsible-heading.ui-field-contain:last-child,.ui-collapsible>.ui-collapsible-content.ui-field-contain:last-child,.ui-listview li.ui-field-contain:last-child{border-bottom-width:1px}.ui-li>.ui-btn-inner,.ui-collapsible-heading>.ui-btn-inner,.ui-collapsible>.ui-collapsible-content>.ui-btn-inner,.ui-listview li>.ui-btn-inner,.ui-li.ui-collapsible-heading>.ui-collapsible-heading-toggle,.ui-collapsible-heading.ui-collapsible-heading>.ui-collapsible-heading-toggle,.ui-collapsible>.ui-collapsible-content.ui-collapsible-heading>.ui-collapsible-heading-toggle,.ui-listview li.ui-collapsible-heading>.ui-collapsible-heading-toggle{display:block;position:relative;padding:0;border-width:0}.ui-li>.ui-btn-inner.ui-btn-hastxt,.ui-collapsible-heading>.ui-btn-inner.ui-btn-hastxt,.ui-collapsible>.ui-collapsible-content>.ui-btn-inner.ui-btn-hastxt,.ui-listview li>.ui-btn-inner.ui-btn-hastxt{padding:0 0}.ui-li .ui-btn-inner a.ui-link-inherit,.ui-collapsible-heading .ui-btn-inner a.ui-link-inherit,.ui-collapsible>.ui-collapsible-content .ui-btn-inner a.ui-link-inherit,.ui-listview li .ui-btn-inner a.ui-link-inherit,.ui-li .ui-collapsible-heading-toggle>.ui-btn-inner,.ui-collapsible-heading .ui-collapsible-heading-toggle>.ui-btn-inner,.ui-collapsible>.ui-collapsible-content .ui-collapsible-heading-toggle>.ui-btn-inner,.ui-listview li .ui-collapsible-heading-toggle>.ui-btn-inner,.ui-li>li,.ui-collapsible-heading>li,.ui-collapsible>.ui-collapsible-content>li,.ui-listview li>li,.ui-li.ui-li-static,.ui-collapsible-heading.ui-li-static,.ui-collapsible>.ui-collapsible-content.ui-li-static,.ui-listview li.ui-li-static{padding-top:.6818181818181819rem;padding-bottom:.6818181818181819rem;display:block;white-space:normal;border-left-width:0;border-right-width:0}.ui-li .ui-btn-inner a.ui-link-inherit,.ui-collapsible-heading .ui-btn-inner a.ui-link-inherit,.ui-collapsible>.ui-collapsible-content .ui-btn-inner a.ui-link-inherit,.ui-listview li .ui-btn-inner a.ui-link-inherit,.ui-li .ui-collapsible-heading-toggle,.ui-collapsible-heading .ui-collapsible-heading-toggle,.ui-collapsible>.ui-collapsible-content .ui-collapsible-heading-toggle,.ui-listview li .ui-collapsible-heading-toggle{white-space:normal;overflow:visible!important}.ui-li .ui-toggle-switch:last-child,.ui-collapsible-heading .ui-toggle-switch:last-child,.ui-collapsible>.ui-collapsible-content .ui-toggle-switch:last-child,.ui-listview li .ui-toggle-switch:last-child{top:50%;margin-top:-.7727272727272727rem;display:inline-block;position:absolute;right:0}.ui-li [data-role="button"]:last-child,.ui-collapsible-heading [data-role="button"]:last-child,.ui-collapsible>.ui-collapsible-content [data-role="button"]:last-child,.ui-listview li [data-role="button"]:last-child{position:absolute;right:0}.ui-li .ui-radio:first-child,.ui-collapsible-heading .ui-radio:first-child,.ui-collapsible>.ui-collapsible-content .ui-radio:first-child,.ui-listview li .ui-radio:first-child,.ui-li .ui-checkbox:first-child,.ui-collapsible-heading .ui-checkbox:first-child,.ui-collapsible>.ui-collapsible-content .ui-checkbox:first-child,.ui-listview li .ui-checkbox:first-child{position:absolute;top:50%;margin-top:-.6818181818181819rem;left:-.18181818181818182rem;width:1.3636363636363638rem;height:1.3636363636363638rem}.ui-li .ui-radio:first-child .ui-btn-inner,.ui-collapsible-heading .ui-radio:first-child .ui-btn-inner,.ui-collapsible>.ui-collapsible-content .ui-radio:first-child .ui-btn-inner,.ui-listview li .ui-radio:first-child .ui-btn-inner,.ui-li .ui-checkbox:first-child .ui-btn-inner,.ui-collapsible-heading .ui-checkbox:first-child .ui-btn-inner,.ui-collapsible>.ui-collapsible-content .ui-checkbox:first-child .ui-btn-inner,.ui-listview li .ui-checkbox:first-child .ui-btn-inner{line-height:.9090909090909092rem;color:transparent}.ui-li .ui-radio:first-child .ui-btn-inner .ui-icon,.ui-collapsible-heading .ui-radio:first-child .ui-btn-inner .ui-icon,.ui-collapsible>.ui-collapsible-content .ui-radio:first-child .ui-btn-inner .ui-icon,.ui-listview li .ui-radio:first-child .ui-btn-inner .ui-icon,.ui-li .ui-checkbox:first-child .ui-btn-inner .ui-icon,.ui-collapsible-heading .ui-checkbox:first-child .ui-btn-inner .ui-icon,.ui-collapsible>.ui-collapsible-content .ui-checkbox:first-child .ui-btn-inner .ui-icon,.ui-listview li .ui-checkbox:first-child .ui-btn-inner .ui-icon{left:.2272727272727273rem}.ui-li .ui-radio:first-child label.ui-btn-icon_only,.ui-collapsible-heading .ui-radio:first-child label.ui-btn-icon_only,.ui-collapsible>.ui-collapsible-content .ui-radio:first-child label.ui-btn-icon_only,.ui-listview li .ui-radio:first-child label.ui-btn-icon_only,.ui-li .ui-checkbox:first-child label.ui-btn-icon_only,.ui-collapsible-heading .ui-checkbox:first-child label.ui-btn-icon_only,.ui-collapsible>.ui-collapsible-content .ui-checkbox:first-child label.ui-btn-icon_only,.ui-listview li .ui-checkbox:first-child label.ui-btn-icon_only{top:0;margin-top:0}.ui-li img.ui-li-bigicon,.ui-collapsible-heading img.ui-li-bigicon,.ui-collapsible>.ui-collapsible-content img.ui-li-bigicon,.ui-listview li img.ui-li-bigicon{position:absolute;width:1.590909090909091rem;height:1.590909090909091rem;top:50%;margin-top:-.8181818181818182rem}.ui-li img.ui-li-bigicon:first-child,.ui-collapsible-heading img.ui-li-bigicon:first-child,.ui-collapsible>.ui-collapsible-content img.ui-li-bigicon:first-child,.ui-listview li img.ui-li-bigicon:first-child{left:0}.ui-li img.ui-li-bigicon:nth-child(2),.ui-collapsible-heading img.ui-li-bigicon:nth-child(2),.ui-collapsible>.ui-collapsible-content img.ui-li-bigicon:nth-child(2),.ui-listview li img.ui-li-bigicon:nth-child(2){left:1.6363636363636365rem}.ui-li img.ui-li-bigicon:last-child,.ui-collapsible-heading img.ui-li-bigicon:last-child,.ui-collapsible>.ui-collapsible-content img.ui-li-bigicon:last-child,.ui-listview li img.ui-li-bigicon:last-child{right:.7272727272727273rem}.ui-li .ui-li-color-bar+img.ui-li-bigicon:nth-child(2),.ui-collapsible-heading .ui-li-color-bar+img.ui-li-bigicon:nth-child(2),.ui-collapsible>.ui-collapsible-content .ui-li-color-bar+img.ui-li-bigicon:nth-child(2),.ui-listview li .ui-li-color-bar+img.ui-li-bigicon:nth-child(2){left:0}.ui-li .ui-li-color-bar,.ui-collapsible-heading .ui-li-color-bar,.ui-collapsible>.ui-collapsible-content .ui-li-color-bar,.ui-listview li .ui-li-color-bar{position:absolute;width:.13636363636363635rem;height:100%;top:0rem;left:-.5909090909090909rem;background-color:#000}li.ui-li-thumbnail-right img.ui-li-bigicon.ui-li-thumb{left:auto;right:0;width:2.3181818181818183rem;height:2.3181818181818183rem;margin-top:-1.1363636363636365rem}.ui-li.ui-li-has-multiline .ui-btn-inner a.ui-link-inherit,.ui-li.ui-li-has-multiline.ui-li-static{padding-top:.3181818181818182rem;padding-bottom:1.2727272727272727rem}.ui-li.ui-li-has-multiline a{white-space:normal;overflow:visible!important;padding-right:.7272727272727273rem}.ui-li.ui-li-text-ellipsis .ui-btn-inner a.ui-link-inherit{white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li.ui-li-text-ellipsis a{white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li.ui-li-text-ellipsis.ui-li-static{white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li>input{border-style:none;border-width:0;outline-color:#202327;font-size:1.0454545454545454rem;line-height:1;padding-top:0;padding-bottom:0}.ui-listview li.ui-li-divider{background:#202327;color:#70a9ee;border-bottom-width:0;border-top-width:0;cursor:default;counter-reset:listnumbering;font-weight:700;height:1.7272727272727273rem;font-size:.7272727272727273rem}.ui-listview li.ui-li-divider>.ui-btn-inner>.ui-btn-text{font-size:.7272727272727273rem}.ui-listview li.ui-li-divider.ui-btn{top:0;margin-top:0rem;border-radius:0;font-size:.7272727272727273rem}.ui-listview li.ui-li-divider.ui-btn .ui-btn-inner.ui-btn-hastxt{height:100%;padding-left:0}.ui-listview li.ui-li-divider.ui-btn .ui-btn-inner.ui-btn-hastxt .ui-btn-text{position:absolute;top:.2272727272727273rem;height:.8181818181818182rem;padding-right:.4545454545454546rem}.ui-listview li.ui-li-divider:not(.ui-btn){margin-left:.5454545454545454rem;margin-right:.5454545454545454rem}.ui-listview li.ui-li-divider>.ui-btn-text{position:absolute;top:.2272727272727273rem;height:.8181818181818182rem;padding-right:.4545454545454546rem}.ui-listview li.ui-li-divider[data-style="dialogue"]{height:.9090909090909092rem;padding:0;padding-top:.9090909090909092rem;padding-bottom:0rem;padding-left:.4545454545454546rem;margin-left:.18181818181818182rem;margin-right:.18181818181818182rem;font-size:.7272727272727273rem;font-weight:700;color:#3b73b6;background:#202327}.ui-listview li.ui-li-divider[data-style="check"]{height:1.7272727272727273rem;padding-top:0;padding-bottom:0;padding-left:0}.ui-listview li.ui-li-divider[data-style="check"] label{top:0;margin:0}.ui-listview li.ui-li-divider[data-style="check"] label .ui-btn-inner{z-index:5;position:absolute;width:1.4545454545454546rem;height:1.4545454545454546rem;background:#202327;padding:0}.ui-listview li.ui-li-divider[data-style="check"] .ui-btn-text{padding-left:1.6818181818181819rem}.ui-listview li.ui-li-divider .ui-divider-normal-line{display:inline-block;position:absolute;top:1.0454545454545454rem;width:100%;height:.09090909090909091rem;background:#70a9ee}.ui-listview li.ui-li-divider.ui-btn-down-s{background:#70a9ee;color:#202327}.ui-listview li.ui-li-divider.ui-btn-down-s .ui-divider-normal-line{background:#202327}.ui-listview li.ui-li-divider.ui-btn-down-s label>.ui-btn-inner{background:#70a9ee}.ui-listview li.ui-li-divider+li.ui-li-dialogue{border-top-left-radius:3px;border-top-right-radius:3px}.ui-divider-expand-div{position:absolute;width:4.454545454545455rem;height:1.9090909090909092rem;top:.4545454545454546rem;right:0;border-left-width:1px;border-left-style:solid;border-left-color:rgba(0,0,0,.5)}.ui-li-has-thumb:not(.ui-li-thumbnail-right) .ui-btn-inner a.ui-link-inherit,.ui-li-has-thumb:not(.ui-li-thumbnail-right).ui-li-static{padding-left:2.0454545454545454rem}.ui-li-has-thumb:not(.ui-li-thumbnail-right) .ui-li-text-sub{padding-left:2.0454545454545454rem;padding-right:0}.ui-li-has-checkbox .ui-btn-inner a.ui-link-inherit,.ui-li-has-radio .ui-btn-inner a.ui-link-inherit,.ui-li-has-checkbox.ui-li-static,.ui-li-has-radio.ui-li-static{padding-left:1.6363636363636365rem}.ui-li-has-checkbox .ui-li-text-sub,.ui-li-has-radio .ui-li-text-sub{padding-left:1.6363636363636365rem}.ui-li-has-thumb.ui-li-has-checkbox .ui-btn-inner a.ui-link-inherit,.ui-li-has-thumb.ui-li-has-radio .ui-btn-inner a.ui-link-inherit,.ui-li-has-thumb.ui-li-has-checkbox.ui-li-static,.ui-li-has-thumb.ui-li-has-radio.ui-li-static{padding-left:3.5454545454545454rem}.ui-li-has-thumb.ui-li-has-checkbox .ui-li-text-sub,.ui-li-has-thumb.ui-li-has-radio .ui-li-text-sub{padding-left:3.5454545454545454rem}.ui-li.ui-li-has-right-circle-btn .ui-btn-inner a{padding-right:2.1818181818181817rem}.ui-li.ui-li-has-right-btn:not(.ui-swipe) .ui-btn-inner a{padding-right:3.590909090909091rem}.ui-li.ui-li-thumbnail-right .ui-btn-inner a{padding-right:2.3636363636363638rem}.ui-li.ui-li-static.ui-li-has-right-circle-btn{padding-right:2.1818181818181817rem}.ui-li.ui-li-static.ui-li-has-right-btn:not(.ui-swipe){padding-right:3.590909090909091rem}.ui-li.ui-li-static.ui-li-thumbnail-right{padding-right:2.3636363636363638rem}.ui-li-has-icon .ui-btn-inner a.ui-link-inherit,.ui-li-has-icon.ui-li-static{min-height:20px;padding-left:40px}.ui-li-has-icon .ui-li-text-sub{padding-left:40px}.ui-li-heading{font-size:16px;font-weight:700;display:block;margin:.6em 0;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li-thumb,.ui-li-icon{position:absolute;left:1px;top:0;max-height:3.272727272727273rem;max-width:3.272727272727273rem}.ui-listview * .ui-btn-inner>.ui-btn>.ui-btn-inner{border-top:0}.ui-li-sub,.ui-li-sub-setting{float:right;text-align:right;font-size:.7272727272727273rem;margin:.3em 0}.ui-li-text-sub{float:right;text-align:right;font-size:.7272727272727273rem;color:#808080;position:absolute;right:0;top:.9090909090909092rem;width:95%;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li-text-sub>img{position:relative;width:.7727272727272727rem;height:.7727272727272727rem;margin:0 .36363636363636365rem 0 .36363636363636365rem}.ui-li-text-sub2{float:right;text-align:right;font-size:.7272727272727273rem;color:#808080;position:absolute;right:0;top:.7272727272727273rem;width:60%;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li-text-sub2>img{width:.7727272727272727rem;height:.7727272727272727rem;margin:0 0 0 .36363636363636365rem}.ui-li-has-multiline .ui-li-text-sub{position:absolute;text-align:left;right:auto;left:0;top:1.590909090909091rem;margin-top:0;width:90%;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li-has-multiline.ui-li-has-right-btn .ui-btn-inner a .ui-li-text-sub{width:74%}.ui-li-has-multiline.ui-li-has-right-btn.ui-li-has-thumb .ui-btn-inner a .ui-li-text-sub{width:64%}.ui-li-has-multiline.ui-li-static.ui-li-has-right-btn .ui-li-text-sub{width:74%}.ui-li-has-multiline.ui-li-static.ui-li-has-right-btn.ui-li-has-thumb .ui-li-text-sub{width:64%}.ui-li-icon-sub-right,.ui-li-icon-sub{position:absolute;left:auto;width:.7727272727272727rem;height:.7727272727272727rem;margin:0 0}.ui-li-icon-sub-right{right:.36363636363636365rem}.ui-listview li.ui-li-dialogue{margin-left:.18181818181818182rem;margin-right:.18181818181818182rem;padding-left:.4545454545454546rem;padding-right:.4545454545454546rem;border-style:solid;border-color:#0c0f14;border-width:1px;border-top-width:0}.ui-listview li.ui-li-dialogue>.ui-btn-inner{margin-left:0;margin-right:0;border-bottom-width:0}.ui-listview li.ui-li-dialogue:first-child{border-top-width:1px;border-top-left-radius:3px;border-top-right-radius:3px}.ui-listview li.ui-li-dialogue:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.ui-listview li.ui-li-dialogue>img{margin-left:.2727272727272727rem}.ui-listview li.ui-li-dialogue [data-role="button"]:last-child{margin-right:.4545454545454546rem}.ui-listview li.ui-li-dialogue .ui-link-inherit>.ui-btn{margin-right:0}.ui-listview li.ui-li-dialogue.ui-li-static .ui-li-text-sub,.ui-listview li.ui-li-dialogue.ui-li-static .ui-toggle-switch{right:.4545454545454546rem}.ui-listview li.ui-li-dialogue.ui-li-static.ui-li-has-checkbox,.ui-listview li.ui-li-dialogue.ui-li-static.ui-li-has-radio{padding-left:1.6363636363636365rem}.ui-listview li.ui-li-dialogue.ui-li-static .ui-checkbox,.ui-listview li.ui-li-dialogue.ui-li-static .ui-radio{left:0}.ui-listview li.ui-li-dialogue.ui-li-has-multiline.ui-li-static .ui-li-text-sub{padding-left:.4545454545454546rem}.ui-listview li.ui-li-dialogue.ui-li-has-multiline.ui-li-static .ui-li-text-sub2{padding-right:.4545454545454546rem}.ui-listview li.ui-li-dialogue.ui-li-has-multiline.ui-li-static.ui-li-has-checkbox .ui-li-text-sub,.ui-listview li.ui-li-dialogue.ui-li-has-multiline.ui-li-static.ui-li-has-radio .ui-li-text-sub{padding-left:1.9090909090909092rem}.ui-listview li.ui-li-divider+.ui-li-dialogue{border-top-width:1px}.ui-listview>li.ui-li-dialogue.ui-body-s:not(.ui-li-expanded),.ui-listview>li.ui-li-dialogue.ui-btn-hover-up-s:not(.ui-btn-down-s):not(.ui-li-expanded),.ui-listview>li.ui-li-dialogue.ui-btn-up-s:not(.ui-li-expanded){background:#2a2d30}.ui-listview>li.ui-li-dialogue.ui-li-expanded{padding-left:1.1818181818181819rem;background:#dcdad3}.ui-listview>li.ui-li-dialogue.ui-li-divider{height:1.4545454545454546rem;padding:0}.ui-listview>li.ui-li-group-title{padding-top:1.4545454545454546rem}.ui-listview>li.ui-li-group-title span{padding-left:.7272727272727273rem}.ui-listview>li.ui-li-dialogue-divider{padding-top:.9090909090909092rem;padding-bottom:0rem;padding-left:.4545454545454546rem;margin-left:.18181818181818182rem;margin-right:.18181818181818182rem;background:#2a2d30;font-size:.7272727272727273rem;font-weight:700;color:#3b73b6}.ui-listview li.ui-li-dialogue-edit{padding-left:5.2727272727272725rem;padding-top:.5454545454545454rem;padding-bottom:.5454545454545454rem}.ui-listview li.ui-li-dialogue-edit .ui-edit-title{position:absolute;left:.4545454545454546rem;width:4.136363636363637rem;padding-right:.36363636363636365rem;display:inline-block;top:50%;margin-top:-.5909090909090909rem;border-right-color:#b9b8b2;border-right-width:1px;border-right-style:solid}.ui-listview li.ui-li-dialogue-edit input{font-size:1rem;background:transparent;outline-color:transparent;width:100%;padding-left:0;padding-right:0}.ui-listview>.ui-li.ui-li-dialogue-edit.ui-li-has-right-btn{padding-right:5rem}.ui-listview .ui-li-static.ui-li-bubble-receive,.ui-listview .ui-li-static.ui-li-bubble-left{color:#fff}.ui-listview .ui-li-static.ui-li-bubble-receive>.ui-li-bubble-time,.ui-listview .ui-li-static.ui-li-bubble-left>.ui-li-bubble-time{color:#d30000}.ui-listview .ui-li-static.ui-li-bubble-sent,.ui-listview .ui-li-static.ui-li-bubble-right{color:#000}.ui-listview .ui-li-static.ui-li-bubble-sent>.ui-li-bubble-time,.ui-listview .ui-li-static.ui-li-bubble-right>.ui-li-bubble-time{color:#39a6d7}.ui-listview .ui-li-static.ui-li-bubble-sos{color:#e94949}.ui-listview .ui-li-static.ui-li-bubble-sos>.ui-li-bubble-time{color:#d30000}.ui-listview .ui-li-static.ui-li-bubble-date{background-color:rgba(225,225,225,0);color:#686868;font-style:italic}.ui-listview span.ui-li-bubble-time{font-weight:700}.ui-listview .ui-li-bubble-receive,.ui-listview .ui-li-bubble-left,.ui-listview .ui-li-bubble-sent,.ui-listview .ui-li-bubble-right,.ui-listview .ui-li-bubble-sos{display:inline-block;background-clip:padding-box;max-width:100%;word-wrap:break-word;font-size:.8636363636363636rem}.ui-listview .ui-li-bubble-receive p,.ui-listview .ui-li-bubble-left p,.ui-listview .ui-li-bubble-sent p,.ui-listview .ui-li-bubble-right p,.ui-listview .ui-li-bubble-sos p,.ui-listview .ui-li-bubble-receive span,.ui-listview .ui-li-bubble-left span,.ui-listview .ui-li-bubble-sent span,.ui-listview .ui-li-bubble-right span,.ui-listview .ui-li-bubble-sos span{font-size:.8636363636363636rem}.ui-listview .ui-li-bubble-receive img,.ui-listview .ui-li-bubble-left img,.ui-listview .ui-li-bubble-sent img,.ui-listview .ui-li-bubble-right img,.ui-listview .ui-li-bubble-sos img{position:relative;min-width:7.272727272727273rem;min-height:7.272727272727273rem}.ui-listview .ui-li-bubble-receive,.ui-listview .ui-li-bubble-left{margin-left:0;margin-right:1.6rem;border-image-source:url(images/00_messagebubble_bg_receive.9.png);border-image-slice:57 14 21 48 fill;border-image-width:auto;padding:9px 14px 21px 48px}.ui-listview .ui-li-bubble-receive>.ui-li-bubble-time,.ui-listview .ui-li-bubble-left>.ui-li-bubble-time{position:absolute;display:inline-block;bottom:.36363636363636365rem;left:100%;font-size:.5rem}.ui-listview .ui-li-bubble-sent,.ui-listview .ui-li-bubble-right{margin-left:1.6rem;margin-right:0;border-image-source:url(images/00_messagebubble_bg_sent.9.png);border-image-slice:55 47 20 13 fill;border-image-width:auto;padding:9px 47px 20px 13px}.ui-listview .ui-li-bubble-sent>.ui-li-bubble-time,.ui-listview .ui-li-bubble-right>.ui-li-bubble-time{position:absolute;display:inline-block;bottom:.36363636363636365rem;right:100%;font-size:.5rem}.ui-listview .ui-li-bubble-date{float:left;width:100%;height:1.0909090909090908rem;background-image:url(images/00_messagebubble_date_bg.png);background-repeat:repeat-x;background-position:center center;font-size:.7272727272727273rem;margin:.9090909090909092rem .2727272727272727rem;border:0 none red;padding:0 0;padding-top:.5em;text-align:center}.ui-listview .ui-li-bubble-date *{display:inline-block;background-color:#202327;padding-left:.5em;padding-right:.5em}@-webkit-keyframes addliitem{from{ -webkit-transform:scale(0.5);-moz-transform:scale(0.5);opacity:0}to{-webkit-transform:scale(1);-moz-transform:scale(1);opacity:1}}.addli{-webkit-animation-name:addliitem;-moz-animation-name:addliitem;-webkit-animation-duration:.5s;-moz-animation-duration:.5s;-webkit-transition-timing-function:linear;-moz-transition-timing-function:linear}@-webkit-keyframes removeliitem{from{ -webkit-transform:scale(1);-moz-transform:scale(1);opacity:1}to{-webkit-transform:scale(0.5);-moz-transform:scale(0.5);opacity:0}}.removeli{-webkit-animation-name:removeliitem;-moz-animation-name:removeliitem;-webkit-animation-duration:.5s;-moz-animation-duration:.5s;-webkit-transition-timing-function:linear;-moz-transition-timing-function:linear}.ui-controlgroup .ui-radio>.ui-btn{background:#202327}.ui-controlgroup .ui-btn-text{font-size:.7727272727272727rem;font-weight:700;color:#c7c7c7}.ui-controlgroup .ui-btn-inner .ui-corner-left .ui-controlgroup-first{-o-border-radius:.3em;-ms-border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em}.ui-controlgroup .ui-btn-inner .ui-corner-right .ui-controlgroup-last{-o-border-radius:.3em;-ms-border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em}.ui-controlgroup .ui-radio-off.ui-btn-hover-s.ui-btn-down-s .ui-btn-inner,.ui-controlgroup .ui-radio-on .ui-btn-inner{color:#3b7796}.ui-controlgroup .ui-radio-off .ui-btn-inner{color:#c7c7c7}.ui-controlgroup.ui-controlgroup-horizontal .ui-radio .ui-btn-down-s .ui-btn-inner{background:-webkit-linear-gradient(top, #000 0, #202327 100%)}ul.ui-virtual-list-container>li.position_absolute{position:absolute}ul.ui-virtual-list-container>ul.position_absolute{position:absolute}.ui-scrollview-clip{position:relative}.ui-scrollview-view{overflow-x:hidden;overflow-y:visible}.ui-scrolllistview .ui-li-divider{z-index:10}.ui-scrollbar{position:absolute;overflow:hidden;opacity:0}.ui-scrollbar-visible{opacity:1}.ui-scrollbar-y{top:.09090909090909091rem;right:.09090909090909091rem;bottom:.09090909090909091rem;width:.36363636363636365rem}.ui-scrollbar-x{right:.09090909090909091rem;bottom:.09090909090909091rem;left:.09090909090909091rem;height:.36363636363636365rem}.ui-scrollbar-track{position:relative;width:100%;height:100%}.ui-scrollbar-thumb{position:absolute;top:0;left:0;background-color:#393b41}.ui-scrollbar-y .ui-scrollbar-thumb{width:.2272727272727273rem;height:100%;-o-border-radius:.09090909090909091rem;-ms-border-radius:.09090909090909091rem;-moz-border-radius:.09090909090909091rem;-webkit-border-radius:.09090909090909091rem;border-radius:.09090909090909091rem;-o-box-shadow:.045454545454545456rem .045454545454545456rem .09090909090909091rem #94928c;-ms-box-shadow:.045454545454545456rem .045454545454545456rem .09090909090909091rem #94928c;-moz-box-shadow:.045454545454545456rem .045454545454545456rem .09090909090909091rem #94928c;-webkit-box-shadow:.045454545454545456rem .045454545454545456rem .09090909090909091rem #94928c;box-shadow:.045454545454545456rem .045454545454545456rem .09090909090909091rem #94928c}.ui-scrollbar-x .ui-scrollbar-thumb{width:100%;height:.2272727272727273rem;-o-border-radius:.09090909090909091rem;-ms-border-radius:.09090909090909091rem;-moz-border-radius:.09090909090909091rem;-webkit-border-radius:.09090909090909091rem;border-radius:.09090909090909091rem}.ui-scroll-jump-top-bg{position:absolute;top:.4090909090909091rem;right:.5909090909090909rem;width:1.6818181818181819rem;height:1.6818181818181819rem}.ui-scroll-jump-left-bg{position:absolute;bottom:.4090909090909091rem;left:.5909090909090909rem;width:1.6818181818181819rem;height:1.6818181818181819rem}.ui-overflow-indicator-top{position:absolute;display:block;top:0;width:100%;height:.4545454545454546rem;opacity:0;background:-webkit-gradient(linear,left bottom,left top,color-stop(0, #bababa),color-stop(1, #202327))}.ui-overflow-indicator-bottom{position:absolute;display:block;bottom:0;width:100%;height:.4545454545454546rem;opacity:0;background:-webkit-gradient(linear,left bottom,left top,color-stop(0, #202327),color-stop(1, #bababa))}.ui-content.ui-scrollview-clip{padding:0}.ui-content.ui-scrollview-clip>div.ui-scrollview-view{margin:0;padding-left:.36363636363636365rem;padding-right:.36363636363636365rem}.ui-content.ui-scrollview-clip>.ui-listview.ui-scrollview-view{margin:0}@-webkit-keyframes ui-datetime-in{from{ -webkit-transform:translateY(0.6363636363636364rem) scale(0.9)}to{-webkit-transform:translateY(0) scale(1)}}@-webkit-keyframes ui-datetime-out{from{ opacity:.8;-webkit-transform:translateY(0) scale(0.6)}to{opacity:0;-webkit-transform:translateY(-.6363636363636364rem) scale(0.6)}}.ui-datefield .ui-datefield-seperator{display:inline-block;min-width:.4545454545454546rem;text-align:center}.ui-datefield .date,.ui-datefield .time,.ui-datefield .ui-datefield-tab{display:inline-block}.ui-datefield .ui-datefield-tab{min-width:.9090909090909092rem}.ui-datefield .ui-btn-box-s .ui-btn-inner.ui-btn-hastxt{padding:.1em .5em}.ui-datefield .ui-datefield-selected{display:inline-block;color:#3b73b6}.ui-datefield .ui-datefield-selected.in{-ms-animation:ui-datetime-in .3s 1 ease;-o-animation:ui-datetime-in .3s 1 ease;-moz-animation:ui-datetime-in .3s 1 ease;-webkit-animation:ui-datetime-in .3s 1 ease}.ui-datefield .ui-datefield-selected.out{-ms-animation:ui-datetime-out .3s 1 ease;-o-animation:ui-datetime-out .3s 1 ease;-moz-animation:ui-datetime-out .3s 1 ease;-webkit-animation:ui-datetime-out .3s 1 ease}.ui-datetime{margin:0;height:1.6363636363636365rem}.ui-datetime-text-main{position:relative;font-size:1rem;top:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;padding-top:.3em}.ui-datetime-text-main .ui-datefield-period.ui-btn{margin-top:-.3em;height:1.2727272727272727rem;right:auto;position:relative ! important}.ui-datetime-text-sub{top:.6818181818181819rem ! important;color:#70a9ee ! important;background:transparent ! important;font-size:.7272727272727273rem ! important}.ui-datetimepicker-selector ul{padding:0;display:inline;list-style:none;vertical-align:middle;margin:0}.ui-datetimepicker-selector ul li{font-size:1rem;float:left;padding:.6818181818181819rem .18181818181818182rem 0 .18181818181818182rem;max-width:5.454545454545455rem;min-width:2.7272727272727275rem}.ui-datetimepicker-selector ul li a.ui-link{text-decoration:none;color:rgba(255,255,255,.7)}.ui-datetimepicker-selector ul li a.ui-link:hover{color:rgba(255,255,255,.7)}.ui-datetimepicker-selector ul li.current a.ui-link{color:#fff}.ui-datetimepicker{left:0!important;padding:0}.ui-datetimepicker .ui-popupwindow-padding{background:#3b73b6!important;border-radius:0!important;-ms-border-radius:0!important;-o-border-radius:0!important;-moz-border-radius:0!important;-webkit-border-radius:0!important;box-shadow:0 0 12px rgba(0,0,0,.6)!important;border-width:0!important;text-align:center!important}.ui-datetimepicker .ui-popupwindow-padding div{height:2.409090909090909rem}.ui-popupwindow-screen{background:#000;opacity:0;position:absolute;top:0;left:0;width:100%;height:100%;z-index:1200}.ui-popupwindow{position:absolute;z-index:1201!important;color:#f8f6ef;background:#2a2d30}.ui-popupwindow .popup-title{width:100%;height:100%;font-size:1.0909090909090908rem;background:#5093b6}.ui-popupwindow .popup-title p{margin:0rem 0rem;padding:.5909090909090909rem 0rem}.ui-popupwindow .popup-text{width:100%;color:#f9f9f9;font-size:1.0909090909090908rem;background:#2a2d30}.ui-popupwindow .popup-text p{text-align:center;padding:1rem .7272727272727273rem}.ui-popupwindow .center_info{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center}.ui-popupwindow .center_title{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_basic_1btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_basic_1btn .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_basic_1btn .popup-button-bg .ui-btn{width:18.272727272727273rem;height:3.3636363636363638rem;margin:auto}.ui-popupwindow .center_basic_2btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_basic_2btn .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_basic_2btn .popup-button-bg .ui-btn{width:12.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_basic_3btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_basic_3btn .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_basic_3btn .popup-button-bg .ui-btn{width:8.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_title_1btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_title_1btn .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_title_1btn .popup-button-bg .ui-btn{width:18.272727272727273rem;height:3.3636363636363638rem;margin:auto}.ui-popupwindow .center_title_2btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_title_2btn .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_title_2btn .popup-button-bg .ui-btn{width:12.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_title_3btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_title_3btn .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_title_3btn .popup-button-bg .ui-btn{width:8.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_button_vertical{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_button_vertical .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:1px;padding-bottom:.7272727272727273rem;vertical-align:middle}.ui-popupwindow .center_button_vertical .popup-button-bg .ui-btn{width:16.181818181818183rem;height:3.3636363636363638rem;margin-top:.7272727272727273rem;margin-bottom:0rem;margin-left:auto;margin-right:auto}.ui-popupwindow .center_checkbox{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_checkbox .popup-check-bg{font-size:1.0909090909090908rem;background:#2a2d30;width:100%;padding-top:0rem;padding-bottom:1rem;vertical-align:middle}.ui-popupwindow .center_checkbox .popup-check-bg .ui-checkbox .ui-btn{text-align:center;background:#2a2d30;border:0rem}.ui-popupwindow .center_checkbox .popup-check-bg .ui-checkbox .ui-btn .ui-btn-inner{border:0rem}.ui-popupwindow .center_checkbox .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_checkbox .popup-button-bg .ui-btn{width:12.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_liststyle_1btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_liststyle_1btn .popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:23.272727272727273rem}.ui-popupwindow .center_liststyle_1btn .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_liststyle_1btn .popup-button-bg .ui-btn{width:18.272727272727273rem;height:3.3636363636363638rem;margin:auto}.ui-popupwindow .center_liststyle_2btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_liststyle_2btn .popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:23.272727272727273rem}.ui-popupwindow .center_liststyle_2btn .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_liststyle_2btn .popup-button-bg .ui-btn{width:12.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_liststyle_3btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_liststyle_3btn .popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:23.272727272727273rem}.ui-popupwindow .center_liststyle_3btn .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_liststyle_3btn .popup-button-bg .ui-btn{width:8.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_progressbar{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_progressbar .popup-text{font-size:1.1818181818181819rem;font-color:#999;background:#2a2d30;width:100%;height:3.181818181818182rem}.ui-popupwindow .center_progressbar .popup-text p{height:100%;text-align:center;padding:1rem .7272727272727273rem 0rem .7272727272727273rem}.ui-popupwindow .center_progressbar .popup-text-bottom-bg{font-size:1.1818181818181819rem;font-color:#999;background:#2a2d30;width:100%;vertical-align:middle}.ui-popupwindow .center_progressbar .popup-text-bottom-bg .text-left{width:40%;height:2.1818181818181817rem;padding:0rem .7272727272727273rem 0rem .7272727272727273rem;text-align:left;display:inline-block}.ui-popupwindow .center_progressbar .popup-text-bottom-bg .text-right{width:40%;height:2.1818181818181817rem;padding:0rem .7272727272727273rem 0rem .7272727272727273rem;text-align:right;display:inline-block}.ui-popupwindow .center_progressbar .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_progressbar .popup-button-bg .ui-btn{width:18.272727272727273rem;height:3.3636363636363638rem;margin:auto}.ui-popupwindow .center_progressbar .popup-progress-bg{background:#2a2d30;width:100%;height:100%}.ui-popupwindow .centertext_progressbar{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .centertext_progressbar .popup-text{font-size:1.1818181818181819rem;font-color:#999;background:#2a2d30;width:100%;padding-top:1rem;padding-bottom:.7272727272727273rem}.ui-popupwindow .centertext_progressbar .popup-text p{text-align:center}.ui-popupwindow .centertext_progressbar .popup-text-bottom-bg{font-size:1.1818181818181819rem;font-color:#999;background:#2a2d30;width:100%;vertical-align:middle}.ui-popupwindow .centertext_progressbar .popup-text-bottom-bg .text-left{width:40%;height:1.8181818181818183rem;padding:.7272727272727273rem .7272727272727273rem 1rem .7272727272727273rem;text-align:left;display:inline-block}.ui-popupwindow .centertext_progressbar .popup-text-bottom-bg .text-right{width:40%;height:1.8181818181818183rem;padding:.7272727272727273rem .7272727272727273rem 1rem .7272727272727273rem;text-align:right;display:inline-block}.ui-popupwindow .centertext_progressbar .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .centertext_progressbar .popup-button-bg .ui-btn{width:18.272727272727273rem;height:3.3636363636363638rem;margin:auto}.ui-popupwindow .centertext_progressbar .popup-progress-bg{background:#2a2d30;width:100%;height:100%}.ui-popupwindow .ui-btn.ui-btn-hover-s{background:#5e88a3}.ui-popupwindow .ui-btn.ui-btn-down-s{background:#43a0d9;background:-webkit-gradient(linear,left top,left bottom,from( #43a0d9),to( #388bb9));background:-moz-linear-gradient(top, #43a0d9, #388bb9);background:-ms-linear-gradient(top, #43a0d9, #388bb9);background:-o-linear-gradient(top, #43a0d9, #388bb9)}.ui-popupwindow>.ui-volumecontrol{display:table;margin:auto;background:rgba(0,0,0,.666667);width:18.90909090909091rem;height:30.727272727272727rem;padding-top:1rem}.ui-popupwindow>.ui-volumecontrol h1{font-size:1.0909090909090908rem;display:table;margin:auto;color:#c0c0c0}.ui-popupwindow>.ui-volumecontrol .ui-volumecontrol-icon{display:table;width:100%;height:5.818181818181818rem;padding-top:.9545454545454546rem;padding-bottom:.9545454545454546rem;padding-left:7.5rem;padding-right:7.5rem}.ui-popupwindow>.ui-volumecontrol .ui-volumecontrol-indicator{display:table;width:100%;height:19.09090909090909rem;padding-left:3.090909090909091rem;padding-right:3.090909090909091rem}.ui-popupwindow>.ui-volumecontrol .ui-corner-all{-o-border-radius:.3em!important;-ms-border-radius:.3em!important;-moz-border-radius:.3em!important;-webkit-border-radius:.3em!important;border-radius:.3em!important}.ui-popupwindow-corner-all{-o-border-radius:0!important;-ms-border-radius:0!important;-moz-border-radius:0!important;-webkit-border-radius:0!important;border-radius:0!important}.ui-ctxpopup{display:table}.ui-ctxpopup .ui-ctxpopup-row .ui-triangle-top{top:2px}.ui-ctxpopup .ui-ctxpopup-row .ui-triangle-left{left:2px}.ui-ctxpopup .ui-ctxpopup-row .ui-triangle-right{right:2px}.ui-ctxpopup .ui-ctxpopup-row .ui-triangle-bottom{bottom:2px}.ui-ctxpopup .ui-ctxpopup-row{display:table-row}.ui-ctxpopup .ui-ctxpopup-row .ui-ctxpopup-cell{display:table-cell}.ui-ctxpopup .ui-ctxpopup-row .ui-popupwindow-padding{background:#444;border:0;-ms-box-shadow:0rem 0rem .5454545454545454rem rgba(0,0,0,.6);-o-box-shadow:0rem 0rem .5454545454545454rem rgba(0,0,0,.6);-moz-box-shadow:0rem 0rem .5454545454545454rem rgba(0,0,0,.6);-webkit-box-shadow:0rem 0rem .5454545454545454rem rgba(0,0,0,.6);box-shadow:0rem 0rem .5454545454545454rem rgba(0,0,0,.6);-o-border-radius:.3em;-ms-border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em}.ui-ctxpopup .ui-listview li.ui-btn-up-s,.ui-ctxpopup .ui-listview li.ui-btn-hover-s{background:transparent}.ui-ctxpopup .ui-listview li:last-child{border-bottom-left-radius:.3em;border-bottom-right-radius:.3em}.ui-ctxpopup .ui-listview li:first-child{border-top-left-radius:.3em;border-top-right-radius:.3em}.ui-ctxpopup .ui-listview{max-width:28.181818181818183rem;border:0}.ui-ctxpopup .ui-listview>.ui-li{color:#fff;border-bottom-color:#2d2d2d;border-top-width:1px;border-top-color:#5b5b5b;margin-left:0;margin-right:0}.ui-ctxpopup .ui-listview>.ui-li:first-child,.ui-ctxpopup .ui-listview>.ui-li:last-child{border-top-width:0}.ui-ctxpopup .ui-listview>.ui-li .ui-btn-inner{margin:0;padding-left:.4545454545454546rem;padding-right:.4545454545454546rem}.ui-ctxpopup .ui-listview li.ui-btn-up-s>.ui-li>.ui-btn-text>a.ui-link-inherit,.ui-ctxpopup .ui-listview li.ui-btn-hover-s>.ui-li>.ui-btn-text>a.ui-link-inherit,.ui-ctxpopup .ui-listview li.ui-btn-down-s>.ui-li>.ui-btn-text>a.ui-link-inherit{color:#fff}.ui-ctxpopup .ui-listview>.ui-li:last-child{border:0}.ui-ctxpopup .horizontal{color:#fff}.ui-ctxpopup .horizontal .icon .ui-btn{padding:0;background:transparent ! important}.ui-ctxpopup .horizontal .icon .ui-btn .ui-btn-icon-only{width:4.363636363636363rem;height:2.909090909090909rem;padding:0}.ui-ctxpopup .horizontal .icon .ui-btn .ui-icon{top:0;height:inherit;width:inherit;margin:0;background-position:center;-ms-background-size:2.1818181818181817rem 2.1818181818181817rem;-moz-background-size:2.1818181818181817rem 2.1818181818181817rem;-o-background-size:2.1818181818181817rem 2.1818181818181817rem;-webkit-background-size:2.1818181818181817rem 2.1818181818181817rem;background-size:2.1818181818181817rem 2.1818181818181817rem}.ui-ctxpopup .horizontal .text{padding:0 .4545454545454546rem;min-width:2.1818181818181817rem}.ui-ctxpopup .horizontal a.ui-link{color:#fff;text-decoration:none}.ui-ctxpopup .horizontal ul{padding:0;display:inline-block;list-style:none;vertical-align:middle;margin:0}.ui-ctxpopup .horizontal li{line-height:1.4545454545454546rem;min-height:1.4545454545454546rem;min-width:2.1818181818181817rem;float:left;display:inline-block;border-right:1px solid #5b5b5b;text-align:center}.ui-ctxpopup .horizontal li:first-of-type{border-top-left-radius:.3em;border-bottom-left-radius:.3em;border-top-right-radius:0 ! important;border-left:0}.ui-ctxpopup .horizontal li:last-of-type{border-top-right-radius:.3em;border-bottom-right-radius:.3em;border-right:0;margin-right:0}.ui-ctxpopup .horizontal .ui-li:first-child,.ui-ctxpopup .horizontal .ui-li:last-child{border-left-width:0}.ui-ctxpopup .horizontal li:active,.ui-ctxpopup .horizontal td:active{background:#3b73b6}.ui-ctxpopup .button table .ui-btn{margin:0rem;padding:0;height:2.5454545454545454rem;width:6rem}.ui-arrow{border-style:solid;border-width:10px;width:0;height:0;position:absolute}.ui-arrow.top{border-color:transparent transparent #444 transparent}.ui-arrow.left{border-color:transparent transparent transparent #444}.ui-arrow.right{border-color:transparent #444 transparent transparent}.ui-arrow.bottom{border-color:#444 transparent transparent transparent}.ui-ctxpopup-container{z-index:1200;display:inline-bloack;position:absolute;padding:0;outline:0}.ui-ctxpopup-container .ui-popup{border:0;background:#444;-o-border-radius:.3em;-ms-border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em}.ui-ctxpopup-container .ui-listview li:first-child{border-top-left-radius:.3em;border-top-right-radius:.3em}.poptop{-webkit-transform-origin:0 0;-moz-transform-origin:0 0}.poptop.in{-webkit-transform:scale(1);-moz-transform:scale(1);opacity:1;-webkit-animation-name:scalepopin;-moz-animation-name:scalepopin;-webkit-animation-duration:350ms;-moz-animation-duration:350ms}.poptop.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;opacity:0;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.poptop.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein}.poptop.out.reverse{-webkit-transform:scale(0.8);-moz-transform:scale(0.8);-webkit-animation-name:scalepopout;-moz-animation-name:scalepopout}@-webkit-keyframes scalepopin{from{ -webkit-transform:scale(0.8);opacity:0}to{-webkit-transform:scale(1);opacity:1}}.popbottom{-webkit-transform-origin:0 100%;-moz-transform-origin:0 100%}.popbottom.in{-webkit-transform:scale(1);-moz-transform:scale(1);opacity:1;-webkit-animation-name:scalepopin;-moz-animation-name:scalepopin;-webkit-animation-duration:350ms;-moz-animation-duration:350ms}.popbottom.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;opacity:0;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.popbottom.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein}.popbottom.out.reverse{-webkit-transform:scale(0.8);-moz-transform:scale(0.8);-webkit-animation-name:scalepopout;-moz-animation-name:scalepopout}@-moz-keyframes scalepopin{from{ -moz-transform:scale(0.8);opacity:0}to{-moz-transform:scale(1);opacity:1}}@-webkit-keyframes scalepopout{from{ -webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(0.8);opacity:0}}@-moz-keyframes scalepopout{from{ -moz-transform:scale(1);opacity:1}to{-moz-transform:scale(0.8);opacity:0}}@-webkit-keyframes ui-scale-animation{from{ -webkit-transform:scaleX(0)}to{-webkit-transform:scaleX(1)}}.ui-progressbar-value{height:100%;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0, #3677c3),color-stop(1, #1d1f22));-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem;-o-box-shadow:-1px -1px 1px #b3c8e2;-ms-box-shadow:-1px -1px 1px #b3c8e2;-moz-box-shadow:-1px -1px 1px #b3c8e2;-webkit-box-shadow:-1px -1px 1px #b3c8e2;box-shadow:-1px -1px 1px #b3c8e2}.ui-progressbar-bg{position:relative;overflow:hidden;top:.2272727272727273rem;height:.3181818181818182rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem;border:1px;border-style:solid;border-color:#1d1f22;-o-box-shadow:1px -1px 1px #1d1f22;-ms-box-shadow:1px -1px 1px #1d1f22;-moz-box-shadow:1px -1px 1px #1d1f22;-webkit-box-shadow:1px -1px 1px #1d1f22;box-shadow:1px -1px 1px #1d1f22;background-color:#000}.ui-progressbar{position:relative;margin-top:.8181818181818182rem;margin-bottom:.8181818181818182rem;margin-left:.9545454545454546rem;margin-right:.9545454545454546rem;height:.8181818181818182rem;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0, #1d1f22),color-stop(1, #000));-o-box-shadow:1px 1px 0 #fff;-ms-box-shadow:1px 1px 0 #fff;-moz-box-shadow:1px 1px 0 #fff;-webkit-box-shadow:1px 1px 0 #fff;box-shadow:1px 1px 0 #fff;-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem}@-webkit-keyframes ui-rotate-animation{from{ -webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}.ui-progress-container-circle{position:absolute}.ui-li .ui-progress-container-circle{top:22%}.ui-progress-circle{position:relative;top:0;height:1.4545454545454546rem;width:1.4545454545454546rem;background:url(images/00_list_process_01.png) no-repeat;-ms-background-size:1.4545454545454546rem 1.4545454545454546rem;-moz-background-size:1.4545454545454546rem 1.4545454545454546rem;-o-background-size:1.4545454545454546rem 1.4545454545454546rem;-webkit-background-size:1.4545454545454546rem 1.4545454545454546rem;background-size:1.4545454545454546rem 1.4545454545454546rem}.ui-progress-circle-running{-webkit-animation:ui-rotate-animation 1s infinite linear}@-webkit-keyframes ui-move-animation{from{ -webkit-transform:translateY(-.6363636363636364rem)}to{-webkit-transform:translateY(0)}}.ui-progress-pending{position:relative;top:0;width:100%;height:.9545454545454546rem;padding-top:0;padding-bottom:0;background:-webkit-gradient(linear,left top,right bottom,color-stop(0%,rgba(0,0,0,0)),color-stop(25%,rgba(0,0,0,0)),color-stop(25%, #3677c3),color-stop(50%, #3677c3),color-stop(50%,rgba(0,0,0,0)),color-stop(75%,rgba(0,0,0,0)),color-stop(75%, #3677c3));background-color:#000;-ms-background-size:.6363636363636364rem .6363636363636364rem;-moz-background-size:.6363636363636364rem .6363636363636364rem;-o-background-size:.6363636363636364rem .6363636363636364rem;-webkit-background-size:.6363636363636364rem .6363636363636364rem;background-size:.6363636363636364rem .6363636363636364rem}.ui-progress-pending-running{-webkit-animation:ui-move-animation .5s infinite linear}label.ui-slider{display:block}select.ui-slider-switch{display:none}.ui-slider-container{position:relative;vertical-align:middle;height:.8181818181818182rem;margin-left:.7272727272727273rem;margin-right:.7272727272727273rem;margin-top:.8181818181818182rem;margin-bottom:.8181818181818182rem;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0, #1d1f22),color-stop(1, #000));-o-box-shadow:1px 1px 0 #fff;-ms-box-shadow:1px 1px 0 #fff;-moz-box-shadow:1px 1px 0 #fff;-webkit-box-shadow:1px 1px 0 #fff;box-shadow:1px 1px 0 #fff;-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem}.ui-li>.ui-slider-container{margin-top:0;margin-bottom:0}.ui-slider-left-volume,.ui-slider-left-bright{position:absolute;vertical-align:middle;top:-.5rem;left:-2.272727272727273rem;height:1.6818181818181819rem;width:1.6818181818181819rem;background:url(images/controls/00_slider_button_brightness_01.png) no-repeat;-ms-background-size:1.6818181818181819rem 1.6818181818181819rem;-moz-background-size:1.6818181818181819rem 1.6818181818181819rem;-o-background-size:1.6818181818181819rem 1.6818181818181819rem;-webkit-background-size:1.6818181818181819rem 1.6818181818181819rem;background-size:1.6818181818181819rem 1.6818181818181819rem}.ui-slider-left-volume{background:url(images/controls/00_slider_button_volume_01.png) no-repeat;-ms-background-size:1.6818181818181819rem 1.6818181818181819rem;-moz-background-size:1.6818181818181819rem 1.6818181818181819rem;-o-background-size:1.6818181818181819rem 1.6818181818181819rem;-webkit-background-size:1.6818181818181819rem 1.6818181818181819rem;background-size:1.6818181818181819rem 1.6818181818181819rem}.ui-slider-right-volume,.ui-slider-right-bright{position:absolute;top:-.5rem;right:-2.272727272727273rem;height:1.6818181818181819rem;width:1.6818181818181819rem;vertical-align:middle;background:url(images/controls/00_slider_button_brightness_02.png) no-repeat;-ms-background-size:1.6818181818181819rem 1.6818181818181819rem;-moz-background-size:1.6818181818181819rem 1.6818181818181819rem;-o-background-size:1.6818181818181819rem 1.6818181818181819rem;-webkit-background-size:1.6818181818181819rem 1.6818181818181819rem;background-size:1.6818181818181819rem 1.6818181818181819rem}.ui-slider-right-volume{background:url(images/controls/00_slider_button_volume_02.png) no-repeat;-ms-background-size:1.6818181818181819rem 1.6818181818181819rem;-moz-background-size:1.6818181818181819rem 1.6818181818181819rem;-o-background-size:1.6818181818181819rem 1.6818181818181819rem;-webkit-background-size:1.6818181818181819rem 1.6818181818181819rem;background-size:1.6818181818181819rem 1.6818181818181819rem}.ui-slider-left-text{position:absolute;top:-.5rem;height:1.6818181818181819rem;text-align:center;color:#bababa}.ui-slider-right-text{position:absolute;top:-.5rem;height:1.6818181818181819rem;text-align:center;color:#bababa}div.ui-slider:not(.ui-toggle-switch){position:relative;top:.2272727272727273rem;height:.3181818181818182rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem;border:1px;border-style:solid;border-color:#1d1f22;-o-box-shadow:1px 1px 0 #fff;-ms-box-shadow:1px 1px 0 #fff;-moz-box-shadow:1px 1px 0 #fff;-webkit-box-shadow:1px 1px 0 #fff;box-shadow:1px 1px 0 #fff;background-color:#000}div.ui-slider:not(.ui-toggle-switch) .ui-btn{top:-.75rem;margin-top:0}div.ui-slider:not(.ui-toggle-switch) .ui-btn-inner{padding:.3rem 0 0 0}div.ui-slider:not(.ui-toggle-switch) .ui-btn-text{color:#fff}a.ui-slider-handle{position:relative;z-index:10;width:1.6363636363636365rem;height:1.6363636363636365rem;margin-left:-.8636363636363636rem;color:#fff;font-size:.95rem;background:url(images/controls/00_slider_handle.png) no-repeat;-ms-background-size:1.6363636363636365rem 1.6363636363636365rem;-moz-background-size:1.6363636363636365rem 1.6363636363636365rem;-o-background-size:1.6363636363636365rem 1.6363636363636365rem;-webkit-background-size:1.6363636363636365rem 1.6363636363636365rem;background-size:1.6363636363636365rem 1.6363636363636365rem}.ui-slider-popup{position:absolute!important;z-index:1200;width:2.0454545454545454rem;height:2.4545454545454546rem;padding-top:.1rem;color:#f9f9f9;text-align:center;font-size:1.5rem;background:url(images/controls/00_slider_popup_bg.png) no-repeat;-ms-background-size:2.0454545454545454rem 2.4545454545454546rem;-moz-background-size:2.0454545454545454rem 2.4545454545454546rem;-o-background-size:2.0454545454545454rem 2.4545454545454546rem;-webkit-background-size:2.0454545454545454rem 2.4545454545454546rem;background-size:2.0454545454545454rem 2.4545454545454546rem}.ui-slider-bg{position:absolute;height:.3181818181818182rem;width:0;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0, #3677c3),color-stop(1, #1d1f22));-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem;-o-box-shadow:-1px -1px 1px #b3c8e2;-ms-box-shadow:-1px -1px 1px #b3c8e2;-moz-box-shadow:-1px -1px 1px #b3c8e2;-webkit-box-shadow:-1px -1px 1px #b3c8e2;box-shadow:-1px -1px 1px #b3c8e2}.ui-slider-handle-press{position:absolute;z-index:15;width:1.6818181818181819rem;height:1.6818181818181819rem;background:url(images/controls/00_slider_handle_press.png) no-repeat;-ms-background-size:1.6363636363636365rem 1.6363636363636365rem;-moz-background-size:1.6363636363636365rem 1.6363636363636365rem;-o-background-size:1.6363636363636365rem 1.6363636363636365rem;-webkit-background-size:1.6363636363636365rem 1.6363636363636365rem;background-size:1.6363636363636365rem 1.6363636363636365rem}.ui-gallery{position:relative;width:100%}.ui-gallery-bg{display:none;position:absolute;text-align:center;width:100%}@-webkit-keyframes ui-ticker-show{from{ opacity:0;-webkit-transform:translateY(-2.272727272727273rem);top:-2.272727272727273rem}to{opacity:1;-webkit-transform:translateY(0);top:0}}@-webkit-keyframes ui-ticker-hide{from{ opacity:1;-webkit-transform:translateY(0);top:0}to{opacity:0;-webkit-transform:translateY(-2.272727272727273rem);top:-2.272727272727273rem}}.ui-ticker{position:fixed;display:none;left:0;width:100%;height:2.272727272727273rem;z-index:2147483547;background:#444}.ui-ticker.fix{display:block;top:0}.ui-ticker.show{display:block;-ms-animation:ui-ticker-show .8s 1 ease;-o-animation:ui-ticker-show .8s 1 ease;-moz-animation:ui-ticker-show .8s 1 ease;-webkit-animation:ui-ticker-show .8s 1 ease;top:0}.ui-ticker.hide{display:block;-o-animation:ui-ticker-hide .8s 1 ease;-ms-animation:ui-ticker-hide .8s 1 ease;-webkit-animation:ui-ticker-hide .8s 1 ease;top:-2.272727272727273rem}.ui-ticker-btn{position:relative;margin-top:.4545454545454546rem;margin-left:.36363636363636365rem;margin-right:.36363636363636365rem;vertical-align:middle;float:right}.ui-ticker-btn .ui-btn-inner{padding:.15rem 0 0 0;height:1.2727272727272727rem;width:3.5rem;font-size:.81rem;color:#fff;background:#404040;border:1px;border-color:#323232;box-shadow:0 0 1px 1px #323232}.ui-ticker-btn .ui-btn-box-s.ui-btn-up-s{background:#404040;box-shadow:0 0 1px 1px #323232;border-color:#323232}.ui-ticker-btn .ui-btn-box-s.ui-btn-hover-s{background:#404040;box-shadow:0 0 1px 1px #323232;border-color:#323232}.ui-ticker-icon{position:absolute;top:0;height:1.4545454545454546rem;width:1.4545454545454546rem;margin-top:.4090909090909091rem;margin-bottom:.4090909090909091rem;margin-left:.36363636363636365rem;margin-right:.36363636363636365rem;vertical-align:middle}.ui-ticker-text1-bg{position:absolute;top:0;height:.8181818181818182rem;left:2.1818181818181817rem;margin-top:.36363636363636365rem;font-size:.68rem;color:#fff}.ui-ticker-text2-bg{position:absolute;top:0;height:.7272727272727273rem;left:2.1818181818181817rem;margin-top:1.1818181818181819rem;font-size:.54rem;color:#fff}@-webkit-keyframes ui-smallpopup-show{from{ opacity:0;-webkit-transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1)}}@-webkit-keyframes ui-smallpopup-hide{from{ opacity:1;left:0;-webkit-transform:scaleY(1)}to{opacity:0;left:0;-webkit-transform:scaleY(0)}}.ui-smallpopup{position:fixed;display:none;left:0;width:100%;z-index:1100;background:#444;vertical-align:middle;font-size:.72rem;word-break:break-all}.ui-smallpopup.fix{display:block}.ui-smallpopup.show{display:block;-moz-animation:ui-smallpopup-show .5s 1 ease;-ms-animation:ui-smallpopup-show .5s 1 ease;-o-animation:ui-smallpopup-show .5s 1 ease;-webkit-animation:ui-smallpopup-show .5s 1 ease}.ui-smallpopup.hide{display:block;left:-100%;-moz-animation:ui-smallpopup-hide .5s 1 ease;-ms-animation:ui-smallpopup-hide .5s 1 ease;-o-animation:ui-smallpopup-hide .5s 1 ease;-webkit-animation:ui-smallpopup-hide .5s 1 ease}.ui-smallpopup-text-bg{position:relative;margin-top:.18181818181818182rem;margin-bottom:.18181818181818182rem;margin-left:.36363636363636365rem;margin-right:.36363636363636365rem;color:#fff}.ui-swipe{list-style-type:none;overflow:hidden}.ui-swipe-item{height:1.1818181818181819rem;-ms-user-select:none;-o-user-select:none;-moz-user-select:none;-webkit-user-select:none;-user-select:none;opacity:0;text-align:center}.ui-swipe-item .ui-btn{margin-top:-1.5em ! important;position:relative ! important}.ui-swipe-item p{margin:0}.ui-swipe-item-cover{position:absolute;border:0;top:0;left:0;width:100%;height:100%;z-index:100}.ui-swipe-item-cover .ui-swipe-item-cover-inner{position:absolute;padding-top:.6818181818181819rem;padding-bottom:.6818181818181819rem;padding-left:.36363636363636365rem;width:100%;text-align:left}.ui-swipe-item-cover .ui-swipe-item-cover-inner .ui-li-text-sub{position:absolute;padding-right:.7272727272727273rem}.ui-swipe-item-cover p{margin:0}.ui-fastscroll{position:absolute;right:0rem;background-color:#21344a;width:1.1363636363636365rem;-ms-user-select:none;-o-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none;margin:0;padding-right:.08em;opacity:1}.ui-fastscroll ul{list-style-type:none;margin:0;padding:0}.ui-fastscroll li{cursor:pointer;color:#d7d7d7;padding:.09090909090909091rem .09090909090909091rem .09090909090909091rem .09090909090909091rem;text-align:center;vertical-align:middle;font-size:.7272727272727273rem;font-weight:700;border-left-width:.13636363636363635rem;border-left-color:#3b73b6;border-left-style:solid;border-top-width:.13636363636363635rem;border-top-color:#21344a}.ui-fastscroll2{position:absolute;right:0rem;-ms-user-select:none;-o-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none;margin:0;padding-right:.08em;opacity:1}.ui-fastscroll2 ul{list-style-type:none;margin:0;padding:0}.ui-fastscroll2 li{cursor:pointer;color:#d7d7d7;padding:.09090909090909091rem .09090909090909091rem .09090909090909091rem .09090909090909091rem;text-align:right}.ui-fastscroll-bg{position:absolute;right:0rem;background-color:#21344a;width:1.1363636363636365rem;z-index:10;top:0}.ui-fastscroll-popup{position:absolute;background:#3b73b6;color:#fff;padding:.4545454545454546rem 1.3636363636363638rem;-ms-box-shadow:.36363636363636365rem .4545454545454546rem 0rem rgba(199,199,199,.5);-o-box-shadow:.36363636363636365rem .4545454545454546rem 0rem rgba(199,199,199,.5);-moz-box-shadow:.36363636363636365rem .4545454545454546rem 0rem rgba(199,199,199,.5);-webkit-box-shadow:.36363636363636365rem .4545454545454546rem 0rem rgba(199,199,199,.5);box-shadow:.36363636363636365rem .4545454545454546rem 0rem rgba(199,199,199,.5);text-align:center;font-size:3.409090909090909rem;font-weight:700;display:none;box-sizing:border-box;left:50%;top:50%}li.ui-fastscroll-hover{color:#3b73b6}li.ui-fastscroll-hover,li.ui-fastscroll-hover-up,li.ui-fastscroll-hover-down{background:#202327;border-style:solid;border-color:#3b73b6;border-width:0;border-right-width:.13636363636363635rem;border-left-width:1px;border-left-color:#202327}li.ui-fastscroll-hover{padding-top:.045454545454545456rem;padding-bottom:.045454545454545456rem}li.ui-fastscroll-hover-first-item{padding-top:.09090909090909091rem}li.ui-fastscroll-hover-up{border-top-width:.13636363636363635rem;padding-top:0}li.ui-fastscroll-hover-down{border-bottom-width:.13636363636363635rem;padding-bottom:0}div.ui-slider.ui-toggle-switch{width:3rem;height:1.590909090909091rem;background-color:transparent;margin-top:.2272727272727273rem;margin-bottom:.2272727272727273rem}div.ui-slider.ui-toggle-switch .ui-slider-label{position:absolute;width:3rem;height:1.590909090909091rem;background-size:100% 100%;background-repeat:no-repeat;background-color:transparent}div.ui-slider.ui-toggle-switch .ui-slider-label.ui-slider-label-a{background-image:url(images/00_button_on.png)}div.ui-slider.ui-toggle-switch .ui-slider-label.ui-slider-label-b{background-image:url(images/00_button_off.png)}div.ui-slider.ui-toggle-switch .ui-slider-inneroffset a{background:0}.ui-slider-switch:not(.ui-toggle-switch){width:4.181818181818182rem}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch){position:relative;margin-top:.2272727272727273rem;margin-bottom:.2272727272727273rem;height:1.4545454545454546rem;top:0;margin:.2272727272727273rem;border-radius:.6818181818181819rem}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) .ui-slider-inneroffset{position:relative;margin:-1px .7272727272727273rem;z-index:1}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) a.ui-slider-handle{position:absolute;background:#fff;background-image:-webkit-gradient(radial,50% 50%,0,50% 50%,50,from( #f9f9f9),to( #323232));-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);top:50%;margin:1px 0 0 -.6818181818181819rem;border-radius:.6818181818181819rem;border:2px solid gray;width:1.2727272727272727rem;height:1.2727272727272727rem}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) a.ui-slider-handle-snapping{-webkit-transition:left 70ms linear}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) span{position:absolute;overflow:hidden;text-align:center;height:1.4545454545454546rem;font-weight:700;font-size:.7272727272727273rem;border-radius:.6818181818181819rem;white-space:nowrap;line-height:2}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) span.ui-slider-label-a{left:0;color:#fff;z-index:1;text-indent:-1.5em}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) span.ui-slider-label-b{right:0;color:#fff;z-index:0;text-indent:1.5em}.ui-slider-switch .ui-slider-handle .ui-btn-inner{padding:0}.ui-triangle-container{position:relative}.ui-triangle-container .ui-triangle{position:absolute;border-style:solid;border-color:transparent;border-width:10px}.ui-triangle-container .ui-triangle-top{top:0;border-top-width:0;border-left-color:transparent;border-right-color:transparent;margin-left:-10px}.ui-triangle-container .ui-triangle-bottom{bottom:0;border-bottom-width:0;border-left-color:transparent;border-right-color:transparent;margin-left:-10px}.ui-triangle-container .ui-triangle-left{left:0;margin-top:-10px;border-left-width:0;border-left-color:transparent;border-right-color:transparent}.ui-triangle-container .ui-triangle-right{right:0;margin-top:-10px;border-right-width:0;border-left-color:transparent;border-right-color:transparent}.ui-triangle-container-top{height:10px;top:0;margin-top:-10px}.ui-triangle-container-bottom{height:10px;bottom:0;margin-bottom:-10px}.ui-triangle-container-left{width:10px}.ui-triangle-container-right{width:10px}.ui-tokentextarea{display:table;outline:0;position:relative}.ui-tokentextarea .ui-tokentextarea-label{display:inline-block;position:relative;margin-left:5px;margin-right:5px;padding:10px 0;color:#808080;font-weight:700;text-align:center;font-size:1em}.ui-tokentextarea-input{outline:0;position:relative;border:0!important;padding:0!important;margin:8px;color:#222;text-align:left;font-size:1em}.ui-tokentextarea-input-visible{display:inline-block!important}.ui-tokentextarea-input-invisible{display:none!important}.ui-tokentextarea div{display:inline-block;text-align:center;cursor:pointer;position:relative;margin-left:5px;margin-right:5px;margin-bottom:5px;margin-top:5px;padding:3px 8px;font-size:1em;text-shadow:0 .1em .1em rgba(0,0,0,.3);-ms-border-radius:.2em;-o-border-radius:.2em;-webkit-border-radius:.2em;-moz-border-radius:.2em;border-radius:.2em;-o-box-shadow:0 .1em .1em rgba(0,0,0,.2);-ms-box-shadow:0 .1em .1em rgba(0,0,0,.2);-moz-box-shadow:0 .1em .1em rgba(0,0,0,.2);-webkit-box-shadow:0 .1em .1em rgba(0,0,0,.2);box-shadow:0 .1em .1em rgba(0,0,0,.2);color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}div.ui-tokentextarea-block{background-color:#5f8abd;background-image:url(./images/00_contacts_button_header.png);background-size:contain;background-repeat:no-repeat;padding-left:11px}div.ui-tokentextarea-sblock{background-color:#365984;background-image:url(./images/00_contacts_button_header_press.png);background-size:contain;background-repeat:no-repeat;padding-left:11px}.ui-tokentextarea .ui-tokentextarea-desclabel{display:inline-block;outline:0;position:relative;border:0;color:#808080;text-align:left;font-size:1em}.ui-tokentextarea-link-base{position:absolute;right:0;bottom:.2em}.ui-handler{position:absolute;overflow:hidden;opacity:0}.ui-handler-visible{opacity:1}.ui-handler-direction-y{top:.2272727272727273rem;right:.2272727272727273rem;bottom:.2272727272727273rem;width:1.0909090909090908rem}.ui-handler-direction-x{right:.2272727272727273rem;bottom:.2272727272727273rem;left:.2272727272727273rem;height:1.0909090909090908rem}.ui-handler-track{position:relative;width:100%;height:100%}.ui-handler-thumb{position:absolute;top:0;left:0;background-position:center;background-repeat:no-repeat;-o-border-radius:.11363636363636365rem;-ms-border-radius:.11363636363636365rem;-moz-border-radius:.11363636363636365rem;-webkit-border-radius:.11363636363636365rem;border-radius:.11363636363636365rem}.ui-handler-direction-y .ui-handler-thumb{width:1.0909090909090908rem;height:4.863636363636364rem;background-size:1.0909090909090908rem .9090909090909092rem}.ui-handler-direction-x .ui-handler-thumb{width:4.863636363636364rem;height:1.0909090909090908rem;background-size:.9090909090909092rem 1.0909090909090908rem}.ui-handler-s .ui-handler-thumb{background-color:rgba(150,150,150,.5)}.ui-handler-s .ui-handler-direction-y .ui-handler-thumb{background-image:url("images/00_scroll_bar_handler.png")}.ui-handler-s .ui-handler-direction-x .ui-handler-thumb{background-image:url("images/00_scroll_bar_handler_hor.png")}.ui-virtualgrid{overflow:hidden;position:absolute}.ui-virtualgrid-wrapblock{position:absolute;left:0}.ui-virtualgrid-wrapblock-x{float:left;overflow:hidden}.ui-scrollbar-thumb-x{width:1.5rem!important}.ui-scrollbar-thumb-y{height:1.5rem!important}.ui-virtualgrid-overflow-indicator-x-top{position:absolute;display:block;left:0;top:0;width:.4545454545454546rem;height:100%;opacity:0;background:-webkit-gradient(linear,right top,left top,color-stop(0,rgba(128,128,128,0)),color-stop(1, #808080));pointer-events:none}.ui-virtualgrid-overflow-indicator-x-bottom{position:absolute;display:block;right:0;bottom:0;width:.4545454545454546rem;height:100%;opacity:0;background:-webkit-gradient(linear,right top,left top,color-stop(0, #808080),color-stop(1,rgba(128,128,128,0)));pointer-events:none}.ui-virtualgrid-overflow-indicator-y-top{position:absolute;display:block;top:0;width:100%;height:.4545454545454546rem;opacity:0;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,rgba(128,128,128,0)),color-stop(1, #808080));pointer-events:none}.ui-virtualgrid-overflow-indicator-y-bottom{position:absolute;display:block;bottom:0;width:100%;height:.4545454545454546rem;opacity:0;background:-webkit-gradient(linear,left bottom,left top,color-stop(0, #808080),color-stop(1,rgba(128,128,128,0)));pointer-events:none}.ui-content.ui-virtualgrid-content{padding:0}.ui-multimediaview{background-color:#f9f9f9;overflow:hidden}.ui-multimediaview-wrap{width:100%;padding:0;position:relative;overflow:hidden}.ui-multimediaview-siblings-off{display:none!important}.ui-multimediaview-control span{display:inline-block}.ui-multimediaview-video{position:absolute}.ui-multimediaview-control{display:block;z-index:1002;padding:0;margin:0;outline:0;border:0;height:1.9090909090909092rem;text-align:left;overflow:hidden}.ui-multimediaview-control span.ui-button{background-position:center center;background-size:80%;background-repeat:no-repeat;width:1.6818181818181819rem;height:1.6818181818181819rem;margin:.09090909090909091rem}.ui-multimediaview-control .ui-playpausebutton{float:left}.ui-multimediaview-control .ui-timestamplabel{text-align:center;float:left}.ui-multimediaview-control .ui-timestamplabel p{margin-top:-.22272727272727275rem;margin-left:.09090909090909091rem;padding:0;text-align:center;font-size:.5rem;line-height:.6363636363636364rem;text-align:left}.ui-multimediaview-control .ui-durationlabel{text-align:center;float:right}.ui-multimediaview-control .ui-durationlabel p{margin-top:-.22272727272727275rem;margin-right:.09090909090909091rem;padding:0;text-align:center;font-size:.5rem;line-height:.6363636363636364rem;text-align:right}.ui-multimediaview-bar{margin-top:.22272727272727275rem;float:left}.ui-multimediaview-bar-bg{height:.36363636363636365rem;border-radius:1.5em}.ui-multimediaview-bar-highlight{height:.36363636363636365rem;position:absolute;border-radius:1.5em}.ui-multimediaview-control .ui-seekbar{margin-left:.09090909090909091rem}.ui-multimediaview-control .ui-seekbar .ui-duration{width:100%}.ui-multimediaview-control .ui-volumecontrol{width:5rem;height:100%;float:left}.ui-multimediaview-control .ui-volumecontrol .ui-volumebar{margin-left:.6818181818181819rem}.ui-multimediaview-control .ui-volumecontrol .ui-volumebar .ui-guide{width:3.8636363636363638rem}.ui-multimediaview-control .ui-volumecontrol .ui-volumebar .ui-handle{margin:0;padding:0;width:.6818181818181819rem;height:.6818181818181819rem;border-style:solid;border-width:1px;border-radius:1.5em}.ui-fullscreen-parents{padding:0!important;margin:0!important;width:100%!important;height:100%!important;overflow:hidden}.ui-multimediaview-s .ui-multimediaview-video{background-color:rgba(248,246,239,.5)}.ui-multimediaview-s .ui-timestamplabel{color:#4a84c9}.ui-multimediaview-s .ui-durationlabel{color:#808080}.ui-multimediaview-s span.ui-button{background-color:#f8f6ef}.ui-multimediaview-s span.ui-play-icon{background-image:url(./images/00_button_play.png)}.ui-multimediaview-s span.ui-pause-icon{background-image:url(./images/00_button_pause.png)}.ui-multimediaview-s span.ui-volume-icon{background-image:url(./images/controls/00_slider_button_volume_02.png)}.ui-multimediaview-s span.ui-mute-icon{background-image:url(./images/controls/00_slider_button_volume_01.png)}.ui-multimediaview-s span.ui-fullscreen-on{background-image:url(./images/00_button_fullscreen_on.png)}.ui-multimediaview-s span.ui-fullscreen-off{background-image:url(./images/00_button_fullscreen_off.png)}.ui-multimediaview-s .ui-seekbar .ui-duration{background-color:#cbc8c5}.ui-multimediaview-s .ui-seekbar .ui-currenttime{background-color:#4a84c9;background-image:-webkit-gradient(linear,left top,left bottom,from( #6289d9),to( #295b98));background-image:-moz-linear-gradient(top, #6289d9, #295b98);background-image:-o-linear-gradient(top, #6289d9, #295b98);background-image:-ms-linear-gradient(top, #6289d9, #295b98)}.ui-multimediaview-s .ui-volumebar .ui-guide{background-color:#cbc8c5}.ui-multimediaview-s .ui-volumebar .ui-value{background-color:#4a84c9;background-image:-webkit-gradient(linear,left top,left bottom,from( #6289d9),to( #295b98));background-image:-moz-linear-gradient(top, #6289d9, #295b98);background-image:-o-linear-gradient(top, #6289d9, #295b98);background-image:-ms-linear-gradient(top, #6289d9, #295b98)}.ui-multimediaview-s .ui-volumebar .ui-handle{background-color:#f9f9f9;background-image:-webkit-gradient(linear,left top,left bottom,from( #fff),to( #e6e6e6));background-image:-moz-linear-gradient(top, #fff, #e6e6e6);background-image:-o-linear-gradient(top, #fff, #e6e6e6);background-image:-ms-linear-gradient(top, #fff, #e6e6e6);border-color:#bab9b4}.ui-popup-screen{top:0;left:0;width:100%;height:100%;border:0;position:absolute;filter:Alpha(Opacity=50);opacity:0}.ui-popup-screen-background-hack{background-color:#000;filter:Alpha(Opacity=0)}@-webkit-keyframes popup-fadein{from{ opacity:0}to{opacity:.5}}@-moz-keyframes popup-fadein{from{ opacity:0}to{opacity:.5}}@-webkit-keyframes popup-fadeout{from{ opacity:.5}to{opacity:0}}@-moz-keyframes popup-fadeout{from{ opacity:.5}to{opacity:0}}.ui-popup-screen.fade.in{opacity:.5;-webkit-animation-name:popup-fadein;-moz-animation-name:popup-fadein}.ui-popup-screen.fade.out{opacity:0;-webkit-animation-name:popup-fadeout;-moz-animation-name:popup-fadeout}.ui-popup.ui-content,.ui-popup .ui-content{overflow:visible}.ui-popup>img{width:auto;height:auto;max-width:100%;max-height:100%;vertical-align:middle}.ui-popup iframe{vertical-align:middle}@media all and (min-width: 450px){.ui-popup .ui-field-contain label.ui-submit,.ui-popup .ui-field-contain .ui-controlgroup-label,.ui-popup .ui-field-contain label.ui-select,.ui-popup .ui-field-contain label.ui-input-text{ font-size:16px;line-height:1.4;display:block;font-weight:400;margin:0 0 .3em}.ui-popup .ui-field-contain .ui-btn.ui-submit,.ui-popup .ui-field-contain .ui-controlgroup-controls,.ui-popup .ui-field-contain .ui-select,.ui-popup .ui-field-contain input.ui-input-text,.ui-popup .ui-field-contain textarea.ui-input-text,.ui-popup .ui-field-contain .ui-input-search{width:100%;display:block}}.ui-popup>.ui-btn-left,.ui-popup>.ui-btn-right{position:absolute;top:-9px;margin:0;z-index:1101}.ui-popup>.ui-btn-left{left:-9px}.ui-popup>.ui-btn-right{right:-9px}.ui-popup-screen{background:#000;opacity:0;position:absolute;top:0;left:0;width:100%;height:100%;z-index:1200}.ui-overlay-dim{opacity:.7}.ui-popup-scroller-bg{width:100%}.ui-popup-container{position:absolute;width:86.12%;z-index:1201!important;background:#2a2d30;text-align:center;outline-color:#202327;display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center}.ui-popup-container .ui-popup{padding:3px 2px 2px 2px;background:#2a2d30;width:100%;word-wrap:break-word}.ui-popup-container .ui-popup>.ui-popup-title,.ui-popup-container .ui-popup>.ui-popup-text,.ui-popup-container .ui-popup>.ui-popup-button-bg{width:100%}.ui-popup-container .ui-popup-title{width:100%;height:1.8181818181818183rem;text-align:left;color:#70a9ee;font-size:1.0909090909090908rem;font-weight:700}.ui-popup-container .ui-popup-title h1{font-size:1.0909090909090908rem;font-weight:700;color:#70a9ee;margin:0;padding-top:.4545454545454546rem;padding-left:.7272727272727273rem}.ui-popup-container .ui-popup-text{margin-top:1rem;margin-bottom:1rem;color:#f9f9f9;font-size:.9090909090909092rem;background:#2a2d30;text-align:center}.ui-popup-container .ui-popup-text .ui-li .ui-radio label,.ui-popup-container .ui-popup-text .ui-li .ui-checkbox label{background:transparent}.ui-popup-container .ui-popup-text input{display:inline-block}.ui-popup-container .ui-popup-button-bg{font-size:1.4545454545454546rem;height:1.6818181818181819rem;padding-top:.4545454545454546rem;padding-bottom:.4545454545454546rem;width:100%;vertical-align:middle}.ui-popup-container .ui-popup-button-bg>.ui-btn{display:inline-block;margin:auto;height:1.6818181818181819rem}.ui-popup-container .ui-popup-button-bg .ui-btn-inner{padding-top:.2272727272727273rem;padding-bottom:.2272727272727273rem;padding-left:.9090909090909092rem;padding-right:.9090909090909092rem}.ui-popup-container .center_basic_3btn .ui-btn,.ui-popup-container .center_title_3btn .ui-btn{max-width:3.6363636363636367rem;height:1.6818181818181819rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popup-container .center_button_vertical .ui-popup-button-bg{display:block;height:auto}.ui-popup-container .center_button_vertical .ui-popup-button-bg>.ui-btn{display:block;width:9.090909090909092rem}.ui-popup-container .center_checkbox .ui-popup-check-bg{font-size:.9090909090909092rem;background:#2a2d30;width:100%;padding-top:0rem;padding-bottom:1rem;vertical-align:middle}.ui-popup-container .center_checkbox .ui-popup-check-bg .ui-checkbox .ui-btn{text-align:center;background:#2a2d30;border:0rem}.ui-popup-container .center_checkbox .ui-popup-check-bg .ui-checkbox .ui-btn .ui-btn-inner{border:0rem}.ui-popup-container .center_checkbox .ui-popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_checkbox .ui-popup-button-bg .ui-btn{width:5rem;height:1.6818181818181819rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popup-container .center_liststyle_1btn .ui-popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:11.636363636363637rem}.ui-popup-container .center_liststyle_1btn .ui-popup-button-bg{padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_liststyle_2btn .ui-popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:11.636363636363637rem}.ui-popup-container .center_liststyle_2btn .ui-popup-button-bg{padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_liststyle_2btn .ui-popup-button-bg .ui-btn{width:5rem;height:1.6818181818181819rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popup-container .center_liststyle_2btn .ui-popup-button-bg .ui-btn .ui-btn-inner{padding-top:.2272727272727273rem;padding-bottom:.2272727272727273rem;padding-left:.9090909090909092rem;padding-right:.9090909090909092rem}.ui-popup-container .center_title_2btn .ui-popup-button-bg{padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_title_2btn .ui-popup-button-bg .ui-btn{width:5.454545454545455rem;height:1.6818181818181819rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popup-container .center_title_2btn .ui-popup-button-bg .ui-btn .ui-btn-inner{padding-top:.2272727272727273rem;padding-bottom:.2272727272727273rem;padding-left:.9090909090909092rem;padding-right:.9090909090909092rem}.ui-popup-container .center_liststyle_3btn .ui-popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:11.636363636363637rem}.ui-popup-container .center_liststyle_3btn .ui-popup-button-bg{padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_liststyle_3btn .ui-popup-button-bg .ui-btn{max-width:3.6363636363636367rem;height:1.6818181818181819rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popup-container .center_progressbar{text-align:center}.ui-popup-container .center_progressbar .ui-popup-text{font-size:1.1818181818181819rem;font-color:#999;background:#2a2d30;width:100%;height:3.181818181818182rem}.ui-popup-container .center_progressbar .ui-popup-text p{height:100%;text-align:center;padding:1rem .7272727272727273rem 0rem .7272727272727273rem}.ui-popup-container .center_progressbar .ui-popup-text-bottom-bg{font-size:1.1818181818181819rem;font-color:#999;background:#2a2d30;width:100%;vertical-align:middle}.ui-popup-container .center_progressbar .ui-popup-text-bottom-bg .text-left{width:40%;height:2.1818181818181817rem;padding:0rem .7272727272727273rem 0rem .7272727272727273rem;text-align:left;display:inline-block}.ui-popup-container .center_progressbar .ui-popup-text-bottom-bg .text-right{width:40%;height:2.1818181818181817rem;padding:0rem .7272727272727273rem 0rem .7272727272727273rem;text-align:right;display:inline-block}.ui-popup-container .center_progressbar .ui-popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_progressbar .ui-popup-button-bg .ui-btn{width:9.136363636363637rem;height:1.6818181818181819rem;margin:auto}.ui-popup-container .center_progressbar .ui-popup-progress-bg{background:#2a2d30;width:100%;height:100%}.ui-popup-container .centertext_progressbar{text-align:center}.ui-popup-container .centertext_progressbar .ui-popup-text{font-size:1.1818181818181819rem;font-color:#999;background:#2a2d30;width:100%;padding-top:1rem;padding-bottom:.7272727272727273rem}.ui-popup-container .centertext_progressbar .ui-popup-text p{text-align:center}.ui-popup-container .centertext_progressbar .ui-popup-text-bottom-bg{font-size:1.1818181818181819rem;font-color:#999;background:#2a2d30;width:100%;vertical-align:middle}.ui-popup-container .centertext_progressbar .ui-popup-text-bottom-bg .text-left{width:40%;height:1.8181818181818183rem;padding:.7272727272727273rem .7272727272727273rem 1rem .7272727272727273rem;text-align:left;display:inline-block}.ui-popup-container .centertext_progressbar .ui-popup-text-bottom-bg .text-right{width:40%;height:1.8181818181818183rem;padding:.7272727272727273rem .7272727272727273rem 1rem .7272727272727273rem;text-align:right;display:inline-block}.ui-popup-container .centertext_progressbar .ui-popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .centertext_progressbar .ui-popup-button-bg .ui-btn{width:18.272727272727273rem;height:1.6818181818181819rem;margin:auto}.ui-popup-container .centertext_progressbar .ui-popup-progress-bg{background:#2a2d30;width:100%;height:100%}.ui-text-ellipsis{white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-tabbar{background:#202327;z-index:1000}.ui-tabbar a.ui-btn{background:#202327;color:#bababa;padding-top:.8636363636363636rem;padding-bottom:.8636363636363636rem}.ui-tabbar a.ui-btn .ui-btn-inner{padding-top:0;padding-bottom:0;border-left:2px solid;border-color:#3b3e40;border-radius:0;-0-border-radius:0;-ms-border-radius:0;-webkit-border-radius:0}.ui-tabbar a.ui-btn .ui-icon{width:1.4545454545454546rem;height:1.4545454545454546rem;background-repeat:no-repeat;background-size:100% 100%}.ui-tabbar.ui-tabbar-persist a.ui-btn{background:#202327}.ui-tabbar.ui-tabbar-persist a.ui-state-persist,.ui-tabbar.ui-tabbar-persist a.ui-state-persist.ui-btn-active,.ui-tabbar.ui-tabbar-persist a.ui-btn-show-style{color:#70a9ee}.ui-tabbar.ui-tabbar-persist a.ui-btn-hover-s.ui-btn-down-s:not(.ui-state-persist){color:#70a9ee;background:-webkit-linear-gradient(top, #000 0, #202327 100%)}.ui-tabbar:not(.ui-tabbar-persist) a.ui-btn{background:#202327}.ui-tabbar:not(.ui-tabbar-persist) a.ui-btn-active,.ui-tabbar:not(.ui-tabbar-persist) .ui-btn-show-style{color:#70a9ee}.ui-tabbar:not(.ui-tabbar-persist) a.ui-btn.ui-btn-hover-s.ui-btn-down-s{color:#70a9ee;background:-webkit-linear-gradient(top, #000 0, #202327 100%)}.ui-tabbar .ui-btn-inner{font-size:.6818181818181819rem;font-weight:700}.ui-tabbar .ui-btn-inner .ui-icon{top:.4545454545454546rem;left:50%;margin-left:-.7272727272727273rem}.ui-tabbar.ui-tabbar-notext a.ui-btn{padding-top:.5rem;padding-bottom:.4545454545454546rem}.ui-tabbar.ui-tabbar-notext .ui-btn-inner{height:1.5454545454545454rem}.ui-tabbar.ui-tabbar-notext .ui-btn-inner .ui-icon{top:0}.ui-header.ui-bar-s.ui-title-tabbar .ui-title{font-size:1rem;margin-top:.36363636363636365rem;margin-bottom:0rem}.ui-header.ui-bar-s.ui-title-tabbar .ui-tabbar.ui-tabbar-noicons a.ui-btn{padding-top:.6818181818181819rem;padding-bottom:.5909090909090909rem}.ui-header.ui-bar-s.ui-title-tabbar .ui-tabbar.ui-tabbar-notext a.ui-btn{padding-top:.3181818181818182rem;padding-bottom:.2272727272727273rem}.ui-header.ui-bar-s.ui-title-tabbar-multiline .ui-tabbar a.ui-btn{padding-top:.5rem;padding-bottom:.4545454545454546rem}.ui-header.ui-bar-s.ui-title-tabbar-multiline .ui-tabbar a.ui-btn .ui-btn-inner{height:2.4545454545454546rem}.ui-header.ui-bar-s.ui-title-tabbar-multiline .ui-tabbar a.ui-btn .ui-btn-inner .ui-btn-text{padding-top:0;line-height:3.8636363636363638rem}.ui-header.ui-bar-s.ui-title-tabbar-multiline .ui-tabbar a.ui-btn .ui-btn-inner .ui-icon{top:0}.ui-header.ui-bar-s li:first-child .ui-btn-inner{border-left-width:0}.ui-footer.ui-bar-s .ui-tabbar{height:2.2272727272727275rem;margin-left:auto;margin-right:auto}.ui-footer.ui-bar-s .ui-tabbar a.ui-btn{padding-top:.7272727272727273rem;padding-bottom:.7272727272727273rem}.ui-footer.ui-bar-s .ui-tabbar .ui-btn-inner .ui-icon{top:0}.ui-footer.ui-bar-s .ui-tabbar.ui-tabbar-notext a.ui-btn{padding-top:.36363636363636365rem;padding-bottom:.3181818181818182rem}.ui-footer.ui-bar-s .ui-tabbar li:first-child .ui-btn-inner{border-left-width:0}.ui-footer.ui-bar-s .ui-tabbar.ui-tabbar-margin-back{margin-right:2.5454545454545454rem}.ui-footer.ui-bar-s .ui-tabbar.ui-tabbar-margin-more{margin-left:2.5454545454545454rem}.ui-footer.ui-bar-s .ui-btn-back~.ui-tabbar li:last-child .ui-btn-inner{border-right:1px solid;border-right-color:#3b3e40}.ui-footer.ui-bar-s [data-icon="naviframe-more"]~.ui-tabbar li:first-child .ui-btn-inner{border-left:1px solid;border-left-color:#3b3e40}.ui-tabbar-s.ui-navbar-noicons{font-size:1rem}.ui-tabbar .tabbar-scroll-ul{margin-top:0;margin-bottom:0;padding-left:0}.ui-tabbar .tabbar-scroll-ul .tabbar-scroll-li{position:relative;display:inline-block;margin-left:-.36363636363636365rem}.ui-tabbar .tabbar-scroll-ul .tabbar-scroll-li a{width:100%}.ui-tabbar .tabbar-scroll-ul li.tabbar-scroll-li:first-child{margin-left:0}.ui-tabbar-divider{position:absolute;top:0;width:.4545454545454546rem;height:2.5rem;background:-webkit-linear-gradient(left, #00009b 0, #f6f8ef 100%)}.ui-tabbar-divider-left{left:0;border-top-right-radius:.4545454545454546rem;border-bottom-right-radius:.4545454545454546rem;background:-webkit-linear-gradient(left, #999 0, #f6f8ef 100%)}.ui-tabbar-divider-right{right:0;border-top-left-radius:.4545454545454546rem;border-bottom-left-radius:.4545454545454546rem;background:-webkit-linear-gradient(right, #999 0, #f6f8ef 100%)}.ui-splitview{margin:0;padding:0;position:relative}.ui-splitview .ui-pane{position:absolute;overflow:hidden;border:0;margin:0;padding:0}.ui-splitview .ui-pane .ui-listview{margin:0;padding:0}.ui-splitview .ui-spliter{position:absolute;z-index:100;display:block;margin:0;padding:0}.ui-splitview .ui-spliter-bar{background-color:#b3b3b3;border-color:#000;border-style:solid}.ui-splitview .ui-spliter-handle{margin:0;padding:0;cursor:move;display:block;text-align:center;cursor:pointer;position:relative;background-position:center center;background-repeat:no-repeat;background-size:100% 100%}.ui-direction-horizontal>.ui-spliter{width:60px}.ui-direction-vertical>.ui-spliter{height:60px}.ui-direction-horizontal>.ui-spliter>.ui-spliter-bar{width:13px;margin:0 0 0 25px;border-width:1px 1px 1px 0}.ui-direction-vertical>.ui-spliter>.ui-spliter-bar{height:13px;margin:25px 0 0 0;border-width:0 1px 1px 1px}.ui-spliter-active>.ui-spliter-bar{background-color:#5787c2}.ui-direction-horizontal>.ui-spliter>.ui-spliter-bar>.ui-spliter-handle{width:13px;height:26px;background-image:url(./images/00_splite_handler_v.png)}.ui-direction-vertical>.ui-spliter>.ui-spliter-bar>.ui-spliter-handle{width:26px;height:13px;background-image:url(./images/00_splite_handler_h.png)}.ui-direction-horizontal>.ui-fixed{width:0}.ui-direction-horizontal>.ui-fixed>.ui-spliter-bar{width:5px}.ui-direction-vertical>.ui-fixed{height:0}.ui-direction-vertical>.ui-fixed>.ui-spliter-bar{height:5px}.ui-fixed .ui-spliter-handle{display:none}
\ No newline at end of file
+.ui-bar-s{border:0;background:#202327;color:#70a9ee;font-family:Helvetica,Arial,sans-serif;font-weight:700;font-size:1.2727272727272727rem}.ui-bar-s .ui-link-inherit{color:#70a9ee}.ui-bar-s>.ui-btn.ui-btn-back,.ui-bar-s>.ui-btn.ui-btn-footer-down{background:transparent;position:absolute;right:0}.ui-bar-s>.ui-btn.ui-btn-back .ui-icon-header-back-btn,.ui-bar-s>.ui-btn.ui-btn-footer-down .ui-icon-header-back-btn{top:.36363636363636365rem;left:auto;right:.5909090909090909rem;margin-top:0}.ui-bar-s>.ui-btn.ui-btn-footer-down{border:0;box-shadow:none}.ui-bar-s>.ui-btn.ui-btn-footer-down .ui-icon{top:.36363636363636365rem;margin-top:0}.ui-header.ui-bar-s{position:fixed;top:0;min-height:2.5rem}.ui-header.ui-bar-s .ui-title{display:inline-block;color:#70a9ee;min-height:1.2727272727272727rem;max-height:1.5454545454545454rem;font-size:1.2727272727272727rem;font-weight:500;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;outline:0!important;text-align:left;margin:.7272727272727273rem .36363636363636365rem .2272727272727273rem .36363636363636365rem}.ui-header.ui-bar-s>.ui-btn .ui-btn-inner.ui-btn-icon-only,.ui-header.ui-bar-s>.naviframe-button.ui-btn .ui-btn-inner.ui-btn-icon-only{-o-box-sizing:border-box;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%}.ui-header.ui-bar-s>.ui-btn .ui-btn-inner.ui-btn-icon-only .ui-icon,.ui-header.ui-bar-s>.naviframe-button.ui-btn .ui-btn-inner.ui-btn-icon-only .ui-icon{top:0}.ui-header.ui-bar-s>.naviframe-button.ui-btn .ui-btn-inner .ui-icon{margin-top:0}.ui-header.ui-bar-s>.ui-btn:not(.ui-btn-icon-notext) .ui-btn-inner.ui-btn-icon-only,.ui-header.ui-bar-s>.naviframe-button.ui-btn:not(.ui-btn-icon-notext) .ui-btn-inner.ui-btn-icon-only{padding-left:0}.ui-header.ui-bar-s>.ui-btn:not(.ui-btn-icon_only),.ui-header.ui-bar-s>.naviframe-button.ui-btn:not(.ui-btn-icon_only){width:2.409090909090909rem;height:.8181818181818182rem;top:auto;bottom:.4545454545454546rem}.ui-header.ui-bar-s>.ui-btn:not(.ui-btn-icon_only) .ui-btn-inner,.ui-header.ui-bar-s>.naviframe-button.ui-btn:not(.ui-btn-icon_only) .ui-btn-inner{padding:0}.ui-header.ui-bar-s>.ui-btn.ui-btn-back,.ui-header.ui-bar-s>.ui-btn.ui-btn-footer-down{right:.5909090909090909rem}.ui-header.ui-bar-s>.ui-btn.ui-btn-back .ui-icon-header-back-btn,.ui-header.ui-bar-s>.ui-btn.ui-btn-footer-down .ui-icon-header-back-btn{left:0}.ui-header.ui-bar-s img{position:absolute;display:inline-block;height:.7272727272727273rem;width:.7272727272727273rem;margin-left:.36363636363636365rem;margin-top:1.0909090909090908rem}.ui-header.ui-bar-s .ui-title-text-sub{position:absolute;top:1.6363636363636365rem;left:.36363636363636365rem;font-size:.5454545454545454rem}.ui-header.ui-bar-s .ui-title-text-sub img{height:.7272727272727273rem;width:.7272727272727273rem;margin-left:.36363636363636365rem}.ui-header.ui-bar-s>.ui-btn,.ui-header.ui-bar-s>.naviframe-button.ui-btn{position:absolute;top:.7272727272727273rem;margin-top:0;height:1.5454545454545454rem;width:1.5454545454545454rem;background:transparent;color:#3a3a3a}.ui-header.ui-bar-s.ui-title-tabbar>.ui-btn{top:.36363636363636365rem}.ui-header.ui-bar-s>.ui-btn.ui-btn-icon_only,.ui-header.ui-bar-s>.naviframe-button.ui-btn.ui-btn-icon_only{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-header.ui-bar-s .ui-btn-right-0{right:.5rem}.ui-header.ui-bar-s .ui-btn-right-1{right:2.5454545454545454rem}.ui-header.ui-bar-s>.ui-btn:not(.ui-btn-icon_only):nth-child(2),.ui-header.ui-bar-s>.naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(2){right:.3181818181818182rem}.ui-header.ui-bar-s>.ui-btn:not(.ui-btn-icon_only):nth-child(3),.ui-header.ui-bar-s>.naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(3){right:2.8181818181818183rem}.ui-header.ui-bar-s>img+h1{padding-left:1.0909090909090908rem}.ui-header.ui-bar-s>img+h1+.ui-btn:not(.ui-btn-icon_only):nth-child(3),.ui-header.ui-bar-s>img+h1+.naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(3){right:.3181818181818182rem}.ui-header.ui-bar-s>img+h1+.ui-btn:not(.ui-btn-icon_only):nth-child(3)+.ui-btn:not(.ui-btn-icon_only),.ui-header.ui-bar-s>img+h1+.naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(3)+.naviframe-button.ui-btn:not(.ui-btn-icon_only){right:2.8181818181818183rem}.ui-header.ui-bar-s>img+h1+span.ui-title-text-sub+.ui-btn:not(.ui-btn-icon_only):nth-child(4),.ui-header.ui-bar-s>img+h1+span.ui-title-text-sub+.naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(4){right:.3181818181818182rem}.ui-header.ui-bar-s>img+h1+span.ui-title-text-sub+.ui-btn:not(.ui-btn-icon_only):nth-child(4)+.ui-btn:not(.ui-btn-icon_only),.ui-header.ui-bar-s>img+h1+span.ui-title-text-sub+.naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(4)+.naviframe-button.ui-btn:not(.ui-btn-icon_only){right:2.8181818181818183rem}.ui-header.ui-bar-s>.ui-btn.ui-btn-down-s{background:rgba(64,147,247,.1);color:#3b73b6}.ui-header.ui-bar-s.ui-title-multiline img{margin-top:.6363636363636364rem}.ui-header.ui-bar-s.ui-title-multiline .ui-title{min-height:1.0909090909090908rem;max-height:1.0909090909090908rem;font-size:1rem;margin:.4090909090909091rem .36363636363636365rem 1rem .36363636363636365rem}.ui-footer.ui-bar-s{height:2.2272727272727275rem;text-align:center;bottom:0}.ui-footer.ui-bar-s>.ui-btn.ui-btn-back,.ui-footer.ui-bar-s>.ui-btn.ui-btn-footer-down,.ui-footer.ui-bar-s>[data-icon="naviframe-more"]{background:transparent}.ui-footer.ui-bar-s>.ui-btn.ui-btn-back>.ui-btn-icon-only,.ui-footer.ui-bar-s>.ui-btn.ui-btn-footer-down>.ui-btn-icon-only,.ui-footer.ui-bar-s>[data-icon="naviframe-more"]>.ui-btn-icon-only{width:2.5454545454545454rem;height:2.2272727272727275rem;padding:0;-webkit-box-shadow:none}.ui-footer.ui-bar-s>.ui-btn.ui-btn-back,.ui-footer.ui-bar-s>.ui-btn.ui-btn-footer-down{top:0}.ui-footer.ui-bar-s>.ui-btn.ui-btn-footer-down .ui-icon{left:auto;right:.5909090909090909rem}.ui-footer.ui-bar-s [data-icon="naviframe-more"]{position:absolute;left:0rem;top:0rem;box-shadow:none;border-width:0}.ui-footer.ui-bar-s [data-icon="naviframe-more"] .ui-icon-naviframe-more{left:.5909090909090909rem;top:.36363636363636365rem;margin-top:0}.ui-footer.ui-bar-s [data-icon="naviframe-more"] .ui-btn-inner{border:0;background:transparent;box-shadow:none}.ui-footer.ui-bar-s>[data-role="button"]{font-size:.6818181818181819rem;font-weight:700;color:#bababa}.ui-footer.ui-bar-s [data-role="controlgroup"]{margin-left:auto;margin-right:auto;margin-top:.2727272727272727rem;margin-bottom:.2727272727272727rem;padding-left:2.6363636363636362rem;padding-right:2.6363636363636362rem}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"]{background:transparent;border-style:solid;border-color:#3b3e40;border-top-width:0;border-bottom-width:0;border-left-width:1px;border-right-width:1px;-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;box-shadow:none;padding:0;margin-left:-.18181818181818182rem;margin-right:-.2272727272727273rem}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-btn-hover-s{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-btn-down-s,.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"] .ui-btn-active-s{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-btn-down-s .ui-btn-inner,.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"] .ui-btn-active-s .ui-btn-inner{background:#202327}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-btn-down-s .ui-btn-inner .ui-btn-text,.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"] .ui-btn-active-s .ui-btn-inner .ui-btn-text{color:#70a9ee}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"]>.ui-btn-inner{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border:0 solid;box-shadow:none}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"] .ui-btn-text{font-size:.7727272727272727rem;color:#3a3a3a}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-corner-right{border-right-width:0}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-corner-left{border-left-width:0}.ui-footer.ui-bar-s>[data-role="button"]:not([data-icon="naviframe-more"]){top:.2727272727272727rem}.ui-footer.ui-bar-s>p{margin-top:.36363636363636365rem;margin-bottom:.36363636363636365rem}.ui-footer.ui-bar-s>h1,.ui-footer.ui-bar-s h2,.ui-footer.ui-bar-s h3,.ui-footer.ui-bar-s h4,.ui-footer.ui-bar-s h5,.ui-footer.ui-bar-s h6{display:inline-block}.ui-content{position:relative;top:0}.ui-body-s{border:1px solid #2a2a2a;background:#202327;color:#f9f9f9;font-weight:400;font-family:Helvetica,Arial,sans-serif}.ui-body-s .ui-link-inherit{color:#fff}.ui-body-s .ui-link{color:#2489CE;font-weight:700}.ui-body-s .ui-link:hover{color:#2489CE}.ui-body-s .ui-link:active{color:#2489CE}.ui-body-s .ui-link:visited{color:#2489CE}.ui-btn-box-s{padding:.045454545454545456rem}.ui-btn-box-s.ui-btn-up-s{color:#3a3a3a;background:#202327;background:-webkit-linear-gradient(top, #202327, #202327);background:-moz-linear-gradient(top, #ebe8e3, #eae7e2);background:-o-linear-gradient(top, #ebe8e3, #eae7e2);background:-ms-linear-gradient(top, #ebe8e3, #eae7e2);border:1px solid;border-color:#000;-o-box-shadow:0 0 1px 1px #000;-ms-box-shadow:0 0 1px 1px #000;-moz-box-shadow:0 0 1px 1px #000;-webkit-box-shadow:0 0 1px 1px #000;box-shadow:0 0 1px 1px #000;-o-border-radius:.3rem;-ms-border-radius:.3rem;-moz-border-radius:.3rem;-webkit-border-radius:.3rem;border-radius:.3rem;font-family:Helvetica,Arial,sans-serif;font-weight:400;font-size:1.0rem;font-style:normal;color:#bababa}.ui-btn.ui-btn-corner-all .ui-btn-box-s.ui-btn-up-s{-o-border-radius:1.2rem;-ms-border-radius:1.2rem;-moz-border-radius:1.2rem;-webkit-border-radius:1.2rem;border-radius:1.2rem}.ui-btn-box-s .ui-btn-inner{border:1px solid;border-color:#000;-o-border-radius:.3rem;-ms-border-radius:.3rem;-moz-border-radius:.3rem;-webkit-border-radius:.3rem;border-radius:.3rem;-o-box-sizing:border-box;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;background:#202327;background:-webkit-linear-gradient(top, #202327, #202327);background:-ms-linear-gradient(top, #faf7f2, #f8f5f0);background:-o-linear-gradient(top, #faf7f2, #f8f5f0);background:-moz-linear-gradient(top, #faf7f2, #f8f5f0);-o-box-shadow:none;-ms-box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;height:100%}.ui-btn.ui-btn-corner-all.ui-btn-box-s .ui-btn-inner{-o-border-radius:1.2rem;-ms-border-radius:1.2rem;-moz-border-radius:1.2rem;-webkit-border-radius:1.2rem;border-radius:1.2rem}.ui-ctxpopup .ui-btn-box-s.ui-btn-up-s,.ui-ctxpopup .ui-btn-box-s.ui-btn-hover-s{background:transparent!important;border:0;box-shadow:none;padding:0;color:#fff!important}.ui-ctxpopup .ui-btn-box-s.ui-btn-down-s{background:#3b73b6!important;border:0;box-shadow:none;padding:0;color:#fff!important;-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-ctxpopup .ui-btn-box-s .ui-btn-inner{background:transparent ! important;box-shadow:none;border:0}.ui-ctxpopup .ui-btn-down-s{background:#3b73b6!important}.ui-header .ui-btn-box-s,.ui-footer .ui-btn-box-s,.ui-btn-back.ui-btn-up-s,.ui-btn-back.ui-btn-hover-s,.ui-btn-back.ui-btn-down-s,.ui-btn-footer-down.ui-btn-up-s,.ui-btn-footer-down.ui-btn-hover-s,.ui-btn-footer-down.ui-btn-down-s,.ui-popup-container .ui-btn-box-s{font-weight:400;-o-border-radius:.9 rem;-ms-border-radius:.9 rem;-moz-border-radius:.9 rem;-webkit-border-radius:.9 rem;border-radius:.9 rem}.ui-btn-box-s.ui-btn-hover-s{color:#3a3a3a;font-family:Helvetica,Arial,sans-serif;font-weight:400;font-size:1.0rem;font-style:normal;color:#bababa;-o-border-radius:.3em ! important;-ms-border-radius:.3em ! important;-moz-border-radius:.3em ! important;-webkit-border-radius:.3em ! important;border-radius:.3em ! important}.ui-btn-box-s.ui-btn-hover-s.ui-btn-corner-circle{-o-border-radius:1em ! important;-ms-border-radius:1em ! important;-moz-border-radius:1em ! important;-webkit-border-radius:1em ! important;border-radius:1em ! important}.ui-btn-box-s.ui-btn-hover-s.ui-btn-corner-all{-o-border-radius:1.2em ! important;-ms-border-radius:1.2em ! important;-moz-border-radius:1.2em ! important;-webkit-border-radius:1.2em ! important;border-radius:1.2em ! important}.ui-btn-box-s.ui-btn-hover-s.ui-btn-round{-o-border-radius:1.2em ! important;-ms-border-radius:1.2em ! important;-moz-border-radius:1.2em ! important;-webkit-border-radius:1.2em ! important;border-radius:1.2em ! important}.ui-btn-box-s.ui-btn-down-s .ui-btn-inner{background:#3b73b6;color:#fff}.ui-btn-up-s,.ui-btn-hover-s,.ui-btn-down-s{font-family:Helvetica,Arial,sans-serif;text-decoration:none}a.ui-link-inherit{text-decoration:none!important}.ui-btn-active{color:#3a3a3a;cursor:pointer;text-decoration:none;background:#3b73b6;outline:0}.ui-btn-active a.ui-link-inherit{color:#3a3a3a}.ui-corner-tl{-moz-border-radius-topleft:.3em;-webkit-border-top-left-radius:.3em;border-top-left-radius:.3em}.ui-corner-tr{-moz-border-radius-topright:.3em;-webkit-border-top-right-radius:.3em;border-top-right-radius:.3em}.ui-corner-bl{-moz-border-radius-bottomleft:.3em;-webkit-border-bottom-left-radius:.3em;border-bottom-left-radius:.3em}.ui-corner-br{-moz-border-radius-bottomright:.3em;-webkit-border-bottom-right-radius:.3em;border-bottom-right-radius:.3em}.ui-corner-top{-moz-border-radius-topleft:.3em;-webkit-border-top-left-radius:.3em;border-top-left-radius:.3em;-moz-border-radius-topright:.3em;-webkit-border-top-right-radius:.3em;border-top-right-radius:.3em}.ui-corner-bottom{-moz-border-radius-bottomleft:.3em;-webkit-border-bottom-left-radius:.3em;border-bottom-left-radius:.3em;-moz-border-radius-bottomright:.3em;-webkit-border-bottom-right-radius:.3em;border-bottom-right-radius:.3em}.ui-corner-right{-moz-border-radius-topright:.3em;-webkit-border-top-right-radius:.3em;border-top-right-radius:.3em;-moz-border-radius-bottomright:.3em;-webkit-border-bottom-right-radius:.3em;border-bottom-right-radius:.3em}.ui-corner-left{-moz-border-radius-topleft:.3em;-webkit-border-top-left-radius:.3em;border-top-left-radius:.3em;-moz-border-radius-bottomleft:.3em;-webkit-border-bottom-left-radius:.3em;border-bottom-left-radius:.3em}.ui-corner-none{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-header .ui-btn .ui-btn-icon-only .ui-icon,.ui-footer .ui-btn .ui-btn-icon-only .ui-icon{width:1.4545454545454546rem;height:1.4545454545454546rem}.ui-btn-back .ui-btn-inner .ui-icon-header-back-btn,.ui-btn-footer-down .ui-btn-inner .ui-icon{width:1.4545454545454546rem;height:1.4545454545454546rem;background-repeat:no-repeat;background-size:100% 100%}.ui-btn-up-s{}.ui-btn-up-s .ui-icon-header-back-btn{background-image:url(images/page/00_icon_Back.png)}.ui-btn-up-s .ui-icon-naviframe-more{background-image:url(images/page/00_icon_more.png)}.ui-btn-up-s .ui-icon-naviframe-cancel{background-image:url(images/00_icon_cancel.png)}.ui-btn-up-s .ui-icon-naviframe-edit{background-image:url(images/page/00_icon_edit.png)}.ui-btn-up-s .ui-icon-naviframe-plus{background-image:url(images/page/00_icon_plus.png)}.ui-btn-up-s .ui-icon-down{background-image:url(images/controls/button/00_icon_SIP_close_web_web.png)}.ui-btn-hover-s .ui-icon-header-back-btn{background-image:url(images/page/00_icon_Back.png)}.ui-btn-hover-s .ui-icon-naviframe-more{background-image:url(images/page/00_icon_more.png)}.ui-btn-hover-s .ui-icon-naviframe-cancel{background-image:url(images/00_icon_cancel.png)}.ui-btn-hover-s .ui-icon-naviframe-edit{background-image:url(images/page/00_icon_edit.png)}.ui-btn-hover-s .ui-icon-naviframe-plus{background-image:url(images/page/00_icon_plus.png)}.ui-btn-hover-s .ui-icon-down{background-image:url(images/controls/button/00_icon_SIP_close_web_web.png)}.ui-btn-down-s .ui-icon-header-back-btn{background-image:url(images/page/00_icon_Back_press.png)}.ui-btn-down-s .ui-icon-naviframe-more{background-image:url(images/page/00_icon_more_press.png)}.ui-btn-down-s .ui-icon-naviframe-cancel{background-image:url(images/00_icon_cancel_press.png)}.ui-btn-down-s .ui-icon-naviframe-edit{background-image:url(images/page/00_icon_edit_press.png)}.ui-btn-down-s .ui-icon-naviframe-plus{background-image:url(images/page/00_icon_plus_press.png)}.ui-btn-down-s .ui-icon-down{background-image:url(images/controls/button/00_icon_SIP_close_press_web.png)}.ui-disabled{filter:alpha(opacity=30);opacity:.3;zoom:1}.ui-disabled,.ui-disabled a{cursor:default!important;pointer-events:none}.ui-mobile,.ui-mobile body{height:100%;font-size:22px}@media all and (max-width: 359px){.ui-mobile,.ui-mobile body{ font-size:19px}}.ui-mobile fieldset,.ui-page{padding:0;margin:0}.ui-mobile a img,.ui-mobile fieldset{border:0}.ui-mobile-viewport{margin:0;overflow-x:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ui-mobile [data-role=page],.ui-mobile [data-role=dialog],.ui-page{top:0;left:0;width:100%;position:absolute;display:none;border:0}.ui-mobile .ui-page-active{display:block;overflow:visible}.ui-page{outline:0}.ui-mobile,.ui-mobile .ui-page{background:#202327;color:#f9f9f9}.ui-page.ui-mobile-touch-overflow,.ui-mobile-touch-overflow.ui-native-fixed .ui-content{overflow:auto;height:100%;-webkit-overflow-scrolling:touch;-moz-overflow-scrolling:touch;-o-overflow-scrolling:touch;-ms-overflow-scrolling:touch;overflow-scrolling:touch}.ui-page.ui-mobile-touch-overflow,.ui-page.ui-mobile-touch-overflow *{transform:rotateY(0);-ms-transform:rotateY(0);-moz-transform:rotateY(0);-webkit-transform:rotateY(0);-o-transform:rotateY(0)}.ui-page.ui-mobile-pre-transition{display:block}.ui-loading .ui-mobile-viewport{overflow:hidden!important}.ui-loading .ui-loader{display:block}.ui-loading .ui-page{overflow:hidden}.ui-loader{display:none;position:absolute;opacity:.85;z-index:100;left:50%;width:200px;margin-left:-130px;margin-top:-35px;padding:10px 30px}.ui-loader h1{font-size:1.4545454545454546rem;text-align:center}.ui-loader .ui-icon{position:static;display:block;opacity:.9;margin:0 auto;width:35px;height:35px;background-color:transparent}.ui-blocker{width:100%;height:100%;z-index:2147483647}.ui-mobile-rendering>*{visibility:hidden}.ui-bar,.ui-body{position:relative;padding:.4em 15px;overflow:hidden;display:block;clear:both}.ui-bar{font-size:16px;margin:0}.ui-bar h1,.ui-bar h2,.ui-bar h3,.ui-bar h4,.ui-bar h5,.ui-bar h6{margin:0;padding:0;font-size:16px;display:inline-block}.ui-header,.ui-footer{display:block}.ui-page .ui-header,.ui-page .ui-footer{position:fixed;z-index:1000}.ui-header .ui-btn-left{top:.4em;float:left}.ui-header .ui-btn-right{float:right;top:.4em}.ui-header .ui-title,.ui-footer .ui-title{min-height:1.1em;text-align:center;font-size:16px;display:block;margin:.6em 90px .8em;padding:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;outline:0!important}.ui-content{border-width:0;overflow:visible;overflow-x:hidden;padding:15px}.ui-page-fullscreen .ui-content{padding:0}.ui-mobile-touch-overflow.ui-page.ui-native-fixed,.ui-mobile-touch-overflow.ui-page.ui-native-fullscreen{overflow:visible}.ui-mobile-touch-overflow.ui-native-fixed .ui-header,.ui-mobile-touch-overflow.ui-native-fixed .ui-footer{position:fixed;left:0;right:0;top:0;z-index:200}.ui-mobile-touch-overflow.ui-page.ui-native-fixed .ui-footer{top:auto;bottom:0}.ui-mobile-touch-overflow.ui-native-fixed .ui-content{padding-top:2.5em;padding-bottom:3em;top:0;bottom:0;height:auto;position:absolute}.ui-mobile-touch-overflow.ui-native-fullscreen .ui-content{padding-top:0;padding-bottom:0}.ui-mobile-touch-overflow.ui-native-fullscreen .ui-header,.ui-mobile-touch-overflow.ui-native-fullscreen .ui-footer{opacity:.9}.ui-native-bars-hidden{display:none}.ui-icon{width:18px;height:18px}.ui-fullscreen img{max-width:100%}.ui-nojs{position:absolute;left:-9999px}.ui-mobile-viewport-transitioning,.ui-mobile-viewport-transitioning .ui-page{width:100%;height:100%;overflow:hidden}.in{-ms-animation-timing-function:ease-out;-ms-animation-duration:350ms;-o-animation-timing-function:ease-out;-o-animation-duration:350ms;-webkit-animation-timing-function:ease-out;-webkit-animation-duration:350ms;-moz-animation-timing-function:ease-out;-moz-animation-duration:350ms}.out{-ms-animation-timing-function:ease-in;-ms-animation-duration:225ms;-o-animation-timing-function:ease-in;-o-animation-duration:225;-webkit-animation-timing-function:ease-in;-webkit-animation-duration:225ms;-moz-animation-timing-function:ease-in;-moz-animation-duration:225}@-webkit-keyframes fadein{from{ opacity:0}to{opacity:1}}@-moz-keyframes fadein{from{ opacity:0}to{opacity:1}}@-webkit-keyframes fadeout{from{ opacity:1}to{opacity:0}}@-moz-keyframes fadeout{from{ opacity:1}to{opacity:0}}.fade.out{opacity:0;-ms-animation-duration:125ms;-ms-animation-name:fadeout;-o-animation-duration:125ms;-o-animation-name:fadeout;-webkit-animation-duration:125ms;-webkit-animation-name:fadeout;-moz-animation-duration:125ms;-moz-animation-name:fadeout}.fade.in{opacity:1;-ms-animation-duration:225ms;-ms-animation-name:fadein;-o-animation-duration:225ms;-o-animation-name:fadein;-webkit-animation-duration:225ms;-webkit-animation-name:fadein;-moz-animation-duration:225ms;-moz-animation-name:fadein}.viewport-flip{-ms-perspective:1000;-o-perspective:1000;-webkit-perspective:1000;-moz-perspective:1000;position:absolute}.flip{-webkit-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-backface-visibility:hidden;-moz-transform:translate3d(0,0,0)}.flip.out{-webkit-transform:rotateY(-90deg) scale(.9);-webkit-animation-name:flipouttoleft;-webkit-animation-duration:175ms;-moz-transform:rotateY(-90deg) scale(.9);-moz-animation-name:flipouttoleft;-moz-animation-duration:175ms}.flip.in{-webkit-animation-name:flipintoright;-webkit-animation-duration:225ms;-moz-animation-name:flipintoright;-moz-animation-duration:225ms}.flip.out.reverse{-webkit-transform:rotateY(90deg) scale(.9);-webkit-animation-name:flipouttoright;-moz-transform:rotateY(90deg) scale(.9);-moz-animation-name:flipouttoright}.flip.in.reverse{-webkit-animation-name:flipintoleft;-moz-animation-name:flipintoleft}@-webkit-keyframes flipouttoleft{from{ -webkit-transform:rotateY(0)}to{-webkit-transform:rotateY(-90deg) scale(.9)}}@-moz-keyframes flipouttoleft{from{ -moz-transform:rotateY(0)}to{-moz-transform:rotateY(-90deg) scale(.9)}}@-webkit-keyframes flipouttoright{from{ -webkit-transform:rotateY(0)}to{-webkit-transform:rotateY(90deg) scale(.9)}}@-moz-keyframes flipouttoright{from{ -moz-transform:rotateY(0)}to{-moz-transform:rotateY(90deg) scale(.9)}}@-webkit-keyframes flipintoleft{from{ -webkit-transform:rotateY(-90deg) scale(.9)}to{-webkit-transform:rotateY(0)}}@-moz-keyframes flipintoleft{from{ -moz-transform:rotateY(-90deg) scale(.9)}to{-moz-transform:rotateY(0)}}@-webkit-keyframes flipintoright{from{ -webkit-transform:rotateY(90deg) scale(.9)}to{-webkit-transform:rotateY(0)}}@-moz-keyframes flipintoright{from{ -moz-transform:rotateY(90deg) scale(.9)}to{-moz-transform:rotateY(0)}}.flow{-webkit-transform-origin:50% 30%;-moz-transform-origin:50% 30%;-webkit-box-shadow:0 0 20px rgba(0,0,0,.4);-moz-box-shadow:0 0 20px rgba(0,0,0,.4)}.ui-dialog.flow{-webkit-transform-origin:none;-moz-transform-origin:none;-webkit-box-shadow:none;-moz-box-shadow:none}.flow.out{-webkit-transform:translate3d(-100%,0,0) scale(.7);-webkit-animation-name:flowouttoleft;-webkit-animation-timing-function:ease;-webkit-animation-duration:350ms;-moz-transform:translate3d(-100%,0,0) scale(.7);-moz-animation-name:flowouttoleft;-moz-animation-timing-function:ease;-moz-animation-duration:350ms}.flow.in{-webkit-transform:translate3d(0,0,0) scale(1);-webkit-animation-name:flowinfromright;-webkit-animation-timing-function:ease;-webkit-animation-duration:350ms;-moz-transform:translate3d(0,0,0) scale(1);-moz-animation-name:flowinfromright;-moz-animation-timing-function:ease;-moz-animation-duration:350ms}.flow.out.reverse{-webkit-transform:translate3d(100%,0,0);-webkit-animation-name:flowouttoright;-moz-transform:translate3d(100%,0,0);-moz-animation-name:flowouttoright}.flow.in.reverse{-webkit-animation-name:flowinfromleft;-moz-animation-name:flowinfromleft}@-webkit-keyframes flowouttoleft{0%{ -webkit-transform:translate3d(0,0,0) scale(1)}60%,70%{-webkit-transform:translate3d(0,0,0) scale(.7)}100%{-webkit-transform:translate3d(-100%,0,0) scale(.7)}}@-moz-keyframes flowouttoleft{0%{ -moz-transform:translate3d(0,0,0) scale(1)}60%,70%{-moz-transform:translate3d(0,0,0) scale(.7)}100%{-moz-transform:translateX(-100%) scale(.7)}}@-webkit-keyframes flowouttoright{0%{ -webkit-transform:translate3d(0,0,0) scale(1)}60%,70%{-webkit-transform:translate3d(0,0,0) scale(.7)}100%{-webkit-transform:translate3d(100%,0,0) scale(.7)}}@-moz-keyframes flowouttoright{0%{ -moz-transform:translate3d(0,0,0) scale(1)}60%,70%{-moz-transform:translate3d(0,0,0) scale(.7)}100%{-moz-transform:translate3d(100%,0,0) scale(.7)}}@-webkit-keyframes flowinfromleft{0%{ -webkit-transform:translate3d(-100%,0,0) scale(.7)}30%,40%{-webkit-transform:translate3d(0,0,0) scale(.7)}100%{-webkit-transform:translate3d(0,0,0) scale(1)}}@-moz-keyframes flowinfromleft{0%{ -moz-transform:translate3d(-100%,0,0) scale(.7)}30%,40%{-moz-transform:translate3d(0,0,0) scale(.7)}100%{-moz-transform:translate3d(0,0,0) scale(1)}}@-webkit-keyframes flowinfromright{0%{ -webkit-transform:translate3d(100%,0,0) scale(.7)}30%,40%{-webkit-transform:translate3d(0,0,0) scale(.7)}100%{-webkit-transform:translate3d(0,0,0) scale(1)}}@-moz-keyframes flowinfromright{0%{ -moz-transform:translate3d(100%,0,0) scale(.7)}30%,40%{-moz-transform:translate3d(0,0,0) scale(.7)}100%{-moz-transform:translate3d(0,0,0) scale(1)}}.pop{-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%}.pop.in{-webkit-transform:scale(1);-moz-transform:scale(1);opacity:1;-webkit-animation-name:popin;-moz-animation-name:popin;-webkit-animation-duration:350ms;-moz-animation-duration:350ms}.pop.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;opacity:0;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.pop.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein}.pop.out.reverse{-webkit-transform:scale(.8);-moz-transform:scale(.8);-webkit-animation-name:popout;-moz-animation-name:popout}@-webkit-keyframes popin{from{ -webkit-transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);opacity:1}}@-moz-keyframes popin{from{ -moz-transform:scale(.8);opacity:0}to{-moz-transform:scale(1);opacity:1}}@-webkit-keyframes popout{from{ -webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(.8);opacity:0}}@-moz-keyframes popout{from{ -moz-transform:scale(1);opacity:1}to{-moz-transform:scale(.8);opacity:0}}@-webkit-keyframes slideinfromright{from{ -webkit-transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideinfromright{from{ -moz-transform:translate3d(100%,0,0)}to{-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slideinfromleft{from{ -webkit-transform:translate3d(-100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideinfromleft{from{ -moz-transform:translate3d(-100%,0,0)}to{-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slideouttoleft{from{ -webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-100%,0,0)}}@-moz-keyframes slideouttoleft{from{ -moz-transform:translate3d(0,0,0)}to{-moz-transform:translate3d(-100%,0,0)}}@-webkit-keyframes slideouttoright{from{ -webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(100%,0,0)}}@-moz-keyframes slideouttoright{from{ -moz-transform:translate3d(0,0,0)}to{-moz-transform:translate3d(100%,0,0)}}.slide.out,.slide.in{-webkit-animation-timing-function:ease-out;-webkit-animation-duration:350ms;-moz-animation-timing-function:ease-out;-moz-animation-duration:350ms}.slide.out{-webkit-transform:translate3d(-100%,0,0);-webkit-animation-name:slideouttoleft;-moz-transform:translate3d(-100%,0,0);-moz-animation-name:slideouttoleft}.slide.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slideinfromright;-moz-transform:translate3d(0,0,0);-moz-animation-name:slideinfromright}.slide.out.reverse{-webkit-transform:translate3d(100%,0,0);-webkit-animation-name:slideouttoright;-moz-transform:translate3d(100%,0,0);-moz-animation-name:slideouttoright}.slide.in.reverse{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slideinfromleft;-moz-transform:translate3d(0,0,0);-moz-animation-name:slideinfromleft}.slidedown.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.slidedown.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slideinfromtop;-moz-transform:translate3d(0,0,0);-moz-animation-name:slideinfromtop;-webkit-animation-duration:250ms;-moz-animation-duration:250ms}.slidedown.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein;-webkit-animation-duration:150ms;-moz-animation-duration:150ms}.slidedown.out.reverse{-webkit-transform:translate3d(0,-100%,0);-moz-transform:translate3d(0,-100%,0);-webkit-animation-name:slideouttotop;-moz-animation-name:slideouttotop;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}@-webkit-keyframes slideinfromtop{from{ -webkit-transform:translate3d(0,-100%,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideinfromtop{from{ -moz-transform:translate3d(0,-100%,0)}to{-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slideouttotop{from{ -webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(0,-100%,0)}}@-moz-keyframes slideouttotop{from{ -moz-transform:translate3d(0,0,0)}to{-moz-transform:translate3d(0,-100%,0)}}.slideup.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.slideup.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slideinfrombottom;-moz-transform:translate3d(0,0,0);-moz-animation-name:slideinfrombottom;-webkit-animation-duration:250ms;-moz-animation-duration:250ms}.slideup.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein;-webkit-animation-duration:150ms;-moz-animation-duration:150ms}.slideup.out.reverse{-webkit-transform:translate3d(0,100%,0);-moz-transform:translate3d(0,100%,0);-webkit-animation-name:slideouttobottom;-moz-animation-name:slideouttobottom;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}@-webkit-keyframes slideinfrombottom{from{ -webkit-transform:translate3d(0,100%,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideinfrombottom{from{ -moz-transform:translate3d(0,100%,0)}to{-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slideouttobottom{from{ -webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(0,100%,0)}}@-moz-keyframes slideouttobottom{from{ -moz-transform:translate3d(0,0,0)}to{-moz-transform:translate3d(0,100%,0)}}.slideupfade.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.slideupfade.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slideupfadeinfrombottom;-moz-transform:translate3d(0,0,0);-moz-animation-name:slideupfadeinfrombottom;-webkit-animation-duration:250ms;-moz-animation-duration:250ms}.slideupfade.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein;-webkit-animation-duration:150ms;-moz-animation-duration:150ms}.slideupfade.out.reverse{-webkit-transform:translate3d(0,5%,0);-moz-transform:translate3d(0,5%,0);-webkit-animation-name:slideupfadeouttobottom;-moz-animation-name:slideupfadeouttobottom;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}@-webkit-keyframes slideupfadeinfrombottom{from{ opacity:0;-webkit-transform:translate3d(0,5%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideupfadeinfrombottom{from{ opacity:0;-moz-transform:translate3d(0,5%,0)}to{opacity:1;-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slideupfadeouttobottom{from{ opacity:1;-webkit-transform:translate3d(0,0,0)}to{opacity:0;-webkit-transform:translate3d(0,5%,0)}}@-moz-keyframes slideupfadeouttobottom{from{ opacity:1;-moz-transform:translate3d(0,0,0)}to{opacity:0;-moz-transform:translate3d(0,5%,0)}}.slidedownfade.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.slidedownfade.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slidedownfadeinfromtop;-moz-transform:translate3d(0,0,0);-moz-animation-name:slidedownfadeinfromtop;-webkit-animation-duration:250ms;-moz-animation-duration:250ms}.slidedownfade.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein;-webkit-animation-duration:150ms;-moz-animation-duration:150ms}.slidedownfade.out.reverse{-webkit-transform:translate3d(0,-5%,0);-moz-transform:translate3d(0,-5%,0);-webkit-animation-name:slidedownfadeouttotop;-moz-animation-name:slidedownfadeouttotop;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}@-webkit-keyframes slidedownfadeinfromtop{from{ opacity:0;-webkit-transform:translate3d(0,-5%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slidedownfadeinfromtop{from{ opacity:0;-moz-transform:translate3d(0,-5%,0)}to{opacity:1;-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slidedownfadeouttotop{from{ opacity:1;-webkit-transform:translate3d(0,0,0)}to{opacity:0;-webkit-transform:translate3d(0,-5%,0)}}@-moz-keyframes slidedownfadeouttotop{from{ opacity:1;-moz-transform:translate3d(0,0,0)}to{opacity:0;-moz-transform:translate3d(0,-5%,0)}}.slidefade.out{-webkit-transform:translate3d(-100%,0,0);-webkit-animation-name:slideouttoleft;-moz-transform:translate3d(-100%,0,0);-moz-animation-name:slideouttoleft;-webkit-animation-duration:225ms;-moz-animation-duration:225ms}.slidefade.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:fadein;-moz-transform:translate3d(0,0,0);-moz-animation-name:fadein;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}.slidefade.out.reverse{-webkit-transform:translate3d(100%,0,0);-webkit-animation-name:slideouttoright;-moz-transform:translate3d(100%,0,0);-moz-animation-name:slideouttoright;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}.slidefade.in.reverse{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:fadein;-moz-transform:translate3d(0,0,0);-moz-animation-name:fadein;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}.viewport-turn{-webkit-perspective:1000;-moz-perspective:1000;position:absolute}.turn{-webkit-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-webkit-transform-origin:0;-moz-backface-visibility:hidden;-moz-transform:translate3d(0,0,0);-moz-transform-origin:0}.turn.out{-webkit-transform:rotateY(-90deg) scale(.9);-webkit-animation-name:flipouttoleft;-moz-transform:rotateY(-90deg) scale(.9);-moz-animation-name:flipouttoleft;-webkit-animation-duration:125ms;-moz-animation-duration:125ms}.turn.in{-webkit-animation-name:flipintoright;-moz-animation-name:flipintoright;-webkit-animation-duration:250ms;-moz-animation-duration:250ms}.turn.out.reverse{-webkit-transform:rotateY(90deg) scale(.9);-webkit-animation-name:flipouttoright;-moz-transform:rotateY(90deg) scale(.9);-moz-animation-name:flipouttoright}.turn.in.reverse{-webkit-animation-name:flipintoleft;-moz-animation-name:flipintoleft}@-webkit-keyframes flipouttoleft{from{ -webkit-transform:rotateY(0)}to{-webkit-transform:rotateY(-90deg) scale(.9)}}@-moz-keyframes flipouttoleft{from{ -moz-transform:rotateY(0)}to{-moz-transform:rotateY(-90deg) scale(.9)}}@-webkit-keyframes flipouttoright{from{ -webkit-transform:rotateY(0)}to{-webkit-transform:rotateY(90deg) scale(.9)}}@-moz-keyframes flipouttoright{from{ -moz-transform:rotateY(0)}to{-moz-transform:rotateY(90deg) scale(.9)}}@-webkit-keyframes flipintoleft{from{ -webkit-transform:rotateY(-90deg) scale(.9)}to{-webkit-transform:rotateY(0)}}@-moz-keyframes flipintoleft{from{ -moz-transform:rotateY(-90deg) scale(.9)}to{-moz-transform:rotateY(0)}}@-webkit-keyframes flipintoright{from{ -webkit-transform:rotateY(90deg) scale(.9)}to{-webkit-transform:rotateY(0)}}@-moz-keyframes flipintoright{from{ -moz-transform:rotateY(90deg) scale(.9)}to{-moz-transform:rotateY(0)}}.depth{-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%}.depth.out{-webkit-animation-name:depthout;-moz-animation-name:depthout;opacity:0;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;-webkit-animation-timing-function:ease;-moz-animation-timing-function:ease}.depth.in{-webkit-transform:scale(1);-moz-transform:scale(1);opacity:1;-webkit-animation-name:depthin;-moz-animation-name:depthin;-webkit-animation-duration:350ms;-moz-animation-duration:350ms;-webkit-animation-timing-function:ease;-moz-animation-timing-function:ease}.depth.in.reverse{-webkit-animation-name:depthinreverse;-moz-animation-name:depthinreverse}.depth.out.reverse{-webkit-transform:scale(.9);-moz-transform:scale(.9);-webkit-animation-name:depthoutreverse;-moz-animation-name:depthoutreverse}@-webkit-keyframes depthout{from{ -webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(1.1);opacity:0}}@-moz-keyframes depthout{from{ -moz-transform:scale(1);opacity:1}to{-moz-transform:scale(1.1);opacity:0}}@-webkit-keyframes depthin{0%{ -webkit-transform:scale(.9);opacity:0}30%{-webkit-transform:scale(.9);opacity:0}100%{-webkit-transform:scale(1);opacity:1}}@-moz-keyframes depthin{0%{ -moz-transform:scale(.9);opacity:0}30%{-moz-transform:scale(.9);opacity:0}100%{-moz-transform:scale(1);opacity:1}}@-webkit-keyframes depthinreverse{0%{ -webkit-transform:scale(1.1);opacity:0}30%{-webkit-transform:scale(1.1);opacity:0}100%{-webkit-transform:scale(1);opacity:1}}@-moz-keyframes depthinreverse{0%{ -moz-transform:scale(1.1);opacity:0}30%{-moz-transform:scale(1.1);opacity:0}100%{-moz-transform:scale(1);opacity:1}}@-webkit-keyframes depthoutreverse{from{ -webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(.9);opacity:0}}@-moz-keyframes depthoutreverse{from{ -moz-transform:scale(1);opacity:1}to{-moz-transform:scale(.9);opacity:0}}.ui-grid-a,.ui-grid-b,.ui-grid-c,.ui-grid-d{overflow:hidden}.ui-block-a,.ui-block-b,.ui-block-c,.ui-block-d,.ui-block-e{margin:0;padding:0;border:0;float:left;min-height:1px}.ui-grid-solo .ui-block-a{width:100%;float:none}.ui-grid-a .ui-block-a,.ui-grid-a .ui-block-b{width:50%}.ui-grid-a .ui-block-a{clear:left}.ui-grid-b .ui-block-a,.ui-grid-b .ui-block-b,.ui-grid-b .ui-block-c{width:33.333%}.ui-grid-b .ui-block-a{clear:left}.ui-grid-c .ui-block-a,.ui-grid-c .ui-block-b,.ui-grid-c .ui-block-c,.ui-grid-c .ui-block-d{width:25%}.ui-grid-c .ui-block-a{clear:left}.ui-grid-d .ui-block-a,.ui-grid-d .ui-block-b,.ui-grid-d .ui-block-c,.ui-grid-d .ui-block-d,.ui-grid-d .ui-block-e{width:20%}.ui-grid-d .ui-block-a{clear:left}.ui-header,.ui-footer,.ui-page-fullscreen .ui-header,.ui-page-fullscreen .ui-footer{position:absolute;overflow:hidden;width:100%;border-left-width:0;border-right-width:0}.ui-header-fixed,.ui-footer-fixed{z-index:1000;-webkit-transform:translateZ(0)}.ui-footer-duplicate,.ui-page-fullscreen .ui-fixed-inline{display:none}.ui-page-fullscreen .ui-header,.ui-page-fullscreen .ui-footer{opacity:.9}.ui-navbar{overflow:hidden}.ui-navbar ul,.ui-navbar-expanded ul{list-style:none;padding:0;margin:0;position:relative;display:block;border:0}.ui-navbar-collapsed ul{float:left;width:75%;margin-right:-2px}.ui-navbar-collapsed .ui-navbar-toggle{float:left;width:25%}.ui-navbar li.ui-navbar-truncate{position:absolute;left:-9999px;top:-9999px}.ui-navbar li .ui-btn,.ui-navbar .ui-navbar-toggle .ui-btn{display:block;font-size:12px;text-align:center;margin:0;border-right-width:0}.ui-navbar li .ui-btn{margin-right:-1px}.ui-navbar li .ui-btn:last-child{margin-right:0}.ui-header .ui-navbar li .ui-btn,.ui-header .ui-navbar .ui-navbar-toggle .ui-btn,.ui-footer .ui-navbar li .ui-btn,.ui-footer .ui-navbar .ui-navbar-toggle .ui-btn{border-top-width:0;border-bottom-width:0}.ui-navbar .ui-btn-inner{padding-left:2px;padding-right:2px}.ui-navbar-noicons li .ui-btn .ui-btn-inner,.ui-navbar-noicons .ui-navbar-toggle .ui-btn-inner{padding-top:.8em;padding-bottom:.9em}.ui-navbar-expanded .ui-btn{margin:0;font-size:14px}.ui-navbar-expanded .ui-btn-inner{padding-left:5px;padding-right:5px}.ui-navbar-expanded .ui-btn-icon-top .ui-btn-inner{padding:45px 5px 15px;text-align:center}.ui-navbar-expanded .ui-btn-icon-top .ui-icon{top:15px}.ui-navbar-expanded .ui-btn-icon-bottom .ui-btn-inner{padding:15px 5px 45px;text-align:center}.ui-navbar-expanded .ui-btn-icon-bottom .ui-icon{bottom:15px}.ui-navbar-expanded li .ui-btn .ui-btn-inner{min-height:2.5em}.ui-navbar-expanded .ui-navbar-noicons .ui-btn .ui-btn-inner{padding-top:1.8em;padding-bottom:1.9em}.ui-btn{display:block;text-align:center;cursor:pointer;position:relative;vertical-align:middle}.ui-btn:focus,.ui-btn:active{outline:0}.ui-header .ui-btn,.ui-footer .ui-btn,.ui-bar .ui-btn{display:inline-block;font-size:.5909090909090909rem;margin:0}.ui-btn-inline{display:inline-block}.ui-btn-inner{padding:.5em .4090909090909091rem;display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;position:relative;zoom:1}.ui-btn-icon-notext{width:1.6363636363636365rem;height:1.6363636363636365rem}.ui-btn-icon-notext .ui-btn-inner{padding:.09090909090909091rem .045454545454545456rem .09090909090909091rem .13636363636363635rem}.ui-btn-icon-notext .ui-btn-inner .ui-icon{margin-left:-.7272727272727273rem;margin-top:-.7272727272727273rem}.ui-btn-icon-notext .ui-btn-text{position:absolute;left:-45.409090909090914rem}.ui-btn-icon-left .ui-btn-inner{padding-left:1.5rem}.ui-header .ui-btn-icon-left .ui-btn-inner,.ui-footer .ui-btn-icon-left .ui-btn-inner,.ui-bar .ui-btn-icon-left .ui-btn-inner{padding-left:1.2272727272727273rem}.ui-btn-icon-right .ui-btn-inner{padding-right:1.5rem}.ui-header .ui-btn-icon-right .ui-btn-inner,.ui-footer .ui-btn-icon-right .ui-btn-inner,.ui-bar .ui-btn-icon-right .ui-btn-inner{padding-right:1.2272727272727273rem}.ui-btn-icon-top .ui-btn-inner{padding-top:1.2272727272727273rem}.ui-header .ui-btn-icon-top .ui-btn-inner,.ui-footer .ui-btn-icon-top .ui-btn-inner,.ui-bar .ui-btn-icon-top .ui-btn-inner{padding-top:1.2272727272727273rem}.ui-btn-icon-bottom .ui-btn-inner{padding-bottom:1.5rem}.ui-header .ui-btn-icon-bottom .ui-btn-inner,.ui-footer .ui-btn-icon-bottom .ui-btn-inner,.ui-bar .ui-btn-icon-bottom .ui-btn-inner{padding-bottom:1.2272727272727273rem}.ui-btn-icon-notext .ui-icon{display:block}.ui-btn-icon-left .ui-icon,.ui-btn-icon-right .ui-icon,.ui-btn-icon-circle .ui-icon{position:absolute}.ui-btn-icon-top .ui-icon,.ui-btn-icon-bottom .ui-icon{position:absolute;left:50%;margin-left:-9px}.ui-btn-icon-left .ui-icon{left:0rem}.ui-btn-icon-circle .ui-icon{left:0rem}.ui-btn-icon-right .ui-icon{right:.4545454545454546rem}.ui-btn-icon-top .ui-icon{top:0rem;margin-top:0}.ui-btn-icon-bottom .ui-icon{bottom:0rem}.ui-header .ui-btn-icon-right .ui-icon,.ui-footer .ui-btn-icon-right .ui-icon,.ui-bar .ui-btn-icon-right .ui-icon{right:.18181818181818182rem}.ui-header .ui-btn-icon-top .ui-icon,.ui-footer .ui-btn-icon-top .ui-icon,.ui-bar .ui-btn-icon-top .ui-icon{top:.18181818181818182rem}.ui-header .ui-btn-icon-bottom .ui-icon,.ui-footer .ui-btn-icon-bottom .ui-icon,.ui-bar .ui-btn-icon-bottom .ui-icon{bottom:.18181818181818182rem}.ui-btn-hidden{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-appearance:button;opacity:.1;cursor:pointer;background:transparent;font-size:.045454545454545456rem;border:0;line-height:45.409090909090914rem}.ui-btn-text{margin-left:auto;margin-right:auto;padding:0 1px}.ui-li .ui-btn.ui-btn-icon_only{top:50%;margin-top:-.7272727272727273rem}.ui-li .ui-btn .ui-btn-inner.ui-btn-hastxt{padding:.2em .5em}.ui-btn-icon-nobg.ui-btn-down-s .ui-btn-inner{background:transparent ! important}.ui-btn.ui-btn-box-s.ui-btn-down-s .ui-btn-inner{color:#fff}.ui-header .ui-btn-box-s:not(.ui-input-cancel):not(.ui-btn-search-front-icon),.ui-header .ui-btn-box-s:not(.ui-input-cancel):not(.ui-btn-search-front-icon) .ui-btn-inner,.ui-header .ui-btn.ui-btn-box-s.ui-btn-down-s:not(.ui-input-cancel):not(.ui-btn-search-front-icon) .ui-btn-inner,.ui-btn.ui-btn-back.ui-btn-up-s .ui-btn-inner,.ui-btn.ui-btn-back.ui-btn-hover-s .ui-btn-inner,.ui-btn.ui-btn-back.ui-btn-down-s .ui-btn-inner,.ui-btn.ui-btn-footer-down.ui-btn-up-s>.ui-btn-inner,.ui-btn.ui-btn-footer-down.ui-btn-hover-s>.ui-btn-inner,.ui-btn.ui-btn-footer-down.ui-btn-down-s>.ui-btn-inner{background:transparent;border:0;box-shadow:none}.ui-header .naviframe-button.ui-btn.ui-btn-box-s.ui-btn-down-s{background:rgba(64,147,247,.1)}.ui-btn-icon-top .ui-btn-inner.ui-btn-hastxt,.ui-li .ui-btn-icon-top .ui-btn-inner.ui-btn-hastxt{padding-top:2.3636363636363638rem}.ui-btn-icon-bottom .ui-btn-inner.ui-btn-hastxt,.ui-li .ui-btn-icon-bottom .ui-btn-inner.ui-btn-hastxt{padding-bottom:2.3636363636363638rem}.ui-btn .ui-icon{width:1.4545454545454546rem;height:1.4545454545454546rem}.ui-btn.ui-btn-edit .ui-icon{width:3.3636363636363638rem;height:3.3636363636363638rem}.ui-btn .ui-btn-text.ui-btn-text-padding-left{padding-left:2rem}.ui-btn .ui-btn-text.ui-btn-text-padding-right{padding-right:2.1818181818181817rem}.ui-btn .ui-btn-text.ui-btn-text-padding-top{padding-top:1.4545454545454546rem}.ui-icon{background-repeat:no-repeat;vertical-align:middle;background-position:0 0;background-size:100%}.ui-btn-box.s .ui-icon{position:absolute}.ui-btn-box-s.ui-btn-icon-left .ui-icon,.ui-btn-box-s.ui-btn-icon-right .ui-icon{margin-top:-.7272727272727273rem;top:50%}.ui-btn-box-s.ui-btn-icon-top .ui-icon,.ui-btn-box-s.ui-btn-icon-bottom .ui-icon{margin-left:-.7272727272727273rem;left:50%}.tizen-icon-common{width:1.4545454545454546rem;height:1.4545454545454546rem}.tizen-smallicon-common{width:.9090909090909092rem ! important;height:.9090909090909092rem ! important;top:50% ! important;left:50% ! important;margin-top:-.4545454545454546rem ! important;margin-left:-.4545454545454546rem ! important}.ui-icon-bg{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_btn_circle_bg_normal.png);z-index:0}.ui-icon-arrow-l{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_left.png)}.ui-icon-arrow-r{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_right.png)}.ui-icon-arrow-u{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_opened.png)}.ui-icon-arrow-d{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_closed.png)}.ui-icon-delete{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_cancel.png)}.ui-icon-plus{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_plus.png)}.ui-icon-minus{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_minus.png)}.ui-icon-check{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_check.png)}.ui-icon-gear{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_gear.png)}.ui-icon-refresh{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_refresh.png)}.ui-icon-forward{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_send.png)}.ui-icon-back{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_back.png)}.ui-icon-grid{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_grid.png)}.ui-icon-star{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_star.png)}.ui-icon-alert{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_warning.png)}.ui-icon-info{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_info.png)}.ui-icon-home{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_home.png)}.ui-icon-search{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_search.png)}.ui-icon-call{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_call.png)}.ui-icon-rename{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_rename.png)}.ui-icon-scrolltop{width:.9090909090909092rem ! important;height:.9090909090909092rem ! important;top:50% ! important;left:50% ! important;margin-top:-.4545454545454546rem ! important;margin-left:-.4545454545454546rem ! important;background-image:url(images/controls/button/00_icon_jump.png)}.ui-icon-scrollleft{width:.9090909090909092rem ! important;height:.9090909090909092rem ! important;top:50% ! important;left:50% ! important;margin-top:-.4545454545454546rem ! important;margin-left:-.4545454545454546rem ! important;background-image:url(images/controls/button/00_icon_jump_left.png)}.ui-icon-expandable-divider-opened{width:1.9090909090909092rem;height:1.9090909090909092rem;position:absolute;right:1.2727272727272727rem;top:0rem;background-repeat:no-repeat;background-size:100% 100%;background-image:url(images/00_indexlist_icon_opened.png)}.ui-icon-expandable-divider-closed{width:1.9090909090909092rem;height:1.9090909090909092rem;position:absolute;right:1.2727272727272727rem;top:0rem;background-repeat:no-repeat;background-size:100% 100%;background-image:url(images/00_indexlist_icon_closed.png)}.ui-btn-down-s .ui-icon-bg,.ui-btn-down-s.ui-tizen-icon-bg{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_btn_circle_bg_press.png);z-index:0}.ui-btn-down-s .ui-icon-arrow-l{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_left_press.png)}.ui-btn-down-s .ui-icon-arrow-r{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_right_press.png)}.ui-btn-down-s .ui-icon-arrow-u{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_opened_press.png)}.ui-btn-down-s .ui-icon-arrow-d{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_closed_press.png)}.ui-btn-down-s .ui-icon-delete{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_cancel_press.png)}.ui-btn-down-s .ui-icon-plus{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_plus_press.png)}.ui-btn-down-s .ui-icon-minus{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_minus_press.png)}.ui-btn-down-s .ui-icon-check{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_check_press.png)}.ui-btn-down-s .ui-icon-gear{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_gear_press.png)}.ui-btn-down-s .ui-icon-refresh{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_refresh_press.png)}.ui-btn-down-s .ui-icon-forward{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_send_press.png)}.ui-btn-down-s .ui-icon-back{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_back_press.png)}.ui-btn-down-s .ui-icon-grid{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_grid_press.png)}.ui-btn-down-s .ui-icon-star{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_star_press.png)}.ui-btn-down-s .ui-icon-alert{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_warning_press.png)}.ui-btn-down-s .ui-icon-info{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_info_press.png)}.ui-btn-down-s .ui-icon-home{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_home_press.png)}.ui-btn-down-s .ui-icon-search{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_search_press.png)}.ui-btn-down-s .ui-icon-call{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_call_press.png)}.ui-btn-down-s .ui-icon-rename{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_rename_press.png)}.ui-btn-down-s .ui-icon-scrolltop{width:.9090909090909092rem ! important;height:.9090909090909092rem ! important;top:50% ! important;left:50% ! important;margin-top:-.4545454545454546rem ! important;margin-left:-.4545454545454546rem ! important;background-image:url(images/controls/button/00_icon_jump_press.png)}.ui-btn-down-s .ui-icon-scrollleft{width:.9090909090909092rem ! important;height:.9090909090909092rem ! important;top:50% ! important;left:50% ! important;margin-top:-.4545454545454546rem ! important;margin-left:-.4545454545454546rem ! important;background-image:url(images/controls/button/00_icon_jump_left_press.png)}.ui-btn-inner.ui-btn-icon-only{padding:.7272727272727273rem .7272727272727273rem}.ui-btn-icon-only .ui-btn-text{display:none;width:0;height:0;overflow:hidden}.ui-btn.ui-btn-corner-all{-o-border-radius:1.2em ! important;-ms-border-radius:1.2em ! important;-moz-border-radius:1.2em ! important;-webkit-border-radius:1.2em ! important;border-radius:1.2em ! important}.ui-btn.ui-btn-icon-nobg{box-shadow:none}.ui-btn-corner-circle{-o-border-radius:1em ! important;-ms-border-radius:1em ! important;-moz-border-radius:1em ! important;-webkit-border-radius:1em ! important;border-radius:1em ! important}.ui-btn-round{-o-border-radius:1.2em ! important;-ms-border-radius:1.2em ! important;-moz-border-radius:1.2em ! important;-webkit-border-radius:1.2em ! important;border-radius:1.2em ! important}.ui-btn-round .ui-btn-inner{-o-border-radius:1.2em ! important;-ms-border-radius:1.2em ! important;-moz-border-radius:1.2em ! important;-webkit-border-radius:1.2em ! important;border-radius:1.2em ! important}.ui-btn.ui-btn-icon-nobg,.ui-btn .ui-btn-icon-nobg{background:transparent;background-color:transparent;border:0}.ui-btn.ui-btn-edit .ui-btn-text{color:#f9f9f9}.ui-btn.ui-btn-edit .ui-btn-inner{background:#c95858;background:-webkit-gradient(linear,left top,left bottom,from( #c95858),to( #a12828));background:-moz_linear-gradient(top, #c95858, #a12828)}.ui-btn-box-s{color:#3a3a3a;background:#202327;background:-webkit-linear-gradient(top, #202327, #202327);background:-moz-linear-gradient(top, #ebe8e3, #eae7e2);background:-o-linear-gradient(top, #ebe8e3, #eae7e2);background:-ms-linear-gradient(top, #ebe8e3, #eae7e2);border:1px solid;border-color:#000;-o-box-shadow:0 0 1px 1px #000;-ms-box-shadow:0 0 1px 1px #000;-moz-box-shadow:0 0 1px 1px #000;-webkit-box-shadow:0 0 1px 1px #000;box-shadow:0 0 1px 1px #000}.ui-collapsible-inset{margin:.5em 0}.ui-collapsible-inset .ui-collapsible-heading{margin:0}.ui-collapsible-inset .ui-collapsible-heading .ui-btn{border-right-width:1px;border-left-width:1px}.ui-collapsible-collapsed+.ui-collapsible:not(.ui-collapsible-inset) .ui-collapsible-heading .ui-btn{border-top-width:0}.ui-collapsible-set .ui-collapsible:not(.ui-collapsible-inset) .ui-collapsible-heading .ui-btn{border-top-width:1px}.ui-collapsible-heading,.ui-collapsible-content>li{position:relative}.ui-collapsible-heading{font-size:1rem;display:block;margin:0 -15px;padding:0;position:relative}.ui-collapsible-heading .ui-btn{text-align:left;margin:0;border-left-width:0;border-right-width:0}.ui-collapsible-heading .ui-btn-text{color:#f9f9f9}.ui-collapsible-heading .ui-btn-inner,.ui-collapsible-heading .ui-btn-icon-left .ui-btn-inner{padding-left:40px}.ui-collapsible-heading .ui-btn-icon-right .ui-btn-inner{padding-left:12px;padding-right:40px}.ui-collapsible-heading .ui-btn-icon-top .ui-btn-inner,.ui-collapsible-heading .ui-btn-icon-bottom .ui-btn-inner{padding-right:40px;text-align:center}.ui-collapsible-heading .ui-btn-inner>.ui-icon-arrow-d{-webkit-transition:all .33s ease;-moz-transition:all .33s ease;-ms-transition:all .33s ease;-o-transition:all .33s ease;transition:all .33s ease;-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.ui-collapsible-heading .ui-btn-inner>.ui-icon-arrow-u{background-image:url(images/controls/button/00_button_expand_closed.png);-webkit-transition:all .33s ease;-moz-transition:all .33s ease;-ms-transition:all .33s ease;-o-transition:all .33s ease;transition:all .33s ease;-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}.ui-collapsible-heading .ui-btn span.ui-btn{position:absolute;left:6px;top:50%;margin:-12px 0 0 0;width:20px;height:20px;padding:1px 0 1px 2px;text-indent:-9999px}.ui-collapsible-heading .ui-btn span.ui-btn .ui-btn-inner{padding:10px 0}.ui-collapsible-heading .ui-btn span.ui-btn .ui-icon{left:0;margin-top:-10px}.ui-collapsible-heading-status{position:absolute;top:-9999px;left:0}.ui-collapsible-content{display:block;margin:0 -15px;padding:0 15px;border-left-width:0;border-right-width:0;border-top:0;background-image:none;visibility:visible;overflow:auto;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-ms-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}.ui-collapsible-inset .ui-collapsible-content{margin:0;border-right-width:1px;border-left-width:1px}.ui-collapsible-content-collapsed{overflow:hidden;max-height:0!important;visibility:hidden}.ui-collapsible-set{margin:.5em 0}.ui-collapsible-set .ui-collapsible{margin:-1px 0 0}.ui-collapsible-set .ui-collapsible:first-child{margin-top:0}.ui-dialog{min-height:480px}.ui-dialog .ui-header,.ui-dialog .ui-content,.ui-dialog .ui-footer{margin:15px;position:relative}.ui-dialog .ui-header,.ui-dialog .ui-footer{z-index:10;width:auto}.ui-dialog .ui-header .ui-btn-left{width:0;border-width:0}.ui-dialog .center_info{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center}.ui-dialog .center_info .popup-text{font-size:42px;background:#213c49;width:100%}.ui-dialog .center_info .popup-text p{text-align:center;padding:22px 16px}.ui-checkbox .ui-btn-inner,.ui-radio .ui-btn-inner{white-space:normal}.ui-checkbox,.ui-radio{position:relative;margin:0}.ui-checkbox .ui-btn-corner-all,.ui-radio .ui-btn-corner-all{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-checkbox .ui-btn-inner,.ui-radio .ui-btn-inner{border-top:0}.ui-checkbox .ui-btn-up-s,.ui-radio .ui-btn-up-s{border:0;background:transparent;font-weight:400}.ui-checkbox .ui-btn-hover-s,.ui-radio .ui-btn-hover-s{border:0;background:transparent;font-weight:400}.ui-checkbox .ui-btn-down-s,.ui-radio .ui-btn-down-s{border:0;background:transparent;font-weight:400}.ui-checkbox input,.ui-radio input{z-index:1;margin:0;left:.4545454545454546rem;position:absolute;outline:0!important}.ui-checkbox>input,.ui-radio>input{display:none}.ui-checkbox .ui-btn,.ui-radio .ui-btn{z-index:2;height:100%;margin:0;text-align:left}.ui-checkbox .ui-btn.ui-btn-icon-left,.ui-radio .ui-btn.ui-btn-icon-left{display:inline-block}.ui-checkbox .ui-btn.ui-btn-icon-left .ui-btn-inner,.ui-radio .ui-btn.ui-btn-icon-left .ui-btn-inner{min-width:1.8181818181818183rem;display:inline-block;line-height:1.4545454545454546rem;padding:0 .7272727272727273rem 0 .7272727272727273rem}.ui-checkbox .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text,.ui-radio .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text{display:inline-block;vertical-align:middle;min-height:1.4545454545454546rem}.ui-checkbox .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text.ui-btn-text-padding-left,.ui-radio .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text.ui-btn-text-padding-left{padding-left:1.0909090909090908rem}.ui-checkbox .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-icon,.ui-radio .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-icon{position:absolute;top:50%;width:1.4545454545454546rem;height:1.4545454545454546rem;margin-top:-.7272727272727273rem}.ui-checkbox.favorite input{position:absolute;left:-10000px;height:100%;outline:0!important}.ui-checkbox.favorite .ui-btn.ui-btn-icon-left .ui-btn-inner{display:inline-block;line-height:1.4545454545454546rem;padding:0 0 0 .7272727272727273rem}.ui-checkbox.favorite .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text{display:inline-block;vertical-align:middle}.ui-checkbox.favorite .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text.ui-btn-text-padding-left{padding-left:1.0909090909090908rem}.ui-checkbox.favorite .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-icon{position:absolute;top:50%;width:1.4545454545454546rem;height:1.4545454545454546rem;margin-top:-.7272727272727273rem}.ui-icon-checkbox-off,.ui-icon-checkbox-on,.favorite .ui-icon-checkbox-off,.favorite .ui-icon-checkbox-on,.ui-icon-checkbox-on-press,.ui-icon-checkbox-off-press,.ui-icon-radio-off,.ui-icon-radio-on,.ui-icon-radio-on-press,.ui-icon-radio-off-press{background-size:100% 100%;background-color:transparent}.ui-icon-checkbox-off{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_check_bg.png)}.ui-icon-checkbox-on{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_check_checking.png),url(images/00_check_bg.png);background-repeat:no-repeat}.ui-icon-checkbox-off-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_check_bg_press.png)}.ui-icon-checkbox-on-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_check_checking.png),url(images/00_check_bg_press.png);background-repeat:no-repeat}.favorite .ui-icon-checkbox-off,.favorite .ui-icon-checkbox-off-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/00_icon_favorite_off.png)}.favorite .ui-icon-checkbox-on,.favorite .ui-icon-checkbox-on-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/00_icon_favorite_on.png)}.ui-icon-radio-off{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_button_radio.png)}.ui-icon-radio-on{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_button_radio_select.png),url(images/00_button_radio.png)}.ui-icon-radio-on-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_button_radio.png)}.ui-icon-radio-off-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_button_radio.png)}.ui-field-contain{padding:1.5em 0;margin:0;border-bottom-width:1px;overflow:visible}.ui-field-contain:first-child{border-top-width:0}@media all{.ui-field-contain{ border-width:0;padding:0;margin:.8em 0}}.ui-select{display:block;position:relative}.ui-select select{position:absolute;left:-9999px;top:-9999px}.ui-select .ui-btn{overflow:hidden}.ui-select .ui-btn select{cursor:pointer;-webkit-appearance:button;left:0;top:0;width:100%;min-height:1.5em;min-height:100%;height:3em;max-height:100%;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);z-index:2}@-moz-document url-prefix(){.ui-select .ui-btn select{ opacity:.0001}}.ui-select .ui-btn select.ui-select-nativeonly{opacity:1;text-indent:0}.ui-select .ui-btn-icon-right .ui-btn-inner{padding-right:45px}.ui-select .ui-btn-icon-right .ui-icon{right:15px}label.ui-select{font-size:16px;line-height:1.4;font-weight:400;margin:0 0 .3em;display:block}.ui-select .ui-btn-text,.ui-selectmenu .ui-btn-text{display:block;min-height:1em}.ui-select .ui-btn-text{text-overflow:ellipsis;overflow:hidden}.ui-selectmenu{position:absolute;padding:0;z-index:100!important;width:80%;max-width:350px;padding:6px}.ui-selectmenu .ui-listview{margin:0}.ui-selectmenu .ui-btn.ui-li-divider{cursor:default}.ui-selectmenu-hidden{top:-9999px;left:-9999px}.ui-selectmenu-screen{position:absolute;top:0;left:0;width:100%;height:100%;z-index:99}.ui-screen-hidden,.ui-selectmenu-list .ui-li .ui-icon{display:none}.ui-selectmenu-list .ui-li .ui-icon{display:block}.ui-li.ui-selectmenu-placeholder{display:none}.ui-selectmenu .ui-header .ui-title{margin:.6em 46px .8em}@media all and (min-width: 450px){label.ui-select{ vertical-align:top;display:inline-block;width:20%;margin:0 2% 0 0}.ui-select{width:60%;display:inline-block}}.ui-selectmenu .ui-header h1:after{content:'.';visibility:hidden}label.ui-input-text{font-size:1rem;line-height:1.2;display:block;font-weight:400;margin:0 0 .3em}input.ui-input-text,textarea.ui-input-text{background-image:none;padding:.4em;line-height:1.4;font-size:.7272727272727273rem;display:block}input.ui-input-text{appearance:none;-webkit-appearance:none}textarea.ui-input-text{height:2.272727272727273rem;width:95%;resize:none;-webkit-transition:height 200ms linear;-moz-transition:height 200ms linear;-o-transition:height 200ms linear;-ms-transition:height 200ms linear;transition:height 200ms linear}.ui-input-search{position:relative;padding-right:1.6363636363636365rem;padding-left:1.6363636363636365rem;border:1px solid #999;-webkit-box-shadow:inset .09090909090909091rem .09090909090909091rem .09090909090909091rem #999;-moz-box-shadow:inset .09090909090909091rem .09090909090909091rem .09090909090909091rem #999;-o-box-shadow:inset .09090909090909091rem .09090909090909091rem .09090909090909091rem #999;-ms-box-shadow:inset .09090909090909091rem .09090909090909091rem .09090909090909091rem #999;box-shadow:inset .09090909090909091rem .09090909090909091rem .09090909090909091rem #999}.ui-input-search input.ui-input-text{width:100%;border:0;background:transparent none;outline:0!important}.ui-input-search .ui-btn-down-s,.ui-input-search .ui-btn-up-s,.ui-input-search .ui-btn-hover-s{border:0;background:transparent none}.ui-input-search .ui-btn-icon-notext.ui-input-clear{width:1.6363636363636365rem;height:1.5rem}.ui-input-search .ui-btn-icon-notext.ui-input-clear .ui-btn-inner{padding:.2727272727272727rem}.ui-input-search .ui-btn-inner .ui-icon-deleteSearch{width:1rem;height:1rem;margin-top:0;margin-left:0}.ui-input-search .ui-input-clear{position:absolute;right:0;top:0;vertical-align:middle}.ui-input-search .ui-input-clear-hidden{display:none}@media all and (min-width: 721px){label.ui-input-text:not([data-type='search']){ vertical-align:top;display:inline-block;margin:0 2% 0 0}input.ui-input-text:not([data-type='search']),textarea.ui-input-text:not([data-type='search']){width:60%;display:inline-block}.ui-input-search input.ui-input-text:not([data-type='search']){width:85%}}.ui-body-s>div>.ui-field-contain>.input-search-bar,.ui-body-s>.ui-field-contain>.input-search-bar{margin:-2.1818181818181817rem -.6818181818181819rem -1.4545454545454546rem -.6818181818181819rem}.input-search-bar{position:relative;background-color:#202327;padding:.5909090909090909rem;vertical-align:middle}.input-search-bar .ui-corner-all{-o-border-radius:.3em;-ms-border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em}.input-search-bar .ui-input-search{font-size:.7272727272727273rem;display:block;position:relative;background-color:#3c4147}.input-search-bar .ui-input-search .ui-input-text{height:1.5rem;padding:0;margin-right:1.7272727272727273rem}.input-search-bar .ui-input-search .ui-image-search{position:absolute;top:0;left:0;width:1rem;height:1rem;margin:.2727272727272727rem}.input-search-bar .ui-input-search-default{margin-right:3.409090909090909rem;-webkit-transition:all 400ms linear;-moz-transition:all 400ms linear;-o-transition:all 400ms linear;-ms-transition:all 400ms linear;transition:all 400ms linear}.input-search-bar .ui-input-search-wide{margin-right:0rem;-webkit-transition:all 400ms linear;-moz-transition:all 400ms linear;-o-transition:all 400ms linear;-ms-transition:all 400ms linear;transition:all 400ms linear}.input-search-bar .ui-btn-icon-cancel.ui-input-cancel{display:inline-block;position:absolute;top:.13636363636363635rem;right:0rem;height:1.5rem;margin-right:.4545454545454546rem;vertical-align:middle;padding:0;border-color:none;width:3.090909090909091rem;-webkit-transition:all 400ms linear;-moz-transition:all 400ms linear;-o-transition:all 400ms linear;-ms-transition:all 400ms linear;transition:all 400ms linear}.input-search-bar .ui-btn-icon-cancel.ui-input-cancel .ui-btn-inner{padding-top:.2727272727272727rem;padding-bottom:.2727272727272727rem}.input-search-bar .ui-btn-icon-cancel.ui-input-cancel .ui-btn-inner .ui-btn-text{font-size:.6818181818181819rem}.input-search-bar .ui-btn-icon-cancel.ui-input-cancel.ui-btn-cancel-hide{right:-3.409090909090909rem;visibility:hidden}.input-search-bar .ui-btn-icon-cancel.ui-input-cancel.ui-btn-cancel-show{right:0;visibility:visible}.input-search-bar .ui-search-bar-icon{margin-left:1.9090909090909092rem}.input-search-bar .ui-btn.ui-btn-search-front-icon{position:absolute;width:1.590909090909091rem;height:1.590909090909091rem;top:.09090909090909091rem;border-radius:3rem}.input-search-bar .ui-btn.ui-btn-search-front-icon>.ui-btn-inner.ui-btn-icon-only{border-radius:3rem}.ui-header .input-search-bar{padding-top:.18181818181818182rem;padding-bottom:.18181818181818182rem}.ui-image-search{background-image:url(images/controls/00_search_icon.png);background-repeat:no-repeat;background-size:100% 100%}.ui-icon-deleteSearch{background-image:url(images/controls/00_field_btn_clear.png);background-repeat:no-repeat;background-size:100% 100%}.ui-controlgroup,fieldset.ui-controlgroup{padding:0;margin:.5em 0 1em}.ui-bar .ui-controlgroup{margin:0 .3em}.ui-controlgroup-label{font-size:1em;line-height:1.4;font-weight:400;margin:0 0 .3em}.ui-controlgroup-controls{display:block}.ui-controlgroup li{list-style:none}.ui-controlgroup .ui-btn-inner{white-space:nowrap}.ui-controlgroup .ui-checkbox label label,.ui-controlgroup .ui-radio label{font-size:1em}.ui-controlgroup .ui-radio{width:25%;overflow:hidden}.ui-controlgroup .ui-radio label{text-align:center;white-space:nowrap}.ui-controlgroup .ui-radio-on .ui-btn-inner{background:#202327}.ui-controlgroup .ui-radio-on .ui-btn-inner .ui-btn-text{color:#70a9ee}.ui-controlgroup .ui-corner-left{border-left-width:0}.ui-controlgroup .ui-corner-right{border-right-width:0}.ui-controlgroup-vertical .ui-btn,.ui-controlgroup-vertical .ui-checkbox,.ui-controlgroup-vertical .ui-radio{margin:0;border-bottom-width:0}.ui-controlgroup-vertical .ui-controlgroup-last{border-bottom-width:1px}.ui-controlgroup-vertical .ui-radio{width:100%}.ui-controlgroup-vertical .ui-radio label{text-align:left}.ui-controlgroup-vertical .ui-radio label .ui-btn-inner{margin-left:.7272727272727273rem;margin-right:.7272727272727273rem}.ui-controlgroup-horizontal{padding:0}.ui-controlgroup-horizontal .ui-btn{display:inline-block;margin-left:-.18181818181818182rem;margin-right:-.13636363636363635rem}.ui-controlgroup-horizontal .ui-checkbox,.ui-controlgroup-horizontal .ui-radio{float:left;margin:0 -1px 0 0}.ui-controlgroup-horizontal .ui-controlgroup-last{margin-right:0}.ui-controlgroup-horizontal [data-role="button"]{border-top:0;border-bottom:0;border-radius:0;box-shadow:none;background:0}.ui-controlgroup-horizontal [data-role="button"].ui-btn-down-s .ui-btn-inner,.ui-controlgroup-horizontal [data-role="button"] .ui-btn-active-s .ui-btn-inner{background:#202327}.ui-controlgroup-horizontal [data-role="button"].ui-btn-down-s .ui-btn-inner .ui-btn-text,.ui-controlgroup-horizontal [data-role="button"] .ui-btn-active-s .ui-btn-inner .ui-btn-text{color:#70a9ee}.ui-controlgroup-horizontal [data-role="button"].ui-btn-down-s .ui-btn-inner{background:-webkit-linear-gradient(top, #000 0, #202327 100%)}.ui-controlgroup-horizontal [data-role="button"]>.ui-btn-inner{border:0 solid;box-shadow:none;padding-top:.2272727272727273rem;padding-bottom:.2272727272727273rem;padding-left:.4545454545454546rem;padding-right:.4545454545454546rem}.ui-controlgroup-horizontal label{width:100%}.ui-controlgroup-horizontal label>span.ui-btn-inner{padding-top:.13636363636363635rem;padding-bottom:.13636363636363635rem}.ui-listview{margin:0;counter-reset:listnumbering;border-top-color:rgba(45,45,45,.5)}.ui-listview li.ui-btn>.ui-btn-hastxt>.ui-btn-text.ui-btn-text-padding-right{padding-right:0rem}.ui-listview .ui-li{border-left-width:0;border-right-width:0;border-top-width:0}.ui-listview .ui-li>.ui-btn-inner{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgba(45,45,45,.5);margin-left:.5909090909090909rem;margin-right:.5909090909090909rem}.ui-listview .ui-li-static{background-color:#202327;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgba(45,45,45,.5);margin-left:.5909090909090909rem;margin-right:.5909090909090909rem}.ui-listview .ui-li:not(.ui-li-divider):not(.ui-li-static){min-height:2.5rem}.ui-listview .ui-li.ui-li-has-multiline:not(.ui-li-divider):not(.ui-li-static){min-height:2.909090909090909rem}.ui-listview li.ui-btn-up-s,.ui-listview li.ui-btn-hover-s{background:0;background-color:#202327;color:#f9f9f9}.ui-listview li.ui-btn-down-s{background:0;background-color:#5787c2;color:#f9f9f9}.ui-listview li.ui-btn-up-s>.ui-li>.ui-btn-text>a.ui-link-inherit,.ui-listview li.ui-btn-hover-s>.ui-li>.ui-btn-text>a.ui-link-inherit{color:#d7d7d7}.ui-listview li.ui-btn-down-s>.ui-li>.ui-btn-text>a.ui-link-inherit{color:#fff}.ui-content .ui-listview{margin-left:-.36363636363636365rem;margin-right:-.36363636363636365rem;padding-bottom:1px}.ui-content .ui-listview .ui-listview{margin:0}.ui-content .ui-listview-inset{margin:1em 0}.ui-listview,.ui-li,.ui-collapsible-heading{list-style:none;padding:0;font-size:1rem}.ui-li,.ui-collapsible-heading,.ui-li.ui-field-contain{display:block;margin:0;position:relative;overflow:visible;text-align:left}.ui-li .ui-btn{top:50%;margin-top:-.8em}.ui-li h3,.ui-collapsible-heading h3,.ui-collapsible>.ui-collapsible-content h3,.ui-listview li h3{margin-top:0;margin-bottom:0;font-size:1rem;font-weight:400}.ui-li form,.ui-collapsible-heading form,.ui-collapsible>.ui-collapsible-content form,.ui-listview li form{display:inline-block}.ui-li .ui-btn-text,.ui-collapsible-heading .ui-btn-text,.ui-collapsible>.ui-collapsible-content .ui-btn-text,.ui-listview li .ui-btn-text{position:relative}.ui-li .ui-btn-text a.ui-link-inherit,.ui-collapsible-heading .ui-btn-text a.ui-link-inherit,.ui-collapsible>.ui-collapsible-content .ui-btn-text a.ui-link-inherit,.ui-listview li .ui-btn-text a.ui-link-inherit{white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li:last-child,.ui-collapsible-heading:last-child,.ui-collapsible>.ui-collapsible-content:last-child,.ui-listview li:last-child,.ui-li.ui-field-contain:last-child,.ui-collapsible-heading.ui-field-contain:last-child,.ui-collapsible>.ui-collapsible-content.ui-field-contain:last-child,.ui-listview li.ui-field-contain:last-child{border-bottom-width:1px}.ui-li>.ui-btn-inner,.ui-collapsible-heading>.ui-btn-inner,.ui-collapsible>.ui-collapsible-content>.ui-btn-inner,.ui-listview li>.ui-btn-inner,.ui-li.ui-collapsible-heading>.ui-collapsible-heading-toggle,.ui-collapsible-heading.ui-collapsible-heading>.ui-collapsible-heading-toggle,.ui-collapsible>.ui-collapsible-content.ui-collapsible-heading>.ui-collapsible-heading-toggle,.ui-listview li.ui-collapsible-heading>.ui-collapsible-heading-toggle{display:block;position:relative;padding:0;border-width:0}.ui-li>.ui-btn-inner.ui-btn-hastxt,.ui-collapsible-heading>.ui-btn-inner.ui-btn-hastxt,.ui-collapsible>.ui-collapsible-content>.ui-btn-inner.ui-btn-hastxt,.ui-listview li>.ui-btn-inner.ui-btn-hastxt{padding:0 0}.ui-li .ui-btn-inner a.ui-link-inherit,.ui-collapsible-heading .ui-btn-inner a.ui-link-inherit,.ui-collapsible>.ui-collapsible-content .ui-btn-inner a.ui-link-inherit,.ui-listview li .ui-btn-inner a.ui-link-inherit,.ui-li .ui-collapsible-heading-toggle>.ui-btn-inner,.ui-collapsible-heading .ui-collapsible-heading-toggle>.ui-btn-inner,.ui-collapsible>.ui-collapsible-content .ui-collapsible-heading-toggle>.ui-btn-inner,.ui-listview li .ui-collapsible-heading-toggle>.ui-btn-inner,.ui-li>li,.ui-collapsible-heading>li,.ui-collapsible>.ui-collapsible-content>li,.ui-listview li>li,.ui-li.ui-li-static,.ui-collapsible-heading.ui-li-static,.ui-collapsible>.ui-collapsible-content.ui-li-static,.ui-listview li.ui-li-static{padding-top:.6818181818181819rem;padding-bottom:.6818181818181819rem;display:block;white-space:normal;border-left-width:0;border-right-width:0}.ui-li .ui-btn-inner a.ui-link-inherit,.ui-collapsible-heading .ui-btn-inner a.ui-link-inherit,.ui-collapsible>.ui-collapsible-content .ui-btn-inner a.ui-link-inherit,.ui-listview li .ui-btn-inner a.ui-link-inherit,.ui-li .ui-collapsible-heading-toggle,.ui-collapsible-heading .ui-collapsible-heading-toggle,.ui-collapsible>.ui-collapsible-content .ui-collapsible-heading-toggle,.ui-listview li .ui-collapsible-heading-toggle{white-space:normal;overflow:visible!important}.ui-li .ui-toggle-switch:last-child,.ui-collapsible-heading .ui-toggle-switch:last-child,.ui-collapsible>.ui-collapsible-content .ui-toggle-switch:last-child,.ui-listview li .ui-toggle-switch:last-child{top:50%;margin-top:-.7727272727272727rem;display:inline-block;position:absolute;right:0}.ui-li [data-role="button"]:last-child,.ui-collapsible-heading [data-role="button"]:last-child,.ui-collapsible>.ui-collapsible-content [data-role="button"]:last-child,.ui-listview li [data-role="button"]:last-child{position:absolute;right:0}.ui-li .ui-radio:first-child,.ui-collapsible-heading .ui-radio:first-child,.ui-collapsible>.ui-collapsible-content .ui-radio:first-child,.ui-listview li .ui-radio:first-child,.ui-li .ui-checkbox:first-child,.ui-collapsible-heading .ui-checkbox:first-child,.ui-collapsible>.ui-collapsible-content .ui-checkbox:first-child,.ui-listview li .ui-checkbox:first-child{position:absolute;top:50%;margin-top:-.6818181818181819rem;left:-.18181818181818182rem;width:1.3636363636363638rem;height:1.3636363636363638rem}.ui-li .ui-radio:first-child .ui-btn-inner,.ui-collapsible-heading .ui-radio:first-child .ui-btn-inner,.ui-collapsible>.ui-collapsible-content .ui-radio:first-child .ui-btn-inner,.ui-listview li .ui-radio:first-child .ui-btn-inner,.ui-li .ui-checkbox:first-child .ui-btn-inner,.ui-collapsible-heading .ui-checkbox:first-child .ui-btn-inner,.ui-collapsible>.ui-collapsible-content .ui-checkbox:first-child .ui-btn-inner,.ui-listview li .ui-checkbox:first-child .ui-btn-inner{line-height:.9090909090909092rem;color:transparent}.ui-li .ui-radio:first-child .ui-btn-inner .ui-icon,.ui-collapsible-heading .ui-radio:first-child .ui-btn-inner .ui-icon,.ui-collapsible>.ui-collapsible-content .ui-radio:first-child .ui-btn-inner .ui-icon,.ui-listview li .ui-radio:first-child .ui-btn-inner .ui-icon,.ui-li .ui-checkbox:first-child .ui-btn-inner .ui-icon,.ui-collapsible-heading .ui-checkbox:first-child .ui-btn-inner .ui-icon,.ui-collapsible>.ui-collapsible-content .ui-checkbox:first-child .ui-btn-inner .ui-icon,.ui-listview li .ui-checkbox:first-child .ui-btn-inner .ui-icon{left:.2272727272727273rem}.ui-li .ui-radio:first-child label.ui-btn-icon_only,.ui-collapsible-heading .ui-radio:first-child label.ui-btn-icon_only,.ui-collapsible>.ui-collapsible-content .ui-radio:first-child label.ui-btn-icon_only,.ui-listview li .ui-radio:first-child label.ui-btn-icon_only,.ui-li .ui-checkbox:first-child label.ui-btn-icon_only,.ui-collapsible-heading .ui-checkbox:first-child label.ui-btn-icon_only,.ui-collapsible>.ui-collapsible-content .ui-checkbox:first-child label.ui-btn-icon_only,.ui-listview li .ui-checkbox:first-child label.ui-btn-icon_only{top:0;margin-top:0}.ui-li img.ui-li-bigicon,.ui-collapsible-heading img.ui-li-bigicon,.ui-collapsible>.ui-collapsible-content img.ui-li-bigicon,.ui-listview li img.ui-li-bigicon{position:absolute;width:1.590909090909091rem;height:1.590909090909091rem;top:50%;margin-top:-.8181818181818182rem}.ui-li img.ui-li-bigicon:first-child,.ui-collapsible-heading img.ui-li-bigicon:first-child,.ui-collapsible>.ui-collapsible-content img.ui-li-bigicon:first-child,.ui-listview li img.ui-li-bigicon:first-child{left:0}.ui-li img.ui-li-bigicon:nth-child(2),.ui-collapsible-heading img.ui-li-bigicon:nth-child(2),.ui-collapsible>.ui-collapsible-content img.ui-li-bigicon:nth-child(2),.ui-listview li img.ui-li-bigicon:nth-child(2){left:1.6363636363636365rem}.ui-li img.ui-li-bigicon:last-child,.ui-collapsible-heading img.ui-li-bigicon:last-child,.ui-collapsible>.ui-collapsible-content img.ui-li-bigicon:last-child,.ui-listview li img.ui-li-bigicon:last-child{right:.7272727272727273rem}.ui-li .ui-li-color-bar+img.ui-li-bigicon:nth-child(2),.ui-collapsible-heading .ui-li-color-bar+img.ui-li-bigicon:nth-child(2),.ui-collapsible>.ui-collapsible-content .ui-li-color-bar+img.ui-li-bigicon:nth-child(2),.ui-listview li .ui-li-color-bar+img.ui-li-bigicon:nth-child(2){left:0}.ui-li .ui-li-color-bar,.ui-collapsible-heading .ui-li-color-bar,.ui-collapsible>.ui-collapsible-content .ui-li-color-bar,.ui-listview li .ui-li-color-bar{position:absolute;width:.13636363636363635rem;height:100%;top:0rem;left:-.5909090909090909rem;background-color:#000}li.ui-li-thumbnail-right img.ui-li-bigicon.ui-li-thumb{left:auto;right:0;width:2.3181818181818183rem;height:2.3181818181818183rem;margin-top:-1.1363636363636365rem}.ui-li.ui-li-has-multiline .ui-btn-inner a.ui-link-inherit,.ui-li.ui-li-has-multiline.ui-li-static{padding-top:.3181818181818182rem;padding-bottom:1.2727272727272727rem}.ui-li.ui-li-has-multiline a{white-space:normal;overflow:visible!important;padding-right:.7272727272727273rem}.ui-li.ui-li-text-ellipsis .ui-btn-inner a.ui-link-inherit{white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li.ui-li-text-ellipsis a{white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li.ui-li-text-ellipsis.ui-li-static{white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li>input{border-style:none;border-width:0;outline-color:#202327;font-size:1.0454545454545454rem;line-height:1;padding-top:0;padding-bottom:0}.ui-listview li.ui-li-divider{background:#202327;color:#70a9ee;border-bottom-width:0;border-top-width:0;cursor:default;counter-reset:listnumbering;font-weight:700;height:1.7272727272727273rem;font-size:.7272727272727273rem}.ui-listview li.ui-li-divider>.ui-btn-inner>.ui-btn-text{font-size:.7272727272727273rem}.ui-listview li.ui-li-divider.ui-btn{top:0;margin-top:0rem;border-radius:0;font-size:.7272727272727273rem}.ui-listview li.ui-li-divider.ui-btn .ui-btn-inner.ui-btn-hastxt{height:100%;padding-left:0}.ui-listview li.ui-li-divider.ui-btn .ui-btn-inner.ui-btn-hastxt .ui-btn-text{position:absolute;top:.2272727272727273rem;height:.8181818181818182rem;padding-right:.4545454545454546rem}.ui-listview li.ui-li-divider:not(.ui-btn){margin-left:.5454545454545454rem;margin-right:.5454545454545454rem}.ui-listview li.ui-li-divider>.ui-btn-text{position:absolute;top:.2272727272727273rem;height:.8181818181818182rem;padding-right:.4545454545454546rem}.ui-listview li.ui-li-divider[data-style="dialogue"]{height:.9090909090909092rem;padding:0;padding-top:.9090909090909092rem;padding-bottom:0rem;padding-left:.4545454545454546rem;margin-left:.18181818181818182rem;margin-right:.18181818181818182rem;font-size:.7272727272727273rem;font-weight:700;color:#3b73b6;background:#202327}.ui-listview li.ui-li-divider[data-style="check"]{height:1.7272727272727273rem;padding-top:0;padding-bottom:0;padding-left:0}.ui-listview li.ui-li-divider[data-style="check"] label{top:0;margin:0}.ui-listview li.ui-li-divider[data-style="check"] label .ui-btn-inner{z-index:5;position:absolute;width:1.4545454545454546rem;height:1.4545454545454546rem;background:#202327;padding:0}.ui-listview li.ui-li-divider[data-style="check"] .ui-btn-text{padding-left:1.6818181818181819rem}.ui-listview li.ui-li-divider .ui-divider-normal-line{display:inline-block;position:absolute;top:1.0454545454545454rem;width:100%;height:.09090909090909091rem;background:#70a9ee}.ui-listview li.ui-li-divider.ui-btn-down-s{background:#70a9ee;color:#202327}.ui-listview li.ui-li-divider.ui-btn-down-s .ui-divider-normal-line{background:#202327}.ui-listview li.ui-li-divider.ui-btn-down-s label>.ui-btn-inner{background:#70a9ee}.ui-listview li.ui-li-divider+li.ui-li-dialogue{border-top-left-radius:3px;border-top-right-radius:3px}.ui-divider-expand-div{position:absolute;width:4.454545454545455rem;height:1.9090909090909092rem;top:.4545454545454546rem;right:0;border-left-width:1px;border-left-style:solid;border-left-color:rgba(0,0,0,.5)}.ui-li-has-thumb:not(.ui-li-thumbnail-right) .ui-btn-inner a.ui-link-inherit,.ui-li-has-thumb:not(.ui-li-thumbnail-right).ui-li-static{padding-left:2.0454545454545454rem}.ui-li-has-thumb:not(.ui-li-thumbnail-right) .ui-li-text-sub{padding-left:2.0454545454545454rem;padding-right:0}.ui-li-has-checkbox .ui-btn-inner a.ui-link-inherit,.ui-li-has-radio .ui-btn-inner a.ui-link-inherit,.ui-li-has-checkbox.ui-li-static,.ui-li-has-radio.ui-li-static{padding-left:1.6363636363636365rem}.ui-li-has-checkbox .ui-li-text-sub,.ui-li-has-radio .ui-li-text-sub{padding-left:1.6363636363636365rem}.ui-li-has-thumb.ui-li-has-checkbox .ui-btn-inner a.ui-link-inherit,.ui-li-has-thumb.ui-li-has-radio .ui-btn-inner a.ui-link-inherit,.ui-li-has-thumb.ui-li-has-checkbox.ui-li-static,.ui-li-has-thumb.ui-li-has-radio.ui-li-static{padding-left:3.5454545454545454rem}.ui-li-has-thumb.ui-li-has-checkbox .ui-li-text-sub,.ui-li-has-thumb.ui-li-has-radio .ui-li-text-sub{padding-left:3.5454545454545454rem}.ui-li.ui-li-has-right-circle-btn .ui-btn-inner a{padding-right:2.1818181818181817rem}.ui-li.ui-li-has-right-btn:not(.ui-swipe) .ui-btn-inner a{padding-right:3.590909090909091rem}.ui-li.ui-li-thumbnail-right .ui-btn-inner a{padding-right:2.3636363636363638rem}.ui-li.ui-li-static.ui-li-has-right-circle-btn{padding-right:2.1818181818181817rem}.ui-li.ui-li-static.ui-li-has-right-btn:not(.ui-swipe){padding-right:3.590909090909091rem}.ui-li.ui-li-static.ui-li-thumbnail-right{padding-right:2.3636363636363638rem}.ui-li-has-icon .ui-btn-inner a.ui-link-inherit,.ui-li-has-icon.ui-li-static{min-height:20px;padding-left:40px}.ui-li-has-icon .ui-li-text-sub{padding-left:40px}.ui-li-heading{font-size:16px;font-weight:700;display:block;margin:.6em 0;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li-thumb,.ui-li-icon{position:absolute;left:1px;top:0;max-height:3.272727272727273rem;max-width:3.272727272727273rem}.ui-listview * .ui-btn-inner>.ui-btn>.ui-btn-inner{border-top:0}.ui-li-sub,.ui-li-sub-setting{float:right;text-align:right;font-size:.7272727272727273rem;margin:.3em 0}.ui-li-text-sub{float:right;text-align:right;font-size:.7272727272727273rem;color:#808080;position:absolute;right:0;top:.9090909090909092rem;width:95%;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li-text-sub>img{position:relative;width:.7727272727272727rem;height:.7727272727272727rem;margin:0 .36363636363636365rem 0 .36363636363636365rem}.ui-li-text-sub2{float:right;text-align:right;font-size:.7272727272727273rem;color:#808080;position:absolute;right:0;top:.7272727272727273rem;width:60%;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li-text-sub2>img{width:.7727272727272727rem;height:.7727272727272727rem;margin:0 0 0 .36363636363636365rem}.ui-li-has-multiline .ui-li-text-sub{position:absolute;text-align:left;right:auto;left:0;top:1.590909090909091rem;margin-top:0;width:90%;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li-has-multiline.ui-li-has-right-btn .ui-btn-inner a .ui-li-text-sub{width:74%}.ui-li-has-multiline.ui-li-has-right-btn.ui-li-has-thumb .ui-btn-inner a .ui-li-text-sub{width:64%}.ui-li-has-multiline.ui-li-static.ui-li-has-right-btn .ui-li-text-sub{width:74%}.ui-li-has-multiline.ui-li-static.ui-li-has-right-btn.ui-li-has-thumb .ui-li-text-sub{width:64%}.ui-li-icon-sub-right,.ui-li-icon-sub{position:absolute;left:auto;width:.7727272727272727rem;height:.7727272727272727rem;margin:0 0}.ui-li-icon-sub-right{right:.36363636363636365rem}.ui-listview li.ui-li-dialogue{margin-left:.18181818181818182rem;margin-right:.18181818181818182rem;padding-left:.4545454545454546rem;padding-right:.4545454545454546rem;border-style:solid;border-color:#0c0f14;border-width:1px;border-top-width:0}.ui-listview li.ui-li-dialogue>.ui-btn-inner{margin-left:0;margin-right:0;border-bottom-width:0}.ui-listview li.ui-li-dialogue:first-child{border-top-width:1px;border-top-left-radius:3px;border-top-right-radius:3px}.ui-listview li.ui-li-dialogue:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.ui-listview li.ui-li-dialogue>img{margin-left:.2727272727272727rem}.ui-listview li.ui-li-dialogue [data-role="button"]:last-child{margin-right:.4545454545454546rem}.ui-listview li.ui-li-dialogue .ui-link-inherit>.ui-btn{margin-right:0}.ui-listview li.ui-li-dialogue.ui-li-static .ui-li-text-sub,.ui-listview li.ui-li-dialogue.ui-li-static .ui-toggle-switch{right:.4545454545454546rem}.ui-listview li.ui-li-dialogue.ui-li-static.ui-li-has-checkbox,.ui-listview li.ui-li-dialogue.ui-li-static.ui-li-has-radio{padding-left:1.6363636363636365rem}.ui-listview li.ui-li-dialogue.ui-li-static .ui-checkbox,.ui-listview li.ui-li-dialogue.ui-li-static .ui-radio{left:0}.ui-listview li.ui-li-dialogue.ui-li-has-multiline.ui-li-static .ui-li-text-sub{padding-left:.4545454545454546rem}.ui-listview li.ui-li-dialogue.ui-li-has-multiline.ui-li-static .ui-li-text-sub2{padding-right:.4545454545454546rem}.ui-listview li.ui-li-dialogue.ui-li-has-multiline.ui-li-static.ui-li-has-checkbox .ui-li-text-sub,.ui-listview li.ui-li-dialogue.ui-li-has-multiline.ui-li-static.ui-li-has-radio .ui-li-text-sub{padding-left:1.9090909090909092rem}.ui-listview li.ui-li-divider+.ui-li-dialogue{border-top-width:1px}.ui-listview>li.ui-li-dialogue.ui-body-s:not(.ui-li-expanded),.ui-listview>li.ui-li-dialogue.ui-btn-hover-up-s:not(.ui-btn-down-s):not(.ui-li-expanded),.ui-listview>li.ui-li-dialogue.ui-btn-up-s:not(.ui-li-expanded){background:#2a2d30}.ui-listview>li.ui-li-dialogue.ui-li-expanded{padding-left:1.1818181818181819rem;background:#dcdad3}.ui-listview>li.ui-li-dialogue.ui-li-divider{height:1.4545454545454546rem;padding:0}.ui-listview>li.ui-li-group-title{padding-top:1.4545454545454546rem}.ui-listview>li.ui-li-group-title span{padding-left:.7272727272727273rem}.ui-listview>li.ui-li-dialogue-divider{padding-top:.9090909090909092rem;padding-bottom:0rem;padding-left:.4545454545454546rem;margin-left:.18181818181818182rem;margin-right:.18181818181818182rem;background:#2a2d30;font-size:.7272727272727273rem;font-weight:700;color:#3b73b6}.ui-listview li.ui-li-dialogue-edit{padding-left:5.2727272727272725rem;padding-top:.5454545454545454rem;padding-bottom:.5454545454545454rem}.ui-listview li.ui-li-dialogue-edit .ui-edit-title{position:absolute;left:.4545454545454546rem;width:4.136363636363637rem;padding-right:.36363636363636365rem;display:inline-block;top:50%;margin-top:-.5909090909090909rem;border-right-color:#b9b8b2;border-right-width:1px;border-right-style:solid}.ui-listview li.ui-li-dialogue-edit input{font-size:1rem;background:transparent;outline-color:transparent;width:100%;padding-left:0;padding-right:0}.ui-listview>.ui-li.ui-li-dialogue-edit.ui-li-has-right-btn{padding-right:5rem}.ui-listview .ui-li-static.ui-li-bubble-receive,.ui-listview .ui-li-static.ui-li-bubble-left{color:#fff}.ui-listview .ui-li-static.ui-li-bubble-receive>.ui-li-bubble-time,.ui-listview .ui-li-static.ui-li-bubble-left>.ui-li-bubble-time{color:#d30000}.ui-listview .ui-li-static.ui-li-bubble-sent,.ui-listview .ui-li-static.ui-li-bubble-right{color:#000}.ui-listview .ui-li-static.ui-li-bubble-sent>.ui-li-bubble-time,.ui-listview .ui-li-static.ui-li-bubble-right>.ui-li-bubble-time{color:#39a6d7}.ui-listview .ui-li-static.ui-li-bubble-sos{color:#e94949}.ui-listview .ui-li-static.ui-li-bubble-sos>.ui-li-bubble-time{color:#d30000}.ui-listview .ui-li-static.ui-li-bubble-date{background-color:rgba(225,225,225,0);color:#686868;font-style:italic}.ui-listview span.ui-li-bubble-time{font-weight:700}.ui-listview .ui-li-bubble-receive,.ui-listview .ui-li-bubble-left,.ui-listview .ui-li-bubble-sent,.ui-listview .ui-li-bubble-right,.ui-listview .ui-li-bubble-sos{display:inline-block;background-clip:padding-box;max-width:100%;word-wrap:break-word;font-size:.8636363636363636rem}.ui-listview .ui-li-bubble-receive p,.ui-listview .ui-li-bubble-left p,.ui-listview .ui-li-bubble-sent p,.ui-listview .ui-li-bubble-right p,.ui-listview .ui-li-bubble-sos p,.ui-listview .ui-li-bubble-receive span,.ui-listview .ui-li-bubble-left span,.ui-listview .ui-li-bubble-sent span,.ui-listview .ui-li-bubble-right span,.ui-listview .ui-li-bubble-sos span{font-size:.8636363636363636rem}.ui-listview .ui-li-bubble-receive img,.ui-listview .ui-li-bubble-left img,.ui-listview .ui-li-bubble-sent img,.ui-listview .ui-li-bubble-right img,.ui-listview .ui-li-bubble-sos img{position:relative;min-width:7.272727272727273rem;min-height:7.272727272727273rem}.ui-listview .ui-li-bubble-receive,.ui-listview .ui-li-bubble-left{margin-left:0;margin-right:1.6rem;border-image-source:url(images/00_messagebubble_bg_receive.9.png);border-image-slice:57 14 21 48 fill;border-image-width:auto;padding:9px 14px 21px 48px}.ui-listview .ui-li-bubble-receive>.ui-li-bubble-time,.ui-listview .ui-li-bubble-left>.ui-li-bubble-time{position:absolute;display:inline-block;bottom:.36363636363636365rem;left:100%;font-size:.5rem}.ui-listview .ui-li-bubble-sent,.ui-listview .ui-li-bubble-right{margin-left:1.6rem;margin-right:0;border-image-source:url(images/00_messagebubble_bg_sent.9.png);border-image-slice:55 47 20 13 fill;border-image-width:auto;padding:9px 47px 20px 13px}.ui-listview .ui-li-bubble-sent>.ui-li-bubble-time,.ui-listview .ui-li-bubble-right>.ui-li-bubble-time{position:absolute;display:inline-block;bottom:.36363636363636365rem;right:100%;font-size:.5rem}.ui-listview .ui-li-bubble-date{float:left;width:100%;height:1.0909090909090908rem;background-image:url(images/00_messagebubble_date_bg.png);background-repeat:repeat-x;background-position:center center;font-size:.7272727272727273rem;margin:.9090909090909092rem .2727272727272727rem;border:0 none red;padding:0 0;padding-top:.5em;text-align:center}.ui-listview .ui-li-bubble-date *{display:inline-block;background-color:#202327;padding-left:.5em;padding-right:.5em}@-webkit-keyframes addliitem{from{ -webkit-transform:scale(0.5);-moz-transform:scale(0.5);opacity:0}to{-webkit-transform:scale(1);-moz-transform:scale(1);opacity:1}}.addli{-webkit-animation-name:addliitem;-moz-animation-name:addliitem;-webkit-animation-duration:.5s;-moz-animation-duration:.5s;-webkit-transition-timing-function:linear;-moz-transition-timing-function:linear}@-webkit-keyframes removeliitem{from{ -webkit-transform:scale(1);-moz-transform:scale(1);opacity:1}to{-webkit-transform:scale(0.5);-moz-transform:scale(0.5);opacity:0}}.removeli{-webkit-animation-name:removeliitem;-moz-animation-name:removeliitem;-webkit-animation-duration:.5s;-moz-animation-duration:.5s;-webkit-transition-timing-function:linear;-moz-transition-timing-function:linear}.ui-controlgroup .ui-radio>.ui-btn{background:#202327}.ui-controlgroup .ui-btn-text{font-size:.7727272727272727rem;font-weight:700;color:#c7c7c7}.ui-controlgroup .ui-btn-inner .ui-corner-left .ui-controlgroup-first{-o-border-radius:.3em;-ms-border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em}.ui-controlgroup .ui-btn-inner .ui-corner-right .ui-controlgroup-last{-o-border-radius:.3em;-ms-border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em}.ui-controlgroup .ui-radio-off.ui-btn-hover-s.ui-btn-down-s .ui-btn-inner,.ui-controlgroup .ui-radio-on .ui-btn-inner{color:#3b7796}.ui-controlgroup .ui-radio-off .ui-btn-inner{color:#c7c7c7}.ui-controlgroup.ui-controlgroup-horizontal .ui-radio .ui-btn-down-s .ui-btn-inner{background:-webkit-linear-gradient(top, #000 0, #202327 100%)}ul.ui-virtual-list-container>li.position_absolute{position:absolute}ul.ui-virtual-list-container>ul.position_absolute{position:absolute}.ui-scrollview-clip{position:relative}.ui-scrollview-view{overflow-x:hidden;overflow-y:visible}.ui-scrolllistview .ui-li-divider{z-index:10}.ui-scrollbar{position:absolute;overflow:hidden;opacity:0}.ui-scrollbar-visible{opacity:1}.ui-scrollbar-y{top:.09090909090909091rem;right:.09090909090909091rem;bottom:.09090909090909091rem;width:.36363636363636365rem}.ui-scrollbar-x{right:.09090909090909091rem;bottom:.09090909090909091rem;left:.09090909090909091rem;height:.36363636363636365rem}.ui-scrollbar-track{position:relative;width:100%;height:100%}.ui-scrollbar-thumb{position:absolute;top:0;left:0;background-color:#393b41}.ui-scrollbar-y .ui-scrollbar-thumb{width:.2272727272727273rem;height:100%;-o-border-radius:.09090909090909091rem;-ms-border-radius:.09090909090909091rem;-moz-border-radius:.09090909090909091rem;-webkit-border-radius:.09090909090909091rem;border-radius:.09090909090909091rem;-o-box-shadow:.045454545454545456rem .045454545454545456rem .09090909090909091rem #94928c;-ms-box-shadow:.045454545454545456rem .045454545454545456rem .09090909090909091rem #94928c;-moz-box-shadow:.045454545454545456rem .045454545454545456rem .09090909090909091rem #94928c;-webkit-box-shadow:.045454545454545456rem .045454545454545456rem .09090909090909091rem #94928c;box-shadow:.045454545454545456rem .045454545454545456rem .09090909090909091rem #94928c}.ui-scrollbar-x .ui-scrollbar-thumb{width:100%;height:.2272727272727273rem;-o-border-radius:.09090909090909091rem;-ms-border-radius:.09090909090909091rem;-moz-border-radius:.09090909090909091rem;-webkit-border-radius:.09090909090909091rem;border-radius:.09090909090909091rem}.ui-scroll-jump-top-bg{position:absolute;top:.4090909090909091rem;right:.5909090909090909rem;width:1.6818181818181819rem;height:1.6818181818181819rem}.ui-scroll-jump-left-bg{position:absolute;bottom:.4090909090909091rem;left:.5909090909090909rem;width:1.6818181818181819rem;height:1.6818181818181819rem}.ui-overflow-indicator-top{position:absolute;display:block;top:0;width:100%;height:.4545454545454546rem;opacity:0;background:-webkit-gradient(linear,left bottom,left top,color-stop(0, #bababa),color-stop(1, #202327))}.ui-overflow-indicator-bottom{position:absolute;display:block;bottom:0;width:100%;height:.4545454545454546rem;opacity:0;background:-webkit-gradient(linear,left bottom,left top,color-stop(0, #202327),color-stop(1, #bababa))}.ui-content.ui-scrollview-clip{padding:0}.ui-content.ui-scrollview-clip>div.ui-scrollview-view{margin:0;padding-left:.36363636363636365rem;padding-right:.36363636363636365rem}.ui-content.ui-scrollview-clip>.ui-listview.ui-scrollview-view{margin:0}@-webkit-keyframes ui-datetime-in{from{ -webkit-transform:translateY(0.6363636363636364rem) scale(0.9)}to{-webkit-transform:translateY(0) scale(1)}}@-webkit-keyframes ui-datetime-out{from{ opacity:.8;-webkit-transform:translateY(0) scale(0.6)}to{opacity:0;-webkit-transform:translateY(-.6363636363636364rem) scale(0.6)}}.ui-datefield .ui-datefield-seperator{display:inline-block;min-width:.4545454545454546rem;text-align:center}.ui-datefield .date,.ui-datefield .time,.ui-datefield .ui-datefield-tab{display:inline-block}.ui-datefield .ui-datefield-tab{min-width:.9090909090909092rem}.ui-datefield .ui-btn-box-s .ui-btn-inner.ui-btn-hastxt{padding:.1em .5em}.ui-datefield .ui-datefield-selected{display:inline-block;color:#3b73b6}.ui-datefield .ui-datefield-selected.in{-ms-animation:ui-datetime-in .3s 1 ease;-o-animation:ui-datetime-in .3s 1 ease;-moz-animation:ui-datetime-in .3s 1 ease;-webkit-animation:ui-datetime-in .3s 1 ease}.ui-datefield .ui-datefield-selected.out{-ms-animation:ui-datetime-out .3s 1 ease;-o-animation:ui-datetime-out .3s 1 ease;-moz-animation:ui-datetime-out .3s 1 ease;-webkit-animation:ui-datetime-out .3s 1 ease}.ui-datetime{margin:0;height:1.6363636363636365rem}.ui-datetime-text-main{position:relative;font-size:1rem;top:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;padding-top:.3em}.ui-datetime-text-main .ui-datefield-period.ui-btn{margin-top:-.3em;height:1.2727272727272727rem;right:auto;position:relative ! important}.ui-datetime-text-sub{top:.6818181818181819rem ! important;color:#70a9ee ! important;background:transparent ! important;font-size:.7272727272727273rem ! important}.ui-datetimepicker-selector ul{padding:0;display:inline;list-style:none;vertical-align:middle;margin:0}.ui-datetimepicker-selector ul li{font-size:1rem;float:left;padding:.6818181818181819rem .18181818181818182rem 0 .18181818181818182rem;max-width:5.454545454545455rem;min-width:2.7272727272727275rem}.ui-datetimepicker-selector ul li a.ui-link{text-decoration:none;color:rgba(255,255,255,.7)}.ui-datetimepicker-selector ul li a.ui-link:hover{color:rgba(255,255,255,.7)}.ui-datetimepicker-selector ul li.current a.ui-link{color:#fff}.ui-datetimepicker{left:0!important;padding:0}.ui-datetimepicker .ui-popupwindow-padding{background:#3b73b6!important;border-radius:0!important;-ms-border-radius:0!important;-o-border-radius:0!important;-moz-border-radius:0!important;-webkit-border-radius:0!important;box-shadow:0 0 12px rgba(0,0,0,.6)!important;border-width:0!important;text-align:center!important}.ui-datetimepicker .ui-popupwindow-padding div{height:2.409090909090909rem}.ui-popupwindow-screen{background:#000;opacity:0;position:absolute;top:0;left:0;width:100%;height:100%;z-index:1200}.ui-popupwindow{position:absolute;z-index:1201!important;color:#f8f6ef;background:#2a2d30}.ui-popupwindow .popup-title{width:100%;height:100%;font-size:1.0909090909090908rem;background:#5093b6}.ui-popupwindow .popup-title p{margin:0rem 0rem;padding:.5909090909090909rem 0rem}.ui-popupwindow .popup-text{width:100%;color:#f9f9f9;font-size:1.0909090909090908rem;background:#2a2d30}.ui-popupwindow .popup-text p{text-align:center;padding:1rem .7272727272727273rem}.ui-popupwindow .center_info{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center}.ui-popupwindow .center_title{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_basic_1btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_basic_1btn .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_basic_1btn .popup-button-bg .ui-btn{width:18.272727272727273rem;height:3.3636363636363638rem;margin:auto}.ui-popupwindow .center_basic_2btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_basic_2btn .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_basic_2btn .popup-button-bg .ui-btn{width:12.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_basic_3btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_basic_3btn .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_basic_3btn .popup-button-bg .ui-btn{width:8.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_title_1btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_title_1btn .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_title_1btn .popup-button-bg .ui-btn{width:18.272727272727273rem;height:3.3636363636363638rem;margin:auto}.ui-popupwindow .center_title_2btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_title_2btn .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_title_2btn .popup-button-bg .ui-btn{width:12.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_title_3btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_title_3btn .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_title_3btn .popup-button-bg .ui-btn{width:8.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_button_vertical{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_button_vertical .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:1px;padding-bottom:.7272727272727273rem;vertical-align:middle}.ui-popupwindow .center_button_vertical .popup-button-bg .ui-btn{width:16.181818181818183rem;height:3.3636363636363638rem;margin-top:.7272727272727273rem;margin-bottom:0rem;margin-left:auto;margin-right:auto}.ui-popupwindow .center_checkbox{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_checkbox .popup-check-bg{font-size:1.0909090909090908rem;background:#2a2d30;width:100%;padding-top:0rem;padding-bottom:1rem;vertical-align:middle}.ui-popupwindow .center_checkbox .popup-check-bg .ui-checkbox .ui-btn{text-align:center;background:#2a2d30;border:0rem}.ui-popupwindow .center_checkbox .popup-check-bg .ui-checkbox .ui-btn .ui-btn-inner{border:0rem}.ui-popupwindow .center_checkbox .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_checkbox .popup-button-bg .ui-btn{width:12.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_liststyle_1btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_liststyle_1btn .popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:23.272727272727273rem}.ui-popupwindow .center_liststyle_1btn .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_liststyle_1btn .popup-button-bg .ui-btn{width:18.272727272727273rem;height:3.3636363636363638rem;margin:auto}.ui-popupwindow .center_liststyle_2btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_liststyle_2btn .popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:23.272727272727273rem}.ui-popupwindow .center_liststyle_2btn .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_liststyle_2btn .popup-button-bg .ui-btn{width:12.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_liststyle_3btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_liststyle_3btn .popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:23.272727272727273rem}.ui-popupwindow .center_liststyle_3btn .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_liststyle_3btn .popup-button-bg .ui-btn{width:8.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_progressbar{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_progressbar .popup-text{font-size:1.1818181818181819rem;font-color:#999;background:#2a2d30;width:100%;height:3.181818181818182rem}.ui-popupwindow .center_progressbar .popup-text p{height:100%;text-align:center;padding:1rem .7272727272727273rem 0rem .7272727272727273rem}.ui-popupwindow .center_progressbar .popup-text-bottom-bg{font-size:1.1818181818181819rem;font-color:#999;background:#2a2d30;width:100%;vertical-align:middle}.ui-popupwindow .center_progressbar .popup-text-bottom-bg .text-left{width:40%;height:2.1818181818181817rem;padding:0rem .7272727272727273rem 0rem .7272727272727273rem;text-align:left;display:inline-block}.ui-popupwindow .center_progressbar .popup-text-bottom-bg .text-right{width:40%;height:2.1818181818181817rem;padding:0rem .7272727272727273rem 0rem .7272727272727273rem;text-align:right;display:inline-block}.ui-popupwindow .center_progressbar .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_progressbar .popup-button-bg .ui-btn{width:18.272727272727273rem;height:3.3636363636363638rem;margin:auto}.ui-popupwindow .center_progressbar .popup-progress-bg{background:#2a2d30;width:100%;height:100%}.ui-popupwindow .centertext_progressbar{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .centertext_progressbar .popup-text{font-size:1.1818181818181819rem;font-color:#999;background:#2a2d30;width:100%;padding-top:1rem;padding-bottom:.7272727272727273rem}.ui-popupwindow .centertext_progressbar .popup-text p{text-align:center}.ui-popupwindow .centertext_progressbar .popup-text-bottom-bg{font-size:1.1818181818181819rem;font-color:#999;background:#2a2d30;width:100%;vertical-align:middle}.ui-popupwindow .centertext_progressbar .popup-text-bottom-bg .text-left{width:40%;height:1.8181818181818183rem;padding:.7272727272727273rem .7272727272727273rem 1rem .7272727272727273rem;text-align:left;display:inline-block}.ui-popupwindow .centertext_progressbar .popup-text-bottom-bg .text-right{width:40%;height:1.8181818181818183rem;padding:.7272727272727273rem .7272727272727273rem 1rem .7272727272727273rem;text-align:right;display:inline-block}.ui-popupwindow .centertext_progressbar .popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .centertext_progressbar .popup-button-bg .ui-btn{width:18.272727272727273rem;height:3.3636363636363638rem;margin:auto}.ui-popupwindow .centertext_progressbar .popup-progress-bg{background:#2a2d30;width:100%;height:100%}.ui-popupwindow .ui-btn.ui-btn-hover-s{background:#5e88a3}.ui-popupwindow .ui-btn.ui-btn-down-s{background:#43a0d9;background:-webkit-gradient(linear,left top,left bottom,from( #43a0d9),to( #388bb9));background:-moz-linear-gradient(top, #43a0d9, #388bb9);background:-ms-linear-gradient(top, #43a0d9, #388bb9);background:-o-linear-gradient(top, #43a0d9, #388bb9)}.ui-popupwindow>.ui-volumecontrol{display:table;margin:auto;background:rgba(0,0,0,.666667);width:18.90909090909091rem;height:30.727272727272727rem;padding-top:1rem}.ui-popupwindow>.ui-volumecontrol h1{font-size:1.0909090909090908rem;display:table;margin:auto;color:#c0c0c0}.ui-popupwindow>.ui-volumecontrol .ui-volumecontrol-icon{display:table;width:100%;height:5.818181818181818rem;padding-top:.9545454545454546rem;padding-bottom:.9545454545454546rem;padding-left:7.5rem;padding-right:7.5rem}.ui-popupwindow>.ui-volumecontrol .ui-volumecontrol-indicator{display:table;width:100%;height:19.09090909090909rem;padding-left:3.090909090909091rem;padding-right:3.090909090909091rem}.ui-popupwindow>.ui-volumecontrol .ui-corner-all{-o-border-radius:.3em!important;-ms-border-radius:.3em!important;-moz-border-radius:.3em!important;-webkit-border-radius:.3em!important;border-radius:.3em!important}.ui-popupwindow-corner-all{-o-border-radius:0!important;-ms-border-radius:0!important;-moz-border-radius:0!important;-webkit-border-radius:0!important;border-radius:0!important}.ui-ctxpopup{display:table}.ui-ctxpopup .ui-ctxpopup-row .ui-triangle-top{top:2px}.ui-ctxpopup .ui-ctxpopup-row .ui-triangle-left{left:2px}.ui-ctxpopup .ui-ctxpopup-row .ui-triangle-right{right:2px}.ui-ctxpopup .ui-ctxpopup-row .ui-triangle-bottom{bottom:2px}.ui-ctxpopup .ui-ctxpopup-row{display:table-row}.ui-ctxpopup .ui-ctxpopup-row .ui-ctxpopup-cell{display:table-cell}.ui-ctxpopup .ui-ctxpopup-row .ui-popupwindow-padding{background:#444;border:0;-ms-box-shadow:0rem 0rem .5454545454545454rem rgba(0,0,0,.6);-o-box-shadow:0rem 0rem .5454545454545454rem rgba(0,0,0,.6);-moz-box-shadow:0rem 0rem .5454545454545454rem rgba(0,0,0,.6);-webkit-box-shadow:0rem 0rem .5454545454545454rem rgba(0,0,0,.6);box-shadow:0rem 0rem .5454545454545454rem rgba(0,0,0,.6);-o-border-radius:.3em;-ms-border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em}.ui-ctxpopup .ui-listview li.ui-btn-up-s,.ui-ctxpopup .ui-listview li.ui-btn-hover-s{background:transparent}.ui-ctxpopup .ui-listview li:last-child{border-bottom-left-radius:.3em;border-bottom-right-radius:.3em}.ui-ctxpopup .ui-listview li:first-child{border-top-left-radius:.3em;border-top-right-radius:.3em}.ui-ctxpopup .ui-listview{max-width:28.181818181818183rem;border:0}.ui-ctxpopup .ui-listview>.ui-li{color:#fff;border-bottom-color:#2d2d2d;border-top-width:1px;border-top-color:#5b5b5b;margin-left:0;margin-right:0}.ui-ctxpopup .ui-listview>.ui-li:first-child,.ui-ctxpopup .ui-listview>.ui-li:last-child{border-top-width:0}.ui-ctxpopup .ui-listview>.ui-li .ui-btn-inner{margin:0;padding-left:.4545454545454546rem;padding-right:.4545454545454546rem}.ui-ctxpopup .ui-listview li.ui-btn-up-s>.ui-li>.ui-btn-text>a.ui-link-inherit,.ui-ctxpopup .ui-listview li.ui-btn-hover-s>.ui-li>.ui-btn-text>a.ui-link-inherit,.ui-ctxpopup .ui-listview li.ui-btn-down-s>.ui-li>.ui-btn-text>a.ui-link-inherit{color:#fff}.ui-ctxpopup .ui-listview>.ui-li:last-child{border:0}.ui-ctxpopup .horizontal{color:#fff}.ui-ctxpopup .horizontal .icon .ui-btn{padding:0;background:transparent ! important}.ui-ctxpopup .horizontal .icon .ui-btn .ui-btn-icon-only{width:4.363636363636363rem;height:2.909090909090909rem;padding:0}.ui-ctxpopup .horizontal .icon .ui-btn .ui-icon{top:0;height:inherit;width:inherit;margin:0;background-position:center;-ms-background-size:2.1818181818181817rem 2.1818181818181817rem;-moz-background-size:2.1818181818181817rem 2.1818181818181817rem;-o-background-size:2.1818181818181817rem 2.1818181818181817rem;-webkit-background-size:2.1818181818181817rem 2.1818181818181817rem;background-size:2.1818181818181817rem 2.1818181818181817rem}.ui-ctxpopup .horizontal .text{padding:0 .4545454545454546rem;min-width:2.1818181818181817rem}.ui-ctxpopup .horizontal a.ui-link{color:#fff;text-decoration:none}.ui-ctxpopup .horizontal ul{padding:0;display:inline-block;list-style:none;vertical-align:middle;margin:0}.ui-ctxpopup .horizontal li{line-height:1.4545454545454546rem;min-height:1.4545454545454546rem;min-width:2.1818181818181817rem;float:left;display:inline-block;border-right:1px solid #5b5b5b;text-align:center}.ui-ctxpopup .horizontal li:first-of-type{border-top-left-radius:.3em;border-bottom-left-radius:.3em;border-top-right-radius:0 ! important;border-left:0}.ui-ctxpopup .horizontal li:last-of-type{border-top-right-radius:.3em;border-bottom-right-radius:.3em;border-right:0;margin-right:0}.ui-ctxpopup .horizontal .ui-li:first-child,.ui-ctxpopup .horizontal .ui-li:last-child{border-left-width:0}.ui-ctxpopup .horizontal li:active,.ui-ctxpopup .horizontal td:active{background:#3b73b6}.ui-ctxpopup .button table .ui-btn{margin:0rem;padding:0;height:2.5454545454545454rem;width:6rem}.ui-arrow{border-style:solid;border-width:10px;width:0;height:0;position:absolute}.ui-arrow.top{border-color:transparent transparent #444 transparent}.ui-arrow.left{border-color:transparent transparent transparent #444}.ui-arrow.right{border-color:transparent #444 transparent transparent}.ui-arrow.bottom{border-color:#444 transparent transparent transparent}.ui-ctxpopup-container{z-index:1200;display:inline-bloack;position:absolute;padding:0;outline:0}.ui-ctxpopup-container .ui-popup{border:0;background:#444;-o-border-radius:.3em;-ms-border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em}.ui-ctxpopup-container .ui-listview li:first-child{border-top-left-radius:.3em;border-top-right-radius:.3em}.poptop{-webkit-transform-origin:0 0;-moz-transform-origin:0 0}.poptop.in{-webkit-transform:scale(1);-moz-transform:scale(1);opacity:1;-webkit-animation-name:scalepopin;-moz-animation-name:scalepopin;-webkit-animation-duration:350ms;-moz-animation-duration:350ms}.poptop.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;opacity:0;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.poptop.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein}.poptop.out.reverse{-webkit-transform:scale(0.8);-moz-transform:scale(0.8);-webkit-animation-name:scalepopout;-moz-animation-name:scalepopout}@-webkit-keyframes scalepopin{from{ -webkit-transform:scale(0.8);opacity:0}to{-webkit-transform:scale(1);opacity:1}}.popbottom{-webkit-transform-origin:0 100%;-moz-transform-origin:0 100%}.popbottom.in{-webkit-transform:scale(1);-moz-transform:scale(1);opacity:1;-webkit-animation-name:scalepopin;-moz-animation-name:scalepopin;-webkit-animation-duration:350ms;-moz-animation-duration:350ms}.popbottom.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;opacity:0;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.popbottom.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein}.popbottom.out.reverse{-webkit-transform:scale(0.8);-moz-transform:scale(0.8);-webkit-animation-name:scalepopout;-moz-animation-name:scalepopout}@-moz-keyframes scalepopin{from{ -moz-transform:scale(0.8);opacity:0}to{-moz-transform:scale(1);opacity:1}}@-webkit-keyframes scalepopout{from{ -webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(0.8);opacity:0}}@-moz-keyframes scalepopout{from{ -moz-transform:scale(1);opacity:1}to{-moz-transform:scale(0.8);opacity:0}}@-webkit-keyframes ui-scale-animation{from{ -webkit-transform:scaleX(0)}to{-webkit-transform:scaleX(1)}}.ui-progressbar-value{height:100%;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0, #3677c3),color-stop(1, #1d1f22));-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem;-o-box-shadow:-1px -1px 1px #b3c8e2;-ms-box-shadow:-1px -1px 1px #b3c8e2;-moz-box-shadow:-1px -1px 1px #b3c8e2;-webkit-box-shadow:-1px -1px 1px #b3c8e2;box-shadow:-1px -1px 1px #b3c8e2}.ui-progressbar-bg{position:relative;overflow:hidden;top:.2272727272727273rem;height:.3181818181818182rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem;border:1px;border-style:solid;border-color:#1d1f22;-o-box-shadow:1px -1px 1px #1d1f22;-ms-box-shadow:1px -1px 1px #1d1f22;-moz-box-shadow:1px -1px 1px #1d1f22;-webkit-box-shadow:1px -1px 1px #1d1f22;box-shadow:1px -1px 1px #1d1f22;background-color:#000}.ui-progressbar{position:relative;margin-top:.8181818181818182rem;margin-bottom:.8181818181818182rem;margin-left:.9545454545454546rem;margin-right:.9545454545454546rem;height:.8181818181818182rem;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0, #1d1f22),color-stop(1, #000));-o-box-shadow:1px 1px 0 #fff;-ms-box-shadow:1px 1px 0 #fff;-moz-box-shadow:1px 1px 0 #fff;-webkit-box-shadow:1px 1px 0 #fff;box-shadow:1px 1px 0 #fff;-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem}@-webkit-keyframes ui-rotate-animation{from{ -webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}.ui-progress-container-circle{position:absolute}.ui-li .ui-progress-container-circle{top:22%}.ui-progress-circle{position:relative;top:0;height:1.4545454545454546rem;width:1.4545454545454546rem;background:url(images/00_list_process_01.png) no-repeat;-ms-background-size:1.4545454545454546rem 1.4545454545454546rem;-moz-background-size:1.4545454545454546rem 1.4545454545454546rem;-o-background-size:1.4545454545454546rem 1.4545454545454546rem;-webkit-background-size:1.4545454545454546rem 1.4545454545454546rem;background-size:1.4545454545454546rem 1.4545454545454546rem}.ui-progress-circle-running{-webkit-animation:ui-rotate-animation 1s infinite linear}@-webkit-keyframes ui-move-animation{from{ -webkit-transform:translateY(-.6363636363636364rem)}to{-webkit-transform:translateY(0)}}.ui-progress-pending{position:relative;top:0;width:100%;height:.9545454545454546rem;padding-top:0;padding-bottom:0;background:-webkit-gradient(linear,left top,right bottom,color-stop(0%,rgba(0,0,0,0)),color-stop(25%,rgba(0,0,0,0)),color-stop(25%, #3677c3),color-stop(50%, #3677c3),color-stop(50%,rgba(0,0,0,0)),color-stop(75%,rgba(0,0,0,0)),color-stop(75%, #3677c3));background-color:#000;-ms-background-size:.6363636363636364rem .6363636363636364rem;-moz-background-size:.6363636363636364rem .6363636363636364rem;-o-background-size:.6363636363636364rem .6363636363636364rem;-webkit-background-size:.6363636363636364rem .6363636363636364rem;background-size:.6363636363636364rem .6363636363636364rem}.ui-progress-pending-running{-webkit-animation:ui-move-animation .5s infinite linear}label.ui-slider{display:block}select.ui-slider-switch{display:none}.ui-slider-container{position:relative;vertical-align:middle;height:.8181818181818182rem;margin-left:.7272727272727273rem;margin-right:.7272727272727273rem;margin-top:.8181818181818182rem;margin-bottom:.8181818181818182rem;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0, #1d1f22),color-stop(1, #000));-o-box-shadow:1px 1px 0 #fff;-ms-box-shadow:1px 1px 0 #fff;-moz-box-shadow:1px 1px 0 #fff;-webkit-box-shadow:1px 1px 0 #fff;box-shadow:1px 1px 0 #fff;-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem}.ui-li>.ui-slider-container{margin-top:0;margin-bottom:0}.ui-slider-left-volume,.ui-slider-left-bright{position:absolute;vertical-align:middle;top:-.5rem;left:-2.272727272727273rem;height:1.6818181818181819rem;width:1.6818181818181819rem;background:url(images/controls/00_slider_button_brightness_01.png) no-repeat;-ms-background-size:1.6818181818181819rem 1.6818181818181819rem;-moz-background-size:1.6818181818181819rem 1.6818181818181819rem;-o-background-size:1.6818181818181819rem 1.6818181818181819rem;-webkit-background-size:1.6818181818181819rem 1.6818181818181819rem;background-size:1.6818181818181819rem 1.6818181818181819rem}.ui-slider-left-volume{background:url(images/controls/00_slider_button_volume_01.png) no-repeat;-ms-background-size:1.6818181818181819rem 1.6818181818181819rem;-moz-background-size:1.6818181818181819rem 1.6818181818181819rem;-o-background-size:1.6818181818181819rem 1.6818181818181819rem;-webkit-background-size:1.6818181818181819rem 1.6818181818181819rem;background-size:1.6818181818181819rem 1.6818181818181819rem}.ui-slider-right-volume,.ui-slider-right-bright{position:absolute;top:-.5rem;right:-2.272727272727273rem;height:1.6818181818181819rem;width:1.6818181818181819rem;vertical-align:middle;background:url(images/controls/00_slider_button_brightness_02.png) no-repeat;-ms-background-size:1.6818181818181819rem 1.6818181818181819rem;-moz-background-size:1.6818181818181819rem 1.6818181818181819rem;-o-background-size:1.6818181818181819rem 1.6818181818181819rem;-webkit-background-size:1.6818181818181819rem 1.6818181818181819rem;background-size:1.6818181818181819rem 1.6818181818181819rem}.ui-slider-right-volume{background:url(images/controls/00_slider_button_volume_02.png) no-repeat;-ms-background-size:1.6818181818181819rem 1.6818181818181819rem;-moz-background-size:1.6818181818181819rem 1.6818181818181819rem;-o-background-size:1.6818181818181819rem 1.6818181818181819rem;-webkit-background-size:1.6818181818181819rem 1.6818181818181819rem;background-size:1.6818181818181819rem 1.6818181818181819rem}.ui-slider-left-text{position:absolute;top:-.5rem;height:1.6818181818181819rem;text-align:center;color:#bababa}.ui-slider-right-text{position:absolute;top:-.5rem;height:1.6818181818181819rem;text-align:center;color:#bababa}div.ui-slider:not(.ui-toggle-switch){position:relative;top:.2272727272727273rem;height:.3181818181818182rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem;border:1px;border-style:solid;border-color:#1d1f22;-o-box-shadow:1px 1px 0 #fff;-ms-box-shadow:1px 1px 0 #fff;-moz-box-shadow:1px 1px 0 #fff;-webkit-box-shadow:1px 1px 0 #fff;box-shadow:1px 1px 0 #fff;background-color:#000}div.ui-slider:not(.ui-toggle-switch) .ui-btn{top:-.75rem;margin-top:0}div.ui-slider:not(.ui-toggle-switch) .ui-btn-inner{padding:.3rem 0 0 0}div.ui-slider:not(.ui-toggle-switch) .ui-btn-text{color:#fff}a.ui-slider-handle{position:relative;z-index:10;width:1.6363636363636365rem;height:1.6363636363636365rem;margin-left:-.8636363636363636rem;color:#fff;font-size:.95rem;background:url(images/controls/00_slider_handle.png) no-repeat;-ms-background-size:1.6363636363636365rem 1.6363636363636365rem;-moz-background-size:1.6363636363636365rem 1.6363636363636365rem;-o-background-size:1.6363636363636365rem 1.6363636363636365rem;-webkit-background-size:1.6363636363636365rem 1.6363636363636365rem;background-size:1.6363636363636365rem 1.6363636363636365rem}.ui-slider-popup{position:absolute!important;z-index:1200;width:2.0454545454545454rem;height:2.4545454545454546rem;padding-top:.1rem;color:#f9f9f9;text-align:center;font-size:1.5rem;background:url(images/controls/00_slider_popup_bg.png) no-repeat;-ms-background-size:2.0454545454545454rem 2.4545454545454546rem;-moz-background-size:2.0454545454545454rem 2.4545454545454546rem;-o-background-size:2.0454545454545454rem 2.4545454545454546rem;-webkit-background-size:2.0454545454545454rem 2.4545454545454546rem;background-size:2.0454545454545454rem 2.4545454545454546rem}.ui-slider-bg{position:absolute;height:.3181818181818182rem;width:0;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0, #3677c3),color-stop(1, #1d1f22));-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem;-o-box-shadow:-1px -1px 1px #b3c8e2;-ms-box-shadow:-1px -1px 1px #b3c8e2;-moz-box-shadow:-1px -1px 1px #b3c8e2;-webkit-box-shadow:-1px -1px 1px #b3c8e2;box-shadow:-1px -1px 1px #b3c8e2}.ui-slider-handle-press{position:absolute;z-index:15;width:1.6818181818181819rem;height:1.6818181818181819rem;background:url(images/controls/00_slider_handle_press.png) no-repeat;-ms-background-size:1.6363636363636365rem 1.6363636363636365rem;-moz-background-size:1.6363636363636365rem 1.6363636363636365rem;-o-background-size:1.6363636363636365rem 1.6363636363636365rem;-webkit-background-size:1.6363636363636365rem 1.6363636363636365rem;background-size:1.6363636363636365rem 1.6363636363636365rem}.ui-gallery{position:relative;width:100%}.ui-gallery-bg{display:none;position:absolute;text-align:center;width:100%}@-webkit-keyframes ui-ticker-show{from{ opacity:0;-webkit-transform:translateY(-2.272727272727273rem);top:-2.272727272727273rem}to{opacity:1;-webkit-transform:translateY(0);top:0}}@-webkit-keyframes ui-ticker-hide{from{ opacity:1;-webkit-transform:translateY(0);top:0}to{opacity:0;-webkit-transform:translateY(-2.272727272727273rem);top:-2.272727272727273rem}}.ui-ticker{position:fixed;display:none;left:0;width:100%;height:2.272727272727273rem;z-index:2147483547;background:#444}.ui-ticker.fix{display:block;top:0}.ui-ticker.show{display:block;-ms-animation:ui-ticker-show .8s 1 ease;-o-animation:ui-ticker-show .8s 1 ease;-moz-animation:ui-ticker-show .8s 1 ease;-webkit-animation:ui-ticker-show .8s 1 ease;top:0}.ui-ticker.hide{display:block;-o-animation:ui-ticker-hide .8s 1 ease;-ms-animation:ui-ticker-hide .8s 1 ease;-webkit-animation:ui-ticker-hide .8s 1 ease;top:-2.272727272727273rem}.ui-ticker-btn{position:relative;margin-top:.4545454545454546rem;margin-left:.36363636363636365rem;margin-right:.36363636363636365rem;vertical-align:middle;float:right}.ui-ticker-btn .ui-btn-inner{padding:.15rem 0 0 0;height:1.2727272727272727rem;width:3.5rem;font-size:.81rem;color:#fff;background:#404040;border:1px;border-color:#323232;box-shadow:0 0 1px 1px #323232}.ui-ticker-btn .ui-btn-box-s.ui-btn-up-s{background:#404040;box-shadow:0 0 1px 1px #323232;border-color:#323232}.ui-ticker-btn .ui-btn-box-s.ui-btn-hover-s{background:#404040;box-shadow:0 0 1px 1px #323232;border-color:#323232}.ui-ticker-icon{position:absolute;top:0;height:1.4545454545454546rem;width:1.4545454545454546rem;margin-top:.4090909090909091rem;margin-bottom:.4090909090909091rem;margin-left:.36363636363636365rem;margin-right:.36363636363636365rem;vertical-align:middle}.ui-ticker-text1-bg{position:absolute;top:0;height:.8181818181818182rem;left:2.1818181818181817rem;margin-top:.36363636363636365rem;font-size:.68rem;color:#fff}.ui-ticker-text2-bg{position:absolute;top:0;height:.7272727272727273rem;left:2.1818181818181817rem;margin-top:1.1818181818181819rem;font-size:.54rem;color:#fff}@-webkit-keyframes ui-smallpopup-show{from{ opacity:0;-webkit-transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1)}}@-webkit-keyframes ui-smallpopup-hide{from{ opacity:1;left:0;-webkit-transform:scaleY(1)}to{opacity:0;left:0;-webkit-transform:scaleY(0)}}.ui-smallpopup{position:fixed;display:none;left:0;width:100%;z-index:1100;background:#444;vertical-align:middle;font-size:.72rem;word-break:break-all}.ui-smallpopup.fix{display:block}.ui-smallpopup.show{display:block;-moz-animation:ui-smallpopup-show .5s 1 ease;-ms-animation:ui-smallpopup-show .5s 1 ease;-o-animation:ui-smallpopup-show .5s 1 ease;-webkit-animation:ui-smallpopup-show .5s 1 ease}.ui-smallpopup.hide{display:block;left:-100%;-moz-animation:ui-smallpopup-hide .5s 1 ease;-ms-animation:ui-smallpopup-hide .5s 1 ease;-o-animation:ui-smallpopup-hide .5s 1 ease;-webkit-animation:ui-smallpopup-hide .5s 1 ease}.ui-smallpopup-text-bg{position:relative;margin-top:.18181818181818182rem;margin-bottom:.18181818181818182rem;margin-left:.36363636363636365rem;margin-right:.36363636363636365rem;color:#fff}.ui-swipe{list-style-type:none;overflow:hidden}.ui-swipe-item{height:1.1818181818181819rem;-ms-user-select:none;-o-user-select:none;-moz-user-select:none;-webkit-user-select:none;-user-select:none;opacity:0;text-align:center}.ui-swipe-item .ui-btn{margin-top:-1.5em ! important;position:relative ! important}.ui-swipe-item p{margin:0}.ui-swipe-item-cover{position:absolute;border:0;top:0;left:0;width:100%;height:100%;z-index:100}.ui-swipe-item-cover .ui-swipe-item-cover-inner{position:absolute;padding-top:.6818181818181819rem;padding-bottom:.6818181818181819rem;padding-left:.36363636363636365rem;width:100%;text-align:left}.ui-swipe-item-cover .ui-swipe-item-cover-inner .ui-li-text-sub{position:absolute;padding-right:.7272727272727273rem}.ui-swipe-item-cover p{margin:0}.ui-fastscroll{position:absolute;right:0rem;background-color:#21344a;width:1.1363636363636365rem;-ms-user-select:none;-o-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none;margin:0;padding-right:.08em;opacity:1}.ui-fastscroll ul{list-style-type:none;margin:0;padding:0}.ui-fastscroll li{cursor:pointer;color:#d7d7d7;padding:.09090909090909091rem .09090909090909091rem .09090909090909091rem .09090909090909091rem;text-align:center;vertical-align:middle;font-size:.7272727272727273rem;font-weight:700;border-left-width:.13636363636363635rem;border-left-color:#3b73b6;border-left-style:solid;border-top-width:.13636363636363635rem;border-top-color:#21344a}.ui-fastscroll2{position:absolute;right:0rem;-ms-user-select:none;-o-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none;margin:0;padding-right:.08em;opacity:1}.ui-fastscroll2 ul{list-style-type:none;margin:0;padding:0}.ui-fastscroll2 li{cursor:pointer;color:#d7d7d7;padding:.09090909090909091rem .09090909090909091rem .09090909090909091rem .09090909090909091rem;text-align:right}.ui-fastscroll-bg{position:absolute;right:0rem;background-color:#21344a;width:1.1363636363636365rem;z-index:10;top:0}.ui-fastscroll-popup{position:absolute;background:#3b73b6;color:#fff;padding:.4545454545454546rem 1.3636363636363638rem;-ms-box-shadow:.36363636363636365rem .4545454545454546rem 0rem rgba(199,199,199,.5);-o-box-shadow:.36363636363636365rem .4545454545454546rem 0rem rgba(199,199,199,.5);-moz-box-shadow:.36363636363636365rem .4545454545454546rem 0rem rgba(199,199,199,.5);-webkit-box-shadow:.36363636363636365rem .4545454545454546rem 0rem rgba(199,199,199,.5);box-shadow:.36363636363636365rem .4545454545454546rem 0rem rgba(199,199,199,.5);text-align:center;font-size:3.409090909090909rem;font-weight:700;display:none;box-sizing:border-box;left:50%;top:50%}li.ui-fastscroll-hover{color:#3b73b6}li.ui-fastscroll-hover,li.ui-fastscroll-hover-up,li.ui-fastscroll-hover-down{background:#202327;border-style:solid;border-color:#3b73b6;border-width:0;border-right-width:.13636363636363635rem;border-left-width:1px;border-left-color:#202327}li.ui-fastscroll-hover{padding-top:.045454545454545456rem;padding-bottom:.045454545454545456rem}li.ui-fastscroll-hover-first-item{padding-top:.09090909090909091rem}li.ui-fastscroll-hover-up{border-top-width:.13636363636363635rem;padding-top:0}li.ui-fastscroll-hover-down{border-bottom-width:.13636363636363635rem;padding-bottom:0}div.ui-slider.ui-toggle-switch{width:3rem;height:1.590909090909091rem;background-color:transparent;margin-top:.2272727272727273rem;margin-bottom:.2272727272727273rem}div.ui-slider.ui-toggle-switch .ui-slider-label{position:absolute;width:3rem;height:1.590909090909091rem;background-size:100% 100%;background-repeat:no-repeat;background-color:transparent}div.ui-slider.ui-toggle-switch .ui-slider-label.ui-slider-label-a{background-image:url(images/00_button_on.png)}div.ui-slider.ui-toggle-switch .ui-slider-label.ui-slider-label-b{background-image:url(images/00_button_off.png)}div.ui-slider.ui-toggle-switch .ui-slider-inneroffset a{background:0}.ui-slider-switch:not(.ui-toggle-switch){width:4.181818181818182rem}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch){position:relative;margin-top:.2272727272727273rem;margin-bottom:.2272727272727273rem;height:1.4545454545454546rem;top:0;margin:.2272727272727273rem;border-radius:.6818181818181819rem}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) .ui-slider-inneroffset{position:relative;margin:-1px .7272727272727273rem;z-index:1}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) a.ui-slider-handle{position:absolute;background:#fff;background-image:-webkit-gradient(radial,50% 50%,0,50% 50%,50,from( #f9f9f9),to( #323232));-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);top:50%;margin:1px 0 0 -.6818181818181819rem;border-radius:.6818181818181819rem;border:2px solid gray;width:1.2727272727272727rem;height:1.2727272727272727rem}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) a.ui-slider-handle-snapping{-webkit-transition:left 70ms linear}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) span{position:absolute;overflow:hidden;text-align:center;height:1.4545454545454546rem;font-weight:700;font-size:.7272727272727273rem;border-radius:.6818181818181819rem;white-space:nowrap;line-height:2}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) span.ui-slider-label-a{left:0;color:#fff;z-index:1;text-indent:-1.5em}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) span.ui-slider-label-b{right:0;color:#fff;z-index:0;text-indent:1.5em}.ui-slider-switch .ui-slider-handle .ui-btn-inner{padding:0}.ui-triangle-container{position:relative}.ui-triangle-container .ui-triangle{position:absolute;border-style:solid;border-color:transparent;border-width:10px}.ui-triangle-container .ui-triangle-top{top:0;border-top-width:0;border-left-color:transparent;border-right-color:transparent;margin-left:-10px}.ui-triangle-container .ui-triangle-bottom{bottom:0;border-bottom-width:0;border-left-color:transparent;border-right-color:transparent;margin-left:-10px}.ui-triangle-container .ui-triangle-left{left:0;margin-top:-10px;border-left-width:0;border-left-color:transparent;border-right-color:transparent}.ui-triangle-container .ui-triangle-right{right:0;margin-top:-10px;border-right-width:0;border-left-color:transparent;border-right-color:transparent}.ui-triangle-container-top{height:10px;top:0;margin-top:-10px}.ui-triangle-container-bottom{height:10px;bottom:0;margin-bottom:-10px}.ui-triangle-container-left{width:10px}.ui-triangle-container-right{width:10px}.ui-tokentextarea{display:table;outline:0;position:relative}.ui-tokentextarea .ui-tokentextarea-label{display:inline-block;position:relative;margin-left:5px;margin-right:5px;padding:10px 0;color:#808080;font-weight:700;text-align:center;font-size:1em}.ui-tokentextarea-input{outline:0;position:relative;border:0!important;padding:0!important;margin:8px;color:#222;text-align:left;font-size:1em}.ui-tokentextarea-input-visible{display:inline-block!important}.ui-tokentextarea-input-invisible{display:none!important}.ui-tokentextarea div{display:inline-block;text-align:center;cursor:pointer;position:relative;margin-left:5px;margin-right:5px;margin-bottom:5px;margin-top:5px;padding:3px 8px;font-size:1em;text-shadow:0 .1em .1em rgba(0,0,0,.3);-ms-border-radius:.2em;-o-border-radius:.2em;-webkit-border-radius:.2em;-moz-border-radius:.2em;border-radius:.2em;-o-box-shadow:0 .1em .1em rgba(0,0,0,.2);-ms-box-shadow:0 .1em .1em rgba(0,0,0,.2);-moz-box-shadow:0 .1em .1em rgba(0,0,0,.2);-webkit-box-shadow:0 .1em .1em rgba(0,0,0,.2);box-shadow:0 .1em .1em rgba(0,0,0,.2);color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}div.ui-tokentextarea-block{background-color:#5f8abd;background-image:url(./images/00_contacts_button_header.png);background-size:contain;background-repeat:no-repeat;padding-left:11px}div.ui-tokentextarea-sblock{background-color:#365984;background-image:url(./images/00_contacts_button_header_press.png);background-size:contain;background-repeat:no-repeat;padding-left:11px}.ui-tokentextarea .ui-tokentextarea-desclabel{display:inline-block;outline:0;position:relative;border:0;color:#808080;text-align:left;font-size:1em}.ui-tokentextarea-link-base{position:absolute;right:0;bottom:.2em}.ui-handler{position:absolute;overflow:hidden;opacity:0}.ui-handler-visible{opacity:1}.ui-handler-direction-y{top:.2272727272727273rem;right:.2272727272727273rem;bottom:.2272727272727273rem;width:1.0909090909090908rem}.ui-handler-direction-x{right:.2272727272727273rem;bottom:.2272727272727273rem;left:.2272727272727273rem;height:1.0909090909090908rem}.ui-handler-track{position:relative;width:100%;height:100%}.ui-handler-thumb{position:absolute;top:0;left:0;background-position:center;background-repeat:no-repeat;-o-border-radius:.11363636363636365rem;-ms-border-radius:.11363636363636365rem;-moz-border-radius:.11363636363636365rem;-webkit-border-radius:.11363636363636365rem;border-radius:.11363636363636365rem}.ui-handler-direction-y .ui-handler-thumb{width:1.0909090909090908rem;height:4.863636363636364rem;background-size:1.0909090909090908rem .9090909090909092rem}.ui-handler-direction-x .ui-handler-thumb{width:4.863636363636364rem;height:1.0909090909090908rem;background-size:.9090909090909092rem 1.0909090909090908rem}.ui-handler-s .ui-handler-thumb{background-color:rgba(150,150,150,.5)}.ui-handler-s .ui-handler-direction-y .ui-handler-thumb{background-image:url("images/00_scroll_bar_handler.png")}.ui-handler-s .ui-handler-direction-x .ui-handler-thumb{background-image:url("images/00_scroll_bar_handler_hor.png")}.ui-virtualgrid{overflow:hidden;position:absolute}.ui-virtualgrid-wrapblock{position:absolute;left:0}.ui-virtualgrid-wrapblock-x{float:left;overflow:hidden}.ui-scrollbar-thumb-x{width:1.5rem!important}.ui-scrollbar-thumb-y{height:1.5rem!important}.ui-virtualgrid-overflow-indicator-x-top{position:absolute;display:block;left:0;top:0;width:56%;height:100%;opacity:0;background-repeat:no-repeat;-webkit-background-size:100% 100%;background-image:url(./images/00_grid_overscrolling_left.png);pointer-events:none}.ui-virtualgrid-overflow-indicator-x-bottom{position:absolute;display:block;right:0;bottom:0;width:56%;height:100%;opacity:0;background-repeat:no-repeat;-webkit-background-size:100% 100%;background-image:url(./images/00_grid_overscrolling_right.png);pointer-events:none}.ui-virtualgrid-overflow-indicator-y-top{position:absolute;display:block;top:0;width:100%;height:32%;opacity:0;background-repeat:no-repeat;-webkit-background-size:100% 100%;background-image:url(./images/00_grid_overscrolling_top.png);pointer-events:none}.ui-virtualgrid-overflow-indicator-y-bottom{position:absolute;display:block;bottom:0;width:100%;height:32%;opacity:0;background-repeat:no-repeat;-webkit-background-size:100% 100%;background-image:url(./images/00_grid_overscrolling_bottom.png);pointer-events:none}.ui-content.ui-virtualgrid-content{padding:0}.ui-multimediaview{background-color:#f9f9f9;overflow:hidden}.ui-multimediaview-wrap{width:100%;padding:0;position:relative;overflow:hidden}.ui-multimediaview-siblings-off{display:none!important}.ui-multimediaview-control span{display:inline-block}.ui-multimediaview-video{position:absolute}.ui-multimediaview-control{display:block;z-index:1002;padding:0;margin:0;outline:0;border:0;height:1.9090909090909092rem;text-align:left;overflow:hidden}.ui-multimediaview-control span.ui-button{background-position:center center;background-size:80%;background-repeat:no-repeat;width:1.6818181818181819rem;height:1.6818181818181819rem;margin:.09090909090909091rem}.ui-multimediaview-control .ui-playpausebutton{float:left}.ui-multimediaview-control .ui-timestamplabel{text-align:center;float:left}.ui-multimediaview-control .ui-timestamplabel p{margin-top:-.22272727272727275rem;margin-left:.09090909090909091rem;padding:0;text-align:center;font-size:.5rem;line-height:.6363636363636364rem;text-align:left}.ui-multimediaview-control .ui-durationlabel{text-align:center;float:right}.ui-multimediaview-control .ui-durationlabel p{margin-top:-.22272727272727275rem;margin-right:.09090909090909091rem;padding:0;text-align:center;font-size:.5rem;line-height:.6363636363636364rem;text-align:right}.ui-multimediaview-bar{margin-top:.22272727272727275rem;float:left}.ui-multimediaview-bar-bg{height:.36363636363636365rem;border-radius:1.5em}.ui-multimediaview-bar-highlight{height:.36363636363636365rem;position:absolute;border-radius:1.5em}.ui-multimediaview-control .ui-seekbar{margin-left:.09090909090909091rem}.ui-multimediaview-control .ui-seekbar .ui-duration{width:100%}.ui-multimediaview-control .ui-volumecontrol{width:5rem;height:100%;float:left}.ui-multimediaview-control .ui-volumecontrol .ui-volumebar{margin-left:.6818181818181819rem}.ui-multimediaview-control .ui-volumecontrol .ui-volumebar .ui-guide{width:3.8636363636363638rem}.ui-multimediaview-control .ui-volumecontrol .ui-volumebar .ui-handle{margin:0;padding:0;width:.6818181818181819rem;height:.6818181818181819rem;border-style:solid;border-width:1px;border-radius:1.5em}.ui-fullscreen-parents{padding:0!important;margin:0!important;width:100%!important;height:100%!important;overflow:hidden}.ui-multimediaview-s .ui-multimediaview-video{background-color:rgba(248,246,239,.5)}.ui-multimediaview-s .ui-timestamplabel{color:#4a84c9}.ui-multimediaview-s .ui-durationlabel{color:#808080}.ui-multimediaview-s span.ui-button{background-color:#f8f6ef}.ui-multimediaview-s span.ui-play-icon{background-image:url(./images/00_button_play.png)}.ui-multimediaview-s span.ui-pause-icon{background-image:url(./images/00_button_pause.png)}.ui-multimediaview-s span.ui-volume-icon{background-image:url(./images/controls/00_slider_button_volume_02.png)}.ui-multimediaview-s span.ui-mute-icon{background-image:url(./images/controls/00_slider_button_volume_01.png)}.ui-multimediaview-s span.ui-fullscreen-on{background-image:url(./images/00_button_fullscreen_on.png)}.ui-multimediaview-s span.ui-fullscreen-off{background-image:url(./images/00_button_fullscreen_off.png)}.ui-multimediaview-s .ui-seekbar .ui-duration{background-color:#cbc8c5}.ui-multimediaview-s .ui-seekbar .ui-currenttime{background-color:#4a84c9;background-image:-webkit-gradient(linear,left top,left bottom,from( #6289d9),to( #295b98));background-image:-moz-linear-gradient(top, #6289d9, #295b98);background-image:-o-linear-gradient(top, #6289d9, #295b98);background-image:-ms-linear-gradient(top, #6289d9, #295b98)}.ui-multimediaview-s .ui-volumebar .ui-guide{background-color:#cbc8c5}.ui-multimediaview-s .ui-volumebar .ui-value{background-color:#4a84c9;background-image:-webkit-gradient(linear,left top,left bottom,from( #6289d9),to( #295b98));background-image:-moz-linear-gradient(top, #6289d9, #295b98);background-image:-o-linear-gradient(top, #6289d9, #295b98);background-image:-ms-linear-gradient(top, #6289d9, #295b98)}.ui-multimediaview-s .ui-volumebar .ui-handle{background-color:#f9f9f9;background-image:-webkit-gradient(linear,left top,left bottom,from( #fff),to( #e6e6e6));background-image:-moz-linear-gradient(top, #fff, #e6e6e6);background-image:-o-linear-gradient(top, #fff, #e6e6e6);background-image:-ms-linear-gradient(top, #fff, #e6e6e6);border-color:#bab9b4}.ui-popup-screen{top:0;left:0;width:100%;height:100%;border:0;position:absolute;filter:Alpha(Opacity=50);opacity:0}.ui-popup-screen-background-hack{background-color:#000;filter:Alpha(Opacity=0)}@-webkit-keyframes popup-fadein{from{ opacity:0}to{opacity:.5}}@-moz-keyframes popup-fadein{from{ opacity:0}to{opacity:.5}}@-webkit-keyframes popup-fadeout{from{ opacity:.5}to{opacity:0}}@-moz-keyframes popup-fadeout{from{ opacity:.5}to{opacity:0}}.ui-popup-screen.fade.in{opacity:.5;-webkit-animation-name:popup-fadein;-moz-animation-name:popup-fadein}.ui-popup-screen.fade.out{opacity:0;-webkit-animation-name:popup-fadeout;-moz-animation-name:popup-fadeout}.ui-popup.ui-content,.ui-popup .ui-content{overflow:visible}.ui-popup>img{width:auto;height:auto;max-width:100%;max-height:100%;vertical-align:middle}.ui-popup iframe{vertical-align:middle}@media all and (min-width: 450px){.ui-popup .ui-field-contain label.ui-submit,.ui-popup .ui-field-contain .ui-controlgroup-label,.ui-popup .ui-field-contain label.ui-select,.ui-popup .ui-field-contain label.ui-input-text{ font-size:16px;line-height:1.4;display:block;font-weight:400;margin:0 0 .3em}.ui-popup .ui-field-contain .ui-btn.ui-submit,.ui-popup .ui-field-contain .ui-controlgroup-controls,.ui-popup .ui-field-contain .ui-select,.ui-popup .ui-field-contain input.ui-input-text,.ui-popup .ui-field-contain textarea.ui-input-text,.ui-popup .ui-field-contain .ui-input-search{width:100%;display:block}}.ui-popup>.ui-btn-left,.ui-popup>.ui-btn-right{position:absolute;top:-9px;margin:0;z-index:1101}.ui-popup>.ui-btn-left{left:-9px}.ui-popup>.ui-btn-right{right:-9px}.ui-popup-screen{background:#000;opacity:0;position:absolute;top:0;left:0;width:100%;height:100%;z-index:1200}.ui-overlay-dim{opacity:.7}.ui-popup-scroller-bg{width:100%}.ui-popup-container{position:absolute;width:86.12%;z-index:1201!important;background:#2a2d30;text-align:center;outline-color:#202327;display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center}.ui-popup-container .ui-popup{padding:3px 2px 2px 2px;background:#2a2d30;width:100%;word-wrap:break-word}.ui-popup-container .ui-popup>.ui-popup-title,.ui-popup-container .ui-popup>.ui-popup-text,.ui-popup-container .ui-popup>.ui-popup-button-bg{width:100%}.ui-popup-container .ui-popup-title{width:100%;height:1.8181818181818183rem;text-align:left;color:#70a9ee;font-size:1.0909090909090908rem;font-weight:700}.ui-popup-container .ui-popup-title h1{font-size:1.0909090909090908rem;font-weight:700;color:#70a9ee;margin:0;padding-top:.4545454545454546rem;padding-left:.7272727272727273rem}.ui-popup-container .ui-popup-text{margin-top:1rem;margin-bottom:1rem;color:#f9f9f9;font-size:.9090909090909092rem;background:#2a2d30;text-align:center}.ui-popup-container .ui-popup-text .ui-li .ui-radio label,.ui-popup-container .ui-popup-text .ui-li .ui-checkbox label{background:transparent}.ui-popup-container .ui-popup-text input{display:inline-block}.ui-popup-container .ui-popup-button-bg{font-size:1.4545454545454546rem;height:1.6818181818181819rem;padding-top:.4545454545454546rem;padding-bottom:.4545454545454546rem;width:100%;vertical-align:middle}.ui-popup-container .ui-popup-button-bg>.ui-btn{display:inline-block;margin:auto;height:1.6818181818181819rem}.ui-popup-container .ui-popup-button-bg .ui-btn-inner{padding-top:.2272727272727273rem;padding-bottom:.2272727272727273rem;padding-left:.9090909090909092rem;padding-right:.9090909090909092rem}.ui-popup-container .center_basic_3btn .ui-btn,.ui-popup-container .center_title_3btn .ui-btn{max-width:3.6363636363636367rem;height:1.6818181818181819rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popup-container .center_button_vertical .ui-popup-button-bg{display:block;height:auto}.ui-popup-container .center_button_vertical .ui-popup-button-bg>.ui-btn{display:block;width:9.090909090909092rem}.ui-popup-container .center_checkbox .ui-popup-check-bg{font-size:.9090909090909092rem;background:#2a2d30;width:100%;padding-top:0rem;padding-bottom:1rem;vertical-align:middle}.ui-popup-container .center_checkbox .ui-popup-check-bg .ui-checkbox .ui-btn{text-align:center;background:#2a2d30;border:0rem}.ui-popup-container .center_checkbox .ui-popup-check-bg .ui-checkbox .ui-btn .ui-btn-inner{border:0rem}.ui-popup-container .center_checkbox .ui-popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_checkbox .ui-popup-button-bg .ui-btn{width:5rem;height:1.6818181818181819rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popup-container .center_liststyle_1btn .ui-popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:11.636363636363637rem}.ui-popup-container .center_liststyle_1btn .ui-popup-button-bg{padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_liststyle_2btn .ui-popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:11.636363636363637rem}.ui-popup-container .center_liststyle_2btn .ui-popup-button-bg{padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_liststyle_2btn .ui-popup-button-bg .ui-btn{width:5rem;height:1.6818181818181819rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popup-container .center_liststyle_2btn .ui-popup-button-bg .ui-btn .ui-btn-inner{padding-top:.2272727272727273rem;padding-bottom:.2272727272727273rem;padding-left:.9090909090909092rem;padding-right:.9090909090909092rem}.ui-popup-container .center_title_2btn .ui-popup-button-bg{padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_title_2btn .ui-popup-button-bg .ui-btn{width:5.454545454545455rem;height:1.6818181818181819rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popup-container .center_title_2btn .ui-popup-button-bg .ui-btn .ui-btn-inner{padding-top:.2272727272727273rem;padding-bottom:.2272727272727273rem;padding-left:.9090909090909092rem;padding-right:.9090909090909092rem}.ui-popup-container .center_liststyle_3btn .ui-popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:11.636363636363637rem}.ui-popup-container .center_liststyle_3btn .ui-popup-button-bg{padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_liststyle_3btn .ui-popup-button-bg .ui-btn{max-width:3.6363636363636367rem;height:1.6818181818181819rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popup-container .center_progressbar{text-align:center}.ui-popup-container .center_progressbar .ui-popup-text{font-size:1.1818181818181819rem;font-color:#999;background:#2a2d30;width:100%;height:3.181818181818182rem}.ui-popup-container .center_progressbar .ui-popup-text p{height:100%;text-align:center;padding:1rem .7272727272727273rem 0rem .7272727272727273rem}.ui-popup-container .center_progressbar .ui-popup-text-bottom-bg{font-size:1.1818181818181819rem;font-color:#999;background:#2a2d30;width:100%;vertical-align:middle}.ui-popup-container .center_progressbar .ui-popup-text-bottom-bg .text-left{width:40%;height:2.1818181818181817rem;padding:0rem .7272727272727273rem 0rem .7272727272727273rem;text-align:left;display:inline-block}.ui-popup-container .center_progressbar .ui-popup-text-bottom-bg .text-right{width:40%;height:2.1818181818181817rem;padding:0rem .7272727272727273rem 0rem .7272727272727273rem;text-align:right;display:inline-block}.ui-popup-container .center_progressbar .ui-popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_progressbar .ui-popup-button-bg .ui-btn{width:9.136363636363637rem;height:1.6818181818181819rem;margin:auto}.ui-popup-container .center_progressbar .ui-popup-progress-bg{background:#2a2d30;width:100%;height:100%}.ui-popup-container .centertext_progressbar{text-align:center}.ui-popup-container .centertext_progressbar .ui-popup-text{font-size:1.1818181818181819rem;font-color:#999;background:#2a2d30;width:100%;padding-top:1rem;padding-bottom:.7272727272727273rem}.ui-popup-container .centertext_progressbar .ui-popup-text p{text-align:center}.ui-popup-container .centertext_progressbar .ui-popup-text-bottom-bg{font-size:1.1818181818181819rem;font-color:#999;background:#2a2d30;width:100%;vertical-align:middle}.ui-popup-container .centertext_progressbar .ui-popup-text-bottom-bg .text-left{width:40%;height:1.8181818181818183rem;padding:.7272727272727273rem .7272727272727273rem 1rem .7272727272727273rem;text-align:left;display:inline-block}.ui-popup-container .centertext_progressbar .ui-popup-text-bottom-bg .text-right{width:40%;height:1.8181818181818183rem;padding:.7272727272727273rem .7272727272727273rem 1rem .7272727272727273rem;text-align:right;display:inline-block}.ui-popup-container .centertext_progressbar .ui-popup-button-bg{font-size:1.4545454545454546rem;background:#2a2d30;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .centertext_progressbar .ui-popup-button-bg .ui-btn{width:18.272727272727273rem;height:1.6818181818181819rem;margin:auto}.ui-popup-container .centertext_progressbar .ui-popup-progress-bg{background:#2a2d30;width:100%;height:100%}.ui-text-ellipsis{white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-tabbar{background:#202327;z-index:1000}.ui-tabbar a.ui-btn{background:#202327;color:#bababa;padding-top:.8636363636363636rem;padding-bottom:.8636363636363636rem}.ui-tabbar a.ui-btn .ui-btn-inner{padding-top:0;padding-bottom:0;border-left:2px solid;border-color:#3b3e40;border-radius:0;-0-border-radius:0;-ms-border-radius:0;-webkit-border-radius:0}.ui-tabbar a.ui-btn .ui-icon{width:1.4545454545454546rem;height:1.4545454545454546rem;background-repeat:no-repeat;background-size:100% 100%}.ui-tabbar.ui-tabbar-persist a.ui-btn{background:#202327}.ui-tabbar.ui-tabbar-persist a.ui-state-persist,.ui-tabbar.ui-tabbar-persist a.ui-state-persist.ui-btn-active,.ui-tabbar.ui-tabbar-persist a.ui-btn-show-style{color:#70a9ee}.ui-tabbar.ui-tabbar-persist a.ui-btn-hover-s.ui-btn-down-s:not(.ui-state-persist){color:#70a9ee;background:-webkit-linear-gradient(top, #000 0, #202327 100%)}.ui-tabbar:not(.ui-tabbar-persist) a.ui-btn{background:#202327}.ui-tabbar:not(.ui-tabbar-persist) a.ui-btn-active,.ui-tabbar:not(.ui-tabbar-persist) .ui-btn-show-style{color:#70a9ee}.ui-tabbar:not(.ui-tabbar-persist) a.ui-btn.ui-btn-hover-s.ui-btn-down-s{color:#70a9ee;background:-webkit-linear-gradient(top, #000 0, #202327 100%)}.ui-tabbar .ui-btn-inner{font-size:.6818181818181819rem;font-weight:700}.ui-tabbar .ui-btn-inner .ui-icon{top:.4545454545454546rem;left:50%;margin-left:-.7272727272727273rem}.ui-tabbar.ui-tabbar-notext a.ui-btn{padding-top:.5rem;padding-bottom:.4545454545454546rem}.ui-tabbar.ui-tabbar-notext .ui-btn-inner{height:1.5454545454545454rem}.ui-tabbar.ui-tabbar-notext .ui-btn-inner .ui-icon{top:0}.ui-header.ui-bar-s.ui-title-tabbar .ui-title{font-size:1rem;margin-top:.36363636363636365rem;margin-bottom:0rem}.ui-header.ui-bar-s.ui-title-tabbar .ui-tabbar.ui-tabbar-noicons a.ui-btn{padding-top:.6818181818181819rem;padding-bottom:.5909090909090909rem}.ui-header.ui-bar-s.ui-title-tabbar .ui-tabbar.ui-tabbar-notext a.ui-btn{padding-top:.3181818181818182rem;padding-bottom:.2272727272727273rem}.ui-header.ui-bar-s.ui-title-tabbar-multiline .ui-tabbar a.ui-btn{padding-top:.5rem;padding-bottom:.4545454545454546rem}.ui-header.ui-bar-s.ui-title-tabbar-multiline .ui-tabbar a.ui-btn .ui-btn-inner{height:2.4545454545454546rem}.ui-header.ui-bar-s.ui-title-tabbar-multiline .ui-tabbar a.ui-btn .ui-btn-inner .ui-btn-text{padding-top:0;line-height:3.8636363636363638rem}.ui-header.ui-bar-s.ui-title-tabbar-multiline .ui-tabbar a.ui-btn .ui-btn-inner .ui-icon{top:0}.ui-header.ui-bar-s li:first-child .ui-btn-inner{border-left-width:0}.ui-footer.ui-bar-s .ui-tabbar{height:2.2272727272727275rem;margin-left:auto;margin-right:auto}.ui-footer.ui-bar-s .ui-tabbar a.ui-btn{padding-top:.7272727272727273rem;padding-bottom:.7272727272727273rem}.ui-footer.ui-bar-s .ui-tabbar .ui-btn-inner .ui-icon{top:0}.ui-footer.ui-bar-s .ui-tabbar.ui-tabbar-notext a.ui-btn{padding-top:.36363636363636365rem;padding-bottom:.3181818181818182rem}.ui-footer.ui-bar-s .ui-tabbar li:first-child .ui-btn-inner{border-left-width:0}.ui-footer.ui-bar-s .ui-tabbar.ui-tabbar-margin-back{margin-right:2.5454545454545454rem}.ui-footer.ui-bar-s .ui-tabbar.ui-tabbar-margin-more{margin-left:2.5454545454545454rem}.ui-footer.ui-bar-s .ui-btn-back~.ui-tabbar li:last-child .ui-btn-inner{border-right:1px solid;border-right-color:#3b3e40}.ui-footer.ui-bar-s [data-icon="naviframe-more"]~.ui-tabbar li:first-child .ui-btn-inner{border-left:1px solid;border-left-color:#3b3e40}.ui-tabbar-s.ui-navbar-noicons{font-size:1rem}.ui-tabbar .tabbar-scroll-ul{margin-top:0;margin-bottom:0;padding-left:0}.ui-tabbar .tabbar-scroll-ul .tabbar-scroll-li{position:relative;display:inline-block;margin-left:-.36363636363636365rem}.ui-tabbar .tabbar-scroll-ul .tabbar-scroll-li a{width:100%}.ui-tabbar .tabbar-scroll-ul li.tabbar-scroll-li:first-child{margin-left:0}.ui-tabbar-divider{position:absolute;top:0;width:3.681818181818182rem;height:2.5rem;background-repeat:no-repeat;background-size:100% 100%}.ui-tabbar-divider-left{left:0;background-image:url(images/00_effect_title_tab_bounce_left.png)}.ui-tabbar-divider-right{right:0;background-image:url(images/00_effect_title_tab_bounce_right.png)}.ui-splitview{margin:0;padding:0;position:relative}.ui-splitview .ui-pane{position:absolute;overflow:hidden;border:0;margin:0;padding:0}.ui-splitview .ui-pane .ui-listview{margin:0;padding:0}.ui-splitview .ui-spliter{position:absolute;z-index:100;display:block;margin:0;padding:0}.ui-splitview .ui-spliter-bar{background-color:#b3b3b3;border-color:#000;border-style:solid}.ui-splitview .ui-spliter-handle{margin:0;padding:0;cursor:move;display:block;text-align:center;cursor:pointer;position:relative;background-position:center center;background-repeat:no-repeat;background-size:100% 100%}.ui-direction-horizontal>.ui-spliter{width:60px}.ui-direction-vertical>.ui-spliter{height:60px}.ui-direction-horizontal>.ui-spliter>.ui-spliter-bar{width:13px;margin:0 0 0 25px;border-width:1px 1px 1px 0}.ui-direction-vertical>.ui-spliter>.ui-spliter-bar{height:13px;margin:25px 0 0 0;border-width:0 1px 1px 1px}.ui-spliter-active>.ui-spliter-bar{background-color:#5787c2}.ui-direction-horizontal>.ui-spliter>.ui-spliter-bar>.ui-spliter-handle{width:13px;height:26px;background-image:url(./images/00_splite_handler_v.png)}.ui-direction-vertical>.ui-spliter>.ui-spliter-bar>.ui-spliter-handle{width:26px;height:13px;background-image:url(./images/00_splite_handler_h.png)}.ui-direction-horizontal>.ui-fixed{width:0}.ui-direction-horizontal>.ui-fixed>.ui-spliter-bar{width:5px}.ui-direction-vertical>.ui-fixed{height:0}.ui-direction-vertical>.ui-fixed>.ui-spliter-bar{height:5px}.ui-fixed .ui-spliter-handle{display:none}
\ No newline at end of file
return h;
}
- if ( isCollapse ) {
+ if ( isCollapse ) { // collapse!
+ // remember current height
$( c ).data( 'max-height', _getHeight( self ) );
- } else {
- if ( ! $( c ).data( 'max-height' ) ) {
- $( c ).data( 'max-height', document.body.clientHeight );
+ $( self ).parentsUntil( '.ui-page', '.ui-collapsible' ).each( function( idx, el ) {
+ var content = $( el ).children('.ui-collapsible-content')[0];
+ $( content ).data( 'max-height', _getHeight( el ) );
+ } );
+
+ } else { // expand!
+ h = $( c ).data( 'max-height' );
+ if ( !h ) {
+ h = document.body.clientHeight;
+ $( c ).data( 'max-height', h );
}
- $( c ).css( 'max-height', $( c ).data( 'max-height' ) );
+ $( c ).css( 'max-height', h );
+ $( self ).parentsUntil( '.ui-page', '.ui-collapsible' ).each( function( idx, el ) {
+ var content = $( el ).children('.ui-collapsible-content')[0];
+ $( content ).css( 'max-height', _getHeight( el ) );
+ } );
}
};
} ( $.mobile.collapsible.prototype.options ) );
text-align: left;
margin: 0.7272727272727273rem 0.36363636363636365rem 0.2272727272727273rem 0.36363636363636365rem;
}
-.ui-header.ui-bar-s > .ui-btn .ui-btn-inner.ui-btn-icon-only {
+.ui-header.ui-bar-s > .ui-btn .ui-btn-inner.ui-btn-icon-only,
+.ui-header.ui-bar-s > .naviframe-button.ui-btn .ui-btn-inner.ui-btn-icon-only {
-o-box-sizing: border-box;
-ms-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
height: 100%;
}
-.ui-header.ui-bar-s > .ui-btn .ui-btn-inner.ui-btn-icon-only .ui-icon {
+.ui-header.ui-bar-s > .ui-btn .ui-btn-inner.ui-btn-icon-only .ui-icon,
+.ui-header.ui-bar-s > .naviframe-button.ui-btn .ui-btn-inner.ui-btn-icon-only .ui-icon {
top: 0px;
}
-.ui-header.ui-bar-s > .ui-btn:not(.ui-btn-icon-notext) .ui-btn-inner.ui-btn-icon-only {
+.ui-header.ui-bar-s > .naviframe-button.ui-btn .ui-btn-inner .ui-icon {
+ margin-top: 0px;
+}
+.ui-header.ui-bar-s > .ui-btn:not(.ui-btn-icon-notext) .ui-btn-inner.ui-btn-icon-only,
+.ui-header.ui-bar-s > .naviframe-button.ui-btn:not(.ui-btn-icon-notext) .ui-btn-inner.ui-btn-icon-only {
padding-left: 0px;
}
-.ui-header.ui-bar-s > .ui-btn:not(.ui-btn-icon_only) {
+.ui-header.ui-bar-s > .ui-btn:not(.ui-btn-icon_only),
+.ui-header.ui-bar-s > .naviframe-button.ui-btn:not(.ui-btn-icon_only) {
width: 2.409090909090909rem;
height: 0.8181818181818182rem;
top: auto;
bottom: 0.4545454545454546rem;
}
-.ui-header.ui-bar-s > .ui-btn:not(.ui-btn-icon_only) .ui-btn-inner {
+.ui-header.ui-bar-s > .ui-btn:not(.ui-btn-icon_only) .ui-btn-inner,
+.ui-header.ui-bar-s > .naviframe-button.ui-btn:not(.ui-btn-icon_only) .ui-btn-inner {
padding: 0;
}
.ui-header.ui-bar-s > .ui-btn.ui-btn-back,
left: 0px;
}
.ui-header.ui-bar-s img {
+ position: absolute;
display: inline-block;
height: 0.7272727272727273rem;
width: 0.7272727272727273rem;
margin-left: 0.36363636363636365rem;
+ margin-top: 1.0909090909090908rem;
}
.ui-header.ui-bar-s .ui-title-text-sub {
position: absolute;
width: 0.7272727272727273rem;
margin-left: 0.36363636363636365rem;
}
-.ui-header.ui-bar-s > .ui-btn {
+.ui-header.ui-bar-s > .ui-btn,
+.ui-header.ui-bar-s > .naviframe-button.ui-btn {
position: absolute;
top: 0.7272727272727273rem;
margin-top: 0px;
.ui-header.ui-bar-s.ui-title-tabbar > .ui-btn {
top: 0.36363636363636365rem;
}
-.ui-header.ui-bar-s > .ui-btn.ui-btn-icon_only {
+.ui-header.ui-bar-s > .ui-btn.ui-btn-icon_only,
+.ui-header.ui-bar-s > .naviframe-button.ui-btn.ui-btn-icon_only {
-o-border-radius: 0px;
-ms-border-radius: 0px;
-moz-border-radius: 0px;
.ui-header.ui-bar-s .ui-btn-right-1 {
right: 2.5454545454545454rem;
}
-.ui-header.ui-bar-s > .ui-btn:not(.ui-btn-icon_only):nth-child(2) {
+.ui-header.ui-bar-s > .ui-btn:not(.ui-btn-icon_only):nth-child(2),
+.ui-header.ui-bar-s > .naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(2) {
right: 0.3181818181818182rem;
}
-.ui-header.ui-bar-s > .ui-btn:not(.ui-btn-icon_only):nth-child(3) {
+.ui-header.ui-bar-s > .ui-btn:not(.ui-btn-icon_only):nth-child(3),
+.ui-header.ui-bar-s > .naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(3) {
right: 2.8181818181818183rem;
}
-.ui-header.ui-bar-s > img + h1 + .ui-btn:not(.ui-btn-icon_only):nth-child(3) {
+.ui-header.ui-bar-s > img + h1 {
+ padding-left: 1.0909090909090908rem;
+}
+.ui-header.ui-bar-s > img + h1 + .ui-btn:not(.ui-btn-icon_only):nth-child(3),
+.ui-header.ui-bar-s > img + h1 + .naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(3) {
right: 0.3181818181818182rem;
}
-.ui-header.ui-bar-s > img + h1 + .ui-btn:not(.ui-btn-icon_only):nth-child(3) + .ui-btn:not(.ui-btn-icon_only) {
+.ui-header.ui-bar-s > img + h1 + .ui-btn:not(.ui-btn-icon_only):nth-child(3) + .ui-btn:not(.ui-btn-icon_only),
+.ui-header.ui-bar-s > img + h1 + .naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(3) + .naviframe-button.ui-btn:not(.ui-btn-icon_only) {
right: 2.8181818181818183rem;
}
-.ui-header.ui-bar-s > img + h1 + span.ui-title-text-sub + .ui-btn:not(.ui-btn-icon_only):nth-child(4) {
+.ui-header.ui-bar-s > img + h1 + span.ui-title-text-sub + .ui-btn:not(.ui-btn-icon_only):nth-child(4),
+.ui-header.ui-bar-s > img + h1 + span.ui-title-text-sub + .naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(4) {
right: 0.3181818181818182rem;
}
-.ui-header.ui-bar-s > img + h1 + span.ui-title-text-sub + .ui-btn:not(.ui-btn-icon_only):nth-child(4) + .ui-btn:not(.ui-btn-icon_only) {
+.ui-header.ui-bar-s > img + h1 + span.ui-title-text-sub + .ui-btn:not(.ui-btn-icon_only):nth-child(4) + .ui-btn:not(.ui-btn-icon_only),
+.ui-header.ui-bar-s > img + h1 + span.ui-title-text-sub + .naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(4) + .naviframe-button.ui-btn:not(.ui-btn-icon_only) {
right: 2.8181818181818183rem;
}
.ui-header.ui-bar-s > .ui-btn.ui-btn-down-s {
background: rgba(64, 147, 247, 0.1);
color: #3b73b6;
}
+.ui-header.ui-bar-s.ui-title-multiline img {
+ margin-top: 0.6363636363636364rem;
+}
.ui-header.ui-bar-s.ui-title-multiline .ui-title {
min-height: 1.0909090909090908rem;
max-height: 1.0909090909090908rem;
border: none;
box-shadow: none;
}
+.ui-header .naviframe-button.ui-btn.ui-btn-box-s.ui-btn-down-s {
+ background: rgba(64, 147, 247, 0.1);
+}
.ui-btn-icon-top .ui-btn-inner.ui-btn-hastxt,
.ui-li .ui-btn-icon-top .ui-btn-inner.ui-btn-hastxt {
padding-top: 2.3636363636363638rem;
height: 100%;
outline: 0 !important;
}
-.ui-checkbox.favorite .ui-btn.ui-btn-icon-left {
- display: block;
-}
.ui-checkbox.favorite .ui-btn.ui-btn-icon-left .ui-btn-inner {
display: inline-block;
line-height: 1.4545454545454546rem;
padding-left: 0.4545454545454546rem;
padding-right: 0.4545454545454546rem;
}
+.ui-controlgroup-horizontal label {
+ width: 100%;
+}
.ui-controlgroup-horizontal label > span.ui-btn-inner {
padding-top: 0.13636363636363635rem;
padding-bottom: 0.13636363636363635rem;
display: block;
left: 0;
top: 0;
- width: 0.4545454545454546rem;
+ width: 56%;
height: 100%;
opacity: 0;
- background: -webkit-gradient(linear, right top, left top, color-stop(0, rgba(128, 128, 128, 0)), color-stop(1, #808080));
+ background-repeat: no-repeat;
+ -webkit-background-size: 100% 100%;
+ background-image: url(./images/00_grid_overscrolling_left.png);
pointer-events: none;
}
.ui-virtualgrid-overflow-indicator-x-bottom {
display: block;
right: 0;
bottom: 0;
- width: 0.4545454545454546rem;
+ width: 56%;
height: 100%;
opacity: 0;
- background: -webkit-gradient(linear, right top, left top, color-stop(0, #808080), color-stop(1, rgba(128, 128, 128, 0)));
+ background-repeat: no-repeat;
+ -webkit-background-size: 100% 100%;
+ background-image: url(./images/00_grid_overscrolling_right.png);
pointer-events: none;
}
.ui-virtualgrid-overflow-indicator-y-top {
display: block;
top: 0;
width: 100%;
- height: 0.4545454545454546rem;
+ height: 32%;
opacity: 0;
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, rgba(128, 128, 128, 0)), color-stop(1, #808080));
+ background-repeat: no-repeat;
+ -webkit-background-size: 100% 100%;
+ background-image: url(./images/00_grid_overscrolling_top.png);
pointer-events: none;
}
.ui-virtualgrid-overflow-indicator-y-bottom {
display: block;
bottom: 0;
width: 100%;
- height: 0.4545454545454546rem;
+ height: 32%;
opacity: 0;
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #808080), color-stop(1, rgba(128, 128, 128, 0)));
+ background-repeat: no-repeat;
+ -webkit-background-size: 100% 100%;
+ background-image: url(./images/00_grid_overscrolling_bottom.png);
pointer-events: none;
}
/*
.ui-tabbar-divider {
position: absolute;
top: 0px;
- width: 0.4545454545454546rem;
+ width: 3.681818181818182rem;
height: 2.5rem;
- background: -webkit-linear-gradient(left, #00009b 0%, #f6f8ef 100%);
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
}
.ui-tabbar-divider-left {
left: 0px;
- border-top-right-radius: 0.4545454545454546rem;
- border-bottom-right-radius: 0.4545454545454546rem;
- background: -webkit-linear-gradient(left, #999999 0%, #f6f8ef 100%);
+ background-image: url(images/00_effect_title_tab_bounce_left.png);
}
.ui-tabbar-divider-right {
right: 0px;
- border-top-left-radius: 0.4545454545454546rem;
- border-bottom-left-radius: 0.4545454545454546rem;
- background: -webkit-linear-gradient(right, #999999 0%, #f6f8ef 100%);
+ background-image: url(images/00_effect_title_tab_bounce_right.png);
}
/****************************
* Tizen Common Less Header *
-.ui-bar-s{border:0;background:#f8f6ef;color:#3b73b6;font-family:Helvetica,Arial,sans-serif;font-weight:700;font-size:1.2727272727272727rem}.ui-bar-s .ui-link-inherit{color:#3b73b6}.ui-bar-s>.ui-btn.ui-btn-back,.ui-bar-s>.ui-btn.ui-btn-footer-down{background:transparent;position:absolute;right:0}.ui-bar-s>.ui-btn.ui-btn-back .ui-icon-header-back-btn,.ui-bar-s>.ui-btn.ui-btn-footer-down .ui-icon-header-back-btn{top:.36363636363636365rem;left:auto;right:.5909090909090909rem;margin-top:0}.ui-bar-s>.ui-btn.ui-btn-footer-down{border:0;box-shadow:none}.ui-bar-s>.ui-btn.ui-btn-footer-down .ui-icon{top:.36363636363636365rem;margin-top:0}.ui-header.ui-bar-s{position:fixed;top:0;min-height:2.5rem}.ui-header.ui-bar-s .ui-title{display:inline-block;color:#3b73b6;min-height:1.2727272727272727rem;max-height:1.5454545454545454rem;font-size:1.2727272727272727rem;font-weight:500;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;outline:0!important;text-align:left;margin:.7272727272727273rem .36363636363636365rem .2272727272727273rem .36363636363636365rem}.ui-header.ui-bar-s>.ui-btn .ui-btn-inner.ui-btn-icon-only{-o-box-sizing:border-box;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%}.ui-header.ui-bar-s>.ui-btn .ui-btn-inner.ui-btn-icon-only .ui-icon{top:0}.ui-header.ui-bar-s>.ui-btn:not(.ui-btn-icon-notext) .ui-btn-inner.ui-btn-icon-only{padding-left:0}.ui-header.ui-bar-s>.ui-btn:not(.ui-btn-icon_only){width:2.409090909090909rem;height:.8181818181818182rem;top:auto;bottom:.4545454545454546rem}.ui-header.ui-bar-s>.ui-btn:not(.ui-btn-icon_only) .ui-btn-inner{padding:0}.ui-header.ui-bar-s>.ui-btn.ui-btn-back,.ui-header.ui-bar-s>.ui-btn.ui-btn-footer-down{right:.5909090909090909rem}.ui-header.ui-bar-s>.ui-btn.ui-btn-back .ui-icon-header-back-btn,.ui-header.ui-bar-s>.ui-btn.ui-btn-footer-down .ui-icon-header-back-btn{left:0}.ui-header.ui-bar-s img{display:inline-block;height:.7272727272727273rem;width:.7272727272727273rem;margin-left:.36363636363636365rem}.ui-header.ui-bar-s .ui-title-text-sub{position:absolute;top:1.6363636363636365rem;left:.36363636363636365rem;font-size:.5454545454545454rem}.ui-header.ui-bar-s .ui-title-text-sub img{height:.7272727272727273rem;width:.7272727272727273rem;margin-left:.36363636363636365rem}.ui-header.ui-bar-s>.ui-btn{position:absolute;top:.7272727272727273rem;margin-top:0;height:1.5454545454545454rem;width:1.5454545454545454rem;background:transparent;color:#3a3a3a}.ui-header.ui-bar-s.ui-title-tabbar>.ui-btn{top:.36363636363636365rem}.ui-header.ui-bar-s>.ui-btn.ui-btn-icon_only{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-header.ui-bar-s .ui-btn-right-0{right:.5rem}.ui-header.ui-bar-s .ui-btn-right-1{right:2.5454545454545454rem}.ui-header.ui-bar-s>.ui-btn:not(.ui-btn-icon_only):nth-child(2){right:.3181818181818182rem}.ui-header.ui-bar-s>.ui-btn:not(.ui-btn-icon_only):nth-child(3){right:2.8181818181818183rem}.ui-header.ui-bar-s>img+h1+.ui-btn:not(.ui-btn-icon_only):nth-child(3){right:.3181818181818182rem}.ui-header.ui-bar-s>img+h1+.ui-btn:not(.ui-btn-icon_only):nth-child(3)+.ui-btn:not(.ui-btn-icon_only){right:2.8181818181818183rem}.ui-header.ui-bar-s>img+h1+span.ui-title-text-sub+.ui-btn:not(.ui-btn-icon_only):nth-child(4){right:.3181818181818182rem}.ui-header.ui-bar-s>img+h1+span.ui-title-text-sub+.ui-btn:not(.ui-btn-icon_only):nth-child(4)+.ui-btn:not(.ui-btn-icon_only){right:2.8181818181818183rem}.ui-header.ui-bar-s>.ui-btn.ui-btn-down-s{background:rgba(64,147,247,.1);color:#3b73b6}.ui-header.ui-bar-s.ui-title-multiline .ui-title{min-height:1.0909090909090908rem;max-height:1.0909090909090908rem;font-size:1rem;margin:.4090909090909091rem .36363636363636365rem 1rem .36363636363636365rem}.ui-footer.ui-bar-s{height:2.2272727272727275rem;text-align:center;bottom:0}.ui-footer.ui-bar-s>.ui-btn.ui-btn-back,.ui-footer.ui-bar-s>.ui-btn.ui-btn-footer-down,.ui-footer.ui-bar-s>[data-icon="naviframe-more"]{background:transparent}.ui-footer.ui-bar-s>.ui-btn.ui-btn-back>.ui-btn-icon-only,.ui-footer.ui-bar-s>.ui-btn.ui-btn-footer-down>.ui-btn-icon-only,.ui-footer.ui-bar-s>[data-icon="naviframe-more"]>.ui-btn-icon-only{width:2.5454545454545454rem;height:2.2272727272727275rem;padding:0;-webkit-box-shadow:none}.ui-footer.ui-bar-s>.ui-btn.ui-btn-back,.ui-footer.ui-bar-s>.ui-btn.ui-btn-footer-down{top:0}.ui-footer.ui-bar-s>.ui-btn.ui-btn-footer-down .ui-icon{left:auto;right:.5909090909090909rem}.ui-footer.ui-bar-s [data-icon="naviframe-more"]{position:absolute;left:0rem;top:0rem;box-shadow:none;border-width:0}.ui-footer.ui-bar-s [data-icon="naviframe-more"] .ui-icon-naviframe-more{left:.5909090909090909rem;top:.36363636363636365rem;margin-top:0}.ui-footer.ui-bar-s [data-icon="naviframe-more"] .ui-btn-inner{border:0;background:transparent;box-shadow:none}.ui-footer.ui-bar-s>[data-role="button"]{font-size:.6818181818181819rem;font-weight:700;color:#999}.ui-footer.ui-bar-s [data-role="controlgroup"]{margin-left:auto;margin-right:auto;margin-top:.2727272727272727rem;margin-bottom:.2727272727272727rem;padding-left:2.6363636363636362rem;padding-right:2.6363636363636362rem}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"]{background:transparent;border-style:solid;border-color:#b2b1ae;border-top-width:0;border-bottom-width:0;border-left-width:1px;border-right-width:1px;-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;box-shadow:none;padding:0;margin-left:-.18181818181818182rem;margin-right:-.2272727272727273rem}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-btn-hover-s{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-btn-down-s,.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"] .ui-btn-active-s{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-btn-down-s .ui-btn-inner,.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"] .ui-btn-active-s .ui-btn-inner{background:#f8f6ef}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-btn-down-s .ui-btn-inner .ui-btn-text,.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"] .ui-btn-active-s .ui-btn-inner .ui-btn-text{color:#3b73b6}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"]>.ui-btn-inner{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border:0 solid;box-shadow:none}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"] .ui-btn-text{font-size:.7727272727272727rem;color:#3a3a3a}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-corner-right{border-right-width:0}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-corner-left{border-left-width:0}.ui-footer.ui-bar-s>[data-role="button"]:not([data-icon="naviframe-more"]){top:.2727272727272727rem}.ui-footer.ui-bar-s>p{margin-top:.36363636363636365rem;margin-bottom:.36363636363636365rem}.ui-footer.ui-bar-s>h1,.ui-footer.ui-bar-s h2,.ui-footer.ui-bar-s h3,.ui-footer.ui-bar-s h4,.ui-footer.ui-bar-s h5,.ui-footer.ui-bar-s h6{display:inline-block}.ui-content{position:relative;top:0}.ui-body-s{border:1px solid #2a2a2a;background:#f8f6ef;color:#000;font-weight:400;font-family:Helvetica,Arial,sans-serif}.ui-body-s .ui-link-inherit{color:#fff}.ui-body-s .ui-link{color:#2489CE;font-weight:700}.ui-body-s .ui-link:hover{color:#2489CE}.ui-body-s .ui-link:active{color:#2489CE}.ui-body-s .ui-link:visited{color:#2489CE}.ui-btn-box-s{padding:.045454545454545456rem}.ui-btn-box-s.ui-btn-up-s{color:#3a3a3a;background:#ebe8e3;background:-webkit-linear-gradient(top, #ebe8e3, #eae7e2);background:-moz-linear-gradient(top, #ebe8e3, #eae7e2);background:-o-linear-gradient(top, #ebe8e3, #eae7e2);background:-ms-linear-gradient(top, #ebe8e3, #eae7e2);border:1px solid;border-color:#dcdad3;-o-box-shadow:0 0 1px 1px #fff;-ms-box-shadow:0 0 1px 1px #fff;-moz-box-shadow:0 0 1px 1px #fff;-webkit-box-shadow:0 0 1px 1px #fff;box-shadow:0 0 1px 1px #fff;-o-border-radius:.3rem;-ms-border-radius:.3rem;-moz-border-radius:.3rem;-webkit-border-radius:.3rem;border-radius:.3rem;font-family:Helvetica,Arial,sans-serif;font-weight:400;font-size:1.0rem;font-style:normal;color:#000}.ui-btn.ui-btn-corner-all .ui-btn-box-s.ui-btn-up-s{-o-border-radius:1.2rem;-ms-border-radius:1.2rem;-moz-border-radius:1.2rem;-webkit-border-radius:1.2rem;border-radius:1.2rem}.ui-btn-box-s .ui-btn-inner{border:1px solid;border-color:#c7c5be;-o-border-radius:.3rem;-ms-border-radius:.3rem;-moz-border-radius:.3rem;-webkit-border-radius:.3rem;border-radius:.3rem;-o-box-sizing:border-box;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;background:#f7f5ee;background:-webkit-linear-gradient(top, #faf7f2, #f8f5f0);background:-ms-linear-gradient(top, #faf7f2, #f8f5f0);background:-o-linear-gradient(top, #faf7f2, #f8f5f0);background:-moz-linear-gradient(top, #faf7f2, #f8f5f0);-o-box-shadow:none;-ms-box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;height:100%}.ui-btn.ui-btn-corner-all.ui-btn-box-s .ui-btn-inner{-o-border-radius:1.2rem;-ms-border-radius:1.2rem;-moz-border-radius:1.2rem;-webkit-border-radius:1.2rem;border-radius:1.2rem}.ui-ctxpopup .ui-btn-box-s.ui-btn-up-s,.ui-ctxpopup .ui-btn-box-s.ui-btn-hover-s{background:transparent!important;border:0;box-shadow:none;padding:0;color:#fff!important}.ui-ctxpopup .ui-btn-box-s.ui-btn-down-s{background:#3b73b6!important;border:0;box-shadow:none;padding:0;color:#fff!important;-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-ctxpopup .ui-btn-box-s .ui-btn-inner{background:transparent ! important;box-shadow:none;border:0}.ui-ctxpopup .ui-btn-down-s{background:#3b73b6!important}.ui-header .ui-btn-box-s,.ui-footer .ui-btn-box-s,.ui-btn-back.ui-btn-up-s,.ui-btn-back.ui-btn-hover-s,.ui-btn-back.ui-btn-down-s,.ui-btn-footer-down.ui-btn-up-s,.ui-btn-footer-down.ui-btn-hover-s,.ui-btn-footer-down.ui-btn-down-s,.ui-popup-container .ui-btn-box-s{font-weight:400;-o-border-radius:.9 rem;-ms-border-radius:.9 rem;-moz-border-radius:.9 rem;-webkit-border-radius:.9 rem;border-radius:.9 rem}.ui-btn-box-s.ui-btn-hover-s{color:#3a3a3a;font-family:Helvetica,Arial,sans-serif;font-weight:400;font-size:1.0rem;font-style:normal;color:#000;-o-border-radius:.3em ! important;-ms-border-radius:.3em ! important;-moz-border-radius:.3em ! important;-webkit-border-radius:.3em ! important;border-radius:.3em ! important}.ui-btn-box-s.ui-btn-hover-s.ui-btn-corner-circle{-o-border-radius:1em ! important;-ms-border-radius:1em ! important;-moz-border-radius:1em ! important;-webkit-border-radius:1em ! important;border-radius:1em ! important}.ui-btn-box-s.ui-btn-hover-s.ui-btn-corner-all{-o-border-radius:1.2em ! important;-ms-border-radius:1.2em ! important;-moz-border-radius:1.2em ! important;-webkit-border-radius:1.2em ! important;border-radius:1.2em ! important}.ui-btn-box-s.ui-btn-hover-s.ui-btn-round{-o-border-radius:1.2em ! important;-ms-border-radius:1.2em ! important;-moz-border-radius:1.2em ! important;-webkit-border-radius:1.2em ! important;border-radius:1.2em ! important}.ui-btn-box-s.ui-btn-down-s .ui-btn-inner{background:#3b73b6;color:#f8f6ef}.ui-btn-up-s,.ui-btn-hover-s,.ui-btn-down-s{font-family:Helvetica,Arial,sans-serif;text-decoration:none}a.ui-link-inherit{text-decoration:none!important}.ui-btn-active{color:#3a3a3a;cursor:pointer;text-decoration:none;background:#3b73b6;outline:0}.ui-btn-active a.ui-link-inherit{color:#3a3a3a}.ui-corner-tl{-moz-border-radius-topleft:.3em;-webkit-border-top-left-radius:.3em;border-top-left-radius:.3em}.ui-corner-tr{-moz-border-radius-topright:.3em;-webkit-border-top-right-radius:.3em;border-top-right-radius:.3em}.ui-corner-bl{-moz-border-radius-bottomleft:.3em;-webkit-border-bottom-left-radius:.3em;border-bottom-left-radius:.3em}.ui-corner-br{-moz-border-radius-bottomright:.3em;-webkit-border-bottom-right-radius:.3em;border-bottom-right-radius:.3em}.ui-corner-top{-moz-border-radius-topleft:.3em;-webkit-border-top-left-radius:.3em;border-top-left-radius:.3em;-moz-border-radius-topright:.3em;-webkit-border-top-right-radius:.3em;border-top-right-radius:.3em}.ui-corner-bottom{-moz-border-radius-bottomleft:.3em;-webkit-border-bottom-left-radius:.3em;border-bottom-left-radius:.3em;-moz-border-radius-bottomright:.3em;-webkit-border-bottom-right-radius:.3em;border-bottom-right-radius:.3em}.ui-corner-right{-moz-border-radius-topright:.3em;-webkit-border-top-right-radius:.3em;border-top-right-radius:.3em;-moz-border-radius-bottomright:.3em;-webkit-border-bottom-right-radius:.3em;border-bottom-right-radius:.3em}.ui-corner-left{-moz-border-radius-topleft:.3em;-webkit-border-top-left-radius:.3em;border-top-left-radius:.3em;-moz-border-radius-bottomleft:.3em;-webkit-border-bottom-left-radius:.3em;border-bottom-left-radius:.3em}.ui-corner-none{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-header .ui-btn .ui-btn-icon-only .ui-icon,.ui-footer .ui-btn .ui-btn-icon-only .ui-icon{width:1.4545454545454546rem;height:1.4545454545454546rem}.ui-btn-back .ui-btn-inner .ui-icon-header-back-btn,.ui-btn-footer-down .ui-btn-inner .ui-icon{width:1.4545454545454546rem;height:1.4545454545454546rem;background-repeat:no-repeat;background-size:100% 100%}.ui-btn-up-s{}.ui-btn-up-s .ui-icon-header-back-btn{background-image:url(images/page/00_icon_Back.png)}.ui-btn-up-s .ui-icon-naviframe-more{background-image:url(images/page/00_icon_more.png)}.ui-btn-up-s .ui-icon-naviframe-cancel{background-image:url(images/00_icon_cancel.png)}.ui-btn-up-s .ui-icon-naviframe-edit{background-image:url(images/page/00_icon_edit.png)}.ui-btn-up-s .ui-icon-naviframe-plus{background-image:url(images/page/00_icon_plus.png)}.ui-btn-up-s .ui-icon-down{background-image:url(images/controls/button/00_icon_SIP_close_web_web.png)}.ui-btn-hover-s .ui-icon-header-back-btn{background-image:url(images/page/00_icon_Back.png)}.ui-btn-hover-s .ui-icon-naviframe-more{background-image:url(images/page/00_icon_more.png)}.ui-btn-hover-s .ui-icon-naviframe-cancel{background-image:url(images/00_icon_cancel.png)}.ui-btn-hover-s .ui-icon-naviframe-edit{background-image:url(images/page/00_icon_edit.png)}.ui-btn-hover-s .ui-icon-naviframe-plus{background-image:url(images/page/00_icon_plus.png)}.ui-btn-hover-s .ui-icon-down{background-image:url(images/controls/button/00_icon_SIP_close_web_web.png)}.ui-btn-down-s .ui-icon-header-back-btn{background-image:url(images/page/00_icon_Back_press.png)}.ui-btn-down-s .ui-icon-naviframe-more{background-image:url(images/page/00_icon_more_press.png)}.ui-btn-down-s .ui-icon-naviframe-cancel{background-image:url(images/00_icon_cancel_press.png)}.ui-btn-down-s .ui-icon-naviframe-edit{background-image:url(images/page/00_icon_edit_press.png)}.ui-btn-down-s .ui-icon-naviframe-plus{background-image:url(images/page/00_icon_plus_press.png)}.ui-btn-down-s .ui-icon-down{background-image:url(images/controls/button/00_icon_SIP_close_press_web.png)}.ui-disabled{filter:alpha(opacity=30);opacity:.3;zoom:1}.ui-disabled,.ui-disabled a{cursor:default!important;pointer-events:none}.ui-mobile,.ui-mobile body{height:100%;font-size:22px}@media all and (max-width: 359px){.ui-mobile,.ui-mobile body{ font-size:19px}}.ui-mobile fieldset,.ui-page{padding:0;margin:0}.ui-mobile a img,.ui-mobile fieldset{border:0}.ui-mobile-viewport{margin:0;overflow-x:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ui-mobile [data-role=page],.ui-mobile [data-role=dialog],.ui-page{top:0;left:0;width:100%;position:absolute;display:none;border:0}.ui-mobile .ui-page-active{display:block;overflow:visible}.ui-page{outline:0}.ui-mobile,.ui-mobile .ui-page{background:#f8f6ef;color:#000}.ui-page.ui-mobile-touch-overflow,.ui-mobile-touch-overflow.ui-native-fixed .ui-content{overflow:auto;height:100%;-webkit-overflow-scrolling:touch;-moz-overflow-scrolling:touch;-o-overflow-scrolling:touch;-ms-overflow-scrolling:touch;overflow-scrolling:touch}.ui-page.ui-mobile-touch-overflow,.ui-page.ui-mobile-touch-overflow *{transform:rotateY(0);-ms-transform:rotateY(0);-moz-transform:rotateY(0);-webkit-transform:rotateY(0);-o-transform:rotateY(0)}.ui-page.ui-mobile-pre-transition{display:block}.ui-loading .ui-mobile-viewport{overflow:hidden!important}.ui-loading .ui-loader{display:block}.ui-loading .ui-page{overflow:hidden}.ui-loader{display:none;position:absolute;opacity:.85;z-index:100;left:50%;width:200px;margin-left:-130px;margin-top:-35px;padding:10px 30px}.ui-loader h1{font-size:1.4545454545454546rem;text-align:center}.ui-loader .ui-icon{position:static;display:block;opacity:.9;margin:0 auto;width:35px;height:35px;background-color:transparent}.ui-blocker{width:100%;height:100%;z-index:2147483647}.ui-mobile-rendering>*{visibility:hidden}.ui-bar,.ui-body{position:relative;padding:.4em 15px;overflow:hidden;display:block;clear:both}.ui-bar{font-size:16px;margin:0}.ui-bar h1,.ui-bar h2,.ui-bar h3,.ui-bar h4,.ui-bar h5,.ui-bar h6{margin:0;padding:0;font-size:16px;display:inline-block}.ui-header,.ui-footer{display:block}.ui-page .ui-header,.ui-page .ui-footer{position:fixed;z-index:1000}.ui-header .ui-btn-left{top:.4em;float:left}.ui-header .ui-btn-right{float:right;top:.4em}.ui-header .ui-title,.ui-footer .ui-title{min-height:1.1em;text-align:center;font-size:16px;display:block;margin:.6em 90px .8em;padding:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;outline:0!important}.ui-content{border-width:0;overflow:visible;overflow-x:hidden;padding:15px}.ui-page-fullscreen .ui-content{padding:0}.ui-mobile-touch-overflow.ui-page.ui-native-fixed,.ui-mobile-touch-overflow.ui-page.ui-native-fullscreen{overflow:visible}.ui-mobile-touch-overflow.ui-native-fixed .ui-header,.ui-mobile-touch-overflow.ui-native-fixed .ui-footer{position:fixed;left:0;right:0;top:0;z-index:200}.ui-mobile-touch-overflow.ui-page.ui-native-fixed .ui-footer{top:auto;bottom:0}.ui-mobile-touch-overflow.ui-native-fixed .ui-content{padding-top:2.5em;padding-bottom:3em;top:0;bottom:0;height:auto;position:absolute}.ui-mobile-touch-overflow.ui-native-fullscreen .ui-content{padding-top:0;padding-bottom:0}.ui-mobile-touch-overflow.ui-native-fullscreen .ui-header,.ui-mobile-touch-overflow.ui-native-fullscreen .ui-footer{opacity:.9}.ui-native-bars-hidden{display:none}.ui-icon{width:18px;height:18px}.ui-fullscreen img{max-width:100%}.ui-nojs{position:absolute;left:-9999px}.ui-mobile-viewport-transitioning,.ui-mobile-viewport-transitioning .ui-page{width:100%;height:100%;overflow:hidden}.in{-ms-animation-timing-function:ease-out;-ms-animation-duration:350ms;-o-animation-timing-function:ease-out;-o-animation-duration:350ms;-webkit-animation-timing-function:ease-out;-webkit-animation-duration:350ms;-moz-animation-timing-function:ease-out;-moz-animation-duration:350ms}.out{-ms-animation-timing-function:ease-in;-ms-animation-duration:225ms;-o-animation-timing-function:ease-in;-o-animation-duration:225;-webkit-animation-timing-function:ease-in;-webkit-animation-duration:225ms;-moz-animation-timing-function:ease-in;-moz-animation-duration:225}@-webkit-keyframes fadein{from{ opacity:0}to{opacity:1}}@-moz-keyframes fadein{from{ opacity:0}to{opacity:1}}@-webkit-keyframes fadeout{from{ opacity:1}to{opacity:0}}@-moz-keyframes fadeout{from{ opacity:1}to{opacity:0}}.fade.out{opacity:0;-ms-animation-duration:125ms;-ms-animation-name:fadeout;-o-animation-duration:125ms;-o-animation-name:fadeout;-webkit-animation-duration:125ms;-webkit-animation-name:fadeout;-moz-animation-duration:125ms;-moz-animation-name:fadeout}.fade.in{opacity:1;-ms-animation-duration:225ms;-ms-animation-name:fadein;-o-animation-duration:225ms;-o-animation-name:fadein;-webkit-animation-duration:225ms;-webkit-animation-name:fadein;-moz-animation-duration:225ms;-moz-animation-name:fadein}.viewport-flip{-ms-perspective:1000;-o-perspective:1000;-webkit-perspective:1000;-moz-perspective:1000;position:absolute}.flip{-webkit-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-backface-visibility:hidden;-moz-transform:translate3d(0,0,0)}.flip.out{-webkit-transform:rotateY(-90deg) scale(.9);-webkit-animation-name:flipouttoleft;-webkit-animation-duration:175ms;-moz-transform:rotateY(-90deg) scale(.9);-moz-animation-name:flipouttoleft;-moz-animation-duration:175ms}.flip.in{-webkit-animation-name:flipintoright;-webkit-animation-duration:225ms;-moz-animation-name:flipintoright;-moz-animation-duration:225ms}.flip.out.reverse{-webkit-transform:rotateY(90deg) scale(.9);-webkit-animation-name:flipouttoright;-moz-transform:rotateY(90deg) scale(.9);-moz-animation-name:flipouttoright}.flip.in.reverse{-webkit-animation-name:flipintoleft;-moz-animation-name:flipintoleft}@-webkit-keyframes flipouttoleft{from{ -webkit-transform:rotateY(0)}to{-webkit-transform:rotateY(-90deg) scale(.9)}}@-moz-keyframes flipouttoleft{from{ -moz-transform:rotateY(0)}to{-moz-transform:rotateY(-90deg) scale(.9)}}@-webkit-keyframes flipouttoright{from{ -webkit-transform:rotateY(0)}to{-webkit-transform:rotateY(90deg) scale(.9)}}@-moz-keyframes flipouttoright{from{ -moz-transform:rotateY(0)}to{-moz-transform:rotateY(90deg) scale(.9)}}@-webkit-keyframes flipintoleft{from{ -webkit-transform:rotateY(-90deg) scale(.9)}to{-webkit-transform:rotateY(0)}}@-moz-keyframes flipintoleft{from{ -moz-transform:rotateY(-90deg) scale(.9)}to{-moz-transform:rotateY(0)}}@-webkit-keyframes flipintoright{from{ -webkit-transform:rotateY(90deg) scale(.9)}to{-webkit-transform:rotateY(0)}}@-moz-keyframes flipintoright{from{ -moz-transform:rotateY(90deg) scale(.9)}to{-moz-transform:rotateY(0)}}.flow{-webkit-transform-origin:50% 30%;-moz-transform-origin:50% 30%;-webkit-box-shadow:0 0 20px rgba(0,0,0,.4);-moz-box-shadow:0 0 20px rgba(0,0,0,.4)}.ui-dialog.flow{-webkit-transform-origin:none;-moz-transform-origin:none;-webkit-box-shadow:none;-moz-box-shadow:none}.flow.out{-webkit-transform:translate3d(-100%,0,0) scale(.7);-webkit-animation-name:flowouttoleft;-webkit-animation-timing-function:ease;-webkit-animation-duration:350ms;-moz-transform:translate3d(-100%,0,0) scale(.7);-moz-animation-name:flowouttoleft;-moz-animation-timing-function:ease;-moz-animation-duration:350ms}.flow.in{-webkit-transform:translate3d(0,0,0) scale(1);-webkit-animation-name:flowinfromright;-webkit-animation-timing-function:ease;-webkit-animation-duration:350ms;-moz-transform:translate3d(0,0,0) scale(1);-moz-animation-name:flowinfromright;-moz-animation-timing-function:ease;-moz-animation-duration:350ms}.flow.out.reverse{-webkit-transform:translate3d(100%,0,0);-webkit-animation-name:flowouttoright;-moz-transform:translate3d(100%,0,0);-moz-animation-name:flowouttoright}.flow.in.reverse{-webkit-animation-name:flowinfromleft;-moz-animation-name:flowinfromleft}@-webkit-keyframes flowouttoleft{0%{ -webkit-transform:translate3d(0,0,0) scale(1)}60%,70%{-webkit-transform:translate3d(0,0,0) scale(.7)}100%{-webkit-transform:translate3d(-100%,0,0) scale(.7)}}@-moz-keyframes flowouttoleft{0%{ -moz-transform:translate3d(0,0,0) scale(1)}60%,70%{-moz-transform:translate3d(0,0,0) scale(.7)}100%{-moz-transform:translateX(-100%) scale(.7)}}@-webkit-keyframes flowouttoright{0%{ -webkit-transform:translate3d(0,0,0) scale(1)}60%,70%{-webkit-transform:translate3d(0,0,0) scale(.7)}100%{-webkit-transform:translate3d(100%,0,0) scale(.7)}}@-moz-keyframes flowouttoright{0%{ -moz-transform:translate3d(0,0,0) scale(1)}60%,70%{-moz-transform:translate3d(0,0,0) scale(.7)}100%{-moz-transform:translate3d(100%,0,0) scale(.7)}}@-webkit-keyframes flowinfromleft{0%{ -webkit-transform:translate3d(-100%,0,0) scale(.7)}30%,40%{-webkit-transform:translate3d(0,0,0) scale(.7)}100%{-webkit-transform:translate3d(0,0,0) scale(1)}}@-moz-keyframes flowinfromleft{0%{ -moz-transform:translate3d(-100%,0,0) scale(.7)}30%,40%{-moz-transform:translate3d(0,0,0) scale(.7)}100%{-moz-transform:translate3d(0,0,0) scale(1)}}@-webkit-keyframes flowinfromright{0%{ -webkit-transform:translate3d(100%,0,0) scale(.7)}30%,40%{-webkit-transform:translate3d(0,0,0) scale(.7)}100%{-webkit-transform:translate3d(0,0,0) scale(1)}}@-moz-keyframes flowinfromright{0%{ -moz-transform:translate3d(100%,0,0) scale(.7)}30%,40%{-moz-transform:translate3d(0,0,0) scale(.7)}100%{-moz-transform:translate3d(0,0,0) scale(1)}}.pop{-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%}.pop.in{-webkit-transform:scale(1);-moz-transform:scale(1);opacity:1;-webkit-animation-name:popin;-moz-animation-name:popin;-webkit-animation-duration:350ms;-moz-animation-duration:350ms}.pop.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;opacity:0;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.pop.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein}.pop.out.reverse{-webkit-transform:scale(.8);-moz-transform:scale(.8);-webkit-animation-name:popout;-moz-animation-name:popout}@-webkit-keyframes popin{from{ -webkit-transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);opacity:1}}@-moz-keyframes popin{from{ -moz-transform:scale(.8);opacity:0}to{-moz-transform:scale(1);opacity:1}}@-webkit-keyframes popout{from{ -webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(.8);opacity:0}}@-moz-keyframes popout{from{ -moz-transform:scale(1);opacity:1}to{-moz-transform:scale(.8);opacity:0}}@-webkit-keyframes slideinfromright{from{ -webkit-transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideinfromright{from{ -moz-transform:translate3d(100%,0,0)}to{-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slideinfromleft{from{ -webkit-transform:translate3d(-100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideinfromleft{from{ -moz-transform:translate3d(-100%,0,0)}to{-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slideouttoleft{from{ -webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-100%,0,0)}}@-moz-keyframes slideouttoleft{from{ -moz-transform:translate3d(0,0,0)}to{-moz-transform:translate3d(-100%,0,0)}}@-webkit-keyframes slideouttoright{from{ -webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(100%,0,0)}}@-moz-keyframes slideouttoright{from{ -moz-transform:translate3d(0,0,0)}to{-moz-transform:translate3d(100%,0,0)}}.slide.out,.slide.in{-webkit-animation-timing-function:ease-out;-webkit-animation-duration:350ms;-moz-animation-timing-function:ease-out;-moz-animation-duration:350ms}.slide.out{-webkit-transform:translate3d(-100%,0,0);-webkit-animation-name:slideouttoleft;-moz-transform:translate3d(-100%,0,0);-moz-animation-name:slideouttoleft}.slide.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slideinfromright;-moz-transform:translate3d(0,0,0);-moz-animation-name:slideinfromright}.slide.out.reverse{-webkit-transform:translate3d(100%,0,0);-webkit-animation-name:slideouttoright;-moz-transform:translate3d(100%,0,0);-moz-animation-name:slideouttoright}.slide.in.reverse{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slideinfromleft;-moz-transform:translate3d(0,0,0);-moz-animation-name:slideinfromleft}.slidedown.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.slidedown.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slideinfromtop;-moz-transform:translate3d(0,0,0);-moz-animation-name:slideinfromtop;-webkit-animation-duration:250ms;-moz-animation-duration:250ms}.slidedown.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein;-webkit-animation-duration:150ms;-moz-animation-duration:150ms}.slidedown.out.reverse{-webkit-transform:translate3d(0,-100%,0);-moz-transform:translate3d(0,-100%,0);-webkit-animation-name:slideouttotop;-moz-animation-name:slideouttotop;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}@-webkit-keyframes slideinfromtop{from{ -webkit-transform:translate3d(0,-100%,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideinfromtop{from{ -moz-transform:translate3d(0,-100%,0)}to{-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slideouttotop{from{ -webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(0,-100%,0)}}@-moz-keyframes slideouttotop{from{ -moz-transform:translate3d(0,0,0)}to{-moz-transform:translate3d(0,-100%,0)}}.slideup.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.slideup.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slideinfrombottom;-moz-transform:translate3d(0,0,0);-moz-animation-name:slideinfrombottom;-webkit-animation-duration:250ms;-moz-animation-duration:250ms}.slideup.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein;-webkit-animation-duration:150ms;-moz-animation-duration:150ms}.slideup.out.reverse{-webkit-transform:translate3d(0,100%,0);-moz-transform:translate3d(0,100%,0);-webkit-animation-name:slideouttobottom;-moz-animation-name:slideouttobottom;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}@-webkit-keyframes slideinfrombottom{from{ -webkit-transform:translate3d(0,100%,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideinfrombottom{from{ -moz-transform:translate3d(0,100%,0)}to{-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slideouttobottom{from{ -webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(0,100%,0)}}@-moz-keyframes slideouttobottom{from{ -moz-transform:translate3d(0,0,0)}to{-moz-transform:translate3d(0,100%,0)}}.slideupfade.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.slideupfade.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slideupfadeinfrombottom;-moz-transform:translate3d(0,0,0);-moz-animation-name:slideupfadeinfrombottom;-webkit-animation-duration:250ms;-moz-animation-duration:250ms}.slideupfade.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein;-webkit-animation-duration:150ms;-moz-animation-duration:150ms}.slideupfade.out.reverse{-webkit-transform:translate3d(0,5%,0);-moz-transform:translate3d(0,5%,0);-webkit-animation-name:slideupfadeouttobottom;-moz-animation-name:slideupfadeouttobottom;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}@-webkit-keyframes slideupfadeinfrombottom{from{ opacity:0;-webkit-transform:translate3d(0,5%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideupfadeinfrombottom{from{ opacity:0;-moz-transform:translate3d(0,5%,0)}to{opacity:1;-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slideupfadeouttobottom{from{ opacity:1;-webkit-transform:translate3d(0,0,0)}to{opacity:0;-webkit-transform:translate3d(0,5%,0)}}@-moz-keyframes slideupfadeouttobottom{from{ opacity:1;-moz-transform:translate3d(0,0,0)}to{opacity:0;-moz-transform:translate3d(0,5%,0)}}.slidedownfade.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.slidedownfade.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slidedownfadeinfromtop;-moz-transform:translate3d(0,0,0);-moz-animation-name:slidedownfadeinfromtop;-webkit-animation-duration:250ms;-moz-animation-duration:250ms}.slidedownfade.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein;-webkit-animation-duration:150ms;-moz-animation-duration:150ms}.slidedownfade.out.reverse{-webkit-transform:translate3d(0,-5%,0);-moz-transform:translate3d(0,-5%,0);-webkit-animation-name:slidedownfadeouttotop;-moz-animation-name:slidedownfadeouttotop;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}@-webkit-keyframes slidedownfadeinfromtop{from{ opacity:0;-webkit-transform:translate3d(0,-5%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slidedownfadeinfromtop{from{ opacity:0;-moz-transform:translate3d(0,-5%,0)}to{opacity:1;-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slidedownfadeouttotop{from{ opacity:1;-webkit-transform:translate3d(0,0,0)}to{opacity:0;-webkit-transform:translate3d(0,-5%,0)}}@-moz-keyframes slidedownfadeouttotop{from{ opacity:1;-moz-transform:translate3d(0,0,0)}to{opacity:0;-moz-transform:translate3d(0,-5%,0)}}.slidefade.out{-webkit-transform:translate3d(-100%,0,0);-webkit-animation-name:slideouttoleft;-moz-transform:translate3d(-100%,0,0);-moz-animation-name:slideouttoleft;-webkit-animation-duration:225ms;-moz-animation-duration:225ms}.slidefade.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:fadein;-moz-transform:translate3d(0,0,0);-moz-animation-name:fadein;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}.slidefade.out.reverse{-webkit-transform:translate3d(100%,0,0);-webkit-animation-name:slideouttoright;-moz-transform:translate3d(100%,0,0);-moz-animation-name:slideouttoright;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}.slidefade.in.reverse{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:fadein;-moz-transform:translate3d(0,0,0);-moz-animation-name:fadein;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}.viewport-turn{-webkit-perspective:1000;-moz-perspective:1000;position:absolute}.turn{-webkit-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-webkit-transform-origin:0;-moz-backface-visibility:hidden;-moz-transform:translate3d(0,0,0);-moz-transform-origin:0}.turn.out{-webkit-transform:rotateY(-90deg) scale(.9);-webkit-animation-name:flipouttoleft;-moz-transform:rotateY(-90deg) scale(.9);-moz-animation-name:flipouttoleft;-webkit-animation-duration:125ms;-moz-animation-duration:125ms}.turn.in{-webkit-animation-name:flipintoright;-moz-animation-name:flipintoright;-webkit-animation-duration:250ms;-moz-animation-duration:250ms}.turn.out.reverse{-webkit-transform:rotateY(90deg) scale(.9);-webkit-animation-name:flipouttoright;-moz-transform:rotateY(90deg) scale(.9);-moz-animation-name:flipouttoright}.turn.in.reverse{-webkit-animation-name:flipintoleft;-moz-animation-name:flipintoleft}@-webkit-keyframes flipouttoleft{from{ -webkit-transform:rotateY(0)}to{-webkit-transform:rotateY(-90deg) scale(.9)}}@-moz-keyframes flipouttoleft{from{ -moz-transform:rotateY(0)}to{-moz-transform:rotateY(-90deg) scale(.9)}}@-webkit-keyframes flipouttoright{from{ -webkit-transform:rotateY(0)}to{-webkit-transform:rotateY(90deg) scale(.9)}}@-moz-keyframes flipouttoright{from{ -moz-transform:rotateY(0)}to{-moz-transform:rotateY(90deg) scale(.9)}}@-webkit-keyframes flipintoleft{from{ -webkit-transform:rotateY(-90deg) scale(.9)}to{-webkit-transform:rotateY(0)}}@-moz-keyframes flipintoleft{from{ -moz-transform:rotateY(-90deg) scale(.9)}to{-moz-transform:rotateY(0)}}@-webkit-keyframes flipintoright{from{ -webkit-transform:rotateY(90deg) scale(.9)}to{-webkit-transform:rotateY(0)}}@-moz-keyframes flipintoright{from{ -moz-transform:rotateY(90deg) scale(.9)}to{-moz-transform:rotateY(0)}}.depth{-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%}.depth.out{-webkit-animation-name:depthout;-moz-animation-name:depthout;opacity:0;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;-webkit-animation-timing-function:ease;-moz-animation-timing-function:ease}.depth.in{-webkit-transform:scale(1);-moz-transform:scale(1);opacity:1;-webkit-animation-name:depthin;-moz-animation-name:depthin;-webkit-animation-duration:350ms;-moz-animation-duration:350ms;-webkit-animation-timing-function:ease;-moz-animation-timing-function:ease}.depth.in.reverse{-webkit-animation-name:depthinreverse;-moz-animation-name:depthinreverse}.depth.out.reverse{-webkit-transform:scale(.9);-moz-transform:scale(.9);-webkit-animation-name:depthoutreverse;-moz-animation-name:depthoutreverse}@-webkit-keyframes depthout{from{ -webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(1.1);opacity:0}}@-moz-keyframes depthout{from{ -moz-transform:scale(1);opacity:1}to{-moz-transform:scale(1.1);opacity:0}}@-webkit-keyframes depthin{0%{ -webkit-transform:scale(.9);opacity:0}30%{-webkit-transform:scale(.9);opacity:0}100%{-webkit-transform:scale(1);opacity:1}}@-moz-keyframes depthin{0%{ -moz-transform:scale(.9);opacity:0}30%{-moz-transform:scale(.9);opacity:0}100%{-moz-transform:scale(1);opacity:1}}@-webkit-keyframes depthinreverse{0%{ -webkit-transform:scale(1.1);opacity:0}30%{-webkit-transform:scale(1.1);opacity:0}100%{-webkit-transform:scale(1);opacity:1}}@-moz-keyframes depthinreverse{0%{ -moz-transform:scale(1.1);opacity:0}30%{-moz-transform:scale(1.1);opacity:0}100%{-moz-transform:scale(1);opacity:1}}@-webkit-keyframes depthoutreverse{from{ -webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(.9);opacity:0}}@-moz-keyframes depthoutreverse{from{ -moz-transform:scale(1);opacity:1}to{-moz-transform:scale(.9);opacity:0}}.ui-grid-a,.ui-grid-b,.ui-grid-c,.ui-grid-d{overflow:hidden}.ui-block-a,.ui-block-b,.ui-block-c,.ui-block-d,.ui-block-e{margin:0;padding:0;border:0;float:left;min-height:1px}.ui-grid-solo .ui-block-a{width:100%;float:none}.ui-grid-a .ui-block-a,.ui-grid-a .ui-block-b{width:50%}.ui-grid-a .ui-block-a{clear:left}.ui-grid-b .ui-block-a,.ui-grid-b .ui-block-b,.ui-grid-b .ui-block-c{width:33.333%}.ui-grid-b .ui-block-a{clear:left}.ui-grid-c .ui-block-a,.ui-grid-c .ui-block-b,.ui-grid-c .ui-block-c,.ui-grid-c .ui-block-d{width:25%}.ui-grid-c .ui-block-a{clear:left}.ui-grid-d .ui-block-a,.ui-grid-d .ui-block-b,.ui-grid-d .ui-block-c,.ui-grid-d .ui-block-d,.ui-grid-d .ui-block-e{width:20%}.ui-grid-d .ui-block-a{clear:left}.ui-header,.ui-footer,.ui-page-fullscreen .ui-header,.ui-page-fullscreen .ui-footer{position:absolute;overflow:hidden;width:100%;border-left-width:0;border-right-width:0}.ui-header-fixed,.ui-footer-fixed{z-index:1000;-webkit-transform:translateZ(0)}.ui-footer-duplicate,.ui-page-fullscreen .ui-fixed-inline{display:none}.ui-page-fullscreen .ui-header,.ui-page-fullscreen .ui-footer{opacity:.9}.ui-navbar{overflow:hidden}.ui-navbar ul,.ui-navbar-expanded ul{list-style:none;padding:0;margin:0;position:relative;display:block;border:0}.ui-navbar-collapsed ul{float:left;width:75%;margin-right:-2px}.ui-navbar-collapsed .ui-navbar-toggle{float:left;width:25%}.ui-navbar li.ui-navbar-truncate{position:absolute;left:-9999px;top:-9999px}.ui-navbar li .ui-btn,.ui-navbar .ui-navbar-toggle .ui-btn{display:block;font-size:12px;text-align:center;margin:0;border-right-width:0}.ui-navbar li .ui-btn{margin-right:-1px}.ui-navbar li .ui-btn:last-child{margin-right:0}.ui-header .ui-navbar li .ui-btn,.ui-header .ui-navbar .ui-navbar-toggle .ui-btn,.ui-footer .ui-navbar li .ui-btn,.ui-footer .ui-navbar .ui-navbar-toggle .ui-btn{border-top-width:0;border-bottom-width:0}.ui-navbar .ui-btn-inner{padding-left:2px;padding-right:2px}.ui-navbar-noicons li .ui-btn .ui-btn-inner,.ui-navbar-noicons .ui-navbar-toggle .ui-btn-inner{padding-top:.8em;padding-bottom:.9em}.ui-navbar-expanded .ui-btn{margin:0;font-size:14px}.ui-navbar-expanded .ui-btn-inner{padding-left:5px;padding-right:5px}.ui-navbar-expanded .ui-btn-icon-top .ui-btn-inner{padding:45px 5px 15px;text-align:center}.ui-navbar-expanded .ui-btn-icon-top .ui-icon{top:15px}.ui-navbar-expanded .ui-btn-icon-bottom .ui-btn-inner{padding:15px 5px 45px;text-align:center}.ui-navbar-expanded .ui-btn-icon-bottom .ui-icon{bottom:15px}.ui-navbar-expanded li .ui-btn .ui-btn-inner{min-height:2.5em}.ui-navbar-expanded .ui-navbar-noicons .ui-btn .ui-btn-inner{padding-top:1.8em;padding-bottom:1.9em}.ui-btn{display:block;text-align:center;cursor:pointer;position:relative;vertical-align:middle}.ui-btn:focus,.ui-btn:active{outline:0}.ui-header .ui-btn,.ui-footer .ui-btn,.ui-bar .ui-btn{display:inline-block;font-size:.5909090909090909rem;margin:0}.ui-btn-inline{display:inline-block}.ui-btn-inner{padding:.5em .4090909090909091rem;display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;position:relative;zoom:1}.ui-btn-icon-notext{width:1.6363636363636365rem;height:1.6363636363636365rem}.ui-btn-icon-notext .ui-btn-inner{padding:.09090909090909091rem .045454545454545456rem .09090909090909091rem .13636363636363635rem}.ui-btn-icon-notext .ui-btn-inner .ui-icon{margin-left:-.7272727272727273rem;margin-top:-.7272727272727273rem}.ui-btn-icon-notext .ui-btn-text{position:absolute;left:-45.409090909090914rem}.ui-btn-icon-left .ui-btn-inner{padding-left:1.5rem}.ui-header .ui-btn-icon-left .ui-btn-inner,.ui-footer .ui-btn-icon-left .ui-btn-inner,.ui-bar .ui-btn-icon-left .ui-btn-inner{padding-left:1.2272727272727273rem}.ui-btn-icon-right .ui-btn-inner{padding-right:1.5rem}.ui-header .ui-btn-icon-right .ui-btn-inner,.ui-footer .ui-btn-icon-right .ui-btn-inner,.ui-bar .ui-btn-icon-right .ui-btn-inner{padding-right:1.2272727272727273rem}.ui-btn-icon-top .ui-btn-inner{padding-top:1.2272727272727273rem}.ui-header .ui-btn-icon-top .ui-btn-inner,.ui-footer .ui-btn-icon-top .ui-btn-inner,.ui-bar .ui-btn-icon-top .ui-btn-inner{padding-top:1.2272727272727273rem}.ui-btn-icon-bottom .ui-btn-inner{padding-bottom:1.5rem}.ui-header .ui-btn-icon-bottom .ui-btn-inner,.ui-footer .ui-btn-icon-bottom .ui-btn-inner,.ui-bar .ui-btn-icon-bottom .ui-btn-inner{padding-bottom:1.2272727272727273rem}.ui-btn-icon-notext .ui-icon{display:block}.ui-btn-icon-left .ui-icon,.ui-btn-icon-right .ui-icon,.ui-btn-icon-circle .ui-icon{position:absolute}.ui-btn-icon-top .ui-icon,.ui-btn-icon-bottom .ui-icon{position:absolute;left:50%;margin-left:-9px}.ui-btn-icon-left .ui-icon{left:0rem}.ui-btn-icon-circle .ui-icon{left:0rem}.ui-btn-icon-right .ui-icon{right:.4545454545454546rem}.ui-btn-icon-top .ui-icon{top:0rem;margin-top:0}.ui-btn-icon-bottom .ui-icon{bottom:0rem}.ui-header .ui-btn-icon-right .ui-icon,.ui-footer .ui-btn-icon-right .ui-icon,.ui-bar .ui-btn-icon-right .ui-icon{right:.18181818181818182rem}.ui-header .ui-btn-icon-top .ui-icon,.ui-footer .ui-btn-icon-top .ui-icon,.ui-bar .ui-btn-icon-top .ui-icon{top:.18181818181818182rem}.ui-header .ui-btn-icon-bottom .ui-icon,.ui-footer .ui-btn-icon-bottom .ui-icon,.ui-bar .ui-btn-icon-bottom .ui-icon{bottom:.18181818181818182rem}.ui-btn-hidden{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-appearance:button;opacity:.1;cursor:pointer;background:transparent;font-size:.045454545454545456rem;border:0;line-height:45.409090909090914rem}.ui-btn-text{margin-left:auto;margin-right:auto;padding:0 1px}.ui-li .ui-btn.ui-btn-icon_only{top:50%;margin-top:-.7272727272727273rem}.ui-li .ui-btn .ui-btn-inner.ui-btn-hastxt{padding:.2em .5em}.ui-btn-icon-nobg.ui-btn-down-s .ui-btn-inner{background:transparent ! important}.ui-btn.ui-btn-box-s.ui-btn-down-s .ui-btn-inner{color:#f8f6ef}.ui-header .ui-btn-box-s:not(.ui-input-cancel):not(.ui-btn-search-front-icon),.ui-header .ui-btn-box-s:not(.ui-input-cancel):not(.ui-btn-search-front-icon) .ui-btn-inner,.ui-header .ui-btn.ui-btn-box-s.ui-btn-down-s:not(.ui-input-cancel):not(.ui-btn-search-front-icon) .ui-btn-inner,.ui-btn.ui-btn-back.ui-btn-up-s .ui-btn-inner,.ui-btn.ui-btn-back.ui-btn-hover-s .ui-btn-inner,.ui-btn.ui-btn-back.ui-btn-down-s .ui-btn-inner,.ui-btn.ui-btn-footer-down.ui-btn-up-s>.ui-btn-inner,.ui-btn.ui-btn-footer-down.ui-btn-hover-s>.ui-btn-inner,.ui-btn.ui-btn-footer-down.ui-btn-down-s>.ui-btn-inner{background:transparent;border:0;box-shadow:none}.ui-btn-icon-top .ui-btn-inner.ui-btn-hastxt,.ui-li .ui-btn-icon-top .ui-btn-inner.ui-btn-hastxt{padding-top:2.3636363636363638rem}.ui-btn-icon-bottom .ui-btn-inner.ui-btn-hastxt,.ui-li .ui-btn-icon-bottom .ui-btn-inner.ui-btn-hastxt{padding-bottom:2.3636363636363638rem}.ui-btn .ui-icon{width:1.4545454545454546rem;height:1.4545454545454546rem}.ui-btn.ui-btn-edit .ui-icon{width:3.3636363636363638rem;height:3.3636363636363638rem}.ui-btn .ui-btn-text.ui-btn-text-padding-left{padding-left:2rem}.ui-btn .ui-btn-text.ui-btn-text-padding-right{padding-right:2.1818181818181817rem}.ui-btn .ui-btn-text.ui-btn-text-padding-top{padding-top:1.4545454545454546rem}.ui-icon{background-repeat:no-repeat;vertical-align:middle;background-position:0 0;background-size:100%}.ui-btn-box.s .ui-icon{position:absolute}.ui-btn-box-s.ui-btn-icon-left .ui-icon,.ui-btn-box-s.ui-btn-icon-right .ui-icon{margin-top:-.7272727272727273rem;top:50%}.ui-btn-box-s.ui-btn-icon-top .ui-icon,.ui-btn-box-s.ui-btn-icon-bottom .ui-icon{margin-left:-.7272727272727273rem;left:50%}.tizen-icon-common{width:1.4545454545454546rem;height:1.4545454545454546rem}.tizen-smallicon-common{width:.9090909090909092rem ! important;height:.9090909090909092rem ! important;top:50% ! important;left:50% ! important;margin-top:-.4545454545454546rem ! important;margin-left:-.4545454545454546rem ! important}.ui-icon-bg{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_btn_circle_bg_normal.png);z-index:0}.ui-icon-arrow-l{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_left.png)}.ui-icon-arrow-r{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_right.png)}.ui-icon-arrow-u{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_opened.png)}.ui-icon-arrow-d{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_closed.png)}.ui-icon-delete{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_cancel.png)}.ui-icon-plus{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_plus.png)}.ui-icon-minus{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_minus.png)}.ui-icon-check{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_check.png)}.ui-icon-gear{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_gear.png)}.ui-icon-refresh{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_refresh.png)}.ui-icon-forward{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_send.png)}.ui-icon-back{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_back.png)}.ui-icon-grid{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_grid.png)}.ui-icon-star{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_star.png)}.ui-icon-alert{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_warning.png)}.ui-icon-info{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_info.png)}.ui-icon-home{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_home.png)}.ui-icon-search{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_search.png)}.ui-icon-call{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_call.png)}.ui-icon-rename{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_rename.png)}.ui-icon-scrolltop{width:.9090909090909092rem ! important;height:.9090909090909092rem ! important;top:50% ! important;left:50% ! important;margin-top:-.4545454545454546rem ! important;margin-left:-.4545454545454546rem ! important;background-image:url(images/controls/button/00_icon_jump.png)}.ui-icon-scrollleft{width:.9090909090909092rem ! important;height:.9090909090909092rem ! important;top:50% ! important;left:50% ! important;margin-top:-.4545454545454546rem ! important;margin-left:-.4545454545454546rem ! important;background-image:url(images/controls/button/00_icon_jump_left.png)}.ui-icon-expandable-divider-opened{width:1.9090909090909092rem;height:1.9090909090909092rem;position:absolute;right:1.2727272727272727rem;top:0rem;background-repeat:no-repeat;background-size:100% 100%;background-image:url(images/00_indexlist_icon_opened.png)}.ui-icon-expandable-divider-closed{width:1.9090909090909092rem;height:1.9090909090909092rem;position:absolute;right:1.2727272727272727rem;top:0rem;background-repeat:no-repeat;background-size:100% 100%;background-image:url(images/00_indexlist_icon_closed.png)}.ui-btn-down-s .ui-icon-bg,.ui-btn-down-s.ui-tizen-icon-bg{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_btn_circle_bg_press.png);z-index:0}.ui-btn-down-s .ui-icon-arrow-l{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_left_press.png)}.ui-btn-down-s .ui-icon-arrow-r{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_right_press.png)}.ui-btn-down-s .ui-icon-arrow-u{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_opened_press.png)}.ui-btn-down-s .ui-icon-arrow-d{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_closed_press.png)}.ui-btn-down-s .ui-icon-delete{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_cancel_press.png)}.ui-btn-down-s .ui-icon-plus{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_plus_press.png)}.ui-btn-down-s .ui-icon-minus{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_minus_press.png)}.ui-btn-down-s .ui-icon-check{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_check_press.png)}.ui-btn-down-s .ui-icon-gear{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_gear_press.png)}.ui-btn-down-s .ui-icon-refresh{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_refresh_press.png)}.ui-btn-down-s .ui-icon-forward{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_send_press.png)}.ui-btn-down-s .ui-icon-back{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_back_press.png)}.ui-btn-down-s .ui-icon-grid{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_grid_press.png)}.ui-btn-down-s .ui-icon-star{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_star_press.png)}.ui-btn-down-s .ui-icon-alert{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_warning_press.png)}.ui-btn-down-s .ui-icon-info{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_info_press.png)}.ui-btn-down-s .ui-icon-home{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_home_press.png)}.ui-btn-down-s .ui-icon-search{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_search_press.png)}.ui-btn-down-s .ui-icon-call{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_call_press.png)}.ui-btn-down-s .ui-icon-rename{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_rename_press.png)}.ui-btn-down-s .ui-icon-scrolltop{width:.9090909090909092rem ! important;height:.9090909090909092rem ! important;top:50% ! important;left:50% ! important;margin-top:-.4545454545454546rem ! important;margin-left:-.4545454545454546rem ! important;background-image:url(images/controls/button/00_icon_jump_press.png)}.ui-btn-down-s .ui-icon-scrollleft{width:.9090909090909092rem ! important;height:.9090909090909092rem ! important;top:50% ! important;left:50% ! important;margin-top:-.4545454545454546rem ! important;margin-left:-.4545454545454546rem ! important;background-image:url(images/controls/button/00_icon_jump_left_press.png)}.ui-btn-inner.ui-btn-icon-only{padding:.7272727272727273rem .7272727272727273rem}.ui-btn-icon-only .ui-btn-text{display:none;width:0;height:0;overflow:hidden}.ui-btn.ui-btn-corner-all{-o-border-radius:1.2em ! important;-ms-border-radius:1.2em ! important;-moz-border-radius:1.2em ! important;-webkit-border-radius:1.2em ! important;border-radius:1.2em ! important}.ui-btn.ui-btn-icon-nobg{box-shadow:none}.ui-btn-corner-circle{-o-border-radius:1em ! important;-ms-border-radius:1em ! important;-moz-border-radius:1em ! important;-webkit-border-radius:1em ! important;border-radius:1em ! important}.ui-btn-round{-o-border-radius:1.2em ! important;-ms-border-radius:1.2em ! important;-moz-border-radius:1.2em ! important;-webkit-border-radius:1.2em ! important;border-radius:1.2em ! important}.ui-btn-round .ui-btn-inner{-o-border-radius:1.2em ! important;-ms-border-radius:1.2em ! important;-moz-border-radius:1.2em ! important;-webkit-border-radius:1.2em ! important;border-radius:1.2em ! important}.ui-btn.ui-btn-icon-nobg,.ui-btn .ui-btn-icon-nobg{background:transparent;background-color:transparent;border:0}.ui-btn.ui-btn-edit .ui-btn-text{color:#f9f9f9}.ui-btn.ui-btn-edit .ui-btn-inner{background:#c95858;background:-webkit-gradient(linear,left top,left bottom,from( #c95858),to( #a12828));background:-moz_linear-gradient(top, #c95858, #a12828)}.ui-btn-box-s{color:#3a3a3a;background:#ebe8e3;background:-webkit-linear-gradient(top, #ebe8e3, #eae7e2);background:-moz-linear-gradient(top, #ebe8e3, #eae7e2);background:-o-linear-gradient(top, #ebe8e3, #eae7e2);background:-ms-linear-gradient(top, #ebe8e3, #eae7e2);border:1px solid;border-color:#dcdad3;-o-box-shadow:0 0 1px 1px #fff;-ms-box-shadow:0 0 1px 1px #fff;-moz-box-shadow:0 0 1px 1px #fff;-webkit-box-shadow:0 0 1px 1px #fff;box-shadow:0 0 1px 1px #fff}.ui-collapsible-inset{margin:.5em 0}.ui-collapsible-inset .ui-collapsible-heading{margin:0}.ui-collapsible-inset .ui-collapsible-heading .ui-btn{border-right-width:1px;border-left-width:1px}.ui-collapsible-collapsed+.ui-collapsible:not(.ui-collapsible-inset) .ui-collapsible-heading .ui-btn{border-top-width:0}.ui-collapsible-set .ui-collapsible:not(.ui-collapsible-inset) .ui-collapsible-heading .ui-btn{border-top-width:1px}.ui-collapsible-heading,.ui-collapsible-content>li{position:relative}.ui-collapsible-heading{font-size:1rem;display:block;margin:0 -15px;padding:0;position:relative}.ui-collapsible-heading .ui-btn{text-align:left;margin:0;border-left-width:0;border-right-width:0}.ui-collapsible-heading .ui-btn-text{color:#000}.ui-collapsible-heading .ui-btn-inner,.ui-collapsible-heading .ui-btn-icon-left .ui-btn-inner{padding-left:40px}.ui-collapsible-heading .ui-btn-icon-right .ui-btn-inner{padding-left:12px;padding-right:40px}.ui-collapsible-heading .ui-btn-icon-top .ui-btn-inner,.ui-collapsible-heading .ui-btn-icon-bottom .ui-btn-inner{padding-right:40px;text-align:center}.ui-collapsible-heading .ui-btn-inner>.ui-icon-arrow-d{-webkit-transition:all .33s ease;-moz-transition:all .33s ease;-ms-transition:all .33s ease;-o-transition:all .33s ease;transition:all .33s ease;-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.ui-collapsible-heading .ui-btn-inner>.ui-icon-arrow-u{background-image:url(images/controls/button/00_button_expand_closed.png);-webkit-transition:all .33s ease;-moz-transition:all .33s ease;-ms-transition:all .33s ease;-o-transition:all .33s ease;transition:all .33s ease;-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}.ui-collapsible-heading .ui-btn span.ui-btn{position:absolute;left:6px;top:50%;margin:-12px 0 0 0;width:20px;height:20px;padding:1px 0 1px 2px;text-indent:-9999px}.ui-collapsible-heading .ui-btn span.ui-btn .ui-btn-inner{padding:10px 0}.ui-collapsible-heading .ui-btn span.ui-btn .ui-icon{left:0;margin-top:-10px}.ui-collapsible-heading-status{position:absolute;top:-9999px;left:0}.ui-collapsible-content{display:block;margin:0 -15px;padding:0 15px;border-left-width:0;border-right-width:0;border-top:0;background-image:none;visibility:visible;overflow:auto;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-ms-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}.ui-collapsible-inset .ui-collapsible-content{margin:0;border-right-width:1px;border-left-width:1px}.ui-collapsible-content-collapsed{overflow:hidden;max-height:0!important;visibility:hidden}.ui-collapsible-set{margin:.5em 0}.ui-collapsible-set .ui-collapsible{margin:-1px 0 0}.ui-collapsible-set .ui-collapsible:first-child{margin-top:0}.ui-dialog{min-height:480px}.ui-dialog .ui-header,.ui-dialog .ui-content,.ui-dialog .ui-footer{margin:15px;position:relative}.ui-dialog .ui-header,.ui-dialog .ui-footer{z-index:10;width:auto}.ui-dialog .ui-header .ui-btn-left{width:0;border-width:0}.ui-dialog .center_info{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center}.ui-dialog .center_info .popup-text{font-size:42px;background:#213c49;width:100%}.ui-dialog .center_info .popup-text p{text-align:center;padding:22px 16px}.ui-checkbox .ui-btn-inner,.ui-radio .ui-btn-inner{white-space:normal}.ui-checkbox,.ui-radio{position:relative;margin:0}.ui-checkbox .ui-btn-corner-all,.ui-radio .ui-btn-corner-all{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-checkbox .ui-btn-inner,.ui-radio .ui-btn-inner{border-top:0}.ui-checkbox .ui-btn-up-s,.ui-radio .ui-btn-up-s{border:0;background:transparent;font-weight:400}.ui-checkbox .ui-btn-hover-s,.ui-radio .ui-btn-hover-s{border:0;background:transparent;font-weight:400}.ui-checkbox .ui-btn-down-s,.ui-radio .ui-btn-down-s{border:0;background:transparent;font-weight:400}.ui-checkbox input,.ui-radio input{z-index:1;margin:0;left:.4545454545454546rem;position:absolute;outline:0!important}.ui-checkbox>input,.ui-radio>input{display:none}.ui-checkbox .ui-btn,.ui-radio .ui-btn{z-index:2;height:100%;margin:0;text-align:left}.ui-checkbox .ui-btn.ui-btn-icon-left,.ui-radio .ui-btn.ui-btn-icon-left{display:inline-block}.ui-checkbox .ui-btn.ui-btn-icon-left .ui-btn-inner,.ui-radio .ui-btn.ui-btn-icon-left .ui-btn-inner{min-width:1.8181818181818183rem;display:inline-block;line-height:1.4545454545454546rem;padding:0 .7272727272727273rem 0 .7272727272727273rem}.ui-checkbox .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text,.ui-radio .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text{display:inline-block;vertical-align:middle;min-height:1.4545454545454546rem}.ui-checkbox .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text.ui-btn-text-padding-left,.ui-radio .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text.ui-btn-text-padding-left{padding-left:1.0909090909090908rem}.ui-checkbox .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-icon,.ui-radio .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-icon{position:absolute;top:50%;width:1.4545454545454546rem;height:1.4545454545454546rem;margin-top:-.7272727272727273rem}.ui-checkbox.favorite input{position:absolute;left:-10000px;height:100%;outline:0!important}.ui-checkbox.favorite .ui-btn.ui-btn-icon-left{display:block}.ui-checkbox.favorite .ui-btn.ui-btn-icon-left .ui-btn-inner{display:inline-block;line-height:1.4545454545454546rem;padding:0 0 0 .7272727272727273rem}.ui-checkbox.favorite .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text{display:inline-block;vertical-align:middle}.ui-checkbox.favorite .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text.ui-btn-text-padding-left{padding-left:1.0909090909090908rem}.ui-checkbox.favorite .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-icon{position:absolute;top:50%;width:1.4545454545454546rem;height:1.4545454545454546rem;margin-top:-.7272727272727273rem}.ui-icon-checkbox-off,.ui-icon-checkbox-on,.favorite .ui-icon-checkbox-off,.favorite .ui-icon-checkbox-on,.ui-icon-checkbox-on-press,.ui-icon-checkbox-off-press,.ui-icon-radio-off,.ui-icon-radio-on,.ui-icon-radio-on-press,.ui-icon-radio-off-press{background-size:100% 100%;background-color:transparent}.ui-icon-checkbox-off{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_check_bg.png)}.ui-icon-checkbox-on{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_check_checking.png),url(images/00_check_bg.png);background-repeat:no-repeat}.ui-icon-checkbox-off-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_check_bg_press.png)}.ui-icon-checkbox-on-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_check_checking.png),url(images/00_check_bg_press.png);background-repeat:no-repeat}.favorite .ui-icon-checkbox-off,.favorite .ui-icon-checkbox-off-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/00_icon_favorite_off.png)}.favorite .ui-icon-checkbox-on,.favorite .ui-icon-checkbox-on-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/00_icon_favorite_on.png)}.ui-icon-radio-off{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_button_radio.png)}.ui-icon-radio-on{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_button_radio_select.png),url(images/00_button_radio.png)}.ui-icon-radio-on-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_button_radio.png)}.ui-icon-radio-off-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_button_radio.png)}.ui-field-contain{padding:1.5em 0;margin:0;border-bottom-width:1px;overflow:visible}.ui-field-contain:first-child{border-top-width:0}@media all{.ui-field-contain{ border-width:0;padding:0;margin:.8em 0}}.ui-select{display:block;position:relative}.ui-select select{position:absolute;left:-9999px;top:-9999px}.ui-select .ui-btn{overflow:hidden}.ui-select .ui-btn select{cursor:pointer;-webkit-appearance:button;left:0;top:0;width:100%;min-height:1.5em;min-height:100%;height:3em;max-height:100%;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);z-index:2}@-moz-document url-prefix(){.ui-select .ui-btn select{ opacity:.0001}}.ui-select .ui-btn select.ui-select-nativeonly{opacity:1;text-indent:0}.ui-select .ui-btn-icon-right .ui-btn-inner{padding-right:45px}.ui-select .ui-btn-icon-right .ui-icon{right:15px}label.ui-select{font-size:16px;line-height:1.4;font-weight:400;margin:0 0 .3em;display:block}.ui-select .ui-btn-text,.ui-selectmenu .ui-btn-text{display:block;min-height:1em}.ui-select .ui-btn-text{text-overflow:ellipsis;overflow:hidden}.ui-selectmenu{position:absolute;padding:0;z-index:100!important;width:80%;max-width:350px;padding:6px}.ui-selectmenu .ui-listview{margin:0}.ui-selectmenu .ui-btn.ui-li-divider{cursor:default}.ui-selectmenu-hidden{top:-9999px;left:-9999px}.ui-selectmenu-screen{position:absolute;top:0;left:0;width:100%;height:100%;z-index:99}.ui-screen-hidden,.ui-selectmenu-list .ui-li .ui-icon{display:none}.ui-selectmenu-list .ui-li .ui-icon{display:block}.ui-li.ui-selectmenu-placeholder{display:none}.ui-selectmenu .ui-header .ui-title{margin:.6em 46px .8em}@media all and (min-width: 450px){label.ui-select{ vertical-align:top;display:inline-block;width:20%;margin:0 2% 0 0}.ui-select{width:60%;display:inline-block}}.ui-selectmenu .ui-header h1:after{content:'.';visibility:hidden}label.ui-input-text{font-size:1rem;line-height:1.2;display:block;font-weight:400;margin:0 0 .3em}input.ui-input-text,textarea.ui-input-text{background-image:none;padding:.4em;line-height:1.4;font-size:.7272727272727273rem;display:block}input.ui-input-text{appearance:none;-webkit-appearance:none}textarea.ui-input-text{height:2.272727272727273rem;width:95%;resize:none;-webkit-transition:height 200ms linear;-moz-transition:height 200ms linear;-o-transition:height 200ms linear;-ms-transition:height 200ms linear;transition:height 200ms linear}.ui-input-search{position:relative;padding-right:1.6363636363636365rem;padding-left:1.6363636363636365rem;border:1px solid #999;-webkit-box-shadow:inset .09090909090909091rem .09090909090909091rem .09090909090909091rem #999;-moz-box-shadow:inset .09090909090909091rem .09090909090909091rem .09090909090909091rem #999;-o-box-shadow:inset .09090909090909091rem .09090909090909091rem .09090909090909091rem #999;-ms-box-shadow:inset .09090909090909091rem .09090909090909091rem .09090909090909091rem #999;box-shadow:inset .09090909090909091rem .09090909090909091rem .09090909090909091rem #999}.ui-input-search input.ui-input-text{width:100%;border:0;background:transparent none;outline:0!important}.ui-input-search .ui-btn-down-s,.ui-input-search .ui-btn-up-s,.ui-input-search .ui-btn-hover-s{border:0;background:transparent none}.ui-input-search .ui-btn-icon-notext.ui-input-clear{width:1.6363636363636365rem;height:1.5rem}.ui-input-search .ui-btn-icon-notext.ui-input-clear .ui-btn-inner{padding:.2727272727272727rem}.ui-input-search .ui-btn-inner .ui-icon-deleteSearch{width:1rem;height:1rem;margin-top:0;margin-left:0}.ui-input-search .ui-input-clear{position:absolute;right:0;top:0;vertical-align:middle}.ui-input-search .ui-input-clear-hidden{display:none}@media all and (min-width: 721px){label.ui-input-text:not([data-type='search']){ vertical-align:top;display:inline-block;margin:0 2% 0 0}input.ui-input-text:not([data-type='search']),textarea.ui-input-text:not([data-type='search']){width:60%;display:inline-block}.ui-input-search input.ui-input-text:not([data-type='search']){width:85%}}.ui-body-s>div>.ui-field-contain>.input-search-bar,.ui-body-s>.ui-field-contain>.input-search-bar{margin:-2.1818181818181817rem -.6818181818181819rem -1.4545454545454546rem -.6818181818181819rem}.input-search-bar{position:relative;background-color:#f8f6ef;padding:.5909090909090909rem;vertical-align:middle}.input-search-bar .ui-corner-all{-o-border-radius:.3em;-ms-border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em}.input-search-bar .ui-input-search{font-size:.7272727272727273rem;display:block;position:relative;background-color:#fff}.input-search-bar .ui-input-search .ui-input-text{height:1.5rem;padding:0;margin-right:1.7272727272727273rem}.input-search-bar .ui-input-search .ui-image-search{position:absolute;top:0;left:0;width:1rem;height:1rem;margin:.2727272727272727rem}.input-search-bar .ui-input-search-default{margin-right:3.409090909090909rem;-webkit-transition:all 400ms linear;-moz-transition:all 400ms linear;-o-transition:all 400ms linear;-ms-transition:all 400ms linear;transition:all 400ms linear}.input-search-bar .ui-input-search-wide{margin-right:0rem;-webkit-transition:all 400ms linear;-moz-transition:all 400ms linear;-o-transition:all 400ms linear;-ms-transition:all 400ms linear;transition:all 400ms linear}.input-search-bar .ui-btn-icon-cancel.ui-input-cancel{display:inline-block;position:absolute;top:.13636363636363635rem;right:0rem;height:1.5rem;margin-right:.4545454545454546rem;vertical-align:middle;padding:0;border-color:none;width:3.090909090909091rem;-webkit-transition:all 400ms linear;-moz-transition:all 400ms linear;-o-transition:all 400ms linear;-ms-transition:all 400ms linear;transition:all 400ms linear}.input-search-bar .ui-btn-icon-cancel.ui-input-cancel .ui-btn-inner{padding-top:.2727272727272727rem;padding-bottom:.2727272727272727rem}.input-search-bar .ui-btn-icon-cancel.ui-input-cancel .ui-btn-inner .ui-btn-text{font-size:.6818181818181819rem}.input-search-bar .ui-btn-icon-cancel.ui-input-cancel.ui-btn-cancel-hide{right:-3.409090909090909rem;visibility:hidden}.input-search-bar .ui-btn-icon-cancel.ui-input-cancel.ui-btn-cancel-show{right:0;visibility:visible}.input-search-bar .ui-search-bar-icon{margin-left:1.9090909090909092rem}.input-search-bar .ui-btn.ui-btn-search-front-icon{position:absolute;width:1.590909090909091rem;height:1.590909090909091rem;top:.09090909090909091rem;border-radius:3rem}.input-search-bar .ui-btn.ui-btn-search-front-icon>.ui-btn-inner.ui-btn-icon-only{border-radius:3rem}.ui-header .input-search-bar{padding-top:.18181818181818182rem;padding-bottom:.18181818181818182rem}.ui-image-search{background-image:url(images/controls/00_search_icon.png);background-repeat:no-repeat;background-size:100% 100%}.ui-icon-deleteSearch{background-image:url(images/controls/00_field_btn_clear.png);background-repeat:no-repeat;background-size:100% 100%}.ui-controlgroup,fieldset.ui-controlgroup{padding:0;margin:.5em 0 1em}.ui-bar .ui-controlgroup{margin:0 .3em}.ui-controlgroup-label{font-size:1em;line-height:1.4;font-weight:400;margin:0 0 .3em}.ui-controlgroup-controls{display:block}.ui-controlgroup li{list-style:none}.ui-controlgroup .ui-btn-inner{white-space:nowrap}.ui-controlgroup .ui-checkbox label label,.ui-controlgroup .ui-radio label{font-size:1em}.ui-controlgroup .ui-radio{width:25%;overflow:hidden}.ui-controlgroup .ui-radio label{text-align:center;white-space:nowrap}.ui-controlgroup .ui-radio-on .ui-btn-inner{background:#f8f6ef}.ui-controlgroup .ui-radio-on .ui-btn-inner .ui-btn-text{color:#3b73b6}.ui-controlgroup .ui-corner-left{border-left-width:0}.ui-controlgroup .ui-corner-right{border-right-width:0}.ui-controlgroup-vertical .ui-btn,.ui-controlgroup-vertical .ui-checkbox,.ui-controlgroup-vertical .ui-radio{margin:0;border-bottom-width:0}.ui-controlgroup-vertical .ui-controlgroup-last{border-bottom-width:1px}.ui-controlgroup-vertical .ui-radio{width:100%}.ui-controlgroup-vertical .ui-radio label{text-align:left}.ui-controlgroup-vertical .ui-radio label .ui-btn-inner{margin-left:.7272727272727273rem;margin-right:.7272727272727273rem}.ui-controlgroup-horizontal{padding:0}.ui-controlgroup-horizontal .ui-btn{display:inline-block;margin-left:-.18181818181818182rem;margin-right:-.13636363636363635rem}.ui-controlgroup-horizontal .ui-checkbox,.ui-controlgroup-horizontal .ui-radio{float:left;margin:0 -1px 0 0}.ui-controlgroup-horizontal .ui-controlgroup-last{margin-right:0}.ui-controlgroup-horizontal [data-role="button"]{border-top:0;border-bottom:0;border-radius:0;box-shadow:none;background:0}.ui-controlgroup-horizontal [data-role="button"].ui-btn-down-s .ui-btn-inner,.ui-controlgroup-horizontal [data-role="button"] .ui-btn-active-s .ui-btn-inner{background:#f8f6ef}.ui-controlgroup-horizontal [data-role="button"].ui-btn-down-s .ui-btn-inner .ui-btn-text,.ui-controlgroup-horizontal [data-role="button"] .ui-btn-active-s .ui-btn-inner .ui-btn-text{color:#3b73b6}.ui-controlgroup-horizontal [data-role="button"].ui-btn-down-s .ui-btn-inner{background:-webkit-linear-gradient(top, #d2d2c8 0, #f6f8ef 100%)}.ui-controlgroup-horizontal [data-role="button"]>.ui-btn-inner{border:0 solid;box-shadow:none;padding-top:.2272727272727273rem;padding-bottom:.2272727272727273rem;padding-left:.4545454545454546rem;padding-right:.4545454545454546rem}.ui-controlgroup-horizontal label>span.ui-btn-inner{padding-top:.13636363636363635rem;padding-bottom:.13636363636363635rem}.ui-listview{margin:0;counter-reset:listnumbering;border-top-color:rgba(211,209,203,.5)}.ui-listview li.ui-btn>.ui-btn-hastxt>.ui-btn-text.ui-btn-text-padding-right{padding-right:0rem}.ui-listview .ui-li{border-left-width:0;border-right-width:0;border-top-width:0}.ui-listview .ui-li>.ui-btn-inner{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgba(211,209,203,.5);margin-left:.5909090909090909rem;margin-right:.5909090909090909rem}.ui-listview .ui-li-static{background-color:#f8f6ef;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgba(211,209,203,.5);margin-left:.5909090909090909rem;margin-right:.5909090909090909rem}.ui-listview .ui-li:not(.ui-li-divider):not(.ui-li-static){min-height:2.5rem}.ui-listview .ui-li.ui-li-has-multiline:not(.ui-li-divider):not(.ui-li-static){min-height:2.909090909090909rem}.ui-listview li.ui-btn-up-s,.ui-listview li.ui-btn-hover-s{background:0;background-color:#f8f6ef;color:#000}.ui-listview li.ui-btn-down-s{background:0;background-color:#5787c2;color:#000}.ui-listview li.ui-btn-up-s>.ui-li>.ui-btn-text>a.ui-link-inherit,.ui-listview li.ui-btn-hover-s>.ui-li>.ui-btn-text>a.ui-link-inherit{color:#000}.ui-listview li.ui-btn-down-s>.ui-li>.ui-btn-text>a.ui-link-inherit{color:#f9f9f9}.ui-content .ui-listview{margin-left:-.36363636363636365rem;margin-right:-.36363636363636365rem;padding-bottom:1px}.ui-content .ui-listview .ui-listview{margin:0}.ui-content .ui-listview-inset{margin:1em 0}.ui-listview,.ui-li,.ui-collapsible-heading{list-style:none;padding:0;font-size:1rem}.ui-li,.ui-collapsible-heading,.ui-li.ui-field-contain{display:block;margin:0;position:relative;overflow:visible;text-align:left}.ui-li .ui-btn{top:50%;margin-top:-.8em}.ui-li h3,.ui-collapsible-heading h3,.ui-collapsible>.ui-collapsible-content h3,.ui-listview li h3{margin-top:0;margin-bottom:0;font-size:1rem;font-weight:400}.ui-li form,.ui-collapsible-heading form,.ui-collapsible>.ui-collapsible-content form,.ui-listview li form{display:inline-block}.ui-li .ui-btn-text,.ui-collapsible-heading .ui-btn-text,.ui-collapsible>.ui-collapsible-content .ui-btn-text,.ui-listview li .ui-btn-text{position:relative}.ui-li .ui-btn-text a.ui-link-inherit,.ui-collapsible-heading .ui-btn-text a.ui-link-inherit,.ui-collapsible>.ui-collapsible-content .ui-btn-text a.ui-link-inherit,.ui-listview li .ui-btn-text a.ui-link-inherit{white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li:last-child,.ui-collapsible-heading:last-child,.ui-collapsible>.ui-collapsible-content:last-child,.ui-listview li:last-child,.ui-li.ui-field-contain:last-child,.ui-collapsible-heading.ui-field-contain:last-child,.ui-collapsible>.ui-collapsible-content.ui-field-contain:last-child,.ui-listview li.ui-field-contain:last-child{border-bottom-width:1px}.ui-li>.ui-btn-inner,.ui-collapsible-heading>.ui-btn-inner,.ui-collapsible>.ui-collapsible-content>.ui-btn-inner,.ui-listview li>.ui-btn-inner,.ui-li.ui-collapsible-heading>.ui-collapsible-heading-toggle,.ui-collapsible-heading.ui-collapsible-heading>.ui-collapsible-heading-toggle,.ui-collapsible>.ui-collapsible-content.ui-collapsible-heading>.ui-collapsible-heading-toggle,.ui-listview li.ui-collapsible-heading>.ui-collapsible-heading-toggle{display:block;position:relative;padding:0;border-width:0}.ui-li>.ui-btn-inner.ui-btn-hastxt,.ui-collapsible-heading>.ui-btn-inner.ui-btn-hastxt,.ui-collapsible>.ui-collapsible-content>.ui-btn-inner.ui-btn-hastxt,.ui-listview li>.ui-btn-inner.ui-btn-hastxt{padding:0 0}.ui-li .ui-btn-inner a.ui-link-inherit,.ui-collapsible-heading .ui-btn-inner a.ui-link-inherit,.ui-collapsible>.ui-collapsible-content .ui-btn-inner a.ui-link-inherit,.ui-listview li .ui-btn-inner a.ui-link-inherit,.ui-li .ui-collapsible-heading-toggle>.ui-btn-inner,.ui-collapsible-heading .ui-collapsible-heading-toggle>.ui-btn-inner,.ui-collapsible>.ui-collapsible-content .ui-collapsible-heading-toggle>.ui-btn-inner,.ui-listview li .ui-collapsible-heading-toggle>.ui-btn-inner,.ui-li>li,.ui-collapsible-heading>li,.ui-collapsible>.ui-collapsible-content>li,.ui-listview li>li,.ui-li.ui-li-static,.ui-collapsible-heading.ui-li-static,.ui-collapsible>.ui-collapsible-content.ui-li-static,.ui-listview li.ui-li-static{padding-top:.6818181818181819rem;padding-bottom:.6818181818181819rem;display:block;white-space:normal;border-left-width:0;border-right-width:0}.ui-li .ui-btn-inner a.ui-link-inherit,.ui-collapsible-heading .ui-btn-inner a.ui-link-inherit,.ui-collapsible>.ui-collapsible-content .ui-btn-inner a.ui-link-inherit,.ui-listview li .ui-btn-inner a.ui-link-inherit,.ui-li .ui-collapsible-heading-toggle,.ui-collapsible-heading .ui-collapsible-heading-toggle,.ui-collapsible>.ui-collapsible-content .ui-collapsible-heading-toggle,.ui-listview li .ui-collapsible-heading-toggle{white-space:normal;overflow:visible!important}.ui-li .ui-toggle-switch:last-child,.ui-collapsible-heading .ui-toggle-switch:last-child,.ui-collapsible>.ui-collapsible-content .ui-toggle-switch:last-child,.ui-listview li .ui-toggle-switch:last-child{top:50%;margin-top:-.7727272727272727rem;display:inline-block;position:absolute;right:0}.ui-li [data-role="button"]:last-child,.ui-collapsible-heading [data-role="button"]:last-child,.ui-collapsible>.ui-collapsible-content [data-role="button"]:last-child,.ui-listview li [data-role="button"]:last-child{position:absolute;right:0}.ui-li .ui-radio:first-child,.ui-collapsible-heading .ui-radio:first-child,.ui-collapsible>.ui-collapsible-content .ui-radio:first-child,.ui-listview li .ui-radio:first-child,.ui-li .ui-checkbox:first-child,.ui-collapsible-heading .ui-checkbox:first-child,.ui-collapsible>.ui-collapsible-content .ui-checkbox:first-child,.ui-listview li .ui-checkbox:first-child{position:absolute;top:50%;margin-top:-.6818181818181819rem;left:-.18181818181818182rem;width:1.3636363636363638rem;height:1.3636363636363638rem}.ui-li .ui-radio:first-child .ui-btn-inner,.ui-collapsible-heading .ui-radio:first-child .ui-btn-inner,.ui-collapsible>.ui-collapsible-content .ui-radio:first-child .ui-btn-inner,.ui-listview li .ui-radio:first-child .ui-btn-inner,.ui-li .ui-checkbox:first-child .ui-btn-inner,.ui-collapsible-heading .ui-checkbox:first-child .ui-btn-inner,.ui-collapsible>.ui-collapsible-content .ui-checkbox:first-child .ui-btn-inner,.ui-listview li .ui-checkbox:first-child .ui-btn-inner{line-height:.9090909090909092rem;color:transparent}.ui-li .ui-radio:first-child .ui-btn-inner .ui-icon,.ui-collapsible-heading .ui-radio:first-child .ui-btn-inner .ui-icon,.ui-collapsible>.ui-collapsible-content .ui-radio:first-child .ui-btn-inner .ui-icon,.ui-listview li .ui-radio:first-child .ui-btn-inner .ui-icon,.ui-li .ui-checkbox:first-child .ui-btn-inner .ui-icon,.ui-collapsible-heading .ui-checkbox:first-child .ui-btn-inner .ui-icon,.ui-collapsible>.ui-collapsible-content .ui-checkbox:first-child .ui-btn-inner .ui-icon,.ui-listview li .ui-checkbox:first-child .ui-btn-inner .ui-icon{left:.2272727272727273rem}.ui-li .ui-radio:first-child label.ui-btn-icon_only,.ui-collapsible-heading .ui-radio:first-child label.ui-btn-icon_only,.ui-collapsible>.ui-collapsible-content .ui-radio:first-child label.ui-btn-icon_only,.ui-listview li .ui-radio:first-child label.ui-btn-icon_only,.ui-li .ui-checkbox:first-child label.ui-btn-icon_only,.ui-collapsible-heading .ui-checkbox:first-child label.ui-btn-icon_only,.ui-collapsible>.ui-collapsible-content .ui-checkbox:first-child label.ui-btn-icon_only,.ui-listview li .ui-checkbox:first-child label.ui-btn-icon_only{top:0;margin-top:0}.ui-li img.ui-li-bigicon,.ui-collapsible-heading img.ui-li-bigicon,.ui-collapsible>.ui-collapsible-content img.ui-li-bigicon,.ui-listview li img.ui-li-bigicon{position:absolute;width:1.590909090909091rem;height:1.590909090909091rem;top:50%;margin-top:-.8181818181818182rem}.ui-li img.ui-li-bigicon:first-child,.ui-collapsible-heading img.ui-li-bigicon:first-child,.ui-collapsible>.ui-collapsible-content img.ui-li-bigicon:first-child,.ui-listview li img.ui-li-bigicon:first-child{left:0}.ui-li img.ui-li-bigicon:nth-child(2),.ui-collapsible-heading img.ui-li-bigicon:nth-child(2),.ui-collapsible>.ui-collapsible-content img.ui-li-bigicon:nth-child(2),.ui-listview li img.ui-li-bigicon:nth-child(2){left:1.6363636363636365rem}.ui-li img.ui-li-bigicon:last-child,.ui-collapsible-heading img.ui-li-bigicon:last-child,.ui-collapsible>.ui-collapsible-content img.ui-li-bigicon:last-child,.ui-listview li img.ui-li-bigicon:last-child{right:.7272727272727273rem}.ui-li .ui-li-color-bar+img.ui-li-bigicon:nth-child(2),.ui-collapsible-heading .ui-li-color-bar+img.ui-li-bigicon:nth-child(2),.ui-collapsible>.ui-collapsible-content .ui-li-color-bar+img.ui-li-bigicon:nth-child(2),.ui-listview li .ui-li-color-bar+img.ui-li-bigicon:nth-child(2){left:0}.ui-li .ui-li-color-bar,.ui-collapsible-heading .ui-li-color-bar,.ui-collapsible>.ui-collapsible-content .ui-li-color-bar,.ui-listview li .ui-li-color-bar{position:absolute;width:.13636363636363635rem;height:100%;top:0rem;left:-.5909090909090909rem;background-color:#000}li.ui-li-thumbnail-right img.ui-li-bigicon.ui-li-thumb{left:auto;right:0;width:2.3181818181818183rem;height:2.3181818181818183rem;margin-top:-1.1363636363636365rem}.ui-li.ui-li-has-multiline .ui-btn-inner a.ui-link-inherit,.ui-li.ui-li-has-multiline.ui-li-static{padding-top:.3181818181818182rem;padding-bottom:1.2727272727272727rem}.ui-li.ui-li-has-multiline a{white-space:normal;overflow:visible!important;padding-right:.7272727272727273rem}.ui-li.ui-li-text-ellipsis .ui-btn-inner a.ui-link-inherit{white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li.ui-li-text-ellipsis a{white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li.ui-li-text-ellipsis.ui-li-static{white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li>input{border-style:none;border-width:0;outline-color:#f8f6ef;font-size:1.0454545454545454rem;line-height:1;padding-top:0;padding-bottom:0}.ui-listview li.ui-li-divider{background:#f8f6ef;color:#3b73b6;border-bottom-width:0;border-top-width:0;cursor:default;counter-reset:listnumbering;font-weight:700;height:1.7272727272727273rem;font-size:.7272727272727273rem}.ui-listview li.ui-li-divider>.ui-btn-inner>.ui-btn-text{font-size:.7272727272727273rem}.ui-listview li.ui-li-divider.ui-btn{top:0;margin-top:0rem;border-radius:0;font-size:.7272727272727273rem}.ui-listview li.ui-li-divider.ui-btn .ui-btn-inner.ui-btn-hastxt{height:100%;padding-left:0}.ui-listview li.ui-li-divider.ui-btn .ui-btn-inner.ui-btn-hastxt .ui-btn-text{position:absolute;top:.2272727272727273rem;height:.8181818181818182rem;padding-right:.4545454545454546rem}.ui-listview li.ui-li-divider:not(.ui-btn){margin-left:.5454545454545454rem;margin-right:.5454545454545454rem}.ui-listview li.ui-li-divider>.ui-btn-text{position:absolute;top:.2272727272727273rem;height:.8181818181818182rem;padding-right:.4545454545454546rem}.ui-listview li.ui-li-divider[data-style="dialogue"]{height:.9090909090909092rem;padding:0;padding-top:.9090909090909092rem;padding-bottom:0rem;padding-left:.4545454545454546rem;margin-left:.18181818181818182rem;margin-right:.18181818181818182rem;font-size:.7272727272727273rem;font-weight:700;color:#3b73b6;background:#f8f6ef}.ui-listview li.ui-li-divider[data-style="check"]{height:1.7272727272727273rem;padding-top:0;padding-bottom:0;padding-left:0}.ui-listview li.ui-li-divider[data-style="check"] label{top:0;margin:0}.ui-listview li.ui-li-divider[data-style="check"] label .ui-btn-inner{z-index:5;position:absolute;width:1.4545454545454546rem;height:1.4545454545454546rem;background:#f8f6ef;padding:0}.ui-listview li.ui-li-divider[data-style="check"] .ui-btn-text{padding-left:1.6818181818181819rem}.ui-listview li.ui-li-divider .ui-divider-normal-line{display:inline-block;position:absolute;top:1.0454545454545454rem;width:100%;height:.09090909090909091rem;background:#3b73b6}.ui-listview li.ui-li-divider.ui-btn-down-s{background:#3b73b6;color:#f8f6ef}.ui-listview li.ui-li-divider.ui-btn-down-s .ui-divider-normal-line{background:#f8f6ef}.ui-listview li.ui-li-divider.ui-btn-down-s label>.ui-btn-inner{background:#3b73b6}.ui-listview li.ui-li-divider+li.ui-li-dialogue{border-top-left-radius:3px;border-top-right-radius:3px}.ui-divider-expand-div{position:absolute;width:4.454545454545455rem;height:1.9090909090909092rem;top:.4545454545454546rem;right:0;border-left-width:1px;border-left-style:solid;border-left-color:rgba(0,0,0,.5)}.ui-li-has-thumb:not(.ui-li-thumbnail-right) .ui-btn-inner a.ui-link-inherit,.ui-li-has-thumb:not(.ui-li-thumbnail-right).ui-li-static{padding-left:2.0454545454545454rem}.ui-li-has-thumb:not(.ui-li-thumbnail-right) .ui-li-text-sub{padding-left:2.0454545454545454rem;padding-right:0}.ui-li-has-checkbox .ui-btn-inner a.ui-link-inherit,.ui-li-has-radio .ui-btn-inner a.ui-link-inherit,.ui-li-has-checkbox.ui-li-static,.ui-li-has-radio.ui-li-static{padding-left:1.6363636363636365rem}.ui-li-has-checkbox .ui-li-text-sub,.ui-li-has-radio .ui-li-text-sub{padding-left:1.6363636363636365rem}.ui-li-has-thumb.ui-li-has-checkbox .ui-btn-inner a.ui-link-inherit,.ui-li-has-thumb.ui-li-has-radio .ui-btn-inner a.ui-link-inherit,.ui-li-has-thumb.ui-li-has-checkbox.ui-li-static,.ui-li-has-thumb.ui-li-has-radio.ui-li-static{padding-left:3.5454545454545454rem}.ui-li-has-thumb.ui-li-has-checkbox .ui-li-text-sub,.ui-li-has-thumb.ui-li-has-radio .ui-li-text-sub{padding-left:3.5454545454545454rem}.ui-li.ui-li-has-right-circle-btn .ui-btn-inner a{padding-right:2.1818181818181817rem}.ui-li.ui-li-has-right-btn:not(.ui-swipe) .ui-btn-inner a{padding-right:3.590909090909091rem}.ui-li.ui-li-thumbnail-right .ui-btn-inner a{padding-right:2.3636363636363638rem}.ui-li.ui-li-static.ui-li-has-right-circle-btn{padding-right:2.1818181818181817rem}.ui-li.ui-li-static.ui-li-has-right-btn:not(.ui-swipe){padding-right:3.590909090909091rem}.ui-li.ui-li-static.ui-li-thumbnail-right{padding-right:2.3636363636363638rem}.ui-li-has-icon .ui-btn-inner a.ui-link-inherit,.ui-li-has-icon.ui-li-static{min-height:20px;padding-left:40px}.ui-li-has-icon .ui-li-text-sub{padding-left:40px}.ui-li-heading{font-size:16px;font-weight:700;display:block;margin:.6em 0;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li-thumb,.ui-li-icon{position:absolute;left:1px;top:0;max-height:3.272727272727273rem;max-width:3.272727272727273rem}.ui-listview * .ui-btn-inner>.ui-btn>.ui-btn-inner{border-top:0}.ui-li-sub,.ui-li-sub-setting{float:right;text-align:right;font-size:.7272727272727273rem;margin:.3em 0}.ui-li-text-sub{float:right;text-align:right;font-size:.7272727272727273rem;color:#646464;position:absolute;right:0;top:.9090909090909092rem;width:95%;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li-text-sub>img{position:relative;width:.7727272727272727rem;height:.7727272727272727rem;margin:0 .36363636363636365rem 0 .36363636363636365rem}.ui-li-text-sub2{float:right;text-align:right;font-size:.7272727272727273rem;color:#646464;position:absolute;right:0;top:.7272727272727273rem;width:60%;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li-text-sub2>img{width:.7727272727272727rem;height:.7727272727272727rem;margin:0 0 0 .36363636363636365rem}.ui-li-has-multiline .ui-li-text-sub{position:absolute;text-align:left;right:auto;left:0;top:1.590909090909091rem;margin-top:0;width:90%;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li-has-multiline.ui-li-has-right-btn .ui-btn-inner a .ui-li-text-sub{width:74%}.ui-li-has-multiline.ui-li-has-right-btn.ui-li-has-thumb .ui-btn-inner a .ui-li-text-sub{width:64%}.ui-li-has-multiline.ui-li-static.ui-li-has-right-btn .ui-li-text-sub{width:74%}.ui-li-has-multiline.ui-li-static.ui-li-has-right-btn.ui-li-has-thumb .ui-li-text-sub{width:64%}.ui-li-icon-sub-right,.ui-li-icon-sub{position:absolute;left:auto;width:.7727272727272727rem;height:.7727272727272727rem;margin:0 0}.ui-li-icon-sub-right{right:.36363636363636365rem}.ui-listview li.ui-li-dialogue{margin-left:.18181818181818182rem;margin-right:.18181818181818182rem;padding-left:.4545454545454546rem;padding-right:.4545454545454546rem;border-style:solid;border-color:#8e9aa3;border-width:1px;border-top-width:0}.ui-listview li.ui-li-dialogue>.ui-btn-inner{margin-left:0;margin-right:0;border-bottom-width:0}.ui-listview li.ui-li-dialogue:first-child{border-top-width:1px;border-top-left-radius:3px;border-top-right-radius:3px}.ui-listview li.ui-li-dialogue:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.ui-listview li.ui-li-dialogue>img{margin-left:.2727272727272727rem}.ui-listview li.ui-li-dialogue [data-role="button"]:last-child{margin-right:.4545454545454546rem}.ui-listview li.ui-li-dialogue .ui-link-inherit>.ui-btn{margin-right:0}.ui-listview li.ui-li-dialogue.ui-li-static .ui-li-text-sub,.ui-listview li.ui-li-dialogue.ui-li-static .ui-toggle-switch{right:.4545454545454546rem}.ui-listview li.ui-li-dialogue.ui-li-static.ui-li-has-checkbox,.ui-listview li.ui-li-dialogue.ui-li-static.ui-li-has-radio{padding-left:1.6363636363636365rem}.ui-listview li.ui-li-dialogue.ui-li-static .ui-checkbox,.ui-listview li.ui-li-dialogue.ui-li-static .ui-radio{left:0}.ui-listview li.ui-li-dialogue.ui-li-has-multiline.ui-li-static .ui-li-text-sub{padding-left:.4545454545454546rem}.ui-listview li.ui-li-dialogue.ui-li-has-multiline.ui-li-static .ui-li-text-sub2{padding-right:.4545454545454546rem}.ui-listview li.ui-li-dialogue.ui-li-has-multiline.ui-li-static.ui-li-has-checkbox .ui-li-text-sub,.ui-listview li.ui-li-dialogue.ui-li-has-multiline.ui-li-static.ui-li-has-radio .ui-li-text-sub{padding-left:1.9090909090909092rem}.ui-listview li.ui-li-divider+.ui-li-dialogue{border-top-width:1px}.ui-listview>li.ui-li-dialogue.ui-body-s:not(.ui-li-expanded),.ui-listview>li.ui-li-dialogue.ui-btn-hover-up-s:not(.ui-btn-down-s):not(.ui-li-expanded),.ui-listview>li.ui-li-dialogue.ui-btn-up-s:not(.ui-li-expanded){background:#efede5}.ui-listview>li.ui-li-dialogue.ui-li-expanded{padding-left:1.1818181818181819rem;background:#dcdad3}.ui-listview>li.ui-li-dialogue.ui-li-divider{height:1.4545454545454546rem;padding:0}.ui-listview>li.ui-li-group-title{padding-top:1.4545454545454546rem}.ui-listview>li.ui-li-group-title span{padding-left:.7272727272727273rem}.ui-listview>li.ui-li-dialogue-divider{padding-top:.9090909090909092rem;padding-bottom:0rem;padding-left:.4545454545454546rem;margin-left:.18181818181818182rem;margin-right:.18181818181818182rem;background:#efede5;font-size:.7272727272727273rem;font-weight:700;color:#3b73b6}.ui-listview li.ui-li-dialogue-edit{padding-left:5.2727272727272725rem;padding-top:.5454545454545454rem;padding-bottom:.5454545454545454rem}.ui-listview li.ui-li-dialogue-edit .ui-edit-title{position:absolute;left:.4545454545454546rem;width:4.136363636363637rem;padding-right:.36363636363636365rem;display:inline-block;top:50%;margin-top:-.5909090909090909rem;border-right-color:#b9b8b2;border-right-width:1px;border-right-style:solid}.ui-listview li.ui-li-dialogue-edit input{font-size:1rem;background:transparent;outline-color:transparent;width:100%;padding-left:0;padding-right:0}.ui-listview>.ui-li.ui-li-dialogue-edit.ui-li-has-right-btn{padding-right:5rem}.ui-listview .ui-li-static.ui-li-bubble-receive,.ui-listview .ui-li-static.ui-li-bubble-left{color:#fff}.ui-listview .ui-li-static.ui-li-bubble-receive>.ui-li-bubble-time,.ui-listview .ui-li-static.ui-li-bubble-left>.ui-li-bubble-time{color:#d30000}.ui-listview .ui-li-static.ui-li-bubble-sent,.ui-listview .ui-li-static.ui-li-bubble-right{color:#000}.ui-listview .ui-li-static.ui-li-bubble-sent>.ui-li-bubble-time,.ui-listview .ui-li-static.ui-li-bubble-right>.ui-li-bubble-time{color:#39a6d7}.ui-listview .ui-li-static.ui-li-bubble-sos{color:#e94949}.ui-listview .ui-li-static.ui-li-bubble-sos>.ui-li-bubble-time{color:#d30000}.ui-listview .ui-li-static.ui-li-bubble-date{background-color:rgba(225,225,225,0);color:#686868;font-style:italic}.ui-listview span.ui-li-bubble-time{font-weight:700}.ui-listview .ui-li-bubble-receive,.ui-listview .ui-li-bubble-left,.ui-listview .ui-li-bubble-sent,.ui-listview .ui-li-bubble-right,.ui-listview .ui-li-bubble-sos{display:inline-block;background-clip:padding-box;max-width:100%;word-wrap:break-word;font-size:.8636363636363636rem}.ui-listview .ui-li-bubble-receive p,.ui-listview .ui-li-bubble-left p,.ui-listview .ui-li-bubble-sent p,.ui-listview .ui-li-bubble-right p,.ui-listview .ui-li-bubble-sos p,.ui-listview .ui-li-bubble-receive span,.ui-listview .ui-li-bubble-left span,.ui-listview .ui-li-bubble-sent span,.ui-listview .ui-li-bubble-right span,.ui-listview .ui-li-bubble-sos span{font-size:.8636363636363636rem}.ui-listview .ui-li-bubble-receive img,.ui-listview .ui-li-bubble-left img,.ui-listview .ui-li-bubble-sent img,.ui-listview .ui-li-bubble-right img,.ui-listview .ui-li-bubble-sos img{position:relative;min-width:7.272727272727273rem;min-height:7.272727272727273rem}.ui-listview .ui-li-bubble-receive,.ui-listview .ui-li-bubble-left{margin-left:0;margin-right:1.6rem;border-image-source:url(images/00_messagebubble_bg_receive.9.png);border-image-slice:57 14 21 48 fill;border-image-width:auto;padding:9px 14px 21px 48px}.ui-listview .ui-li-bubble-receive>.ui-li-bubble-time,.ui-listview .ui-li-bubble-left>.ui-li-bubble-time{position:absolute;display:inline-block;bottom:.36363636363636365rem;left:100%;font-size:.5rem}.ui-listview .ui-li-bubble-sent,.ui-listview .ui-li-bubble-right{margin-left:1.6rem;margin-right:0;border-image-source:url(images/00_messagebubble_bg_sent.9.png);border-image-slice:55 47 20 13 fill;border-image-width:auto;padding:9px 47px 20px 13px}.ui-listview .ui-li-bubble-sent>.ui-li-bubble-time,.ui-listview .ui-li-bubble-right>.ui-li-bubble-time{position:absolute;display:inline-block;bottom:.36363636363636365rem;right:100%;font-size:.5rem}.ui-listview .ui-li-bubble-date{float:left;width:100%;height:1.0909090909090908rem;background-image:url(images/00_messagebubble_date_bg.png);background-repeat:repeat-x;background-position:center center;font-size:.7272727272727273rem;margin:.9090909090909092rem .2727272727272727rem;border:0 none red;padding:0 0;padding-top:.5em;text-align:center}.ui-listview .ui-li-bubble-date *{display:inline-block;background-color:#f8f6ef;padding-left:.5em;padding-right:.5em}@-webkit-keyframes addliitem{from{ -webkit-transform:scale(0.5);-moz-transform:scale(0.5);opacity:0}to{-webkit-transform:scale(1);-moz-transform:scale(1);opacity:1}}.addli{-webkit-animation-name:addliitem;-moz-animation-name:addliitem;-webkit-animation-duration:.5s;-moz-animation-duration:.5s;-webkit-transition-timing-function:linear;-moz-transition-timing-function:linear}@-webkit-keyframes removeliitem{from{ -webkit-transform:scale(1);-moz-transform:scale(1);opacity:1}to{-webkit-transform:scale(0.5);-moz-transform:scale(0.5);opacity:0}}.removeli{-webkit-animation-name:removeliitem;-moz-animation-name:removeliitem;-webkit-animation-duration:.5s;-moz-animation-duration:.5s;-webkit-transition-timing-function:linear;-moz-transition-timing-function:linear}.ui-controlgroup .ui-radio>.ui-btn{background:#f8f6ef}.ui-controlgroup .ui-btn-text{font-size:.7727272727272727rem;font-weight:700;color:#3a3a3a}.ui-controlgroup .ui-btn-inner .ui-corner-left .ui-controlgroup-first{-o-border-radius:.3em;-ms-border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em}.ui-controlgroup .ui-btn-inner .ui-corner-right .ui-controlgroup-last{-o-border-radius:.3em;-ms-border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em}.ui-controlgroup .ui-radio-off.ui-btn-hover-s.ui-btn-down-s .ui-btn-inner,.ui-controlgroup .ui-radio-on .ui-btn-inner{color:#3b7796}.ui-controlgroup .ui-radio-off .ui-btn-inner{color:#3a3a3a}.ui-controlgroup.ui-controlgroup-horizontal .ui-radio .ui-btn-down-s .ui-btn-inner{background:-webkit-linear-gradient(top, #d2d2c8 0, #f6f8ef 100%)}ul.ui-virtual-list-container>li.position_absolute{position:absolute}ul.ui-virtual-list-container>ul.position_absolute{position:absolute}.ui-scrollview-clip{position:relative}.ui-scrollview-view{overflow-x:hidden;overflow-y:visible}.ui-scrolllistview .ui-li-divider{z-index:10}.ui-scrollbar{position:absolute;overflow:hidden;opacity:0}.ui-scrollbar-visible{opacity:1}.ui-scrollbar-y{top:.09090909090909091rem;right:.09090909090909091rem;bottom:.09090909090909091rem;width:.36363636363636365rem}.ui-scrollbar-x{right:.09090909090909091rem;bottom:.09090909090909091rem;left:.09090909090909091rem;height:.36363636363636365rem}.ui-scrollbar-track{position:relative;width:100%;height:100%}.ui-scrollbar-thumb{position:absolute;top:0;left:0;background-color:#c6c4be}.ui-scrollbar-y .ui-scrollbar-thumb{width:.2272727272727273rem;height:100%;-o-border-radius:.09090909090909091rem;-ms-border-radius:.09090909090909091rem;-moz-border-radius:.09090909090909091rem;-webkit-border-radius:.09090909090909091rem;border-radius:.09090909090909091rem;-o-box-shadow:.045454545454545456rem .045454545454545456rem .09090909090909091rem #94928c;-ms-box-shadow:.045454545454545456rem .045454545454545456rem .09090909090909091rem #94928c;-moz-box-shadow:.045454545454545456rem .045454545454545456rem .09090909090909091rem #94928c;-webkit-box-shadow:.045454545454545456rem .045454545454545456rem .09090909090909091rem #94928c;box-shadow:.045454545454545456rem .045454545454545456rem .09090909090909091rem #94928c}.ui-scrollbar-x .ui-scrollbar-thumb{width:100%;height:.2272727272727273rem;-o-border-radius:.09090909090909091rem;-ms-border-radius:.09090909090909091rem;-moz-border-radius:.09090909090909091rem;-webkit-border-radius:.09090909090909091rem;border-radius:.09090909090909091rem}.ui-scroll-jump-top-bg{position:absolute;top:.4090909090909091rem;right:.5909090909090909rem;width:1.6818181818181819rem;height:1.6818181818181819rem}.ui-scroll-jump-left-bg{position:absolute;bottom:.4090909090909091rem;left:.5909090909090909rem;width:1.6818181818181819rem;height:1.6818181818181819rem}.ui-overflow-indicator-top{position:absolute;display:block;top:0;width:100%;height:.4545454545454546rem;opacity:0;background:-webkit-gradient(linear,left bottom,left top,color-stop(0, #fff),color-stop(1, #808080))}.ui-overflow-indicator-bottom{position:absolute;display:block;bottom:0;width:100%;height:.4545454545454546rem;opacity:0;background:-webkit-gradient(linear,left bottom,left top,color-stop(0, #808080),color-stop(1, #fff))}.ui-content.ui-scrollview-clip{padding:0}.ui-content.ui-scrollview-clip>div.ui-scrollview-view{margin:0;padding-left:.36363636363636365rem;padding-right:.36363636363636365rem}.ui-content.ui-scrollview-clip>.ui-listview.ui-scrollview-view{margin:0}@-webkit-keyframes ui-datetime-in{from{ -webkit-transform:translateY(0.6363636363636364rem) scale(0.9)}to{-webkit-transform:translateY(0) scale(1)}}@-webkit-keyframes ui-datetime-out{from{ opacity:.8;-webkit-transform:translateY(0) scale(0.6)}to{opacity:0;-webkit-transform:translateY(-.6363636363636364rem) scale(0.6)}}.ui-datefield .ui-datefield-seperator{display:inline-block;min-width:.4545454545454546rem;text-align:center}.ui-datefield .date,.ui-datefield .time,.ui-datefield .ui-datefield-tab{display:inline-block}.ui-datefield .ui-datefield-tab{min-width:.9090909090909092rem}.ui-datefield .ui-btn-box-s .ui-btn-inner.ui-btn-hastxt{padding:.1em .5em}.ui-datefield .ui-datefield-selected{display:inline-block;color:#3b73b6}.ui-datefield .ui-datefield-selected.in{-ms-animation:ui-datetime-in .3s 1 ease;-o-animation:ui-datetime-in .3s 1 ease;-moz-animation:ui-datetime-in .3s 1 ease;-webkit-animation:ui-datetime-in .3s 1 ease}.ui-datefield .ui-datefield-selected.out{-ms-animation:ui-datetime-out .3s 1 ease;-o-animation:ui-datetime-out .3s 1 ease;-moz-animation:ui-datetime-out .3s 1 ease;-webkit-animation:ui-datetime-out .3s 1 ease}.ui-datetime{margin:0;height:1.6363636363636365rem}.ui-datetime-text-main{position:relative;font-size:1rem;top:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;padding-top:.3em}.ui-datetime-text-main .ui-datefield-period.ui-btn{margin-top:-.3em;height:1.2727272727272727rem;right:auto;position:relative ! important}.ui-datetime-text-sub{top:.6818181818181819rem ! important;color:#3b73b6 ! important;background:transparent ! important;font-size:.7272727272727273rem ! important}.ui-datetimepicker-selector ul{padding:0;display:inline;list-style:none;vertical-align:middle;margin:0}.ui-datetimepicker-selector ul li{font-size:1rem;float:left;padding:.6818181818181819rem .18181818181818182rem 0 .18181818181818182rem;max-width:5.454545454545455rem;min-width:2.7272727272727275rem}.ui-datetimepicker-selector ul li a.ui-link{text-decoration:none;color:rgba(255,255,255,.7)}.ui-datetimepicker-selector ul li a.ui-link:hover{color:rgba(255,255,255,.7)}.ui-datetimepicker-selector ul li.current a.ui-link{color:#fff}.ui-datetimepicker{left:0!important;padding:0}.ui-datetimepicker .ui-popupwindow-padding{background:#3b73b6!important;border-radius:0!important;-ms-border-radius:0!important;-o-border-radius:0!important;-moz-border-radius:0!important;-webkit-border-radius:0!important;box-shadow:0 0 12px rgba(0,0,0,.6)!important;border-width:0!important;text-align:center!important}.ui-datetimepicker .ui-popupwindow-padding div{height:2.409090909090909rem}.ui-popupwindow-screen{background:#000;opacity:0;position:absolute;top:0;left:0;width:100%;height:100%;z-index:1200}.ui-popupwindow{position:absolute;z-index:1201!important;color:#f8f6ef;background:#f8f6ef}.ui-popupwindow .popup-title{width:100%;height:100%;font-size:1.0909090909090908rem;background:#5093b6}.ui-popupwindow .popup-title p{margin:0rem 0rem;padding:.5909090909090909rem 0rem}.ui-popupwindow .popup-text{width:100%;color:#000;font-size:1.0909090909090908rem;background:#f8f6ef}.ui-popupwindow .popup-text p{text-align:center;padding:1rem .7272727272727273rem}.ui-popupwindow .center_info{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center}.ui-popupwindow .center_title{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_basic_1btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_basic_1btn .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_basic_1btn .popup-button-bg .ui-btn{width:18.272727272727273rem;height:3.3636363636363638rem;margin:auto}.ui-popupwindow .center_basic_2btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_basic_2btn .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_basic_2btn .popup-button-bg .ui-btn{width:12.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_basic_3btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_basic_3btn .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_basic_3btn .popup-button-bg .ui-btn{width:8.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_title_1btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_title_1btn .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_title_1btn .popup-button-bg .ui-btn{width:18.272727272727273rem;height:3.3636363636363638rem;margin:auto}.ui-popupwindow .center_title_2btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_title_2btn .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_title_2btn .popup-button-bg .ui-btn{width:12.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_title_3btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_title_3btn .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_title_3btn .popup-button-bg .ui-btn{width:8.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_button_vertical{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_button_vertical .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:1px;padding-bottom:.7272727272727273rem;vertical-align:middle}.ui-popupwindow .center_button_vertical .popup-button-bg .ui-btn{width:16.181818181818183rem;height:3.3636363636363638rem;margin-top:.7272727272727273rem;margin-bottom:0rem;margin-left:auto;margin-right:auto}.ui-popupwindow .center_checkbox{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_checkbox .popup-check-bg{font-size:1.0909090909090908rem;background:#f8f6ef;width:100%;padding-top:0rem;padding-bottom:1rem;vertical-align:middle}.ui-popupwindow .center_checkbox .popup-check-bg .ui-checkbox .ui-btn{text-align:center;background:#f8f6ef;border:0rem}.ui-popupwindow .center_checkbox .popup-check-bg .ui-checkbox .ui-btn .ui-btn-inner{border:0rem}.ui-popupwindow .center_checkbox .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_checkbox .popup-button-bg .ui-btn{width:12.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_liststyle_1btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_liststyle_1btn .popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:23.272727272727273rem}.ui-popupwindow .center_liststyle_1btn .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_liststyle_1btn .popup-button-bg .ui-btn{width:18.272727272727273rem;height:3.3636363636363638rem;margin:auto}.ui-popupwindow .center_liststyle_2btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_liststyle_2btn .popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:23.272727272727273rem}.ui-popupwindow .center_liststyle_2btn .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_liststyle_2btn .popup-button-bg .ui-btn{width:12.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_liststyle_3btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_liststyle_3btn .popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:23.272727272727273rem}.ui-popupwindow .center_liststyle_3btn .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_liststyle_3btn .popup-button-bg .ui-btn{width:8.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_progressbar{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_progressbar .popup-text{font-size:1.1818181818181819rem;font-color:#999;background:#f8f6ef;width:100%;height:3.181818181818182rem}.ui-popupwindow .center_progressbar .popup-text p{height:100%;text-align:center;padding:1rem .7272727272727273rem 0rem .7272727272727273rem}.ui-popupwindow .center_progressbar .popup-text-bottom-bg{font-size:1.1818181818181819rem;font-color:#999;background:#f8f6ef;width:100%;vertical-align:middle}.ui-popupwindow .center_progressbar .popup-text-bottom-bg .text-left{width:40%;height:2.1818181818181817rem;padding:0rem .7272727272727273rem 0rem .7272727272727273rem;text-align:left;display:inline-block}.ui-popupwindow .center_progressbar .popup-text-bottom-bg .text-right{width:40%;height:2.1818181818181817rem;padding:0rem .7272727272727273rem 0rem .7272727272727273rem;text-align:right;display:inline-block}.ui-popupwindow .center_progressbar .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_progressbar .popup-button-bg .ui-btn{width:18.272727272727273rem;height:3.3636363636363638rem;margin:auto}.ui-popupwindow .center_progressbar .popup-progress-bg{background:#f8f6ef;width:100%;height:100%}.ui-popupwindow .centertext_progressbar{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .centertext_progressbar .popup-text{font-size:1.1818181818181819rem;font-color:#999;background:#f8f6ef;width:100%;padding-top:1rem;padding-bottom:.7272727272727273rem}.ui-popupwindow .centertext_progressbar .popup-text p{text-align:center}.ui-popupwindow .centertext_progressbar .popup-text-bottom-bg{font-size:1.1818181818181819rem;font-color:#999;background:#f8f6ef;width:100%;vertical-align:middle}.ui-popupwindow .centertext_progressbar .popup-text-bottom-bg .text-left{width:40%;height:1.8181818181818183rem;padding:.7272727272727273rem .7272727272727273rem 1rem .7272727272727273rem;text-align:left;display:inline-block}.ui-popupwindow .centertext_progressbar .popup-text-bottom-bg .text-right{width:40%;height:1.8181818181818183rem;padding:.7272727272727273rem .7272727272727273rem 1rem .7272727272727273rem;text-align:right;display:inline-block}.ui-popupwindow .centertext_progressbar .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .centertext_progressbar .popup-button-bg .ui-btn{width:18.272727272727273rem;height:3.3636363636363638rem;margin:auto}.ui-popupwindow .centertext_progressbar .popup-progress-bg{background:#f8f6ef;width:100%;height:100%}.ui-popupwindow .ui-btn.ui-btn-hover-s{background:#5e88a3}.ui-popupwindow .ui-btn.ui-btn-down-s{background:#43a0d9;background:-webkit-gradient(linear,left top,left bottom,from( #43a0d9),to( #388bb9));background:-moz-linear-gradient(top, #43a0d9, #388bb9);background:-ms-linear-gradient(top, #43a0d9, #388bb9);background:-o-linear-gradient(top, #43a0d9, #388bb9)}.ui-popupwindow>.ui-volumecontrol{display:table;margin:auto;background:rgba(0,0,0,.666667);width:18.90909090909091rem;height:30.727272727272727rem;padding-top:1rem}.ui-popupwindow>.ui-volumecontrol h1{font-size:1.0909090909090908rem;display:table;margin:auto;color:#c0c0c0}.ui-popupwindow>.ui-volumecontrol .ui-volumecontrol-icon{display:table;width:100%;height:5.818181818181818rem;padding-top:.9545454545454546rem;padding-bottom:.9545454545454546rem;padding-left:7.5rem;padding-right:7.5rem}.ui-popupwindow>.ui-volumecontrol .ui-volumecontrol-indicator{display:table;width:100%;height:19.09090909090909rem;padding-left:3.090909090909091rem;padding-right:3.090909090909091rem}.ui-popupwindow>.ui-volumecontrol .ui-corner-all{-o-border-radius:.3em!important;-ms-border-radius:.3em!important;-moz-border-radius:.3em!important;-webkit-border-radius:.3em!important;border-radius:.3em!important}.ui-popupwindow-corner-all{-o-border-radius:0!important;-ms-border-radius:0!important;-moz-border-radius:0!important;-webkit-border-radius:0!important;border-radius:0!important}.ui-ctxpopup{display:table}.ui-ctxpopup .ui-ctxpopup-row .ui-triangle-top{top:2px}.ui-ctxpopup .ui-ctxpopup-row .ui-triangle-left{left:2px}.ui-ctxpopup .ui-ctxpopup-row .ui-triangle-right{right:2px}.ui-ctxpopup .ui-ctxpopup-row .ui-triangle-bottom{bottom:2px}.ui-ctxpopup .ui-ctxpopup-row{display:table-row}.ui-ctxpopup .ui-ctxpopup-row .ui-ctxpopup-cell{display:table-cell}.ui-ctxpopup .ui-ctxpopup-row .ui-popupwindow-padding{background:#444;border:0;-ms-box-shadow:0rem 0rem .5454545454545454rem rgba(0,0,0,.6);-o-box-shadow:0rem 0rem .5454545454545454rem rgba(0,0,0,.6);-moz-box-shadow:0rem 0rem .5454545454545454rem rgba(0,0,0,.6);-webkit-box-shadow:0rem 0rem .5454545454545454rem rgba(0,0,0,.6);box-shadow:0rem 0rem .5454545454545454rem rgba(0,0,0,.6);-o-border-radius:.3em;-ms-border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em}.ui-ctxpopup .ui-listview li.ui-btn-up-s,.ui-ctxpopup .ui-listview li.ui-btn-hover-s{background:transparent}.ui-ctxpopup .ui-listview li:last-child{border-bottom-left-radius:.3em;border-bottom-right-radius:.3em}.ui-ctxpopup .ui-listview li:first-child{border-top-left-radius:.3em;border-top-right-radius:.3em}.ui-ctxpopup .ui-listview{max-width:28.181818181818183rem;border:0}.ui-ctxpopup .ui-listview>.ui-li{color:#fff;border-bottom-color:#2d2d2d;border-top-width:1px;border-top-color:#5b5b5b;margin-left:0;margin-right:0}.ui-ctxpopup .ui-listview>.ui-li:first-child,.ui-ctxpopup .ui-listview>.ui-li:last-child{border-top-width:0}.ui-ctxpopup .ui-listview>.ui-li .ui-btn-inner{margin:0;padding-left:.4545454545454546rem;padding-right:.4545454545454546rem}.ui-ctxpopup .ui-listview li.ui-btn-up-s>.ui-li>.ui-btn-text>a.ui-link-inherit,.ui-ctxpopup .ui-listview li.ui-btn-hover-s>.ui-li>.ui-btn-text>a.ui-link-inherit,.ui-ctxpopup .ui-listview li.ui-btn-down-s>.ui-li>.ui-btn-text>a.ui-link-inherit{color:#fff}.ui-ctxpopup .ui-listview>.ui-li:last-child{border:0}.ui-ctxpopup .horizontal{color:#fff}.ui-ctxpopup .horizontal .icon .ui-btn{padding:0;background:transparent ! important}.ui-ctxpopup .horizontal .icon .ui-btn .ui-btn-icon-only{width:4.363636363636363rem;height:2.909090909090909rem;padding:0}.ui-ctxpopup .horizontal .icon .ui-btn .ui-icon{top:0;height:inherit;width:inherit;margin:0;background-position:center;-ms-background-size:2.1818181818181817rem 2.1818181818181817rem;-moz-background-size:2.1818181818181817rem 2.1818181818181817rem;-o-background-size:2.1818181818181817rem 2.1818181818181817rem;-webkit-background-size:2.1818181818181817rem 2.1818181818181817rem;background-size:2.1818181818181817rem 2.1818181818181817rem}.ui-ctxpopup .horizontal .text{padding:0 .4545454545454546rem;min-width:2.1818181818181817rem}.ui-ctxpopup .horizontal a.ui-link{color:#fff;text-decoration:none}.ui-ctxpopup .horizontal ul{padding:0;display:inline-block;list-style:none;vertical-align:middle;margin:0}.ui-ctxpopup .horizontal li{line-height:1.4545454545454546rem;min-height:1.4545454545454546rem;min-width:2.1818181818181817rem;float:left;display:inline-block;border-right:1px solid #5b5b5b;text-align:center}.ui-ctxpopup .horizontal li:first-of-type{border-top-left-radius:.3em;border-bottom-left-radius:.3em;border-top-right-radius:0 ! important;border-left:0}.ui-ctxpopup .horizontal li:last-of-type{border-top-right-radius:.3em;border-bottom-right-radius:.3em;border-right:0;margin-right:0}.ui-ctxpopup .horizontal .ui-li:first-child,.ui-ctxpopup .horizontal .ui-li:last-child{border-left-width:0}.ui-ctxpopup .horizontal li:active,.ui-ctxpopup .horizontal td:active{background:#3b73b6}.ui-ctxpopup .button table .ui-btn{margin:0rem;padding:0;height:2.5454545454545454rem;width:6rem}.ui-arrow{border-style:solid;border-width:10px;width:0;height:0;position:absolute}.ui-arrow.top{border-color:transparent transparent #444 transparent}.ui-arrow.left{border-color:transparent transparent transparent #444}.ui-arrow.right{border-color:transparent #444 transparent transparent}.ui-arrow.bottom{border-color:#444 transparent transparent transparent}.ui-ctxpopup-container{z-index:1200;display:inline-bloack;position:absolute;padding:0;outline:0}.ui-ctxpopup-container .ui-popup{border:0;background:#444;-o-border-radius:.3em;-ms-border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em}.ui-ctxpopup-container .ui-listview li:first-child{border-top-left-radius:.3em;border-top-right-radius:.3em}.poptop{-webkit-transform-origin:0 0;-moz-transform-origin:0 0}.poptop.in{-webkit-transform:scale(1);-moz-transform:scale(1);opacity:1;-webkit-animation-name:scalepopin;-moz-animation-name:scalepopin;-webkit-animation-duration:350ms;-moz-animation-duration:350ms}.poptop.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;opacity:0;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.poptop.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein}.poptop.out.reverse{-webkit-transform:scale(0.8);-moz-transform:scale(0.8);-webkit-animation-name:scalepopout;-moz-animation-name:scalepopout}@-webkit-keyframes scalepopin{from{ -webkit-transform:scale(0.8);opacity:0}to{-webkit-transform:scale(1);opacity:1}}.popbottom{-webkit-transform-origin:0 100%;-moz-transform-origin:0 100%}.popbottom.in{-webkit-transform:scale(1);-moz-transform:scale(1);opacity:1;-webkit-animation-name:scalepopin;-moz-animation-name:scalepopin;-webkit-animation-duration:350ms;-moz-animation-duration:350ms}.popbottom.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;opacity:0;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.popbottom.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein}.popbottom.out.reverse{-webkit-transform:scale(0.8);-moz-transform:scale(0.8);-webkit-animation-name:scalepopout;-moz-animation-name:scalepopout}@-moz-keyframes scalepopin{from{ -moz-transform:scale(0.8);opacity:0}to{-moz-transform:scale(1);opacity:1}}@-webkit-keyframes scalepopout{from{ -webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(0.8);opacity:0}}@-moz-keyframes scalepopout{from{ -moz-transform:scale(1);opacity:1}to{-moz-transform:scale(0.8);opacity:0}}@-webkit-keyframes ui-scale-animation{from{ -webkit-transform:scaleX(0)}to{-webkit-transform:scaleX(1)}}.ui-progressbar-value{height:100%;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0, #3677c3),color-stop(1, #96b8e0));-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem;-o-box-shadow:-1px -1px 1px #b3c8e2;-ms-box-shadow:-1px -1px 1px #b3c8e2;-moz-box-shadow:-1px -1px 1px #b3c8e2;-webkit-box-shadow:-1px -1px 1px #b3c8e2;box-shadow:-1px -1px 1px #b3c8e2}.ui-progressbar-bg{position:relative;overflow:hidden;top:.2272727272727273rem;height:.3181818181818182rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem;border:1px;border-style:solid;border-color:#a3a09e;-o-box-shadow:1px -1px 1px #a3a09e;-ms-box-shadow:1px -1px 1px #a3a09e;-moz-box-shadow:1px -1px 1px #a3a09e;-webkit-box-shadow:1px -1px 1px #a3a09e;box-shadow:1px -1px 1px #a3a09e;background-color:#cac8c4}.ui-progressbar{position:relative;margin-top:.8181818181818182rem;margin-bottom:.8181818181818182rem;margin-left:.9545454545454546rem;margin-right:.9545454545454546rem;height:.8181818181818182rem;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0, #f6f3ef),color-stop(1, #cac8c4));-o-box-shadow:1px 1px 0 #fff;-ms-box-shadow:1px 1px 0 #fff;-moz-box-shadow:1px 1px 0 #fff;-webkit-box-shadow:1px 1px 0 #fff;box-shadow:1px 1px 0 #fff;-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem}@-webkit-keyframes ui-rotate-animation{from{ -webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}.ui-progress-container-circle{position:absolute}.ui-li .ui-progress-container-circle{top:22%}.ui-progress-circle{position:relative;top:0;height:1.4545454545454546rem;width:1.4545454545454546rem;background:url(images/00_list_process_01.png) no-repeat;-ms-background-size:1.4545454545454546rem 1.4545454545454546rem;-moz-background-size:1.4545454545454546rem 1.4545454545454546rem;-o-background-size:1.4545454545454546rem 1.4545454545454546rem;-webkit-background-size:1.4545454545454546rem 1.4545454545454546rem;background-size:1.4545454545454546rem 1.4545454545454546rem}.ui-progress-circle-running{-webkit-animation:ui-rotate-animation 1s infinite linear}@-webkit-keyframes ui-move-animation{from{ -webkit-transform:translateY(-.6363636363636364rem)}to{-webkit-transform:translateY(0)}}.ui-progress-pending{position:relative;top:0;width:100%;height:.9545454545454546rem;padding-top:0;padding-bottom:0;background:-webkit-gradient(linear,left top,right bottom,color-stop(0%,rgba(0,0,0,0)),color-stop(25%,rgba(0,0,0,0)),color-stop(25%, #3677c3),color-stop(50%, #3677c3),color-stop(50%,rgba(0,0,0,0)),color-stop(75%,rgba(0,0,0,0)),color-stop(75%, #3677c3));background-color:#cac8c4;-ms-background-size:.6363636363636364rem .6363636363636364rem;-moz-background-size:.6363636363636364rem .6363636363636364rem;-o-background-size:.6363636363636364rem .6363636363636364rem;-webkit-background-size:.6363636363636364rem .6363636363636364rem;background-size:.6363636363636364rem .6363636363636364rem}.ui-progress-pending-running{-webkit-animation:ui-move-animation .5s infinite linear}label.ui-slider{display:block}select.ui-slider-switch{display:none}.ui-slider-container{position:relative;vertical-align:middle;height:.8181818181818182rem;margin-left:.7272727272727273rem;margin-right:.7272727272727273rem;margin-top:.8181818181818182rem;margin-bottom:.8181818181818182rem;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0, #f6f3ef),color-stop(1, #cac8c4));-o-box-shadow:1px 1px 0 #fff;-ms-box-shadow:1px 1px 0 #fff;-moz-box-shadow:1px 1px 0 #fff;-webkit-box-shadow:1px 1px 0 #fff;box-shadow:1px 1px 0 #fff;-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem}.ui-li>.ui-slider-container{margin-top:0;margin-bottom:0}.ui-slider-left-volume,.ui-slider-left-bright{position:absolute;vertical-align:middle;top:-.5rem;left:-2.272727272727273rem;height:1.6818181818181819rem;width:1.6818181818181819rem;background:url(images/controls/00_slider_button_brightness_01.png) no-repeat;-ms-background-size:1.6818181818181819rem 1.6818181818181819rem;-moz-background-size:1.6818181818181819rem 1.6818181818181819rem;-o-background-size:1.6818181818181819rem 1.6818181818181819rem;-webkit-background-size:1.6818181818181819rem 1.6818181818181819rem;background-size:1.6818181818181819rem 1.6818181818181819rem}.ui-slider-left-volume{background:url(images/controls/00_slider_button_volume_01.png) no-repeat;-ms-background-size:1.6818181818181819rem 1.6818181818181819rem;-moz-background-size:1.6818181818181819rem 1.6818181818181819rem;-o-background-size:1.6818181818181819rem 1.6818181818181819rem;-webkit-background-size:1.6818181818181819rem 1.6818181818181819rem;background-size:1.6818181818181819rem 1.6818181818181819rem}.ui-slider-right-volume,.ui-slider-right-bright{position:absolute;top:-.5rem;right:-2.272727272727273rem;height:1.6818181818181819rem;width:1.6818181818181819rem;vertical-align:middle;background:url(images/controls/00_slider_button_brightness_02.png) no-repeat;-ms-background-size:1.6818181818181819rem 1.6818181818181819rem;-moz-background-size:1.6818181818181819rem 1.6818181818181819rem;-o-background-size:1.6818181818181819rem 1.6818181818181819rem;-webkit-background-size:1.6818181818181819rem 1.6818181818181819rem;background-size:1.6818181818181819rem 1.6818181818181819rem}.ui-slider-right-volume{background:url(images/controls/00_slider_button_volume_02.png) no-repeat;-ms-background-size:1.6818181818181819rem 1.6818181818181819rem;-moz-background-size:1.6818181818181819rem 1.6818181818181819rem;-o-background-size:1.6818181818181819rem 1.6818181818181819rem;-webkit-background-size:1.6818181818181819rem 1.6818181818181819rem;background-size:1.6818181818181819rem 1.6818181818181819rem}.ui-slider-left-text{position:absolute;top:-.5rem;height:1.6818181818181819rem;text-align:center;color:#808080}.ui-slider-right-text{position:absolute;top:-.5rem;height:1.6818181818181819rem;text-align:center;color:#808080}div.ui-slider:not(.ui-toggle-switch){position:relative;top:.2272727272727273rem;height:.3181818181818182rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem;border:1px;border-style:solid;border-color:#a3a09e;-o-box-shadow:1px 1px 0 #000;-ms-box-shadow:1px 1px 0 #000;-moz-box-shadow:1px 1px 0 #000;-webkit-box-shadow:1px 1px 0 #000;box-shadow:1px 1px 0 #000;background-color:#cac8c4}div.ui-slider:not(.ui-toggle-switch) .ui-btn{top:-.75rem;margin-top:0}div.ui-slider:not(.ui-toggle-switch) .ui-btn-inner{padding:.3rem 0 0 0}div.ui-slider:not(.ui-toggle-switch) .ui-btn-text{color:#3b73b6}a.ui-slider-handle{position:relative;z-index:10;width:1.6363636363636365rem;height:1.6363636363636365rem;margin-left:-.8636363636363636rem;color:#3b73b6;font-size:.95rem;background:url(images/controls/00_slider_handle.png) no-repeat;-ms-background-size:1.6363636363636365rem 1.6363636363636365rem;-moz-background-size:1.6363636363636365rem 1.6363636363636365rem;-o-background-size:1.6363636363636365rem 1.6363636363636365rem;-webkit-background-size:1.6363636363636365rem 1.6363636363636365rem;background-size:1.6363636363636365rem 1.6363636363636365rem}.ui-slider-popup{position:absolute!important;z-index:1200;width:2.0454545454545454rem;height:2.4545454545454546rem;padding-top:.1rem;color:#f9f9f9;text-align:center;font-size:1.5rem;background:url(images/controls/00_slider_popup_bg.png) no-repeat;-ms-background-size:2.0454545454545454rem 2.4545454545454546rem;-moz-background-size:2.0454545454545454rem 2.4545454545454546rem;-o-background-size:2.0454545454545454rem 2.4545454545454546rem;-webkit-background-size:2.0454545454545454rem 2.4545454545454546rem;background-size:2.0454545454545454rem 2.4545454545454546rem}.ui-slider-bg{position:absolute;height:.3181818181818182rem;width:0;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0, #3677c3),color-stop(1, #96b8e0));-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem;-o-box-shadow:-1px -1px 1px #b3c8e2;-ms-box-shadow:-1px -1px 1px #b3c8e2;-moz-box-shadow:-1px -1px 1px #b3c8e2;-webkit-box-shadow:-1px -1px 1px #b3c8e2;box-shadow:-1px -1px 1px #b3c8e2}.ui-slider-handle-press{position:absolute;z-index:15;width:1.6818181818181819rem;height:1.6818181818181819rem;background:url(images/controls/00_slider_handle_press.png) no-repeat;-ms-background-size:1.6363636363636365rem 1.6363636363636365rem;-moz-background-size:1.6363636363636365rem 1.6363636363636365rem;-o-background-size:1.6363636363636365rem 1.6363636363636365rem;-webkit-background-size:1.6363636363636365rem 1.6363636363636365rem;background-size:1.6363636363636365rem 1.6363636363636365rem}.ui-gallery{position:relative;width:100%}.ui-gallery-bg{display:none;position:absolute;text-align:center;width:100%}@-webkit-keyframes ui-ticker-show{from{ opacity:0;-webkit-transform:translateY(-2.272727272727273rem);top:-2.272727272727273rem}to{opacity:1;-webkit-transform:translateY(0);top:0}}@-webkit-keyframes ui-ticker-hide{from{ opacity:1;-webkit-transform:translateY(0);top:0}to{opacity:0;-webkit-transform:translateY(-2.272727272727273rem);top:-2.272727272727273rem}}.ui-ticker{position:fixed;display:none;left:0;width:100%;height:2.272727272727273rem;z-index:2147483547;background:#444}.ui-ticker.fix{display:block;top:0}.ui-ticker.show{display:block;-ms-animation:ui-ticker-show .8s 1 ease;-o-animation:ui-ticker-show .8s 1 ease;-moz-animation:ui-ticker-show .8s 1 ease;-webkit-animation:ui-ticker-show .8s 1 ease;top:0}.ui-ticker.hide{display:block;-o-animation:ui-ticker-hide .8s 1 ease;-ms-animation:ui-ticker-hide .8s 1 ease;-webkit-animation:ui-ticker-hide .8s 1 ease;top:-2.272727272727273rem}.ui-ticker-btn{position:relative;margin-top:.4545454545454546rem;margin-left:.36363636363636365rem;margin-right:.36363636363636365rem;vertical-align:middle;float:right}.ui-ticker-btn .ui-btn-inner{padding:.15rem 0 0 0;height:1.2727272727272727rem;width:3.5rem;font-size:.81rem;color:#fff;background:#404040;border:1px;border-color:#323232;box-shadow:0 0 1px 1px #323232}.ui-ticker-btn .ui-btn-box-s.ui-btn-up-s{background:#404040;box-shadow:0 0 1px 1px #323232;border-color:#323232}.ui-ticker-btn .ui-btn-box-s.ui-btn-hover-s{background:#404040;box-shadow:0 0 1px 1px #323232;border-color:#323232}.ui-ticker-icon{position:absolute;top:0;height:1.4545454545454546rem;width:1.4545454545454546rem;margin-top:.4090909090909091rem;margin-bottom:.4090909090909091rem;margin-left:.36363636363636365rem;margin-right:.36363636363636365rem;vertical-align:middle}.ui-ticker-text1-bg{position:absolute;top:0;height:.8181818181818182rem;left:2.1818181818181817rem;margin-top:.36363636363636365rem;font-size:.68rem;color:#fff}.ui-ticker-text2-bg{position:absolute;top:0;height:.7272727272727273rem;left:2.1818181818181817rem;margin-top:1.1818181818181819rem;font-size:.54rem;color:#fff}@-webkit-keyframes ui-smallpopup-show{from{ opacity:0;-webkit-transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1)}}@-webkit-keyframes ui-smallpopup-hide{from{ opacity:1;left:0;-webkit-transform:scaleY(1)}to{opacity:0;left:0;-webkit-transform:scaleY(0)}}.ui-smallpopup{position:fixed;display:none;left:0;width:100%;z-index:1100;background:#444;vertical-align:middle;font-size:.72rem;word-break:break-all}.ui-smallpopup.fix{display:block}.ui-smallpopup.show{display:block;-moz-animation:ui-smallpopup-show .5s 1 ease;-ms-animation:ui-smallpopup-show .5s 1 ease;-o-animation:ui-smallpopup-show .5s 1 ease;-webkit-animation:ui-smallpopup-show .5s 1 ease}.ui-smallpopup.hide{display:block;left:-100%;-moz-animation:ui-smallpopup-hide .5s 1 ease;-ms-animation:ui-smallpopup-hide .5s 1 ease;-o-animation:ui-smallpopup-hide .5s 1 ease;-webkit-animation:ui-smallpopup-hide .5s 1 ease}.ui-smallpopup-text-bg{position:relative;margin-top:.18181818181818182rem;margin-bottom:.18181818181818182rem;margin-left:.36363636363636365rem;margin-right:.36363636363636365rem;color:#fff}.ui-swipe{list-style-type:none;overflow:hidden}.ui-swipe-item{height:1.1818181818181819rem;-ms-user-select:none;-o-user-select:none;-moz-user-select:none;-webkit-user-select:none;-user-select:none;opacity:0;text-align:center}.ui-swipe-item .ui-btn{margin-top:-1.5em ! important;position:relative ! important}.ui-swipe-item p{margin:0}.ui-swipe-item-cover{position:absolute;border:0;top:0;left:0;width:100%;height:100%;z-index:100}.ui-swipe-item-cover .ui-swipe-item-cover-inner{position:absolute;padding-top:.6818181818181819rem;padding-bottom:.6818181818181819rem;padding-left:.36363636363636365rem;width:100%;text-align:left}.ui-swipe-item-cover .ui-swipe-item-cover-inner .ui-li-text-sub{position:absolute;padding-right:.7272727272727273rem}.ui-swipe-item-cover p{margin:0}.ui-fastscroll{position:absolute;right:0rem;background-color:#e6e3d8;width:1.1363636363636365rem;-ms-user-select:none;-o-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none;margin:0;padding-right:.08em;opacity:1}.ui-fastscroll ul{list-style-type:none;margin:0;padding:0}.ui-fastscroll li{cursor:pointer;color:#a09f9a;padding:.09090909090909091rem .09090909090909091rem .09090909090909091rem .09090909090909091rem;text-align:center;vertical-align:middle;font-size:.7272727272727273rem;font-weight:700;border-left-width:.13636363636363635rem;border-left-color:#3b73b6;border-left-style:solid;border-top-width:.13636363636363635rem;border-top-color:#e6e3d8}.ui-fastscroll2{position:absolute;right:0rem;-ms-user-select:none;-o-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none;margin:0;padding-right:.08em;opacity:1}.ui-fastscroll2 ul{list-style-type:none;margin:0;padding:0}.ui-fastscroll2 li{cursor:pointer;color:#a09f9a;padding:.09090909090909091rem .09090909090909091rem .09090909090909091rem .09090909090909091rem;text-align:right}.ui-fastscroll-bg{position:absolute;right:0rem;background-color:#e6e3d8;width:1.1363636363636365rem;z-index:10;top:0}.ui-fastscroll-popup{position:absolute;background:#3b73b6;color:#fff;padding:.4545454545454546rem 1.3636363636363638rem;-ms-box-shadow:.36363636363636365rem .4545454545454546rem 0rem rgba(199,199,199,.5);-o-box-shadow:.36363636363636365rem .4545454545454546rem 0rem rgba(199,199,199,.5);-moz-box-shadow:.36363636363636365rem .4545454545454546rem 0rem rgba(199,199,199,.5);-webkit-box-shadow:.36363636363636365rem .4545454545454546rem 0rem rgba(199,199,199,.5);box-shadow:.36363636363636365rem .4545454545454546rem 0rem rgba(199,199,199,.5);text-align:center;font-size:3.409090909090909rem;font-weight:700;display:none;box-sizing:border-box;left:50%;top:50%}li.ui-fastscroll-hover{color:#3b73b6}li.ui-fastscroll-hover,li.ui-fastscroll-hover-up,li.ui-fastscroll-hover-down{background:#f8f6ef;border-style:solid;border-color:#3b73b6;border-width:0;border-right-width:.13636363636363635rem;border-left-width:1px;border-left-color:#f8f6ef}li.ui-fastscroll-hover{padding-top:.045454545454545456rem;padding-bottom:.045454545454545456rem}li.ui-fastscroll-hover-first-item{padding-top:.09090909090909091rem}li.ui-fastscroll-hover-up{border-top-width:.13636363636363635rem;padding-top:0}li.ui-fastscroll-hover-down{border-bottom-width:.13636363636363635rem;padding-bottom:0}div.ui-slider.ui-toggle-switch{width:3rem;height:1.590909090909091rem;background-color:transparent;margin-top:.2272727272727273rem;margin-bottom:.2272727272727273rem}div.ui-slider.ui-toggle-switch .ui-slider-label{position:absolute;width:3rem;height:1.590909090909091rem;background-size:100% 100%;background-repeat:no-repeat;background-color:transparent}div.ui-slider.ui-toggle-switch .ui-slider-label.ui-slider-label-a{background-image:url(images/00_button_on.png)}div.ui-slider.ui-toggle-switch .ui-slider-label.ui-slider-label-b{background-image:url(images/00_button_off.png)}div.ui-slider.ui-toggle-switch .ui-slider-inneroffset a{background:0}.ui-slider-switch:not(.ui-toggle-switch){width:4.181818181818182rem}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch){position:relative;margin-top:.2272727272727273rem;margin-bottom:.2272727272727273rem;height:1.4545454545454546rem;top:0;margin:.2272727272727273rem;border-radius:.6818181818181819rem}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) .ui-slider-inneroffset{position:relative;margin:-1px .7272727272727273rem;z-index:1}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) a.ui-slider-handle{position:absolute;background:#fff;background-image:-webkit-gradient(radial,50% 50%,0,50% 50%,50,from( #f9f9f9),to( #323232));-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);top:50%;margin:1px 0 0 -.6818181818181819rem;border-radius:.6818181818181819rem;border:2px solid gray;width:1.2727272727272727rem;height:1.2727272727272727rem}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) a.ui-slider-handle-snapping{-webkit-transition:left 70ms linear}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) span{position:absolute;overflow:hidden;text-align:center;height:1.4545454545454546rem;font-weight:700;font-size:.7272727272727273rem;border-radius:.6818181818181819rem;white-space:nowrap;line-height:2}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) span.ui-slider-label-a{left:0;color:#fff;z-index:1;text-indent:-1.5em}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) span.ui-slider-label-b{right:0;color:#000;z-index:0;text-indent:1.5em}.ui-slider-switch .ui-slider-handle .ui-btn-inner{padding:0}.ui-triangle-container{position:relative}.ui-triangle-container .ui-triangle{position:absolute;border-style:solid;border-color:transparent;border-width:10px}.ui-triangle-container .ui-triangle-top{top:0;border-top-width:0;border-left-color:transparent;border-right-color:transparent;margin-left:-10px}.ui-triangle-container .ui-triangle-bottom{bottom:0;border-bottom-width:0;border-left-color:transparent;border-right-color:transparent;margin-left:-10px}.ui-triangle-container .ui-triangle-left{left:0;margin-top:-10px;border-left-width:0;border-left-color:transparent;border-right-color:transparent}.ui-triangle-container .ui-triangle-right{right:0;margin-top:-10px;border-right-width:0;border-left-color:transparent;border-right-color:transparent}.ui-triangle-container-top{height:10px;top:0;margin-top:-10px}.ui-triangle-container-bottom{height:10px;bottom:0;margin-bottom:-10px}.ui-triangle-container-left{width:10px}.ui-triangle-container-right{width:10px}.ui-tokentextarea{display:table;outline:0;position:relative}.ui-tokentextarea .ui-tokentextarea-label{display:inline-block;position:relative;margin-left:5px;margin-right:5px;padding:10px 0;color:#666;font-weight:700;text-align:center;font-size:1em}.ui-tokentextarea-input{outline:0;position:relative;border:0!important;padding:0!important;margin:8px;color:#222;text-align:left;font-size:1em}.ui-tokentextarea-input-visible{display:inline-block!important}.ui-tokentextarea-input-invisible{display:none!important}.ui-tokentextarea div{display:inline-block;text-align:center;cursor:pointer;position:relative;margin-left:5px;margin-right:5px;margin-bottom:5px;margin-top:5px;padding:3px 8px;font-size:1em;text-shadow:0 .1em .1em rgba(0,0,0,.3);-ms-border-radius:.2em;-o-border-radius:.2em;-webkit-border-radius:.2em;-moz-border-radius:.2em;border-radius:.2em;-o-box-shadow:0 .1em .1em rgba(0,0,0,.2);-ms-box-shadow:0 .1em .1em rgba(0,0,0,.2);-moz-box-shadow:0 .1em .1em rgba(0,0,0,.2);-webkit-box-shadow:0 .1em .1em rgba(0,0,0,.2);box-shadow:0 .1em .1em rgba(0,0,0,.2);color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}div.ui-tokentextarea-block{background-color:#5f8abd;background-image:url(./images/00_contacts_button_header.png);background-size:contain;background-repeat:no-repeat;padding-left:11px}div.ui-tokentextarea-sblock{background-color:#365984;background-image:url(./images/00_contacts_button_header_press.png);background-size:contain;background-repeat:no-repeat;padding-left:11px}.ui-tokentextarea .ui-tokentextarea-desclabel{display:inline-block;outline:0;position:relative;border:0;color:#666;text-align:left;font-size:1em}.ui-tokentextarea-link-base{position:absolute;right:0;bottom:.2em}.ui-handler{position:absolute;overflow:hidden;opacity:0}.ui-handler-visible{opacity:1}.ui-handler-direction-y{top:.2272727272727273rem;right:.2272727272727273rem;bottom:.2272727272727273rem;width:1.0909090909090908rem}.ui-handler-direction-x{right:.2272727272727273rem;bottom:.2272727272727273rem;left:.2272727272727273rem;height:1.0909090909090908rem}.ui-handler-track{position:relative;width:100%;height:100%}.ui-handler-thumb{position:absolute;top:0;left:0;background-position:center;background-repeat:no-repeat;-o-border-radius:.11363636363636365rem;-ms-border-radius:.11363636363636365rem;-moz-border-radius:.11363636363636365rem;-webkit-border-radius:.11363636363636365rem;border-radius:.11363636363636365rem}.ui-handler-direction-y .ui-handler-thumb{width:1.0909090909090908rem;height:4.863636363636364rem;background-size:1.0909090909090908rem .9090909090909092rem}.ui-handler-direction-x .ui-handler-thumb{width:4.863636363636364rem;height:1.0909090909090908rem;background-size:.9090909090909092rem 1.0909090909090908rem}.ui-handler-s .ui-handler-thumb{background-color:rgba(150,150,150,.5)}.ui-handler-s .ui-handler-direction-y .ui-handler-thumb{background-image:url("images/00_scroll_bar_handler.png")}.ui-handler-s .ui-handler-direction-x .ui-handler-thumb{background-image:url("images/00_scroll_bar_handler_hor.png")}.ui-virtualgrid{overflow:hidden;position:absolute}.ui-virtualgrid-wrapblock{position:absolute;left:0}.ui-virtualgrid-wrapblock-x{float:left;overflow:hidden}.ui-scrollbar-thumb-x{width:1.5rem!important}.ui-scrollbar-thumb-y{height:1.5rem!important}.ui-virtualgrid-overflow-indicator-x-top{position:absolute;display:block;left:0;top:0;width:.4545454545454546rem;height:100%;opacity:0;background:-webkit-gradient(linear,right top,left top,color-stop(0,rgba(128,128,128,0)),color-stop(1, #808080));pointer-events:none}.ui-virtualgrid-overflow-indicator-x-bottom{position:absolute;display:block;right:0;bottom:0;width:.4545454545454546rem;height:100%;opacity:0;background:-webkit-gradient(linear,right top,left top,color-stop(0, #808080),color-stop(1,rgba(128,128,128,0)));pointer-events:none}.ui-virtualgrid-overflow-indicator-y-top{position:absolute;display:block;top:0;width:100%;height:.4545454545454546rem;opacity:0;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,rgba(128,128,128,0)),color-stop(1, #808080));pointer-events:none}.ui-virtualgrid-overflow-indicator-y-bottom{position:absolute;display:block;bottom:0;width:100%;height:.4545454545454546rem;opacity:0;background:-webkit-gradient(linear,left bottom,left top,color-stop(0, #808080),color-stop(1,rgba(128,128,128,0)));pointer-events:none}.ui-content.ui-virtualgrid-content{padding:0}.ui-multimediaview{background-color:#f9f9f9;overflow:hidden}.ui-multimediaview-wrap{width:100%;padding:0;position:relative;overflow:hidden}.ui-multimediaview-siblings-off{display:none!important}.ui-multimediaview-control span{display:inline-block}.ui-multimediaview-video{position:absolute}.ui-multimediaview-control{display:block;z-index:1002;padding:0;margin:0;outline:0;border:0;height:1.9090909090909092rem;text-align:left;overflow:hidden}.ui-multimediaview-control span.ui-button{background-position:center center;background-size:80%;background-repeat:no-repeat;width:1.6818181818181819rem;height:1.6818181818181819rem;margin:.09090909090909091rem}.ui-multimediaview-control .ui-playpausebutton{float:left}.ui-multimediaview-control .ui-timestamplabel{text-align:center;float:left}.ui-multimediaview-control .ui-timestamplabel p{margin-top:-.22272727272727275rem;margin-left:.09090909090909091rem;padding:0;text-align:center;font-size:.5rem;line-height:.6363636363636364rem;text-align:left}.ui-multimediaview-control .ui-durationlabel{text-align:center;float:right}.ui-multimediaview-control .ui-durationlabel p{margin-top:-.22272727272727275rem;margin-right:.09090909090909091rem;padding:0;text-align:center;font-size:.5rem;line-height:.6363636363636364rem;text-align:right}.ui-multimediaview-bar{margin-top:.22272727272727275rem;float:left}.ui-multimediaview-bar-bg{height:.36363636363636365rem;border-radius:1.5em}.ui-multimediaview-bar-highlight{height:.36363636363636365rem;position:absolute;border-radius:1.5em}.ui-multimediaview-control .ui-seekbar{margin-left:.09090909090909091rem}.ui-multimediaview-control .ui-seekbar .ui-duration{width:100%}.ui-multimediaview-control .ui-volumecontrol{width:5rem;height:100%;float:left}.ui-multimediaview-control .ui-volumecontrol .ui-volumebar{margin-left:.6818181818181819rem}.ui-multimediaview-control .ui-volumecontrol .ui-volumebar .ui-guide{width:3.8636363636363638rem}.ui-multimediaview-control .ui-volumecontrol .ui-volumebar .ui-handle{margin:0;padding:0;width:.6818181818181819rem;height:.6818181818181819rem;border-style:solid;border-width:1px;border-radius:1.5em}.ui-fullscreen-parents{padding:0!important;margin:0!important;width:100%!important;height:100%!important;overflow:hidden}.ui-multimediaview-s .ui-multimediaview-video{background-color:rgba(248,246,239,.5)}.ui-multimediaview-s .ui-timestamplabel{color:#4a84c9}.ui-multimediaview-s .ui-durationlabel{color:#808080}.ui-multimediaview-s span.ui-button{background-color:#f8f6ef}.ui-multimediaview-s span.ui-play-icon{background-image:url(./images/00_button_play.png)}.ui-multimediaview-s span.ui-pause-icon{background-image:url(./images/00_button_pause.png)}.ui-multimediaview-s span.ui-volume-icon{background-image:url(./images/controls/00_slider_button_volume_02.png)}.ui-multimediaview-s span.ui-mute-icon{background-image:url(./images/controls/00_slider_button_volume_01.png)}.ui-multimediaview-s span.ui-fullscreen-on{background-image:url(./images/00_button_fullscreen_on.png)}.ui-multimediaview-s span.ui-fullscreen-off{background-image:url(./images/00_button_fullscreen_off.png)}.ui-multimediaview-s .ui-seekbar .ui-duration{background-color:#cbc8c5}.ui-multimediaview-s .ui-seekbar .ui-currenttime{background-color:#4a84c9;background-image:-webkit-gradient(linear,left top,left bottom,from( #6289d9),to( #295b98));background-image:-moz-linear-gradient(top, #6289d9, #295b98);background-image:-o-linear-gradient(top, #6289d9, #295b98);background-image:-ms-linear-gradient(top, #6289d9, #295b98)}.ui-multimediaview-s .ui-volumebar .ui-guide{background-color:#cbc8c5}.ui-multimediaview-s .ui-volumebar .ui-value{background-color:#4a84c9;background-image:-webkit-gradient(linear,left top,left bottom,from( #6289d9),to( #295b98));background-image:-moz-linear-gradient(top, #6289d9, #295b98);background-image:-o-linear-gradient(top, #6289d9, #295b98);background-image:-ms-linear-gradient(top, #6289d9, #295b98)}.ui-multimediaview-s .ui-volumebar .ui-handle{background-color:#f9f9f9;background-image:-webkit-gradient(linear,left top,left bottom,from( #fff),to( #e6e6e6));background-image:-moz-linear-gradient(top, #fff, #e6e6e6);background-image:-o-linear-gradient(top, #fff, #e6e6e6);background-image:-ms-linear-gradient(top, #fff, #e6e6e6);border-color:#bab9b4}.ui-popup-screen{top:0;left:0;width:100%;height:100%;border:0;position:absolute;filter:Alpha(Opacity=50);opacity:0}.ui-popup-screen-background-hack{background-color:#000;filter:Alpha(Opacity=0)}@-webkit-keyframes popup-fadein{from{ opacity:0}to{opacity:.5}}@-moz-keyframes popup-fadein{from{ opacity:0}to{opacity:.5}}@-webkit-keyframes popup-fadeout{from{ opacity:.5}to{opacity:0}}@-moz-keyframes popup-fadeout{from{ opacity:.5}to{opacity:0}}.ui-popup-screen.fade.in{opacity:.5;-webkit-animation-name:popup-fadein;-moz-animation-name:popup-fadein}.ui-popup-screen.fade.out{opacity:0;-webkit-animation-name:popup-fadeout;-moz-animation-name:popup-fadeout}.ui-popup.ui-content,.ui-popup .ui-content{overflow:visible}.ui-popup>img{width:auto;height:auto;max-width:100%;max-height:100%;vertical-align:middle}.ui-popup iframe{vertical-align:middle}@media all and (min-width: 450px){.ui-popup .ui-field-contain label.ui-submit,.ui-popup .ui-field-contain .ui-controlgroup-label,.ui-popup .ui-field-contain label.ui-select,.ui-popup .ui-field-contain label.ui-input-text{ font-size:16px;line-height:1.4;display:block;font-weight:400;margin:0 0 .3em}.ui-popup .ui-field-contain .ui-btn.ui-submit,.ui-popup .ui-field-contain .ui-controlgroup-controls,.ui-popup .ui-field-contain .ui-select,.ui-popup .ui-field-contain input.ui-input-text,.ui-popup .ui-field-contain textarea.ui-input-text,.ui-popup .ui-field-contain .ui-input-search{width:100%;display:block}}.ui-popup>.ui-btn-left,.ui-popup>.ui-btn-right{position:absolute;top:-9px;margin:0;z-index:1101}.ui-popup>.ui-btn-left{left:-9px}.ui-popup>.ui-btn-right{right:-9px}.ui-popup-screen{background:#000;opacity:0;position:absolute;top:0;left:0;width:100%;height:100%;z-index:1200}.ui-overlay-dim{opacity:.7}.ui-popup-scroller-bg{width:100%}.ui-popup-container{position:absolute;width:86.12%;z-index:1201!important;background:#f8f6ef;text-align:center;outline-color:#f8f6ef;display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center}.ui-popup-container .ui-popup{padding:3px 2px 2px 2px;background:#f8f6ef;width:100%;word-wrap:break-word}.ui-popup-container .ui-popup>.ui-popup-title,.ui-popup-container .ui-popup>.ui-popup-text,.ui-popup-container .ui-popup>.ui-popup-button-bg{width:100%}.ui-popup-container .ui-popup-title{width:100%;height:1.8181818181818183rem;text-align:left;color:#3b73b6;font-size:1.0909090909090908rem;font-weight:700}.ui-popup-container .ui-popup-title h1{font-size:1.0909090909090908rem;font-weight:700;color:#3b73b6;margin:0;padding-top:.4545454545454546rem;padding-left:.7272727272727273rem}.ui-popup-container .ui-popup-text{margin-top:1rem;margin-bottom:1rem;color:#000;font-size:.9090909090909092rem;background:#f8f6ef;text-align:center}.ui-popup-container .ui-popup-text .ui-li .ui-radio label,.ui-popup-container .ui-popup-text .ui-li .ui-checkbox label{background:transparent}.ui-popup-container .ui-popup-text input{display:inline-block}.ui-popup-container .ui-popup-button-bg{font-size:1.4545454545454546rem;height:1.6818181818181819rem;padding-top:.4545454545454546rem;padding-bottom:.4545454545454546rem;width:100%;vertical-align:middle}.ui-popup-container .ui-popup-button-bg>.ui-btn{display:inline-block;margin:auto;height:1.6818181818181819rem}.ui-popup-container .ui-popup-button-bg .ui-btn-inner{padding-top:.2272727272727273rem;padding-bottom:.2272727272727273rem;padding-left:.9090909090909092rem;padding-right:.9090909090909092rem}.ui-popup-container .center_basic_3btn .ui-btn,.ui-popup-container .center_title_3btn .ui-btn{max-width:3.6363636363636367rem;height:1.6818181818181819rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popup-container .center_button_vertical .ui-popup-button-bg{display:block;height:auto}.ui-popup-container .center_button_vertical .ui-popup-button-bg>.ui-btn{display:block;width:9.090909090909092rem}.ui-popup-container .center_checkbox .ui-popup-check-bg{font-size:.9090909090909092rem;background:#f8f6ef;width:100%;padding-top:0rem;padding-bottom:1rem;vertical-align:middle}.ui-popup-container .center_checkbox .ui-popup-check-bg .ui-checkbox .ui-btn{text-align:center;background:#f8f6ef;border:0rem}.ui-popup-container .center_checkbox .ui-popup-check-bg .ui-checkbox .ui-btn .ui-btn-inner{border:0rem}.ui-popup-container .center_checkbox .ui-popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_checkbox .ui-popup-button-bg .ui-btn{width:5rem;height:1.6818181818181819rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popup-container .center_liststyle_1btn .ui-popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:11.636363636363637rem}.ui-popup-container .center_liststyle_1btn .ui-popup-button-bg{padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_liststyle_2btn .ui-popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:11.636363636363637rem}.ui-popup-container .center_liststyle_2btn .ui-popup-button-bg{padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_liststyle_2btn .ui-popup-button-bg .ui-btn{width:5rem;height:1.6818181818181819rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popup-container .center_liststyle_2btn .ui-popup-button-bg .ui-btn .ui-btn-inner{padding-top:.2272727272727273rem;padding-bottom:.2272727272727273rem;padding-left:.9090909090909092rem;padding-right:.9090909090909092rem}.ui-popup-container .center_title_2btn .ui-popup-button-bg{padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_title_2btn .ui-popup-button-bg .ui-btn{width:5.454545454545455rem;height:1.6818181818181819rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popup-container .center_title_2btn .ui-popup-button-bg .ui-btn .ui-btn-inner{padding-top:.2272727272727273rem;padding-bottom:.2272727272727273rem;padding-left:.9090909090909092rem;padding-right:.9090909090909092rem}.ui-popup-container .center_liststyle_3btn .ui-popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:11.636363636363637rem}.ui-popup-container .center_liststyle_3btn .ui-popup-button-bg{padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_liststyle_3btn .ui-popup-button-bg .ui-btn{max-width:3.6363636363636367rem;height:1.6818181818181819rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popup-container .center_progressbar{text-align:center}.ui-popup-container .center_progressbar .ui-popup-text{font-size:1.1818181818181819rem;font-color:#999;background:#f8f6ef;width:100%;height:3.181818181818182rem}.ui-popup-container .center_progressbar .ui-popup-text p{height:100%;text-align:center;padding:1rem .7272727272727273rem 0rem .7272727272727273rem}.ui-popup-container .center_progressbar .ui-popup-text-bottom-bg{font-size:1.1818181818181819rem;font-color:#999;background:#f8f6ef;width:100%;vertical-align:middle}.ui-popup-container .center_progressbar .ui-popup-text-bottom-bg .text-left{width:40%;height:2.1818181818181817rem;padding:0rem .7272727272727273rem 0rem .7272727272727273rem;text-align:left;display:inline-block}.ui-popup-container .center_progressbar .ui-popup-text-bottom-bg .text-right{width:40%;height:2.1818181818181817rem;padding:0rem .7272727272727273rem 0rem .7272727272727273rem;text-align:right;display:inline-block}.ui-popup-container .center_progressbar .ui-popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_progressbar .ui-popup-button-bg .ui-btn{width:9.136363636363637rem;height:1.6818181818181819rem;margin:auto}.ui-popup-container .center_progressbar .ui-popup-progress-bg{background:#f8f6ef;width:100%;height:100%}.ui-popup-container .centertext_progressbar{text-align:center}.ui-popup-container .centertext_progressbar .ui-popup-text{font-size:1.1818181818181819rem;font-color:#999;background:#f8f6ef;width:100%;padding-top:1rem;padding-bottom:.7272727272727273rem}.ui-popup-container .centertext_progressbar .ui-popup-text p{text-align:center}.ui-popup-container .centertext_progressbar .ui-popup-text-bottom-bg{font-size:1.1818181818181819rem;font-color:#999;background:#f8f6ef;width:100%;vertical-align:middle}.ui-popup-container .centertext_progressbar .ui-popup-text-bottom-bg .text-left{width:40%;height:1.8181818181818183rem;padding:.7272727272727273rem .7272727272727273rem 1rem .7272727272727273rem;text-align:left;display:inline-block}.ui-popup-container .centertext_progressbar .ui-popup-text-bottom-bg .text-right{width:40%;height:1.8181818181818183rem;padding:.7272727272727273rem .7272727272727273rem 1rem .7272727272727273rem;text-align:right;display:inline-block}.ui-popup-container .centertext_progressbar .ui-popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .centertext_progressbar .ui-popup-button-bg .ui-btn{width:18.272727272727273rem;height:1.6818181818181819rem;margin:auto}.ui-popup-container .centertext_progressbar .ui-popup-progress-bg{background:#f8f6ef;width:100%;height:100%}.ui-text-ellipsis{white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-tabbar{background:#f8f6ef;z-index:1000}.ui-tabbar a.ui-btn{background:#f8f6ef;color:#999;padding-top:.8636363636363636rem;padding-bottom:.8636363636363636rem}.ui-tabbar a.ui-btn .ui-btn-inner{padding-top:0;padding-bottom:0;border-left:2px solid;border-color:#b2b1ae;border-radius:0;-0-border-radius:0;-ms-border-radius:0;-webkit-border-radius:0}.ui-tabbar a.ui-btn .ui-icon{width:1.4545454545454546rem;height:1.4545454545454546rem;background-repeat:no-repeat;background-size:100% 100%}.ui-tabbar.ui-tabbar-persist a.ui-btn{background:#f8f6ef}.ui-tabbar.ui-tabbar-persist a.ui-state-persist,.ui-tabbar.ui-tabbar-persist a.ui-state-persist.ui-btn-active,.ui-tabbar.ui-tabbar-persist a.ui-btn-show-style{color:#3b73b6}.ui-tabbar.ui-tabbar-persist a.ui-btn-hover-s.ui-btn-down-s:not(.ui-state-persist){color:#3b73b6;background:-webkit-linear-gradient(top, #d2d2c8 0, #f6f8ef 100%)}.ui-tabbar:not(.ui-tabbar-persist) a.ui-btn{background:#f8f6ef}.ui-tabbar:not(.ui-tabbar-persist) a.ui-btn-active,.ui-tabbar:not(.ui-tabbar-persist) .ui-btn-show-style{color:#3b73b6}.ui-tabbar:not(.ui-tabbar-persist) a.ui-btn.ui-btn-hover-s.ui-btn-down-s{color:#3b73b6;background:-webkit-linear-gradient(top, #d2d2c8 0, #f6f8ef 100%)}.ui-tabbar .ui-btn-inner{font-size:.6818181818181819rem;font-weight:700}.ui-tabbar .ui-btn-inner .ui-icon{top:.4545454545454546rem;left:50%;margin-left:-.7272727272727273rem}.ui-tabbar.ui-tabbar-notext a.ui-btn{padding-top:.5rem;padding-bottom:.4545454545454546rem}.ui-tabbar.ui-tabbar-notext .ui-btn-inner{height:1.5454545454545454rem}.ui-tabbar.ui-tabbar-notext .ui-btn-inner .ui-icon{top:0}.ui-header.ui-bar-s.ui-title-tabbar .ui-title{font-size:1rem;margin-top:.36363636363636365rem;margin-bottom:0rem}.ui-header.ui-bar-s.ui-title-tabbar .ui-tabbar.ui-tabbar-noicons a.ui-btn{padding-top:.6818181818181819rem;padding-bottom:.5909090909090909rem}.ui-header.ui-bar-s.ui-title-tabbar .ui-tabbar.ui-tabbar-notext a.ui-btn{padding-top:.3181818181818182rem;padding-bottom:.2272727272727273rem}.ui-header.ui-bar-s.ui-title-tabbar-multiline .ui-tabbar a.ui-btn{padding-top:.5rem;padding-bottom:.4545454545454546rem}.ui-header.ui-bar-s.ui-title-tabbar-multiline .ui-tabbar a.ui-btn .ui-btn-inner{height:2.4545454545454546rem}.ui-header.ui-bar-s.ui-title-tabbar-multiline .ui-tabbar a.ui-btn .ui-btn-inner .ui-btn-text{padding-top:0;line-height:3.8636363636363638rem}.ui-header.ui-bar-s.ui-title-tabbar-multiline .ui-tabbar a.ui-btn .ui-btn-inner .ui-icon{top:0}.ui-header.ui-bar-s li:first-child .ui-btn-inner{border-left-width:0}.ui-footer.ui-bar-s .ui-tabbar{height:2.2272727272727275rem;margin-left:auto;margin-right:auto}.ui-footer.ui-bar-s .ui-tabbar a.ui-btn{padding-top:.7272727272727273rem;padding-bottom:.7272727272727273rem}.ui-footer.ui-bar-s .ui-tabbar .ui-btn-inner .ui-icon{top:0}.ui-footer.ui-bar-s .ui-tabbar.ui-tabbar-notext a.ui-btn{padding-top:.36363636363636365rem;padding-bottom:.3181818181818182rem}.ui-footer.ui-bar-s .ui-tabbar li:first-child .ui-btn-inner{border-left-width:0}.ui-footer.ui-bar-s .ui-tabbar.ui-tabbar-margin-back{margin-right:2.5454545454545454rem}.ui-footer.ui-bar-s .ui-tabbar.ui-tabbar-margin-more{margin-left:2.5454545454545454rem}.ui-footer.ui-bar-s .ui-btn-back~.ui-tabbar li:last-child .ui-btn-inner{border-right:1px solid;border-right-color:#b2b1ae}.ui-footer.ui-bar-s [data-icon="naviframe-more"]~.ui-tabbar li:first-child .ui-btn-inner{border-left:1px solid;border-left-color:#b2b1ae}.ui-tabbar-s.ui-navbar-noicons{font-size:1rem}.ui-tabbar .tabbar-scroll-ul{margin-top:0;margin-bottom:0;padding-left:0}.ui-tabbar .tabbar-scroll-ul .tabbar-scroll-li{position:relative;display:inline-block;margin-left:-.36363636363636365rem}.ui-tabbar .tabbar-scroll-ul .tabbar-scroll-li a{width:100%}.ui-tabbar .tabbar-scroll-ul li.tabbar-scroll-li:first-child{margin-left:0}.ui-tabbar-divider{position:absolute;top:0;width:.4545454545454546rem;height:2.5rem;background:-webkit-linear-gradient(left, #00009b 0, #f6f8ef 100%)}.ui-tabbar-divider-left{left:0;border-top-right-radius:.4545454545454546rem;border-bottom-right-radius:.4545454545454546rem;background:-webkit-linear-gradient(left, #999 0, #f6f8ef 100%)}.ui-tabbar-divider-right{right:0;border-top-left-radius:.4545454545454546rem;border-bottom-left-radius:.4545454545454546rem;background:-webkit-linear-gradient(right, #999 0, #f6f8ef 100%)}.ui-splitview{margin:0;padding:0;position:relative}.ui-splitview .ui-pane{position:absolute;overflow:hidden;border:0;margin:0;padding:0}.ui-splitview .ui-pane .ui-listview{margin:0;padding:0}.ui-splitview .ui-spliter{position:absolute;z-index:100;display:block;margin:0;padding:0}.ui-splitview .ui-spliter-bar{background-color:#b3b3b3;border-color:#000;border-style:solid}.ui-splitview .ui-spliter-handle{margin:0;padding:0;cursor:move;display:block;text-align:center;cursor:pointer;position:relative;background-position:center center;background-repeat:no-repeat;background-size:100% 100%}.ui-direction-horizontal>.ui-spliter{width:60px}.ui-direction-vertical>.ui-spliter{height:60px}.ui-direction-horizontal>.ui-spliter>.ui-spliter-bar{width:13px;margin:0 0 0 25px;border-width:1px 1px 1px 0}.ui-direction-vertical>.ui-spliter>.ui-spliter-bar{height:13px;margin:25px 0 0 0;border-width:0 1px 1px 1px}.ui-spliter-active>.ui-spliter-bar{background-color:#5787c2}.ui-direction-horizontal>.ui-spliter>.ui-spliter-bar>.ui-spliter-handle{width:13px;height:26px;background-image:url(./images/00_splite_handler_v.png)}.ui-direction-vertical>.ui-spliter>.ui-spliter-bar>.ui-spliter-handle{width:26px;height:13px;background-image:url(./images/00_splite_handler_h.png)}.ui-direction-horizontal>.ui-fixed{width:0}.ui-direction-horizontal>.ui-fixed>.ui-spliter-bar{width:5px}.ui-direction-vertical>.ui-fixed{height:0}.ui-direction-vertical>.ui-fixed>.ui-spliter-bar{height:5px}.ui-fixed .ui-spliter-handle{display:none}
\ No newline at end of file
+.ui-bar-s{border:0;background:#f8f6ef;color:#3b73b6;font-family:Helvetica,Arial,sans-serif;font-weight:700;font-size:1.2727272727272727rem}.ui-bar-s .ui-link-inherit{color:#3b73b6}.ui-bar-s>.ui-btn.ui-btn-back,.ui-bar-s>.ui-btn.ui-btn-footer-down{background:transparent;position:absolute;right:0}.ui-bar-s>.ui-btn.ui-btn-back .ui-icon-header-back-btn,.ui-bar-s>.ui-btn.ui-btn-footer-down .ui-icon-header-back-btn{top:.36363636363636365rem;left:auto;right:.5909090909090909rem;margin-top:0}.ui-bar-s>.ui-btn.ui-btn-footer-down{border:0;box-shadow:none}.ui-bar-s>.ui-btn.ui-btn-footer-down .ui-icon{top:.36363636363636365rem;margin-top:0}.ui-header.ui-bar-s{position:fixed;top:0;min-height:2.5rem}.ui-header.ui-bar-s .ui-title{display:inline-block;color:#3b73b6;min-height:1.2727272727272727rem;max-height:1.5454545454545454rem;font-size:1.2727272727272727rem;font-weight:500;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;outline:0!important;text-align:left;margin:.7272727272727273rem .36363636363636365rem .2272727272727273rem .36363636363636365rem}.ui-header.ui-bar-s>.ui-btn .ui-btn-inner.ui-btn-icon-only,.ui-header.ui-bar-s>.naviframe-button.ui-btn .ui-btn-inner.ui-btn-icon-only{-o-box-sizing:border-box;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%}.ui-header.ui-bar-s>.ui-btn .ui-btn-inner.ui-btn-icon-only .ui-icon,.ui-header.ui-bar-s>.naviframe-button.ui-btn .ui-btn-inner.ui-btn-icon-only .ui-icon{top:0}.ui-header.ui-bar-s>.naviframe-button.ui-btn .ui-btn-inner .ui-icon{margin-top:0}.ui-header.ui-bar-s>.ui-btn:not(.ui-btn-icon-notext) .ui-btn-inner.ui-btn-icon-only,.ui-header.ui-bar-s>.naviframe-button.ui-btn:not(.ui-btn-icon-notext) .ui-btn-inner.ui-btn-icon-only{padding-left:0}.ui-header.ui-bar-s>.ui-btn:not(.ui-btn-icon_only),.ui-header.ui-bar-s>.naviframe-button.ui-btn:not(.ui-btn-icon_only){width:2.409090909090909rem;height:.8181818181818182rem;top:auto;bottom:.4545454545454546rem}.ui-header.ui-bar-s>.ui-btn:not(.ui-btn-icon_only) .ui-btn-inner,.ui-header.ui-bar-s>.naviframe-button.ui-btn:not(.ui-btn-icon_only) .ui-btn-inner{padding:0}.ui-header.ui-bar-s>.ui-btn.ui-btn-back,.ui-header.ui-bar-s>.ui-btn.ui-btn-footer-down{right:.5909090909090909rem}.ui-header.ui-bar-s>.ui-btn.ui-btn-back .ui-icon-header-back-btn,.ui-header.ui-bar-s>.ui-btn.ui-btn-footer-down .ui-icon-header-back-btn{left:0}.ui-header.ui-bar-s img{position:absolute;display:inline-block;height:.7272727272727273rem;width:.7272727272727273rem;margin-left:.36363636363636365rem;margin-top:1.0909090909090908rem}.ui-header.ui-bar-s .ui-title-text-sub{position:absolute;top:1.6363636363636365rem;left:.36363636363636365rem;font-size:.5454545454545454rem}.ui-header.ui-bar-s .ui-title-text-sub img{height:.7272727272727273rem;width:.7272727272727273rem;margin-left:.36363636363636365rem}.ui-header.ui-bar-s>.ui-btn,.ui-header.ui-bar-s>.naviframe-button.ui-btn{position:absolute;top:.7272727272727273rem;margin-top:0;height:1.5454545454545454rem;width:1.5454545454545454rem;background:transparent;color:#3a3a3a}.ui-header.ui-bar-s.ui-title-tabbar>.ui-btn{top:.36363636363636365rem}.ui-header.ui-bar-s>.ui-btn.ui-btn-icon_only,.ui-header.ui-bar-s>.naviframe-button.ui-btn.ui-btn-icon_only{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-header.ui-bar-s .ui-btn-right-0{right:.5rem}.ui-header.ui-bar-s .ui-btn-right-1{right:2.5454545454545454rem}.ui-header.ui-bar-s>.ui-btn:not(.ui-btn-icon_only):nth-child(2),.ui-header.ui-bar-s>.naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(2){right:.3181818181818182rem}.ui-header.ui-bar-s>.ui-btn:not(.ui-btn-icon_only):nth-child(3),.ui-header.ui-bar-s>.naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(3){right:2.8181818181818183rem}.ui-header.ui-bar-s>img+h1{padding-left:1.0909090909090908rem}.ui-header.ui-bar-s>img+h1+.ui-btn:not(.ui-btn-icon_only):nth-child(3),.ui-header.ui-bar-s>img+h1+.naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(3){right:.3181818181818182rem}.ui-header.ui-bar-s>img+h1+.ui-btn:not(.ui-btn-icon_only):nth-child(3)+.ui-btn:not(.ui-btn-icon_only),.ui-header.ui-bar-s>img+h1+.naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(3)+.naviframe-button.ui-btn:not(.ui-btn-icon_only){right:2.8181818181818183rem}.ui-header.ui-bar-s>img+h1+span.ui-title-text-sub+.ui-btn:not(.ui-btn-icon_only):nth-child(4),.ui-header.ui-bar-s>img+h1+span.ui-title-text-sub+.naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(4){right:.3181818181818182rem}.ui-header.ui-bar-s>img+h1+span.ui-title-text-sub+.ui-btn:not(.ui-btn-icon_only):nth-child(4)+.ui-btn:not(.ui-btn-icon_only),.ui-header.ui-bar-s>img+h1+span.ui-title-text-sub+.naviframe-button.ui-btn:not(.ui-btn-icon_only):nth-child(4)+.naviframe-button.ui-btn:not(.ui-btn-icon_only){right:2.8181818181818183rem}.ui-header.ui-bar-s>.ui-btn.ui-btn-down-s{background:rgba(64,147,247,.1);color:#3b73b6}.ui-header.ui-bar-s.ui-title-multiline img{margin-top:.6363636363636364rem}.ui-header.ui-bar-s.ui-title-multiline .ui-title{min-height:1.0909090909090908rem;max-height:1.0909090909090908rem;font-size:1rem;margin:.4090909090909091rem .36363636363636365rem 1rem .36363636363636365rem}.ui-footer.ui-bar-s{height:2.2272727272727275rem;text-align:center;bottom:0}.ui-footer.ui-bar-s>.ui-btn.ui-btn-back,.ui-footer.ui-bar-s>.ui-btn.ui-btn-footer-down,.ui-footer.ui-bar-s>[data-icon="naviframe-more"]{background:transparent}.ui-footer.ui-bar-s>.ui-btn.ui-btn-back>.ui-btn-icon-only,.ui-footer.ui-bar-s>.ui-btn.ui-btn-footer-down>.ui-btn-icon-only,.ui-footer.ui-bar-s>[data-icon="naviframe-more"]>.ui-btn-icon-only{width:2.5454545454545454rem;height:2.2272727272727275rem;padding:0;-webkit-box-shadow:none}.ui-footer.ui-bar-s>.ui-btn.ui-btn-back,.ui-footer.ui-bar-s>.ui-btn.ui-btn-footer-down{top:0}.ui-footer.ui-bar-s>.ui-btn.ui-btn-footer-down .ui-icon{left:auto;right:.5909090909090909rem}.ui-footer.ui-bar-s [data-icon="naviframe-more"]{position:absolute;left:0rem;top:0rem;box-shadow:none;border-width:0}.ui-footer.ui-bar-s [data-icon="naviframe-more"] .ui-icon-naviframe-more{left:.5909090909090909rem;top:.36363636363636365rem;margin-top:0}.ui-footer.ui-bar-s [data-icon="naviframe-more"] .ui-btn-inner{border:0;background:transparent;box-shadow:none}.ui-footer.ui-bar-s>[data-role="button"]{font-size:.6818181818181819rem;font-weight:700;color:#999}.ui-footer.ui-bar-s [data-role="controlgroup"]{margin-left:auto;margin-right:auto;margin-top:.2727272727272727rem;margin-bottom:.2727272727272727rem;padding-left:2.6363636363636362rem;padding-right:2.6363636363636362rem}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"]{background:transparent;border-style:solid;border-color:#b2b1ae;border-top-width:0;border-bottom-width:0;border-left-width:1px;border-right-width:1px;-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;box-shadow:none;padding:0;margin-left:-.18181818181818182rem;margin-right:-.2272727272727273rem}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-btn-hover-s{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-btn-down-s,.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"] .ui-btn-active-s{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-btn-down-s .ui-btn-inner,.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"] .ui-btn-active-s .ui-btn-inner{background:#f8f6ef}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-btn-down-s .ui-btn-inner .ui-btn-text,.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"] .ui-btn-active-s .ui-btn-inner .ui-btn-text{color:#3b73b6}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"]>.ui-btn-inner{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border:0 solid;box-shadow:none}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"] .ui-btn-text{font-size:.7727272727272727rem;color:#3a3a3a}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-corner-right{border-right-width:0}.ui-footer.ui-bar-s [data-role="controlgroup"] [data-role="button"].ui-corner-left{border-left-width:0}.ui-footer.ui-bar-s>[data-role="button"]:not([data-icon="naviframe-more"]){top:.2727272727272727rem}.ui-footer.ui-bar-s>p{margin-top:.36363636363636365rem;margin-bottom:.36363636363636365rem}.ui-footer.ui-bar-s>h1,.ui-footer.ui-bar-s h2,.ui-footer.ui-bar-s h3,.ui-footer.ui-bar-s h4,.ui-footer.ui-bar-s h5,.ui-footer.ui-bar-s h6{display:inline-block}.ui-content{position:relative;top:0}.ui-body-s{border:1px solid #2a2a2a;background:#f8f6ef;color:#000;font-weight:400;font-family:Helvetica,Arial,sans-serif}.ui-body-s .ui-link-inherit{color:#fff}.ui-body-s .ui-link{color:#2489CE;font-weight:700}.ui-body-s .ui-link:hover{color:#2489CE}.ui-body-s .ui-link:active{color:#2489CE}.ui-body-s .ui-link:visited{color:#2489CE}.ui-btn-box-s{padding:.045454545454545456rem}.ui-btn-box-s.ui-btn-up-s{color:#3a3a3a;background:#ebe8e3;background:-webkit-linear-gradient(top, #ebe8e3, #eae7e2);background:-moz-linear-gradient(top, #ebe8e3, #eae7e2);background:-o-linear-gradient(top, #ebe8e3, #eae7e2);background:-ms-linear-gradient(top, #ebe8e3, #eae7e2);border:1px solid;border-color:#dcdad3;-o-box-shadow:0 0 1px 1px #fff;-ms-box-shadow:0 0 1px 1px #fff;-moz-box-shadow:0 0 1px 1px #fff;-webkit-box-shadow:0 0 1px 1px #fff;box-shadow:0 0 1px 1px #fff;-o-border-radius:.3rem;-ms-border-radius:.3rem;-moz-border-radius:.3rem;-webkit-border-radius:.3rem;border-radius:.3rem;font-family:Helvetica,Arial,sans-serif;font-weight:400;font-size:1.0rem;font-style:normal;color:#000}.ui-btn.ui-btn-corner-all .ui-btn-box-s.ui-btn-up-s{-o-border-radius:1.2rem;-ms-border-radius:1.2rem;-moz-border-radius:1.2rem;-webkit-border-radius:1.2rem;border-radius:1.2rem}.ui-btn-box-s .ui-btn-inner{border:1px solid;border-color:#c7c5be;-o-border-radius:.3rem;-ms-border-radius:.3rem;-moz-border-radius:.3rem;-webkit-border-radius:.3rem;border-radius:.3rem;-o-box-sizing:border-box;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;background:#f7f5ee;background:-webkit-linear-gradient(top, #faf7f2, #f8f5f0);background:-ms-linear-gradient(top, #faf7f2, #f8f5f0);background:-o-linear-gradient(top, #faf7f2, #f8f5f0);background:-moz-linear-gradient(top, #faf7f2, #f8f5f0);-o-box-shadow:none;-ms-box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;height:100%}.ui-btn.ui-btn-corner-all.ui-btn-box-s .ui-btn-inner{-o-border-radius:1.2rem;-ms-border-radius:1.2rem;-moz-border-radius:1.2rem;-webkit-border-radius:1.2rem;border-radius:1.2rem}.ui-ctxpopup .ui-btn-box-s.ui-btn-up-s,.ui-ctxpopup .ui-btn-box-s.ui-btn-hover-s{background:transparent!important;border:0;box-shadow:none;padding:0;color:#fff!important}.ui-ctxpopup .ui-btn-box-s.ui-btn-down-s{background:#3b73b6!important;border:0;box-shadow:none;padding:0;color:#fff!important;-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-ctxpopup .ui-btn-box-s .ui-btn-inner{background:transparent ! important;box-shadow:none;border:0}.ui-ctxpopup .ui-btn-down-s{background:#3b73b6!important}.ui-header .ui-btn-box-s,.ui-footer .ui-btn-box-s,.ui-btn-back.ui-btn-up-s,.ui-btn-back.ui-btn-hover-s,.ui-btn-back.ui-btn-down-s,.ui-btn-footer-down.ui-btn-up-s,.ui-btn-footer-down.ui-btn-hover-s,.ui-btn-footer-down.ui-btn-down-s,.ui-popup-container .ui-btn-box-s{font-weight:400;-o-border-radius:.9 rem;-ms-border-radius:.9 rem;-moz-border-radius:.9 rem;-webkit-border-radius:.9 rem;border-radius:.9 rem}.ui-btn-box-s.ui-btn-hover-s{color:#3a3a3a;font-family:Helvetica,Arial,sans-serif;font-weight:400;font-size:1.0rem;font-style:normal;color:#000;-o-border-radius:.3em ! important;-ms-border-radius:.3em ! important;-moz-border-radius:.3em ! important;-webkit-border-radius:.3em ! important;border-radius:.3em ! important}.ui-btn-box-s.ui-btn-hover-s.ui-btn-corner-circle{-o-border-radius:1em ! important;-ms-border-radius:1em ! important;-moz-border-radius:1em ! important;-webkit-border-radius:1em ! important;border-radius:1em ! important}.ui-btn-box-s.ui-btn-hover-s.ui-btn-corner-all{-o-border-radius:1.2em ! important;-ms-border-radius:1.2em ! important;-moz-border-radius:1.2em ! important;-webkit-border-radius:1.2em ! important;border-radius:1.2em ! important}.ui-btn-box-s.ui-btn-hover-s.ui-btn-round{-o-border-radius:1.2em ! important;-ms-border-radius:1.2em ! important;-moz-border-radius:1.2em ! important;-webkit-border-radius:1.2em ! important;border-radius:1.2em ! important}.ui-btn-box-s.ui-btn-down-s .ui-btn-inner{background:#3b73b6;color:#f8f6ef}.ui-btn-up-s,.ui-btn-hover-s,.ui-btn-down-s{font-family:Helvetica,Arial,sans-serif;text-decoration:none}a.ui-link-inherit{text-decoration:none!important}.ui-btn-active{color:#3a3a3a;cursor:pointer;text-decoration:none;background:#3b73b6;outline:0}.ui-btn-active a.ui-link-inherit{color:#3a3a3a}.ui-corner-tl{-moz-border-radius-topleft:.3em;-webkit-border-top-left-radius:.3em;border-top-left-radius:.3em}.ui-corner-tr{-moz-border-radius-topright:.3em;-webkit-border-top-right-radius:.3em;border-top-right-radius:.3em}.ui-corner-bl{-moz-border-radius-bottomleft:.3em;-webkit-border-bottom-left-radius:.3em;border-bottom-left-radius:.3em}.ui-corner-br{-moz-border-radius-bottomright:.3em;-webkit-border-bottom-right-radius:.3em;border-bottom-right-radius:.3em}.ui-corner-top{-moz-border-radius-topleft:.3em;-webkit-border-top-left-radius:.3em;border-top-left-radius:.3em;-moz-border-radius-topright:.3em;-webkit-border-top-right-radius:.3em;border-top-right-radius:.3em}.ui-corner-bottom{-moz-border-radius-bottomleft:.3em;-webkit-border-bottom-left-radius:.3em;border-bottom-left-radius:.3em;-moz-border-radius-bottomright:.3em;-webkit-border-bottom-right-radius:.3em;border-bottom-right-radius:.3em}.ui-corner-right{-moz-border-radius-topright:.3em;-webkit-border-top-right-radius:.3em;border-top-right-radius:.3em;-moz-border-radius-bottomright:.3em;-webkit-border-bottom-right-radius:.3em;border-bottom-right-radius:.3em}.ui-corner-left{-moz-border-radius-topleft:.3em;-webkit-border-top-left-radius:.3em;border-top-left-radius:.3em;-moz-border-radius-bottomleft:.3em;-webkit-border-bottom-left-radius:.3em;border-bottom-left-radius:.3em}.ui-corner-none{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-header .ui-btn .ui-btn-icon-only .ui-icon,.ui-footer .ui-btn .ui-btn-icon-only .ui-icon{width:1.4545454545454546rem;height:1.4545454545454546rem}.ui-btn-back .ui-btn-inner .ui-icon-header-back-btn,.ui-btn-footer-down .ui-btn-inner .ui-icon{width:1.4545454545454546rem;height:1.4545454545454546rem;background-repeat:no-repeat;background-size:100% 100%}.ui-btn-up-s{}.ui-btn-up-s .ui-icon-header-back-btn{background-image:url(images/page/00_icon_Back.png)}.ui-btn-up-s .ui-icon-naviframe-more{background-image:url(images/page/00_icon_more.png)}.ui-btn-up-s .ui-icon-naviframe-cancel{background-image:url(images/00_icon_cancel.png)}.ui-btn-up-s .ui-icon-naviframe-edit{background-image:url(images/page/00_icon_edit.png)}.ui-btn-up-s .ui-icon-naviframe-plus{background-image:url(images/page/00_icon_plus.png)}.ui-btn-up-s .ui-icon-down{background-image:url(images/controls/button/00_icon_SIP_close_web_web.png)}.ui-btn-hover-s .ui-icon-header-back-btn{background-image:url(images/page/00_icon_Back.png)}.ui-btn-hover-s .ui-icon-naviframe-more{background-image:url(images/page/00_icon_more.png)}.ui-btn-hover-s .ui-icon-naviframe-cancel{background-image:url(images/00_icon_cancel.png)}.ui-btn-hover-s .ui-icon-naviframe-edit{background-image:url(images/page/00_icon_edit.png)}.ui-btn-hover-s .ui-icon-naviframe-plus{background-image:url(images/page/00_icon_plus.png)}.ui-btn-hover-s .ui-icon-down{background-image:url(images/controls/button/00_icon_SIP_close_web_web.png)}.ui-btn-down-s .ui-icon-header-back-btn{background-image:url(images/page/00_icon_Back_press.png)}.ui-btn-down-s .ui-icon-naviframe-more{background-image:url(images/page/00_icon_more_press.png)}.ui-btn-down-s .ui-icon-naviframe-cancel{background-image:url(images/00_icon_cancel_press.png)}.ui-btn-down-s .ui-icon-naviframe-edit{background-image:url(images/page/00_icon_edit_press.png)}.ui-btn-down-s .ui-icon-naviframe-plus{background-image:url(images/page/00_icon_plus_press.png)}.ui-btn-down-s .ui-icon-down{background-image:url(images/controls/button/00_icon_SIP_close_press_web.png)}.ui-disabled{filter:alpha(opacity=30);opacity:.3;zoom:1}.ui-disabled,.ui-disabled a{cursor:default!important;pointer-events:none}.ui-mobile,.ui-mobile body{height:100%;font-size:22px}@media all and (max-width: 359px){.ui-mobile,.ui-mobile body{ font-size:19px}}.ui-mobile fieldset,.ui-page{padding:0;margin:0}.ui-mobile a img,.ui-mobile fieldset{border:0}.ui-mobile-viewport{margin:0;overflow-x:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ui-mobile [data-role=page],.ui-mobile [data-role=dialog],.ui-page{top:0;left:0;width:100%;position:absolute;display:none;border:0}.ui-mobile .ui-page-active{display:block;overflow:visible}.ui-page{outline:0}.ui-mobile,.ui-mobile .ui-page{background:#f8f6ef;color:#000}.ui-page.ui-mobile-touch-overflow,.ui-mobile-touch-overflow.ui-native-fixed .ui-content{overflow:auto;height:100%;-webkit-overflow-scrolling:touch;-moz-overflow-scrolling:touch;-o-overflow-scrolling:touch;-ms-overflow-scrolling:touch;overflow-scrolling:touch}.ui-page.ui-mobile-touch-overflow,.ui-page.ui-mobile-touch-overflow *{transform:rotateY(0);-ms-transform:rotateY(0);-moz-transform:rotateY(0);-webkit-transform:rotateY(0);-o-transform:rotateY(0)}.ui-page.ui-mobile-pre-transition{display:block}.ui-loading .ui-mobile-viewport{overflow:hidden!important}.ui-loading .ui-loader{display:block}.ui-loading .ui-page{overflow:hidden}.ui-loader{display:none;position:absolute;opacity:.85;z-index:100;left:50%;width:200px;margin-left:-130px;margin-top:-35px;padding:10px 30px}.ui-loader h1{font-size:1.4545454545454546rem;text-align:center}.ui-loader .ui-icon{position:static;display:block;opacity:.9;margin:0 auto;width:35px;height:35px;background-color:transparent}.ui-blocker{width:100%;height:100%;z-index:2147483647}.ui-mobile-rendering>*{visibility:hidden}.ui-bar,.ui-body{position:relative;padding:.4em 15px;overflow:hidden;display:block;clear:both}.ui-bar{font-size:16px;margin:0}.ui-bar h1,.ui-bar h2,.ui-bar h3,.ui-bar h4,.ui-bar h5,.ui-bar h6{margin:0;padding:0;font-size:16px;display:inline-block}.ui-header,.ui-footer{display:block}.ui-page .ui-header,.ui-page .ui-footer{position:fixed;z-index:1000}.ui-header .ui-btn-left{top:.4em;float:left}.ui-header .ui-btn-right{float:right;top:.4em}.ui-header .ui-title,.ui-footer .ui-title{min-height:1.1em;text-align:center;font-size:16px;display:block;margin:.6em 90px .8em;padding:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;outline:0!important}.ui-content{border-width:0;overflow:visible;overflow-x:hidden;padding:15px}.ui-page-fullscreen .ui-content{padding:0}.ui-mobile-touch-overflow.ui-page.ui-native-fixed,.ui-mobile-touch-overflow.ui-page.ui-native-fullscreen{overflow:visible}.ui-mobile-touch-overflow.ui-native-fixed .ui-header,.ui-mobile-touch-overflow.ui-native-fixed .ui-footer{position:fixed;left:0;right:0;top:0;z-index:200}.ui-mobile-touch-overflow.ui-page.ui-native-fixed .ui-footer{top:auto;bottom:0}.ui-mobile-touch-overflow.ui-native-fixed .ui-content{padding-top:2.5em;padding-bottom:3em;top:0;bottom:0;height:auto;position:absolute}.ui-mobile-touch-overflow.ui-native-fullscreen .ui-content{padding-top:0;padding-bottom:0}.ui-mobile-touch-overflow.ui-native-fullscreen .ui-header,.ui-mobile-touch-overflow.ui-native-fullscreen .ui-footer{opacity:.9}.ui-native-bars-hidden{display:none}.ui-icon{width:18px;height:18px}.ui-fullscreen img{max-width:100%}.ui-nojs{position:absolute;left:-9999px}.ui-mobile-viewport-transitioning,.ui-mobile-viewport-transitioning .ui-page{width:100%;height:100%;overflow:hidden}.in{-ms-animation-timing-function:ease-out;-ms-animation-duration:350ms;-o-animation-timing-function:ease-out;-o-animation-duration:350ms;-webkit-animation-timing-function:ease-out;-webkit-animation-duration:350ms;-moz-animation-timing-function:ease-out;-moz-animation-duration:350ms}.out{-ms-animation-timing-function:ease-in;-ms-animation-duration:225ms;-o-animation-timing-function:ease-in;-o-animation-duration:225;-webkit-animation-timing-function:ease-in;-webkit-animation-duration:225ms;-moz-animation-timing-function:ease-in;-moz-animation-duration:225}@-webkit-keyframes fadein{from{ opacity:0}to{opacity:1}}@-moz-keyframes fadein{from{ opacity:0}to{opacity:1}}@-webkit-keyframes fadeout{from{ opacity:1}to{opacity:0}}@-moz-keyframes fadeout{from{ opacity:1}to{opacity:0}}.fade.out{opacity:0;-ms-animation-duration:125ms;-ms-animation-name:fadeout;-o-animation-duration:125ms;-o-animation-name:fadeout;-webkit-animation-duration:125ms;-webkit-animation-name:fadeout;-moz-animation-duration:125ms;-moz-animation-name:fadeout}.fade.in{opacity:1;-ms-animation-duration:225ms;-ms-animation-name:fadein;-o-animation-duration:225ms;-o-animation-name:fadein;-webkit-animation-duration:225ms;-webkit-animation-name:fadein;-moz-animation-duration:225ms;-moz-animation-name:fadein}.viewport-flip{-ms-perspective:1000;-o-perspective:1000;-webkit-perspective:1000;-moz-perspective:1000;position:absolute}.flip{-webkit-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-backface-visibility:hidden;-moz-transform:translate3d(0,0,0)}.flip.out{-webkit-transform:rotateY(-90deg) scale(.9);-webkit-animation-name:flipouttoleft;-webkit-animation-duration:175ms;-moz-transform:rotateY(-90deg) scale(.9);-moz-animation-name:flipouttoleft;-moz-animation-duration:175ms}.flip.in{-webkit-animation-name:flipintoright;-webkit-animation-duration:225ms;-moz-animation-name:flipintoright;-moz-animation-duration:225ms}.flip.out.reverse{-webkit-transform:rotateY(90deg) scale(.9);-webkit-animation-name:flipouttoright;-moz-transform:rotateY(90deg) scale(.9);-moz-animation-name:flipouttoright}.flip.in.reverse{-webkit-animation-name:flipintoleft;-moz-animation-name:flipintoleft}@-webkit-keyframes flipouttoleft{from{ -webkit-transform:rotateY(0)}to{-webkit-transform:rotateY(-90deg) scale(.9)}}@-moz-keyframes flipouttoleft{from{ -moz-transform:rotateY(0)}to{-moz-transform:rotateY(-90deg) scale(.9)}}@-webkit-keyframes flipouttoright{from{ -webkit-transform:rotateY(0)}to{-webkit-transform:rotateY(90deg) scale(.9)}}@-moz-keyframes flipouttoright{from{ -moz-transform:rotateY(0)}to{-moz-transform:rotateY(90deg) scale(.9)}}@-webkit-keyframes flipintoleft{from{ -webkit-transform:rotateY(-90deg) scale(.9)}to{-webkit-transform:rotateY(0)}}@-moz-keyframes flipintoleft{from{ -moz-transform:rotateY(-90deg) scale(.9)}to{-moz-transform:rotateY(0)}}@-webkit-keyframes flipintoright{from{ -webkit-transform:rotateY(90deg) scale(.9)}to{-webkit-transform:rotateY(0)}}@-moz-keyframes flipintoright{from{ -moz-transform:rotateY(90deg) scale(.9)}to{-moz-transform:rotateY(0)}}.flow{-webkit-transform-origin:50% 30%;-moz-transform-origin:50% 30%;-webkit-box-shadow:0 0 20px rgba(0,0,0,.4);-moz-box-shadow:0 0 20px rgba(0,0,0,.4)}.ui-dialog.flow{-webkit-transform-origin:none;-moz-transform-origin:none;-webkit-box-shadow:none;-moz-box-shadow:none}.flow.out{-webkit-transform:translate3d(-100%,0,0) scale(.7);-webkit-animation-name:flowouttoleft;-webkit-animation-timing-function:ease;-webkit-animation-duration:350ms;-moz-transform:translate3d(-100%,0,0) scale(.7);-moz-animation-name:flowouttoleft;-moz-animation-timing-function:ease;-moz-animation-duration:350ms}.flow.in{-webkit-transform:translate3d(0,0,0) scale(1);-webkit-animation-name:flowinfromright;-webkit-animation-timing-function:ease;-webkit-animation-duration:350ms;-moz-transform:translate3d(0,0,0) scale(1);-moz-animation-name:flowinfromright;-moz-animation-timing-function:ease;-moz-animation-duration:350ms}.flow.out.reverse{-webkit-transform:translate3d(100%,0,0);-webkit-animation-name:flowouttoright;-moz-transform:translate3d(100%,0,0);-moz-animation-name:flowouttoright}.flow.in.reverse{-webkit-animation-name:flowinfromleft;-moz-animation-name:flowinfromleft}@-webkit-keyframes flowouttoleft{0%{ -webkit-transform:translate3d(0,0,0) scale(1)}60%,70%{-webkit-transform:translate3d(0,0,0) scale(.7)}100%{-webkit-transform:translate3d(-100%,0,0) scale(.7)}}@-moz-keyframes flowouttoleft{0%{ -moz-transform:translate3d(0,0,0) scale(1)}60%,70%{-moz-transform:translate3d(0,0,0) scale(.7)}100%{-moz-transform:translateX(-100%) scale(.7)}}@-webkit-keyframes flowouttoright{0%{ -webkit-transform:translate3d(0,0,0) scale(1)}60%,70%{-webkit-transform:translate3d(0,0,0) scale(.7)}100%{-webkit-transform:translate3d(100%,0,0) scale(.7)}}@-moz-keyframes flowouttoright{0%{ -moz-transform:translate3d(0,0,0) scale(1)}60%,70%{-moz-transform:translate3d(0,0,0) scale(.7)}100%{-moz-transform:translate3d(100%,0,0) scale(.7)}}@-webkit-keyframes flowinfromleft{0%{ -webkit-transform:translate3d(-100%,0,0) scale(.7)}30%,40%{-webkit-transform:translate3d(0,0,0) scale(.7)}100%{-webkit-transform:translate3d(0,0,0) scale(1)}}@-moz-keyframes flowinfromleft{0%{ -moz-transform:translate3d(-100%,0,0) scale(.7)}30%,40%{-moz-transform:translate3d(0,0,0) scale(.7)}100%{-moz-transform:translate3d(0,0,0) scale(1)}}@-webkit-keyframes flowinfromright{0%{ -webkit-transform:translate3d(100%,0,0) scale(.7)}30%,40%{-webkit-transform:translate3d(0,0,0) scale(.7)}100%{-webkit-transform:translate3d(0,0,0) scale(1)}}@-moz-keyframes flowinfromright{0%{ -moz-transform:translate3d(100%,0,0) scale(.7)}30%,40%{-moz-transform:translate3d(0,0,0) scale(.7)}100%{-moz-transform:translate3d(0,0,0) scale(1)}}.pop{-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%}.pop.in{-webkit-transform:scale(1);-moz-transform:scale(1);opacity:1;-webkit-animation-name:popin;-moz-animation-name:popin;-webkit-animation-duration:350ms;-moz-animation-duration:350ms}.pop.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;opacity:0;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.pop.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein}.pop.out.reverse{-webkit-transform:scale(.8);-moz-transform:scale(.8);-webkit-animation-name:popout;-moz-animation-name:popout}@-webkit-keyframes popin{from{ -webkit-transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);opacity:1}}@-moz-keyframes popin{from{ -moz-transform:scale(.8);opacity:0}to{-moz-transform:scale(1);opacity:1}}@-webkit-keyframes popout{from{ -webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(.8);opacity:0}}@-moz-keyframes popout{from{ -moz-transform:scale(1);opacity:1}to{-moz-transform:scale(.8);opacity:0}}@-webkit-keyframes slideinfromright{from{ -webkit-transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideinfromright{from{ -moz-transform:translate3d(100%,0,0)}to{-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slideinfromleft{from{ -webkit-transform:translate3d(-100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideinfromleft{from{ -moz-transform:translate3d(-100%,0,0)}to{-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slideouttoleft{from{ -webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-100%,0,0)}}@-moz-keyframes slideouttoleft{from{ -moz-transform:translate3d(0,0,0)}to{-moz-transform:translate3d(-100%,0,0)}}@-webkit-keyframes slideouttoright{from{ -webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(100%,0,0)}}@-moz-keyframes slideouttoright{from{ -moz-transform:translate3d(0,0,0)}to{-moz-transform:translate3d(100%,0,0)}}.slide.out,.slide.in{-webkit-animation-timing-function:ease-out;-webkit-animation-duration:350ms;-moz-animation-timing-function:ease-out;-moz-animation-duration:350ms}.slide.out{-webkit-transform:translate3d(-100%,0,0);-webkit-animation-name:slideouttoleft;-moz-transform:translate3d(-100%,0,0);-moz-animation-name:slideouttoleft}.slide.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slideinfromright;-moz-transform:translate3d(0,0,0);-moz-animation-name:slideinfromright}.slide.out.reverse{-webkit-transform:translate3d(100%,0,0);-webkit-animation-name:slideouttoright;-moz-transform:translate3d(100%,0,0);-moz-animation-name:slideouttoright}.slide.in.reverse{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slideinfromleft;-moz-transform:translate3d(0,0,0);-moz-animation-name:slideinfromleft}.slidedown.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.slidedown.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slideinfromtop;-moz-transform:translate3d(0,0,0);-moz-animation-name:slideinfromtop;-webkit-animation-duration:250ms;-moz-animation-duration:250ms}.slidedown.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein;-webkit-animation-duration:150ms;-moz-animation-duration:150ms}.slidedown.out.reverse{-webkit-transform:translate3d(0,-100%,0);-moz-transform:translate3d(0,-100%,0);-webkit-animation-name:slideouttotop;-moz-animation-name:slideouttotop;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}@-webkit-keyframes slideinfromtop{from{ -webkit-transform:translate3d(0,-100%,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideinfromtop{from{ -moz-transform:translate3d(0,-100%,0)}to{-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slideouttotop{from{ -webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(0,-100%,0)}}@-moz-keyframes slideouttotop{from{ -moz-transform:translate3d(0,0,0)}to{-moz-transform:translate3d(0,-100%,0)}}.slideup.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.slideup.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slideinfrombottom;-moz-transform:translate3d(0,0,0);-moz-animation-name:slideinfrombottom;-webkit-animation-duration:250ms;-moz-animation-duration:250ms}.slideup.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein;-webkit-animation-duration:150ms;-moz-animation-duration:150ms}.slideup.out.reverse{-webkit-transform:translate3d(0,100%,0);-moz-transform:translate3d(0,100%,0);-webkit-animation-name:slideouttobottom;-moz-animation-name:slideouttobottom;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}@-webkit-keyframes slideinfrombottom{from{ -webkit-transform:translate3d(0,100%,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideinfrombottom{from{ -moz-transform:translate3d(0,100%,0)}to{-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slideouttobottom{from{ -webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(0,100%,0)}}@-moz-keyframes slideouttobottom{from{ -moz-transform:translate3d(0,0,0)}to{-moz-transform:translate3d(0,100%,0)}}.slideupfade.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.slideupfade.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slideupfadeinfrombottom;-moz-transform:translate3d(0,0,0);-moz-animation-name:slideupfadeinfrombottom;-webkit-animation-duration:250ms;-moz-animation-duration:250ms}.slideupfade.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein;-webkit-animation-duration:150ms;-moz-animation-duration:150ms}.slideupfade.out.reverse{-webkit-transform:translate3d(0,5%,0);-moz-transform:translate3d(0,5%,0);-webkit-animation-name:slideupfadeouttobottom;-moz-animation-name:slideupfadeouttobottom;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}@-webkit-keyframes slideupfadeinfrombottom{from{ opacity:0;-webkit-transform:translate3d(0,5%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideupfadeinfrombottom{from{ opacity:0;-moz-transform:translate3d(0,5%,0)}to{opacity:1;-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slideupfadeouttobottom{from{ opacity:1;-webkit-transform:translate3d(0,0,0)}to{opacity:0;-webkit-transform:translate3d(0,5%,0)}}@-moz-keyframes slideupfadeouttobottom{from{ opacity:1;-moz-transform:translate3d(0,0,0)}to{opacity:0;-moz-transform:translate3d(0,5%,0)}}.slidedownfade.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.slidedownfade.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:slidedownfadeinfromtop;-moz-transform:translate3d(0,0,0);-moz-animation-name:slidedownfadeinfromtop;-webkit-animation-duration:250ms;-moz-animation-duration:250ms}.slidedownfade.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein;-webkit-animation-duration:150ms;-moz-animation-duration:150ms}.slidedownfade.out.reverse{-webkit-transform:translate3d(0,-5%,0);-moz-transform:translate3d(0,-5%,0);-webkit-animation-name:slidedownfadeouttotop;-moz-animation-name:slidedownfadeouttotop;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}@-webkit-keyframes slidedownfadeinfromtop{from{ opacity:0;-webkit-transform:translate3d(0,-5%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slidedownfadeinfromtop{from{ opacity:0;-moz-transform:translate3d(0,-5%,0)}to{opacity:1;-moz-transform:translate3d(0,0,0)}}@-webkit-keyframes slidedownfadeouttotop{from{ opacity:1;-webkit-transform:translate3d(0,0,0)}to{opacity:0;-webkit-transform:translate3d(0,-5%,0)}}@-moz-keyframes slidedownfadeouttotop{from{ opacity:1;-moz-transform:translate3d(0,0,0)}to{opacity:0;-moz-transform:translate3d(0,-5%,0)}}.slidefade.out{-webkit-transform:translate3d(-100%,0,0);-webkit-animation-name:slideouttoleft;-moz-transform:translate3d(-100%,0,0);-moz-animation-name:slideouttoleft;-webkit-animation-duration:225ms;-moz-animation-duration:225ms}.slidefade.in{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:fadein;-moz-transform:translate3d(0,0,0);-moz-animation-name:fadein;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}.slidefade.out.reverse{-webkit-transform:translate3d(100%,0,0);-webkit-animation-name:slideouttoright;-moz-transform:translate3d(100%,0,0);-moz-animation-name:slideouttoright;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}.slidefade.in.reverse{-webkit-transform:translate3d(0,0,0);-webkit-animation-name:fadein;-moz-transform:translate3d(0,0,0);-moz-animation-name:fadein;-webkit-animation-duration:200ms;-moz-animation-duration:200ms}.viewport-turn{-webkit-perspective:1000;-moz-perspective:1000;position:absolute}.turn{-webkit-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-webkit-transform-origin:0;-moz-backface-visibility:hidden;-moz-transform:translate3d(0,0,0);-moz-transform-origin:0}.turn.out{-webkit-transform:rotateY(-90deg) scale(.9);-webkit-animation-name:flipouttoleft;-moz-transform:rotateY(-90deg) scale(.9);-moz-animation-name:flipouttoleft;-webkit-animation-duration:125ms;-moz-animation-duration:125ms}.turn.in{-webkit-animation-name:flipintoright;-moz-animation-name:flipintoright;-webkit-animation-duration:250ms;-moz-animation-duration:250ms}.turn.out.reverse{-webkit-transform:rotateY(90deg) scale(.9);-webkit-animation-name:flipouttoright;-moz-transform:rotateY(90deg) scale(.9);-moz-animation-name:flipouttoright}.turn.in.reverse{-webkit-animation-name:flipintoleft;-moz-animation-name:flipintoleft}@-webkit-keyframes flipouttoleft{from{ -webkit-transform:rotateY(0)}to{-webkit-transform:rotateY(-90deg) scale(.9)}}@-moz-keyframes flipouttoleft{from{ -moz-transform:rotateY(0)}to{-moz-transform:rotateY(-90deg) scale(.9)}}@-webkit-keyframes flipouttoright{from{ -webkit-transform:rotateY(0)}to{-webkit-transform:rotateY(90deg) scale(.9)}}@-moz-keyframes flipouttoright{from{ -moz-transform:rotateY(0)}to{-moz-transform:rotateY(90deg) scale(.9)}}@-webkit-keyframes flipintoleft{from{ -webkit-transform:rotateY(-90deg) scale(.9)}to{-webkit-transform:rotateY(0)}}@-moz-keyframes flipintoleft{from{ -moz-transform:rotateY(-90deg) scale(.9)}to{-moz-transform:rotateY(0)}}@-webkit-keyframes flipintoright{from{ -webkit-transform:rotateY(90deg) scale(.9)}to{-webkit-transform:rotateY(0)}}@-moz-keyframes flipintoright{from{ -moz-transform:rotateY(90deg) scale(.9)}to{-moz-transform:rotateY(0)}}.depth{-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%}.depth.out{-webkit-animation-name:depthout;-moz-animation-name:depthout;opacity:0;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;-webkit-animation-timing-function:ease;-moz-animation-timing-function:ease}.depth.in{-webkit-transform:scale(1);-moz-transform:scale(1);opacity:1;-webkit-animation-name:depthin;-moz-animation-name:depthin;-webkit-animation-duration:350ms;-moz-animation-duration:350ms;-webkit-animation-timing-function:ease;-moz-animation-timing-function:ease}.depth.in.reverse{-webkit-animation-name:depthinreverse;-moz-animation-name:depthinreverse}.depth.out.reverse{-webkit-transform:scale(.9);-moz-transform:scale(.9);-webkit-animation-name:depthoutreverse;-moz-animation-name:depthoutreverse}@-webkit-keyframes depthout{from{ -webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(1.1);opacity:0}}@-moz-keyframes depthout{from{ -moz-transform:scale(1);opacity:1}to{-moz-transform:scale(1.1);opacity:0}}@-webkit-keyframes depthin{0%{ -webkit-transform:scale(.9);opacity:0}30%{-webkit-transform:scale(.9);opacity:0}100%{-webkit-transform:scale(1);opacity:1}}@-moz-keyframes depthin{0%{ -moz-transform:scale(.9);opacity:0}30%{-moz-transform:scale(.9);opacity:0}100%{-moz-transform:scale(1);opacity:1}}@-webkit-keyframes depthinreverse{0%{ -webkit-transform:scale(1.1);opacity:0}30%{-webkit-transform:scale(1.1);opacity:0}100%{-webkit-transform:scale(1);opacity:1}}@-moz-keyframes depthinreverse{0%{ -moz-transform:scale(1.1);opacity:0}30%{-moz-transform:scale(1.1);opacity:0}100%{-moz-transform:scale(1);opacity:1}}@-webkit-keyframes depthoutreverse{from{ -webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(.9);opacity:0}}@-moz-keyframes depthoutreverse{from{ -moz-transform:scale(1);opacity:1}to{-moz-transform:scale(.9);opacity:0}}.ui-grid-a,.ui-grid-b,.ui-grid-c,.ui-grid-d{overflow:hidden}.ui-block-a,.ui-block-b,.ui-block-c,.ui-block-d,.ui-block-e{margin:0;padding:0;border:0;float:left;min-height:1px}.ui-grid-solo .ui-block-a{width:100%;float:none}.ui-grid-a .ui-block-a,.ui-grid-a .ui-block-b{width:50%}.ui-grid-a .ui-block-a{clear:left}.ui-grid-b .ui-block-a,.ui-grid-b .ui-block-b,.ui-grid-b .ui-block-c{width:33.333%}.ui-grid-b .ui-block-a{clear:left}.ui-grid-c .ui-block-a,.ui-grid-c .ui-block-b,.ui-grid-c .ui-block-c,.ui-grid-c .ui-block-d{width:25%}.ui-grid-c .ui-block-a{clear:left}.ui-grid-d .ui-block-a,.ui-grid-d .ui-block-b,.ui-grid-d .ui-block-c,.ui-grid-d .ui-block-d,.ui-grid-d .ui-block-e{width:20%}.ui-grid-d .ui-block-a{clear:left}.ui-header,.ui-footer,.ui-page-fullscreen .ui-header,.ui-page-fullscreen .ui-footer{position:absolute;overflow:hidden;width:100%;border-left-width:0;border-right-width:0}.ui-header-fixed,.ui-footer-fixed{z-index:1000;-webkit-transform:translateZ(0)}.ui-footer-duplicate,.ui-page-fullscreen .ui-fixed-inline{display:none}.ui-page-fullscreen .ui-header,.ui-page-fullscreen .ui-footer{opacity:.9}.ui-navbar{overflow:hidden}.ui-navbar ul,.ui-navbar-expanded ul{list-style:none;padding:0;margin:0;position:relative;display:block;border:0}.ui-navbar-collapsed ul{float:left;width:75%;margin-right:-2px}.ui-navbar-collapsed .ui-navbar-toggle{float:left;width:25%}.ui-navbar li.ui-navbar-truncate{position:absolute;left:-9999px;top:-9999px}.ui-navbar li .ui-btn,.ui-navbar .ui-navbar-toggle .ui-btn{display:block;font-size:12px;text-align:center;margin:0;border-right-width:0}.ui-navbar li .ui-btn{margin-right:-1px}.ui-navbar li .ui-btn:last-child{margin-right:0}.ui-header .ui-navbar li .ui-btn,.ui-header .ui-navbar .ui-navbar-toggle .ui-btn,.ui-footer .ui-navbar li .ui-btn,.ui-footer .ui-navbar .ui-navbar-toggle .ui-btn{border-top-width:0;border-bottom-width:0}.ui-navbar .ui-btn-inner{padding-left:2px;padding-right:2px}.ui-navbar-noicons li .ui-btn .ui-btn-inner,.ui-navbar-noicons .ui-navbar-toggle .ui-btn-inner{padding-top:.8em;padding-bottom:.9em}.ui-navbar-expanded .ui-btn{margin:0;font-size:14px}.ui-navbar-expanded .ui-btn-inner{padding-left:5px;padding-right:5px}.ui-navbar-expanded .ui-btn-icon-top .ui-btn-inner{padding:45px 5px 15px;text-align:center}.ui-navbar-expanded .ui-btn-icon-top .ui-icon{top:15px}.ui-navbar-expanded .ui-btn-icon-bottom .ui-btn-inner{padding:15px 5px 45px;text-align:center}.ui-navbar-expanded .ui-btn-icon-bottom .ui-icon{bottom:15px}.ui-navbar-expanded li .ui-btn .ui-btn-inner{min-height:2.5em}.ui-navbar-expanded .ui-navbar-noicons .ui-btn .ui-btn-inner{padding-top:1.8em;padding-bottom:1.9em}.ui-btn{display:block;text-align:center;cursor:pointer;position:relative;vertical-align:middle}.ui-btn:focus,.ui-btn:active{outline:0}.ui-header .ui-btn,.ui-footer .ui-btn,.ui-bar .ui-btn{display:inline-block;font-size:.5909090909090909rem;margin:0}.ui-btn-inline{display:inline-block}.ui-btn-inner{padding:.5em .4090909090909091rem;display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;position:relative;zoom:1}.ui-btn-icon-notext{width:1.6363636363636365rem;height:1.6363636363636365rem}.ui-btn-icon-notext .ui-btn-inner{padding:.09090909090909091rem .045454545454545456rem .09090909090909091rem .13636363636363635rem}.ui-btn-icon-notext .ui-btn-inner .ui-icon{margin-left:-.7272727272727273rem;margin-top:-.7272727272727273rem}.ui-btn-icon-notext .ui-btn-text{position:absolute;left:-45.409090909090914rem}.ui-btn-icon-left .ui-btn-inner{padding-left:1.5rem}.ui-header .ui-btn-icon-left .ui-btn-inner,.ui-footer .ui-btn-icon-left .ui-btn-inner,.ui-bar .ui-btn-icon-left .ui-btn-inner{padding-left:1.2272727272727273rem}.ui-btn-icon-right .ui-btn-inner{padding-right:1.5rem}.ui-header .ui-btn-icon-right .ui-btn-inner,.ui-footer .ui-btn-icon-right .ui-btn-inner,.ui-bar .ui-btn-icon-right .ui-btn-inner{padding-right:1.2272727272727273rem}.ui-btn-icon-top .ui-btn-inner{padding-top:1.2272727272727273rem}.ui-header .ui-btn-icon-top .ui-btn-inner,.ui-footer .ui-btn-icon-top .ui-btn-inner,.ui-bar .ui-btn-icon-top .ui-btn-inner{padding-top:1.2272727272727273rem}.ui-btn-icon-bottom .ui-btn-inner{padding-bottom:1.5rem}.ui-header .ui-btn-icon-bottom .ui-btn-inner,.ui-footer .ui-btn-icon-bottom .ui-btn-inner,.ui-bar .ui-btn-icon-bottom .ui-btn-inner{padding-bottom:1.2272727272727273rem}.ui-btn-icon-notext .ui-icon{display:block}.ui-btn-icon-left .ui-icon,.ui-btn-icon-right .ui-icon,.ui-btn-icon-circle .ui-icon{position:absolute}.ui-btn-icon-top .ui-icon,.ui-btn-icon-bottom .ui-icon{position:absolute;left:50%;margin-left:-9px}.ui-btn-icon-left .ui-icon{left:0rem}.ui-btn-icon-circle .ui-icon{left:0rem}.ui-btn-icon-right .ui-icon{right:.4545454545454546rem}.ui-btn-icon-top .ui-icon{top:0rem;margin-top:0}.ui-btn-icon-bottom .ui-icon{bottom:0rem}.ui-header .ui-btn-icon-right .ui-icon,.ui-footer .ui-btn-icon-right .ui-icon,.ui-bar .ui-btn-icon-right .ui-icon{right:.18181818181818182rem}.ui-header .ui-btn-icon-top .ui-icon,.ui-footer .ui-btn-icon-top .ui-icon,.ui-bar .ui-btn-icon-top .ui-icon{top:.18181818181818182rem}.ui-header .ui-btn-icon-bottom .ui-icon,.ui-footer .ui-btn-icon-bottom .ui-icon,.ui-bar .ui-btn-icon-bottom .ui-icon{bottom:.18181818181818182rem}.ui-btn-hidden{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-appearance:button;opacity:.1;cursor:pointer;background:transparent;font-size:.045454545454545456rem;border:0;line-height:45.409090909090914rem}.ui-btn-text{margin-left:auto;margin-right:auto;padding:0 1px}.ui-li .ui-btn.ui-btn-icon_only{top:50%;margin-top:-.7272727272727273rem}.ui-li .ui-btn .ui-btn-inner.ui-btn-hastxt{padding:.2em .5em}.ui-btn-icon-nobg.ui-btn-down-s .ui-btn-inner{background:transparent ! important}.ui-btn.ui-btn-box-s.ui-btn-down-s .ui-btn-inner{color:#f8f6ef}.ui-header .ui-btn-box-s:not(.ui-input-cancel):not(.ui-btn-search-front-icon),.ui-header .ui-btn-box-s:not(.ui-input-cancel):not(.ui-btn-search-front-icon) .ui-btn-inner,.ui-header .ui-btn.ui-btn-box-s.ui-btn-down-s:not(.ui-input-cancel):not(.ui-btn-search-front-icon) .ui-btn-inner,.ui-btn.ui-btn-back.ui-btn-up-s .ui-btn-inner,.ui-btn.ui-btn-back.ui-btn-hover-s .ui-btn-inner,.ui-btn.ui-btn-back.ui-btn-down-s .ui-btn-inner,.ui-btn.ui-btn-footer-down.ui-btn-up-s>.ui-btn-inner,.ui-btn.ui-btn-footer-down.ui-btn-hover-s>.ui-btn-inner,.ui-btn.ui-btn-footer-down.ui-btn-down-s>.ui-btn-inner{background:transparent;border:0;box-shadow:none}.ui-header .naviframe-button.ui-btn.ui-btn-box-s.ui-btn-down-s{background:rgba(64,147,247,.1)}.ui-btn-icon-top .ui-btn-inner.ui-btn-hastxt,.ui-li .ui-btn-icon-top .ui-btn-inner.ui-btn-hastxt{padding-top:2.3636363636363638rem}.ui-btn-icon-bottom .ui-btn-inner.ui-btn-hastxt,.ui-li .ui-btn-icon-bottom .ui-btn-inner.ui-btn-hastxt{padding-bottom:2.3636363636363638rem}.ui-btn .ui-icon{width:1.4545454545454546rem;height:1.4545454545454546rem}.ui-btn.ui-btn-edit .ui-icon{width:3.3636363636363638rem;height:3.3636363636363638rem}.ui-btn .ui-btn-text.ui-btn-text-padding-left{padding-left:2rem}.ui-btn .ui-btn-text.ui-btn-text-padding-right{padding-right:2.1818181818181817rem}.ui-btn .ui-btn-text.ui-btn-text-padding-top{padding-top:1.4545454545454546rem}.ui-icon{background-repeat:no-repeat;vertical-align:middle;background-position:0 0;background-size:100%}.ui-btn-box.s .ui-icon{position:absolute}.ui-btn-box-s.ui-btn-icon-left .ui-icon,.ui-btn-box-s.ui-btn-icon-right .ui-icon{margin-top:-.7272727272727273rem;top:50%}.ui-btn-box-s.ui-btn-icon-top .ui-icon,.ui-btn-box-s.ui-btn-icon-bottom .ui-icon{margin-left:-.7272727272727273rem;left:50%}.tizen-icon-common{width:1.4545454545454546rem;height:1.4545454545454546rem}.tizen-smallicon-common{width:.9090909090909092rem ! important;height:.9090909090909092rem ! important;top:50% ! important;left:50% ! important;margin-top:-.4545454545454546rem ! important;margin-left:-.4545454545454546rem ! important}.ui-icon-bg{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_btn_circle_bg_normal.png);z-index:0}.ui-icon-arrow-l{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_left.png)}.ui-icon-arrow-r{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_right.png)}.ui-icon-arrow-u{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_opened.png)}.ui-icon-arrow-d{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_closed.png)}.ui-icon-delete{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_cancel.png)}.ui-icon-plus{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_plus.png)}.ui-icon-minus{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_minus.png)}.ui-icon-check{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_check.png)}.ui-icon-gear{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_gear.png)}.ui-icon-refresh{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_refresh.png)}.ui-icon-forward{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_send.png)}.ui-icon-back{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_back.png)}.ui-icon-grid{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_grid.png)}.ui-icon-star{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_star.png)}.ui-icon-alert{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_warning.png)}.ui-icon-info{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_info.png)}.ui-icon-home{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_home.png)}.ui-icon-search{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_search.png)}.ui-icon-call{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_call.png)}.ui-icon-rename{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_rename.png)}.ui-icon-scrolltop{width:.9090909090909092rem ! important;height:.9090909090909092rem ! important;top:50% ! important;left:50% ! important;margin-top:-.4545454545454546rem ! important;margin-left:-.4545454545454546rem ! important;background-image:url(images/controls/button/00_icon_jump.png)}.ui-icon-scrollleft{width:.9090909090909092rem ! important;height:.9090909090909092rem ! important;top:50% ! important;left:50% ! important;margin-top:-.4545454545454546rem ! important;margin-left:-.4545454545454546rem ! important;background-image:url(images/controls/button/00_icon_jump_left.png)}.ui-icon-expandable-divider-opened{width:1.9090909090909092rem;height:1.9090909090909092rem;position:absolute;right:1.2727272727272727rem;top:0rem;background-repeat:no-repeat;background-size:100% 100%;background-image:url(images/00_indexlist_icon_opened.png)}.ui-icon-expandable-divider-closed{width:1.9090909090909092rem;height:1.9090909090909092rem;position:absolute;right:1.2727272727272727rem;top:0rem;background-repeat:no-repeat;background-size:100% 100%;background-image:url(images/00_indexlist_icon_closed.png)}.ui-btn-down-s .ui-icon-bg,.ui-btn-down-s.ui-tizen-icon-bg{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_btn_circle_bg_press.png);z-index:0}.ui-btn-down-s .ui-icon-arrow-l{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_left_press.png)}.ui-btn-down-s .ui-icon-arrow-r{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_right_press.png)}.ui-btn-down-s .ui-icon-arrow-u{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_opened_press.png)}.ui-btn-down-s .ui-icon-arrow-d{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_closed_press.png)}.ui-btn-down-s .ui-icon-delete{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_cancel_press.png)}.ui-btn-down-s .ui-icon-plus{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_plus_press.png)}.ui-btn-down-s .ui-icon-minus{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_minus_press.png)}.ui-btn-down-s .ui-icon-check{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_check_press.png)}.ui-btn-down-s .ui-icon-gear{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_gear_press.png)}.ui-btn-down-s .ui-icon-refresh{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_refresh_press.png)}.ui-btn-down-s .ui-icon-forward{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_expand_send_press.png)}.ui-btn-down-s .ui-icon-back{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_back_press.png)}.ui-btn-down-s .ui-icon-grid{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_grid_press.png)}.ui-btn-down-s .ui-icon-star{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_star_press.png)}.ui-btn-down-s .ui-icon-alert{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_warning_press.png)}.ui-btn-down-s .ui-icon-info{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_info_press.png)}.ui-btn-down-s .ui-icon-home{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_home_press.png)}.ui-btn-down-s .ui-icon-search{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_search_press.png)}.ui-btn-down-s .ui-icon-call{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_call_press.png)}.ui-btn-down-s .ui-icon-rename{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/button/00_button_rename_press.png)}.ui-btn-down-s .ui-icon-scrolltop{width:.9090909090909092rem ! important;height:.9090909090909092rem ! important;top:50% ! important;left:50% ! important;margin-top:-.4545454545454546rem ! important;margin-left:-.4545454545454546rem ! important;background-image:url(images/controls/button/00_icon_jump_press.png)}.ui-btn-down-s .ui-icon-scrollleft{width:.9090909090909092rem ! important;height:.9090909090909092rem ! important;top:50% ! important;left:50% ! important;margin-top:-.4545454545454546rem ! important;margin-left:-.4545454545454546rem ! important;background-image:url(images/controls/button/00_icon_jump_left_press.png)}.ui-btn-inner.ui-btn-icon-only{padding:.7272727272727273rem .7272727272727273rem}.ui-btn-icon-only .ui-btn-text{display:none;width:0;height:0;overflow:hidden}.ui-btn.ui-btn-corner-all{-o-border-radius:1.2em ! important;-ms-border-radius:1.2em ! important;-moz-border-radius:1.2em ! important;-webkit-border-radius:1.2em ! important;border-radius:1.2em ! important}.ui-btn.ui-btn-icon-nobg{box-shadow:none}.ui-btn-corner-circle{-o-border-radius:1em ! important;-ms-border-radius:1em ! important;-moz-border-radius:1em ! important;-webkit-border-radius:1em ! important;border-radius:1em ! important}.ui-btn-round{-o-border-radius:1.2em ! important;-ms-border-radius:1.2em ! important;-moz-border-radius:1.2em ! important;-webkit-border-radius:1.2em ! important;border-radius:1.2em ! important}.ui-btn-round .ui-btn-inner{-o-border-radius:1.2em ! important;-ms-border-radius:1.2em ! important;-moz-border-radius:1.2em ! important;-webkit-border-radius:1.2em ! important;border-radius:1.2em ! important}.ui-btn.ui-btn-icon-nobg,.ui-btn .ui-btn-icon-nobg{background:transparent;background-color:transparent;border:0}.ui-btn.ui-btn-edit .ui-btn-text{color:#f9f9f9}.ui-btn.ui-btn-edit .ui-btn-inner{background:#c95858;background:-webkit-gradient(linear,left top,left bottom,from( #c95858),to( #a12828));background:-moz_linear-gradient(top, #c95858, #a12828)}.ui-btn-box-s{color:#3a3a3a;background:#ebe8e3;background:-webkit-linear-gradient(top, #ebe8e3, #eae7e2);background:-moz-linear-gradient(top, #ebe8e3, #eae7e2);background:-o-linear-gradient(top, #ebe8e3, #eae7e2);background:-ms-linear-gradient(top, #ebe8e3, #eae7e2);border:1px solid;border-color:#dcdad3;-o-box-shadow:0 0 1px 1px #fff;-ms-box-shadow:0 0 1px 1px #fff;-moz-box-shadow:0 0 1px 1px #fff;-webkit-box-shadow:0 0 1px 1px #fff;box-shadow:0 0 1px 1px #fff}.ui-collapsible-inset{margin:.5em 0}.ui-collapsible-inset .ui-collapsible-heading{margin:0}.ui-collapsible-inset .ui-collapsible-heading .ui-btn{border-right-width:1px;border-left-width:1px}.ui-collapsible-collapsed+.ui-collapsible:not(.ui-collapsible-inset) .ui-collapsible-heading .ui-btn{border-top-width:0}.ui-collapsible-set .ui-collapsible:not(.ui-collapsible-inset) .ui-collapsible-heading .ui-btn{border-top-width:1px}.ui-collapsible-heading,.ui-collapsible-content>li{position:relative}.ui-collapsible-heading{font-size:1rem;display:block;margin:0 -15px;padding:0;position:relative}.ui-collapsible-heading .ui-btn{text-align:left;margin:0;border-left-width:0;border-right-width:0}.ui-collapsible-heading .ui-btn-text{color:#000}.ui-collapsible-heading .ui-btn-inner,.ui-collapsible-heading .ui-btn-icon-left .ui-btn-inner{padding-left:40px}.ui-collapsible-heading .ui-btn-icon-right .ui-btn-inner{padding-left:12px;padding-right:40px}.ui-collapsible-heading .ui-btn-icon-top .ui-btn-inner,.ui-collapsible-heading .ui-btn-icon-bottom .ui-btn-inner{padding-right:40px;text-align:center}.ui-collapsible-heading .ui-btn-inner>.ui-icon-arrow-d{-webkit-transition:all .33s ease;-moz-transition:all .33s ease;-ms-transition:all .33s ease;-o-transition:all .33s ease;transition:all .33s ease;-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.ui-collapsible-heading .ui-btn-inner>.ui-icon-arrow-u{background-image:url(images/controls/button/00_button_expand_closed.png);-webkit-transition:all .33s ease;-moz-transition:all .33s ease;-ms-transition:all .33s ease;-o-transition:all .33s ease;transition:all .33s ease;-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}.ui-collapsible-heading .ui-btn span.ui-btn{position:absolute;left:6px;top:50%;margin:-12px 0 0 0;width:20px;height:20px;padding:1px 0 1px 2px;text-indent:-9999px}.ui-collapsible-heading .ui-btn span.ui-btn .ui-btn-inner{padding:10px 0}.ui-collapsible-heading .ui-btn span.ui-btn .ui-icon{left:0;margin-top:-10px}.ui-collapsible-heading-status{position:absolute;top:-9999px;left:0}.ui-collapsible-content{display:block;margin:0 -15px;padding:0 15px;border-left-width:0;border-right-width:0;border-top:0;background-image:none;visibility:visible;overflow:auto;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-ms-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}.ui-collapsible-inset .ui-collapsible-content{margin:0;border-right-width:1px;border-left-width:1px}.ui-collapsible-content-collapsed{overflow:hidden;max-height:0!important;visibility:hidden}.ui-collapsible-set{margin:.5em 0}.ui-collapsible-set .ui-collapsible{margin:-1px 0 0}.ui-collapsible-set .ui-collapsible:first-child{margin-top:0}.ui-dialog{min-height:480px}.ui-dialog .ui-header,.ui-dialog .ui-content,.ui-dialog .ui-footer{margin:15px;position:relative}.ui-dialog .ui-header,.ui-dialog .ui-footer{z-index:10;width:auto}.ui-dialog .ui-header .ui-btn-left{width:0;border-width:0}.ui-dialog .center_info{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center}.ui-dialog .center_info .popup-text{font-size:42px;background:#213c49;width:100%}.ui-dialog .center_info .popup-text p{text-align:center;padding:22px 16px}.ui-checkbox .ui-btn-inner,.ui-radio .ui-btn-inner{white-space:normal}.ui-checkbox,.ui-radio{position:relative;margin:0}.ui-checkbox .ui-btn-corner-all,.ui-radio .ui-btn-corner-all{-o-border-radius:0;-ms-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-checkbox .ui-btn-inner,.ui-radio .ui-btn-inner{border-top:0}.ui-checkbox .ui-btn-up-s,.ui-radio .ui-btn-up-s{border:0;background:transparent;font-weight:400}.ui-checkbox .ui-btn-hover-s,.ui-radio .ui-btn-hover-s{border:0;background:transparent;font-weight:400}.ui-checkbox .ui-btn-down-s,.ui-radio .ui-btn-down-s{border:0;background:transparent;font-weight:400}.ui-checkbox input,.ui-radio input{z-index:1;margin:0;left:.4545454545454546rem;position:absolute;outline:0!important}.ui-checkbox>input,.ui-radio>input{display:none}.ui-checkbox .ui-btn,.ui-radio .ui-btn{z-index:2;height:100%;margin:0;text-align:left}.ui-checkbox .ui-btn.ui-btn-icon-left,.ui-radio .ui-btn.ui-btn-icon-left{display:inline-block}.ui-checkbox .ui-btn.ui-btn-icon-left .ui-btn-inner,.ui-radio .ui-btn.ui-btn-icon-left .ui-btn-inner{min-width:1.8181818181818183rem;display:inline-block;line-height:1.4545454545454546rem;padding:0 .7272727272727273rem 0 .7272727272727273rem}.ui-checkbox .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text,.ui-radio .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text{display:inline-block;vertical-align:middle;min-height:1.4545454545454546rem}.ui-checkbox .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text.ui-btn-text-padding-left,.ui-radio .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text.ui-btn-text-padding-left{padding-left:1.0909090909090908rem}.ui-checkbox .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-icon,.ui-radio .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-icon{position:absolute;top:50%;width:1.4545454545454546rem;height:1.4545454545454546rem;margin-top:-.7272727272727273rem}.ui-checkbox.favorite input{position:absolute;left:-10000px;height:100%;outline:0!important}.ui-checkbox.favorite .ui-btn.ui-btn-icon-left .ui-btn-inner{display:inline-block;line-height:1.4545454545454546rem;padding:0 0 0 .7272727272727273rem}.ui-checkbox.favorite .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text{display:inline-block;vertical-align:middle}.ui-checkbox.favorite .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-btn-text.ui-btn-text-padding-left{padding-left:1.0909090909090908rem}.ui-checkbox.favorite .ui-btn.ui-btn-icon-left .ui-btn-inner .ui-icon{position:absolute;top:50%;width:1.4545454545454546rem;height:1.4545454545454546rem;margin-top:-.7272727272727273rem}.ui-icon-checkbox-off,.ui-icon-checkbox-on,.favorite .ui-icon-checkbox-off,.favorite .ui-icon-checkbox-on,.ui-icon-checkbox-on-press,.ui-icon-checkbox-off-press,.ui-icon-radio-off,.ui-icon-radio-on,.ui-icon-radio-on-press,.ui-icon-radio-off-press{background-size:100% 100%;background-color:transparent}.ui-icon-checkbox-off{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_check_bg.png)}.ui-icon-checkbox-on{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_check_checking.png),url(images/00_check_bg.png);background-repeat:no-repeat}.ui-icon-checkbox-off-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_check_bg_press.png)}.ui-icon-checkbox-on-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_check_checking.png),url(images/00_check_bg_press.png);background-repeat:no-repeat}.favorite .ui-icon-checkbox-off,.favorite .ui-icon-checkbox-off-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/00_icon_favorite_off.png)}.favorite .ui-icon-checkbox-on,.favorite .ui-icon-checkbox-on-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/controls/00_icon_favorite_on.png)}.ui-icon-radio-off{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_button_radio.png)}.ui-icon-radio-on{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_button_radio_select.png),url(images/00_button_radio.png)}.ui-icon-radio-on-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_button_radio.png)}.ui-icon-radio-off-press{width:1.4545454545454546rem;height:1.4545454545454546rem;background-image:url(images/00_button_radio.png)}.ui-field-contain{padding:1.5em 0;margin:0;border-bottom-width:1px;overflow:visible}.ui-field-contain:first-child{border-top-width:0}@media all{.ui-field-contain{ border-width:0;padding:0;margin:.8em 0}}.ui-select{display:block;position:relative}.ui-select select{position:absolute;left:-9999px;top:-9999px}.ui-select .ui-btn{overflow:hidden}.ui-select .ui-btn select{cursor:pointer;-webkit-appearance:button;left:0;top:0;width:100%;min-height:1.5em;min-height:100%;height:3em;max-height:100%;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);z-index:2}@-moz-document url-prefix(){.ui-select .ui-btn select{ opacity:.0001}}.ui-select .ui-btn select.ui-select-nativeonly{opacity:1;text-indent:0}.ui-select .ui-btn-icon-right .ui-btn-inner{padding-right:45px}.ui-select .ui-btn-icon-right .ui-icon{right:15px}label.ui-select{font-size:16px;line-height:1.4;font-weight:400;margin:0 0 .3em;display:block}.ui-select .ui-btn-text,.ui-selectmenu .ui-btn-text{display:block;min-height:1em}.ui-select .ui-btn-text{text-overflow:ellipsis;overflow:hidden}.ui-selectmenu{position:absolute;padding:0;z-index:100!important;width:80%;max-width:350px;padding:6px}.ui-selectmenu .ui-listview{margin:0}.ui-selectmenu .ui-btn.ui-li-divider{cursor:default}.ui-selectmenu-hidden{top:-9999px;left:-9999px}.ui-selectmenu-screen{position:absolute;top:0;left:0;width:100%;height:100%;z-index:99}.ui-screen-hidden,.ui-selectmenu-list .ui-li .ui-icon{display:none}.ui-selectmenu-list .ui-li .ui-icon{display:block}.ui-li.ui-selectmenu-placeholder{display:none}.ui-selectmenu .ui-header .ui-title{margin:.6em 46px .8em}@media all and (min-width: 450px){label.ui-select{ vertical-align:top;display:inline-block;width:20%;margin:0 2% 0 0}.ui-select{width:60%;display:inline-block}}.ui-selectmenu .ui-header h1:after{content:'.';visibility:hidden}label.ui-input-text{font-size:1rem;line-height:1.2;display:block;font-weight:400;margin:0 0 .3em}input.ui-input-text,textarea.ui-input-text{background-image:none;padding:.4em;line-height:1.4;font-size:.7272727272727273rem;display:block}input.ui-input-text{appearance:none;-webkit-appearance:none}textarea.ui-input-text{height:2.272727272727273rem;width:95%;resize:none;-webkit-transition:height 200ms linear;-moz-transition:height 200ms linear;-o-transition:height 200ms linear;-ms-transition:height 200ms linear;transition:height 200ms linear}.ui-input-search{position:relative;padding-right:1.6363636363636365rem;padding-left:1.6363636363636365rem;border:1px solid #999;-webkit-box-shadow:inset .09090909090909091rem .09090909090909091rem .09090909090909091rem #999;-moz-box-shadow:inset .09090909090909091rem .09090909090909091rem .09090909090909091rem #999;-o-box-shadow:inset .09090909090909091rem .09090909090909091rem .09090909090909091rem #999;-ms-box-shadow:inset .09090909090909091rem .09090909090909091rem .09090909090909091rem #999;box-shadow:inset .09090909090909091rem .09090909090909091rem .09090909090909091rem #999}.ui-input-search input.ui-input-text{width:100%;border:0;background:transparent none;outline:0!important}.ui-input-search .ui-btn-down-s,.ui-input-search .ui-btn-up-s,.ui-input-search .ui-btn-hover-s{border:0;background:transparent none}.ui-input-search .ui-btn-icon-notext.ui-input-clear{width:1.6363636363636365rem;height:1.5rem}.ui-input-search .ui-btn-icon-notext.ui-input-clear .ui-btn-inner{padding:.2727272727272727rem}.ui-input-search .ui-btn-inner .ui-icon-deleteSearch{width:1rem;height:1rem;margin-top:0;margin-left:0}.ui-input-search .ui-input-clear{position:absolute;right:0;top:0;vertical-align:middle}.ui-input-search .ui-input-clear-hidden{display:none}@media all and (min-width: 721px){label.ui-input-text:not([data-type='search']){ vertical-align:top;display:inline-block;margin:0 2% 0 0}input.ui-input-text:not([data-type='search']),textarea.ui-input-text:not([data-type='search']){width:60%;display:inline-block}.ui-input-search input.ui-input-text:not([data-type='search']){width:85%}}.ui-body-s>div>.ui-field-contain>.input-search-bar,.ui-body-s>.ui-field-contain>.input-search-bar{margin:-2.1818181818181817rem -.6818181818181819rem -1.4545454545454546rem -.6818181818181819rem}.input-search-bar{position:relative;background-color:#f8f6ef;padding:.5909090909090909rem;vertical-align:middle}.input-search-bar .ui-corner-all{-o-border-radius:.3em;-ms-border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em}.input-search-bar .ui-input-search{font-size:.7272727272727273rem;display:block;position:relative;background-color:#fff}.input-search-bar .ui-input-search .ui-input-text{height:1.5rem;padding:0;margin-right:1.7272727272727273rem}.input-search-bar .ui-input-search .ui-image-search{position:absolute;top:0;left:0;width:1rem;height:1rem;margin:.2727272727272727rem}.input-search-bar .ui-input-search-default{margin-right:3.409090909090909rem;-webkit-transition:all 400ms linear;-moz-transition:all 400ms linear;-o-transition:all 400ms linear;-ms-transition:all 400ms linear;transition:all 400ms linear}.input-search-bar .ui-input-search-wide{margin-right:0rem;-webkit-transition:all 400ms linear;-moz-transition:all 400ms linear;-o-transition:all 400ms linear;-ms-transition:all 400ms linear;transition:all 400ms linear}.input-search-bar .ui-btn-icon-cancel.ui-input-cancel{display:inline-block;position:absolute;top:.13636363636363635rem;right:0rem;height:1.5rem;margin-right:.4545454545454546rem;vertical-align:middle;padding:0;border-color:none;width:3.090909090909091rem;-webkit-transition:all 400ms linear;-moz-transition:all 400ms linear;-o-transition:all 400ms linear;-ms-transition:all 400ms linear;transition:all 400ms linear}.input-search-bar .ui-btn-icon-cancel.ui-input-cancel .ui-btn-inner{padding-top:.2727272727272727rem;padding-bottom:.2727272727272727rem}.input-search-bar .ui-btn-icon-cancel.ui-input-cancel .ui-btn-inner .ui-btn-text{font-size:.6818181818181819rem}.input-search-bar .ui-btn-icon-cancel.ui-input-cancel.ui-btn-cancel-hide{right:-3.409090909090909rem;visibility:hidden}.input-search-bar .ui-btn-icon-cancel.ui-input-cancel.ui-btn-cancel-show{right:0;visibility:visible}.input-search-bar .ui-search-bar-icon{margin-left:1.9090909090909092rem}.input-search-bar .ui-btn.ui-btn-search-front-icon{position:absolute;width:1.590909090909091rem;height:1.590909090909091rem;top:.09090909090909091rem;border-radius:3rem}.input-search-bar .ui-btn.ui-btn-search-front-icon>.ui-btn-inner.ui-btn-icon-only{border-radius:3rem}.ui-header .input-search-bar{padding-top:.18181818181818182rem;padding-bottom:.18181818181818182rem}.ui-image-search{background-image:url(images/controls/00_search_icon.png);background-repeat:no-repeat;background-size:100% 100%}.ui-icon-deleteSearch{background-image:url(images/controls/00_field_btn_clear.png);background-repeat:no-repeat;background-size:100% 100%}.ui-controlgroup,fieldset.ui-controlgroup{padding:0;margin:.5em 0 1em}.ui-bar .ui-controlgroup{margin:0 .3em}.ui-controlgroup-label{font-size:1em;line-height:1.4;font-weight:400;margin:0 0 .3em}.ui-controlgroup-controls{display:block}.ui-controlgroup li{list-style:none}.ui-controlgroup .ui-btn-inner{white-space:nowrap}.ui-controlgroup .ui-checkbox label label,.ui-controlgroup .ui-radio label{font-size:1em}.ui-controlgroup .ui-radio{width:25%;overflow:hidden}.ui-controlgroup .ui-radio label{text-align:center;white-space:nowrap}.ui-controlgroup .ui-radio-on .ui-btn-inner{background:#f8f6ef}.ui-controlgroup .ui-radio-on .ui-btn-inner .ui-btn-text{color:#3b73b6}.ui-controlgroup .ui-corner-left{border-left-width:0}.ui-controlgroup .ui-corner-right{border-right-width:0}.ui-controlgroup-vertical .ui-btn,.ui-controlgroup-vertical .ui-checkbox,.ui-controlgroup-vertical .ui-radio{margin:0;border-bottom-width:0}.ui-controlgroup-vertical .ui-controlgroup-last{border-bottom-width:1px}.ui-controlgroup-vertical .ui-radio{width:100%}.ui-controlgroup-vertical .ui-radio label{text-align:left}.ui-controlgroup-vertical .ui-radio label .ui-btn-inner{margin-left:.7272727272727273rem;margin-right:.7272727272727273rem}.ui-controlgroup-horizontal{padding:0}.ui-controlgroup-horizontal .ui-btn{display:inline-block;margin-left:-.18181818181818182rem;margin-right:-.13636363636363635rem}.ui-controlgroup-horizontal .ui-checkbox,.ui-controlgroup-horizontal .ui-radio{float:left;margin:0 -1px 0 0}.ui-controlgroup-horizontal .ui-controlgroup-last{margin-right:0}.ui-controlgroup-horizontal [data-role="button"]{border-top:0;border-bottom:0;border-radius:0;box-shadow:none;background:0}.ui-controlgroup-horizontal [data-role="button"].ui-btn-down-s .ui-btn-inner,.ui-controlgroup-horizontal [data-role="button"] .ui-btn-active-s .ui-btn-inner{background:#f8f6ef}.ui-controlgroup-horizontal [data-role="button"].ui-btn-down-s .ui-btn-inner .ui-btn-text,.ui-controlgroup-horizontal [data-role="button"] .ui-btn-active-s .ui-btn-inner .ui-btn-text{color:#3b73b6}.ui-controlgroup-horizontal [data-role="button"].ui-btn-down-s .ui-btn-inner{background:-webkit-linear-gradient(top, #d2d2c8 0, #f6f8ef 100%)}.ui-controlgroup-horizontal [data-role="button"]>.ui-btn-inner{border:0 solid;box-shadow:none;padding-top:.2272727272727273rem;padding-bottom:.2272727272727273rem;padding-left:.4545454545454546rem;padding-right:.4545454545454546rem}.ui-controlgroup-horizontal label{width:100%}.ui-controlgroup-horizontal label>span.ui-btn-inner{padding-top:.13636363636363635rem;padding-bottom:.13636363636363635rem}.ui-listview{margin:0;counter-reset:listnumbering;border-top-color:rgba(211,209,203,.5)}.ui-listview li.ui-btn>.ui-btn-hastxt>.ui-btn-text.ui-btn-text-padding-right{padding-right:0rem}.ui-listview .ui-li{border-left-width:0;border-right-width:0;border-top-width:0}.ui-listview .ui-li>.ui-btn-inner{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgba(211,209,203,.5);margin-left:.5909090909090909rem;margin-right:.5909090909090909rem}.ui-listview .ui-li-static{background-color:#f8f6ef;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgba(211,209,203,.5);margin-left:.5909090909090909rem;margin-right:.5909090909090909rem}.ui-listview .ui-li:not(.ui-li-divider):not(.ui-li-static){min-height:2.5rem}.ui-listview .ui-li.ui-li-has-multiline:not(.ui-li-divider):not(.ui-li-static){min-height:2.909090909090909rem}.ui-listview li.ui-btn-up-s,.ui-listview li.ui-btn-hover-s{background:0;background-color:#f8f6ef;color:#000}.ui-listview li.ui-btn-down-s{background:0;background-color:#5787c2;color:#000}.ui-listview li.ui-btn-up-s>.ui-li>.ui-btn-text>a.ui-link-inherit,.ui-listview li.ui-btn-hover-s>.ui-li>.ui-btn-text>a.ui-link-inherit{color:#000}.ui-listview li.ui-btn-down-s>.ui-li>.ui-btn-text>a.ui-link-inherit{color:#f9f9f9}.ui-content .ui-listview{margin-left:-.36363636363636365rem;margin-right:-.36363636363636365rem;padding-bottom:1px}.ui-content .ui-listview .ui-listview{margin:0}.ui-content .ui-listview-inset{margin:1em 0}.ui-listview,.ui-li,.ui-collapsible-heading{list-style:none;padding:0;font-size:1rem}.ui-li,.ui-collapsible-heading,.ui-li.ui-field-contain{display:block;margin:0;position:relative;overflow:visible;text-align:left}.ui-li .ui-btn{top:50%;margin-top:-.8em}.ui-li h3,.ui-collapsible-heading h3,.ui-collapsible>.ui-collapsible-content h3,.ui-listview li h3{margin-top:0;margin-bottom:0;font-size:1rem;font-weight:400}.ui-li form,.ui-collapsible-heading form,.ui-collapsible>.ui-collapsible-content form,.ui-listview li form{display:inline-block}.ui-li .ui-btn-text,.ui-collapsible-heading .ui-btn-text,.ui-collapsible>.ui-collapsible-content .ui-btn-text,.ui-listview li .ui-btn-text{position:relative}.ui-li .ui-btn-text a.ui-link-inherit,.ui-collapsible-heading .ui-btn-text a.ui-link-inherit,.ui-collapsible>.ui-collapsible-content .ui-btn-text a.ui-link-inherit,.ui-listview li .ui-btn-text a.ui-link-inherit{white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li:last-child,.ui-collapsible-heading:last-child,.ui-collapsible>.ui-collapsible-content:last-child,.ui-listview li:last-child,.ui-li.ui-field-contain:last-child,.ui-collapsible-heading.ui-field-contain:last-child,.ui-collapsible>.ui-collapsible-content.ui-field-contain:last-child,.ui-listview li.ui-field-contain:last-child{border-bottom-width:1px}.ui-li>.ui-btn-inner,.ui-collapsible-heading>.ui-btn-inner,.ui-collapsible>.ui-collapsible-content>.ui-btn-inner,.ui-listview li>.ui-btn-inner,.ui-li.ui-collapsible-heading>.ui-collapsible-heading-toggle,.ui-collapsible-heading.ui-collapsible-heading>.ui-collapsible-heading-toggle,.ui-collapsible>.ui-collapsible-content.ui-collapsible-heading>.ui-collapsible-heading-toggle,.ui-listview li.ui-collapsible-heading>.ui-collapsible-heading-toggle{display:block;position:relative;padding:0;border-width:0}.ui-li>.ui-btn-inner.ui-btn-hastxt,.ui-collapsible-heading>.ui-btn-inner.ui-btn-hastxt,.ui-collapsible>.ui-collapsible-content>.ui-btn-inner.ui-btn-hastxt,.ui-listview li>.ui-btn-inner.ui-btn-hastxt{padding:0 0}.ui-li .ui-btn-inner a.ui-link-inherit,.ui-collapsible-heading .ui-btn-inner a.ui-link-inherit,.ui-collapsible>.ui-collapsible-content .ui-btn-inner a.ui-link-inherit,.ui-listview li .ui-btn-inner a.ui-link-inherit,.ui-li .ui-collapsible-heading-toggle>.ui-btn-inner,.ui-collapsible-heading .ui-collapsible-heading-toggle>.ui-btn-inner,.ui-collapsible>.ui-collapsible-content .ui-collapsible-heading-toggle>.ui-btn-inner,.ui-listview li .ui-collapsible-heading-toggle>.ui-btn-inner,.ui-li>li,.ui-collapsible-heading>li,.ui-collapsible>.ui-collapsible-content>li,.ui-listview li>li,.ui-li.ui-li-static,.ui-collapsible-heading.ui-li-static,.ui-collapsible>.ui-collapsible-content.ui-li-static,.ui-listview li.ui-li-static{padding-top:.6818181818181819rem;padding-bottom:.6818181818181819rem;display:block;white-space:normal;border-left-width:0;border-right-width:0}.ui-li .ui-btn-inner a.ui-link-inherit,.ui-collapsible-heading .ui-btn-inner a.ui-link-inherit,.ui-collapsible>.ui-collapsible-content .ui-btn-inner a.ui-link-inherit,.ui-listview li .ui-btn-inner a.ui-link-inherit,.ui-li .ui-collapsible-heading-toggle,.ui-collapsible-heading .ui-collapsible-heading-toggle,.ui-collapsible>.ui-collapsible-content .ui-collapsible-heading-toggle,.ui-listview li .ui-collapsible-heading-toggle{white-space:normal;overflow:visible!important}.ui-li .ui-toggle-switch:last-child,.ui-collapsible-heading .ui-toggle-switch:last-child,.ui-collapsible>.ui-collapsible-content .ui-toggle-switch:last-child,.ui-listview li .ui-toggle-switch:last-child{top:50%;margin-top:-.7727272727272727rem;display:inline-block;position:absolute;right:0}.ui-li [data-role="button"]:last-child,.ui-collapsible-heading [data-role="button"]:last-child,.ui-collapsible>.ui-collapsible-content [data-role="button"]:last-child,.ui-listview li [data-role="button"]:last-child{position:absolute;right:0}.ui-li .ui-radio:first-child,.ui-collapsible-heading .ui-radio:first-child,.ui-collapsible>.ui-collapsible-content .ui-radio:first-child,.ui-listview li .ui-radio:first-child,.ui-li .ui-checkbox:first-child,.ui-collapsible-heading .ui-checkbox:first-child,.ui-collapsible>.ui-collapsible-content .ui-checkbox:first-child,.ui-listview li .ui-checkbox:first-child{position:absolute;top:50%;margin-top:-.6818181818181819rem;left:-.18181818181818182rem;width:1.3636363636363638rem;height:1.3636363636363638rem}.ui-li .ui-radio:first-child .ui-btn-inner,.ui-collapsible-heading .ui-radio:first-child .ui-btn-inner,.ui-collapsible>.ui-collapsible-content .ui-radio:first-child .ui-btn-inner,.ui-listview li .ui-radio:first-child .ui-btn-inner,.ui-li .ui-checkbox:first-child .ui-btn-inner,.ui-collapsible-heading .ui-checkbox:first-child .ui-btn-inner,.ui-collapsible>.ui-collapsible-content .ui-checkbox:first-child .ui-btn-inner,.ui-listview li .ui-checkbox:first-child .ui-btn-inner{line-height:.9090909090909092rem;color:transparent}.ui-li .ui-radio:first-child .ui-btn-inner .ui-icon,.ui-collapsible-heading .ui-radio:first-child .ui-btn-inner .ui-icon,.ui-collapsible>.ui-collapsible-content .ui-radio:first-child .ui-btn-inner .ui-icon,.ui-listview li .ui-radio:first-child .ui-btn-inner .ui-icon,.ui-li .ui-checkbox:first-child .ui-btn-inner .ui-icon,.ui-collapsible-heading .ui-checkbox:first-child .ui-btn-inner .ui-icon,.ui-collapsible>.ui-collapsible-content .ui-checkbox:first-child .ui-btn-inner .ui-icon,.ui-listview li .ui-checkbox:first-child .ui-btn-inner .ui-icon{left:.2272727272727273rem}.ui-li .ui-radio:first-child label.ui-btn-icon_only,.ui-collapsible-heading .ui-radio:first-child label.ui-btn-icon_only,.ui-collapsible>.ui-collapsible-content .ui-radio:first-child label.ui-btn-icon_only,.ui-listview li .ui-radio:first-child label.ui-btn-icon_only,.ui-li .ui-checkbox:first-child label.ui-btn-icon_only,.ui-collapsible-heading .ui-checkbox:first-child label.ui-btn-icon_only,.ui-collapsible>.ui-collapsible-content .ui-checkbox:first-child label.ui-btn-icon_only,.ui-listview li .ui-checkbox:first-child label.ui-btn-icon_only{top:0;margin-top:0}.ui-li img.ui-li-bigicon,.ui-collapsible-heading img.ui-li-bigicon,.ui-collapsible>.ui-collapsible-content img.ui-li-bigicon,.ui-listview li img.ui-li-bigicon{position:absolute;width:1.590909090909091rem;height:1.590909090909091rem;top:50%;margin-top:-.8181818181818182rem}.ui-li img.ui-li-bigicon:first-child,.ui-collapsible-heading img.ui-li-bigicon:first-child,.ui-collapsible>.ui-collapsible-content img.ui-li-bigicon:first-child,.ui-listview li img.ui-li-bigicon:first-child{left:0}.ui-li img.ui-li-bigicon:nth-child(2),.ui-collapsible-heading img.ui-li-bigicon:nth-child(2),.ui-collapsible>.ui-collapsible-content img.ui-li-bigicon:nth-child(2),.ui-listview li img.ui-li-bigicon:nth-child(2){left:1.6363636363636365rem}.ui-li img.ui-li-bigicon:last-child,.ui-collapsible-heading img.ui-li-bigicon:last-child,.ui-collapsible>.ui-collapsible-content img.ui-li-bigicon:last-child,.ui-listview li img.ui-li-bigicon:last-child{right:.7272727272727273rem}.ui-li .ui-li-color-bar+img.ui-li-bigicon:nth-child(2),.ui-collapsible-heading .ui-li-color-bar+img.ui-li-bigicon:nth-child(2),.ui-collapsible>.ui-collapsible-content .ui-li-color-bar+img.ui-li-bigicon:nth-child(2),.ui-listview li .ui-li-color-bar+img.ui-li-bigicon:nth-child(2){left:0}.ui-li .ui-li-color-bar,.ui-collapsible-heading .ui-li-color-bar,.ui-collapsible>.ui-collapsible-content .ui-li-color-bar,.ui-listview li .ui-li-color-bar{position:absolute;width:.13636363636363635rem;height:100%;top:0rem;left:-.5909090909090909rem;background-color:#000}li.ui-li-thumbnail-right img.ui-li-bigicon.ui-li-thumb{left:auto;right:0;width:2.3181818181818183rem;height:2.3181818181818183rem;margin-top:-1.1363636363636365rem}.ui-li.ui-li-has-multiline .ui-btn-inner a.ui-link-inherit,.ui-li.ui-li-has-multiline.ui-li-static{padding-top:.3181818181818182rem;padding-bottom:1.2727272727272727rem}.ui-li.ui-li-has-multiline a{white-space:normal;overflow:visible!important;padding-right:.7272727272727273rem}.ui-li.ui-li-text-ellipsis .ui-btn-inner a.ui-link-inherit{white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li.ui-li-text-ellipsis a{white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li.ui-li-text-ellipsis.ui-li-static{white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li>input{border-style:none;border-width:0;outline-color:#f8f6ef;font-size:1.0454545454545454rem;line-height:1;padding-top:0;padding-bottom:0}.ui-listview li.ui-li-divider{background:#f8f6ef;color:#3b73b6;border-bottom-width:0;border-top-width:0;cursor:default;counter-reset:listnumbering;font-weight:700;height:1.7272727272727273rem;font-size:.7272727272727273rem}.ui-listview li.ui-li-divider>.ui-btn-inner>.ui-btn-text{font-size:.7272727272727273rem}.ui-listview li.ui-li-divider.ui-btn{top:0;margin-top:0rem;border-radius:0;font-size:.7272727272727273rem}.ui-listview li.ui-li-divider.ui-btn .ui-btn-inner.ui-btn-hastxt{height:100%;padding-left:0}.ui-listview li.ui-li-divider.ui-btn .ui-btn-inner.ui-btn-hastxt .ui-btn-text{position:absolute;top:.2272727272727273rem;height:.8181818181818182rem;padding-right:.4545454545454546rem}.ui-listview li.ui-li-divider:not(.ui-btn){margin-left:.5454545454545454rem;margin-right:.5454545454545454rem}.ui-listview li.ui-li-divider>.ui-btn-text{position:absolute;top:.2272727272727273rem;height:.8181818181818182rem;padding-right:.4545454545454546rem}.ui-listview li.ui-li-divider[data-style="dialogue"]{height:.9090909090909092rem;padding:0;padding-top:.9090909090909092rem;padding-bottom:0rem;padding-left:.4545454545454546rem;margin-left:.18181818181818182rem;margin-right:.18181818181818182rem;font-size:.7272727272727273rem;font-weight:700;color:#3b73b6;background:#f8f6ef}.ui-listview li.ui-li-divider[data-style="check"]{height:1.7272727272727273rem;padding-top:0;padding-bottom:0;padding-left:0}.ui-listview li.ui-li-divider[data-style="check"] label{top:0;margin:0}.ui-listview li.ui-li-divider[data-style="check"] label .ui-btn-inner{z-index:5;position:absolute;width:1.4545454545454546rem;height:1.4545454545454546rem;background:#f8f6ef;padding:0}.ui-listview li.ui-li-divider[data-style="check"] .ui-btn-text{padding-left:1.6818181818181819rem}.ui-listview li.ui-li-divider .ui-divider-normal-line{display:inline-block;position:absolute;top:1.0454545454545454rem;width:100%;height:.09090909090909091rem;background:#3b73b6}.ui-listview li.ui-li-divider.ui-btn-down-s{background:#3b73b6;color:#f8f6ef}.ui-listview li.ui-li-divider.ui-btn-down-s .ui-divider-normal-line{background:#f8f6ef}.ui-listview li.ui-li-divider.ui-btn-down-s label>.ui-btn-inner{background:#3b73b6}.ui-listview li.ui-li-divider+li.ui-li-dialogue{border-top-left-radius:3px;border-top-right-radius:3px}.ui-divider-expand-div{position:absolute;width:4.454545454545455rem;height:1.9090909090909092rem;top:.4545454545454546rem;right:0;border-left-width:1px;border-left-style:solid;border-left-color:rgba(0,0,0,.5)}.ui-li-has-thumb:not(.ui-li-thumbnail-right) .ui-btn-inner a.ui-link-inherit,.ui-li-has-thumb:not(.ui-li-thumbnail-right).ui-li-static{padding-left:2.0454545454545454rem}.ui-li-has-thumb:not(.ui-li-thumbnail-right) .ui-li-text-sub{padding-left:2.0454545454545454rem;padding-right:0}.ui-li-has-checkbox .ui-btn-inner a.ui-link-inherit,.ui-li-has-radio .ui-btn-inner a.ui-link-inherit,.ui-li-has-checkbox.ui-li-static,.ui-li-has-radio.ui-li-static{padding-left:1.6363636363636365rem}.ui-li-has-checkbox .ui-li-text-sub,.ui-li-has-radio .ui-li-text-sub{padding-left:1.6363636363636365rem}.ui-li-has-thumb.ui-li-has-checkbox .ui-btn-inner a.ui-link-inherit,.ui-li-has-thumb.ui-li-has-radio .ui-btn-inner a.ui-link-inherit,.ui-li-has-thumb.ui-li-has-checkbox.ui-li-static,.ui-li-has-thumb.ui-li-has-radio.ui-li-static{padding-left:3.5454545454545454rem}.ui-li-has-thumb.ui-li-has-checkbox .ui-li-text-sub,.ui-li-has-thumb.ui-li-has-radio .ui-li-text-sub{padding-left:3.5454545454545454rem}.ui-li.ui-li-has-right-circle-btn .ui-btn-inner a{padding-right:2.1818181818181817rem}.ui-li.ui-li-has-right-btn:not(.ui-swipe) .ui-btn-inner a{padding-right:3.590909090909091rem}.ui-li.ui-li-thumbnail-right .ui-btn-inner a{padding-right:2.3636363636363638rem}.ui-li.ui-li-static.ui-li-has-right-circle-btn{padding-right:2.1818181818181817rem}.ui-li.ui-li-static.ui-li-has-right-btn:not(.ui-swipe){padding-right:3.590909090909091rem}.ui-li.ui-li-static.ui-li-thumbnail-right{padding-right:2.3636363636363638rem}.ui-li-has-icon .ui-btn-inner a.ui-link-inherit,.ui-li-has-icon.ui-li-static{min-height:20px;padding-left:40px}.ui-li-has-icon .ui-li-text-sub{padding-left:40px}.ui-li-heading{font-size:16px;font-weight:700;display:block;margin:.6em 0;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li-thumb,.ui-li-icon{position:absolute;left:1px;top:0;max-height:3.272727272727273rem;max-width:3.272727272727273rem}.ui-listview * .ui-btn-inner>.ui-btn>.ui-btn-inner{border-top:0}.ui-li-sub,.ui-li-sub-setting{float:right;text-align:right;font-size:.7272727272727273rem;margin:.3em 0}.ui-li-text-sub{float:right;text-align:right;font-size:.7272727272727273rem;color:#646464;position:absolute;right:0;top:.9090909090909092rem;width:95%;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li-text-sub>img{position:relative;width:.7727272727272727rem;height:.7727272727272727rem;margin:0 .36363636363636365rem 0 .36363636363636365rem}.ui-li-text-sub2{float:right;text-align:right;font-size:.7272727272727273rem;color:#646464;position:absolute;right:0;top:.7272727272727273rem;width:60%;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li-text-sub2>img{width:.7727272727272727rem;height:.7727272727272727rem;margin:0 0 0 .36363636363636365rem}.ui-li-has-multiline .ui-li-text-sub{position:absolute;text-align:left;right:auto;left:0;top:1.590909090909091rem;margin-top:0;width:90%;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-li-has-multiline.ui-li-has-right-btn .ui-btn-inner a .ui-li-text-sub{width:74%}.ui-li-has-multiline.ui-li-has-right-btn.ui-li-has-thumb .ui-btn-inner a .ui-li-text-sub{width:64%}.ui-li-has-multiline.ui-li-static.ui-li-has-right-btn .ui-li-text-sub{width:74%}.ui-li-has-multiline.ui-li-static.ui-li-has-right-btn.ui-li-has-thumb .ui-li-text-sub{width:64%}.ui-li-icon-sub-right,.ui-li-icon-sub{position:absolute;left:auto;width:.7727272727272727rem;height:.7727272727272727rem;margin:0 0}.ui-li-icon-sub-right{right:.36363636363636365rem}.ui-listview li.ui-li-dialogue{margin-left:.18181818181818182rem;margin-right:.18181818181818182rem;padding-left:.4545454545454546rem;padding-right:.4545454545454546rem;border-style:solid;border-color:#8e9aa3;border-width:1px;border-top-width:0}.ui-listview li.ui-li-dialogue>.ui-btn-inner{margin-left:0;margin-right:0;border-bottom-width:0}.ui-listview li.ui-li-dialogue:first-child{border-top-width:1px;border-top-left-radius:3px;border-top-right-radius:3px}.ui-listview li.ui-li-dialogue:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.ui-listview li.ui-li-dialogue>img{margin-left:.2727272727272727rem}.ui-listview li.ui-li-dialogue [data-role="button"]:last-child{margin-right:.4545454545454546rem}.ui-listview li.ui-li-dialogue .ui-link-inherit>.ui-btn{margin-right:0}.ui-listview li.ui-li-dialogue.ui-li-static .ui-li-text-sub,.ui-listview li.ui-li-dialogue.ui-li-static .ui-toggle-switch{right:.4545454545454546rem}.ui-listview li.ui-li-dialogue.ui-li-static.ui-li-has-checkbox,.ui-listview li.ui-li-dialogue.ui-li-static.ui-li-has-radio{padding-left:1.6363636363636365rem}.ui-listview li.ui-li-dialogue.ui-li-static .ui-checkbox,.ui-listview li.ui-li-dialogue.ui-li-static .ui-radio{left:0}.ui-listview li.ui-li-dialogue.ui-li-has-multiline.ui-li-static .ui-li-text-sub{padding-left:.4545454545454546rem}.ui-listview li.ui-li-dialogue.ui-li-has-multiline.ui-li-static .ui-li-text-sub2{padding-right:.4545454545454546rem}.ui-listview li.ui-li-dialogue.ui-li-has-multiline.ui-li-static.ui-li-has-checkbox .ui-li-text-sub,.ui-listview li.ui-li-dialogue.ui-li-has-multiline.ui-li-static.ui-li-has-radio .ui-li-text-sub{padding-left:1.9090909090909092rem}.ui-listview li.ui-li-divider+.ui-li-dialogue{border-top-width:1px}.ui-listview>li.ui-li-dialogue.ui-body-s:not(.ui-li-expanded),.ui-listview>li.ui-li-dialogue.ui-btn-hover-up-s:not(.ui-btn-down-s):not(.ui-li-expanded),.ui-listview>li.ui-li-dialogue.ui-btn-up-s:not(.ui-li-expanded){background:#efede5}.ui-listview>li.ui-li-dialogue.ui-li-expanded{padding-left:1.1818181818181819rem;background:#dcdad3}.ui-listview>li.ui-li-dialogue.ui-li-divider{height:1.4545454545454546rem;padding:0}.ui-listview>li.ui-li-group-title{padding-top:1.4545454545454546rem}.ui-listview>li.ui-li-group-title span{padding-left:.7272727272727273rem}.ui-listview>li.ui-li-dialogue-divider{padding-top:.9090909090909092rem;padding-bottom:0rem;padding-left:.4545454545454546rem;margin-left:.18181818181818182rem;margin-right:.18181818181818182rem;background:#efede5;font-size:.7272727272727273rem;font-weight:700;color:#3b73b6}.ui-listview li.ui-li-dialogue-edit{padding-left:5.2727272727272725rem;padding-top:.5454545454545454rem;padding-bottom:.5454545454545454rem}.ui-listview li.ui-li-dialogue-edit .ui-edit-title{position:absolute;left:.4545454545454546rem;width:4.136363636363637rem;padding-right:.36363636363636365rem;display:inline-block;top:50%;margin-top:-.5909090909090909rem;border-right-color:#b9b8b2;border-right-width:1px;border-right-style:solid}.ui-listview li.ui-li-dialogue-edit input{font-size:1rem;background:transparent;outline-color:transparent;width:100%;padding-left:0;padding-right:0}.ui-listview>.ui-li.ui-li-dialogue-edit.ui-li-has-right-btn{padding-right:5rem}.ui-listview .ui-li-static.ui-li-bubble-receive,.ui-listview .ui-li-static.ui-li-bubble-left{color:#fff}.ui-listview .ui-li-static.ui-li-bubble-receive>.ui-li-bubble-time,.ui-listview .ui-li-static.ui-li-bubble-left>.ui-li-bubble-time{color:#d30000}.ui-listview .ui-li-static.ui-li-bubble-sent,.ui-listview .ui-li-static.ui-li-bubble-right{color:#000}.ui-listview .ui-li-static.ui-li-bubble-sent>.ui-li-bubble-time,.ui-listview .ui-li-static.ui-li-bubble-right>.ui-li-bubble-time{color:#39a6d7}.ui-listview .ui-li-static.ui-li-bubble-sos{color:#e94949}.ui-listview .ui-li-static.ui-li-bubble-sos>.ui-li-bubble-time{color:#d30000}.ui-listview .ui-li-static.ui-li-bubble-date{background-color:rgba(225,225,225,0);color:#686868;font-style:italic}.ui-listview span.ui-li-bubble-time{font-weight:700}.ui-listview .ui-li-bubble-receive,.ui-listview .ui-li-bubble-left,.ui-listview .ui-li-bubble-sent,.ui-listview .ui-li-bubble-right,.ui-listview .ui-li-bubble-sos{display:inline-block;background-clip:padding-box;max-width:100%;word-wrap:break-word;font-size:.8636363636363636rem}.ui-listview .ui-li-bubble-receive p,.ui-listview .ui-li-bubble-left p,.ui-listview .ui-li-bubble-sent p,.ui-listview .ui-li-bubble-right p,.ui-listview .ui-li-bubble-sos p,.ui-listview .ui-li-bubble-receive span,.ui-listview .ui-li-bubble-left span,.ui-listview .ui-li-bubble-sent span,.ui-listview .ui-li-bubble-right span,.ui-listview .ui-li-bubble-sos span{font-size:.8636363636363636rem}.ui-listview .ui-li-bubble-receive img,.ui-listview .ui-li-bubble-left img,.ui-listview .ui-li-bubble-sent img,.ui-listview .ui-li-bubble-right img,.ui-listview .ui-li-bubble-sos img{position:relative;min-width:7.272727272727273rem;min-height:7.272727272727273rem}.ui-listview .ui-li-bubble-receive,.ui-listview .ui-li-bubble-left{margin-left:0;margin-right:1.6rem;border-image-source:url(images/00_messagebubble_bg_receive.9.png);border-image-slice:57 14 21 48 fill;border-image-width:auto;padding:9px 14px 21px 48px}.ui-listview .ui-li-bubble-receive>.ui-li-bubble-time,.ui-listview .ui-li-bubble-left>.ui-li-bubble-time{position:absolute;display:inline-block;bottom:.36363636363636365rem;left:100%;font-size:.5rem}.ui-listview .ui-li-bubble-sent,.ui-listview .ui-li-bubble-right{margin-left:1.6rem;margin-right:0;border-image-source:url(images/00_messagebubble_bg_sent.9.png);border-image-slice:55 47 20 13 fill;border-image-width:auto;padding:9px 47px 20px 13px}.ui-listview .ui-li-bubble-sent>.ui-li-bubble-time,.ui-listview .ui-li-bubble-right>.ui-li-bubble-time{position:absolute;display:inline-block;bottom:.36363636363636365rem;right:100%;font-size:.5rem}.ui-listview .ui-li-bubble-date{float:left;width:100%;height:1.0909090909090908rem;background-image:url(images/00_messagebubble_date_bg.png);background-repeat:repeat-x;background-position:center center;font-size:.7272727272727273rem;margin:.9090909090909092rem .2727272727272727rem;border:0 none red;padding:0 0;padding-top:.5em;text-align:center}.ui-listview .ui-li-bubble-date *{display:inline-block;background-color:#f8f6ef;padding-left:.5em;padding-right:.5em}@-webkit-keyframes addliitem{from{ -webkit-transform:scale(0.5);-moz-transform:scale(0.5);opacity:0}to{-webkit-transform:scale(1);-moz-transform:scale(1);opacity:1}}.addli{-webkit-animation-name:addliitem;-moz-animation-name:addliitem;-webkit-animation-duration:.5s;-moz-animation-duration:.5s;-webkit-transition-timing-function:linear;-moz-transition-timing-function:linear}@-webkit-keyframes removeliitem{from{ -webkit-transform:scale(1);-moz-transform:scale(1);opacity:1}to{-webkit-transform:scale(0.5);-moz-transform:scale(0.5);opacity:0}}.removeli{-webkit-animation-name:removeliitem;-moz-animation-name:removeliitem;-webkit-animation-duration:.5s;-moz-animation-duration:.5s;-webkit-transition-timing-function:linear;-moz-transition-timing-function:linear}.ui-controlgroup .ui-radio>.ui-btn{background:#f8f6ef}.ui-controlgroup .ui-btn-text{font-size:.7727272727272727rem;font-weight:700;color:#3a3a3a}.ui-controlgroup .ui-btn-inner .ui-corner-left .ui-controlgroup-first{-o-border-radius:.3em;-ms-border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em}.ui-controlgroup .ui-btn-inner .ui-corner-right .ui-controlgroup-last{-o-border-radius:.3em;-ms-border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em}.ui-controlgroup .ui-radio-off.ui-btn-hover-s.ui-btn-down-s .ui-btn-inner,.ui-controlgroup .ui-radio-on .ui-btn-inner{color:#3b7796}.ui-controlgroup .ui-radio-off .ui-btn-inner{color:#3a3a3a}.ui-controlgroup.ui-controlgroup-horizontal .ui-radio .ui-btn-down-s .ui-btn-inner{background:-webkit-linear-gradient(top, #d2d2c8 0, #f6f8ef 100%)}ul.ui-virtual-list-container>li.position_absolute{position:absolute}ul.ui-virtual-list-container>ul.position_absolute{position:absolute}.ui-scrollview-clip{position:relative}.ui-scrollview-view{overflow-x:hidden;overflow-y:visible}.ui-scrolllistview .ui-li-divider{z-index:10}.ui-scrollbar{position:absolute;overflow:hidden;opacity:0}.ui-scrollbar-visible{opacity:1}.ui-scrollbar-y{top:.09090909090909091rem;right:.09090909090909091rem;bottom:.09090909090909091rem;width:.36363636363636365rem}.ui-scrollbar-x{right:.09090909090909091rem;bottom:.09090909090909091rem;left:.09090909090909091rem;height:.36363636363636365rem}.ui-scrollbar-track{position:relative;width:100%;height:100%}.ui-scrollbar-thumb{position:absolute;top:0;left:0;background-color:#c6c4be}.ui-scrollbar-y .ui-scrollbar-thumb{width:.2272727272727273rem;height:100%;-o-border-radius:.09090909090909091rem;-ms-border-radius:.09090909090909091rem;-moz-border-radius:.09090909090909091rem;-webkit-border-radius:.09090909090909091rem;border-radius:.09090909090909091rem;-o-box-shadow:.045454545454545456rem .045454545454545456rem .09090909090909091rem #94928c;-ms-box-shadow:.045454545454545456rem .045454545454545456rem .09090909090909091rem #94928c;-moz-box-shadow:.045454545454545456rem .045454545454545456rem .09090909090909091rem #94928c;-webkit-box-shadow:.045454545454545456rem .045454545454545456rem .09090909090909091rem #94928c;box-shadow:.045454545454545456rem .045454545454545456rem .09090909090909091rem #94928c}.ui-scrollbar-x .ui-scrollbar-thumb{width:100%;height:.2272727272727273rem;-o-border-radius:.09090909090909091rem;-ms-border-radius:.09090909090909091rem;-moz-border-radius:.09090909090909091rem;-webkit-border-radius:.09090909090909091rem;border-radius:.09090909090909091rem}.ui-scroll-jump-top-bg{position:absolute;top:.4090909090909091rem;right:.5909090909090909rem;width:1.6818181818181819rem;height:1.6818181818181819rem}.ui-scroll-jump-left-bg{position:absolute;bottom:.4090909090909091rem;left:.5909090909090909rem;width:1.6818181818181819rem;height:1.6818181818181819rem}.ui-overflow-indicator-top{position:absolute;display:block;top:0;width:100%;height:.4545454545454546rem;opacity:0;background:-webkit-gradient(linear,left bottom,left top,color-stop(0, #fff),color-stop(1, #808080))}.ui-overflow-indicator-bottom{position:absolute;display:block;bottom:0;width:100%;height:.4545454545454546rem;opacity:0;background:-webkit-gradient(linear,left bottom,left top,color-stop(0, #808080),color-stop(1, #fff))}.ui-content.ui-scrollview-clip{padding:0}.ui-content.ui-scrollview-clip>div.ui-scrollview-view{margin:0;padding-left:.36363636363636365rem;padding-right:.36363636363636365rem}.ui-content.ui-scrollview-clip>.ui-listview.ui-scrollview-view{margin:0}@-webkit-keyframes ui-datetime-in{from{ -webkit-transform:translateY(0.6363636363636364rem) scale(0.9)}to{-webkit-transform:translateY(0) scale(1)}}@-webkit-keyframes ui-datetime-out{from{ opacity:.8;-webkit-transform:translateY(0) scale(0.6)}to{opacity:0;-webkit-transform:translateY(-.6363636363636364rem) scale(0.6)}}.ui-datefield .ui-datefield-seperator{display:inline-block;min-width:.4545454545454546rem;text-align:center}.ui-datefield .date,.ui-datefield .time,.ui-datefield .ui-datefield-tab{display:inline-block}.ui-datefield .ui-datefield-tab{min-width:.9090909090909092rem}.ui-datefield .ui-btn-box-s .ui-btn-inner.ui-btn-hastxt{padding:.1em .5em}.ui-datefield .ui-datefield-selected{display:inline-block;color:#3b73b6}.ui-datefield .ui-datefield-selected.in{-ms-animation:ui-datetime-in .3s 1 ease;-o-animation:ui-datetime-in .3s 1 ease;-moz-animation:ui-datetime-in .3s 1 ease;-webkit-animation:ui-datetime-in .3s 1 ease}.ui-datefield .ui-datefield-selected.out{-ms-animation:ui-datetime-out .3s 1 ease;-o-animation:ui-datetime-out .3s 1 ease;-moz-animation:ui-datetime-out .3s 1 ease;-webkit-animation:ui-datetime-out .3s 1 ease}.ui-datetime{margin:0;height:1.6363636363636365rem}.ui-datetime-text-main{position:relative;font-size:1rem;top:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;padding-top:.3em}.ui-datetime-text-main .ui-datefield-period.ui-btn{margin-top:-.3em;height:1.2727272727272727rem;right:auto;position:relative ! important}.ui-datetime-text-sub{top:.6818181818181819rem ! important;color:#3b73b6 ! important;background:transparent ! important;font-size:.7272727272727273rem ! important}.ui-datetimepicker-selector ul{padding:0;display:inline;list-style:none;vertical-align:middle;margin:0}.ui-datetimepicker-selector ul li{font-size:1rem;float:left;padding:.6818181818181819rem .18181818181818182rem 0 .18181818181818182rem;max-width:5.454545454545455rem;min-width:2.7272727272727275rem}.ui-datetimepicker-selector ul li a.ui-link{text-decoration:none;color:rgba(255,255,255,.7)}.ui-datetimepicker-selector ul li a.ui-link:hover{color:rgba(255,255,255,.7)}.ui-datetimepicker-selector ul li.current a.ui-link{color:#fff}.ui-datetimepicker{left:0!important;padding:0}.ui-datetimepicker .ui-popupwindow-padding{background:#3b73b6!important;border-radius:0!important;-ms-border-radius:0!important;-o-border-radius:0!important;-moz-border-radius:0!important;-webkit-border-radius:0!important;box-shadow:0 0 12px rgba(0,0,0,.6)!important;border-width:0!important;text-align:center!important}.ui-datetimepicker .ui-popupwindow-padding div{height:2.409090909090909rem}.ui-popupwindow-screen{background:#000;opacity:0;position:absolute;top:0;left:0;width:100%;height:100%;z-index:1200}.ui-popupwindow{position:absolute;z-index:1201!important;color:#f8f6ef;background:#f8f6ef}.ui-popupwindow .popup-title{width:100%;height:100%;font-size:1.0909090909090908rem;background:#5093b6}.ui-popupwindow .popup-title p{margin:0rem 0rem;padding:.5909090909090909rem 0rem}.ui-popupwindow .popup-text{width:100%;color:#000;font-size:1.0909090909090908rem;background:#f8f6ef}.ui-popupwindow .popup-text p{text-align:center;padding:1rem .7272727272727273rem}.ui-popupwindow .center_info{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center}.ui-popupwindow .center_title{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_basic_1btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_basic_1btn .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_basic_1btn .popup-button-bg .ui-btn{width:18.272727272727273rem;height:3.3636363636363638rem;margin:auto}.ui-popupwindow .center_basic_2btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_basic_2btn .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_basic_2btn .popup-button-bg .ui-btn{width:12.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_basic_3btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_basic_3btn .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_basic_3btn .popup-button-bg .ui-btn{width:8.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_title_1btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_title_1btn .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_title_1btn .popup-button-bg .ui-btn{width:18.272727272727273rem;height:3.3636363636363638rem;margin:auto}.ui-popupwindow .center_title_2btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_title_2btn .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_title_2btn .popup-button-bg .ui-btn{width:12.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_title_3btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_title_3btn .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_title_3btn .popup-button-bg .ui-btn{width:8.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_button_vertical{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_button_vertical .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:1px;padding-bottom:.7272727272727273rem;vertical-align:middle}.ui-popupwindow .center_button_vertical .popup-button-bg .ui-btn{width:16.181818181818183rem;height:3.3636363636363638rem;margin-top:.7272727272727273rem;margin-bottom:0rem;margin-left:auto;margin-right:auto}.ui-popupwindow .center_checkbox{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_checkbox .popup-check-bg{font-size:1.0909090909090908rem;background:#f8f6ef;width:100%;padding-top:0rem;padding-bottom:1rem;vertical-align:middle}.ui-popupwindow .center_checkbox .popup-check-bg .ui-checkbox .ui-btn{text-align:center;background:#f8f6ef;border:0rem}.ui-popupwindow .center_checkbox .popup-check-bg .ui-checkbox .ui-btn .ui-btn-inner{border:0rem}.ui-popupwindow .center_checkbox .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_checkbox .popup-button-bg .ui-btn{width:12.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_liststyle_1btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_liststyle_1btn .popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:23.272727272727273rem}.ui-popupwindow .center_liststyle_1btn .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_liststyle_1btn .popup-button-bg .ui-btn{width:18.272727272727273rem;height:3.3636363636363638rem;margin:auto}.ui-popupwindow .center_liststyle_2btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_liststyle_2btn .popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:23.272727272727273rem}.ui-popupwindow .center_liststyle_2btn .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_liststyle_2btn .popup-button-bg .ui-btn{width:12.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_liststyle_3btn{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_liststyle_3btn .popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:23.272727272727273rem}.ui-popupwindow .center_liststyle_3btn .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_liststyle_3btn .popup-button-bg .ui-btn{width:8.454545454545455rem;height:3.3636363636363638rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popupwindow .center_progressbar{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .center_progressbar .popup-text{font-size:1.1818181818181819rem;font-color:#999;background:#f8f6ef;width:100%;height:3.181818181818182rem}.ui-popupwindow .center_progressbar .popup-text p{height:100%;text-align:center;padding:1rem .7272727272727273rem 0rem .7272727272727273rem}.ui-popupwindow .center_progressbar .popup-text-bottom-bg{font-size:1.1818181818181819rem;font-color:#999;background:#f8f6ef;width:100%;vertical-align:middle}.ui-popupwindow .center_progressbar .popup-text-bottom-bg .text-left{width:40%;height:2.1818181818181817rem;padding:0rem .7272727272727273rem 0rem .7272727272727273rem;text-align:left;display:inline-block}.ui-popupwindow .center_progressbar .popup-text-bottom-bg .text-right{width:40%;height:2.1818181818181817rem;padding:0rem .7272727272727273rem 0rem .7272727272727273rem;text-align:right;display:inline-block}.ui-popupwindow .center_progressbar .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .center_progressbar .popup-button-bg .ui-btn{width:18.272727272727273rem;height:3.3636363636363638rem;margin:auto}.ui-popupwindow .center_progressbar .popup-progress-bg{background:#f8f6ef;width:100%;height:100%}.ui-popupwindow .centertext_progressbar{display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center;text-align:center}.ui-popupwindow .centertext_progressbar .popup-text{font-size:1.1818181818181819rem;font-color:#999;background:#f8f6ef;width:100%;padding-top:1rem;padding-bottom:.7272727272727273rem}.ui-popupwindow .centertext_progressbar .popup-text p{text-align:center}.ui-popupwindow .centertext_progressbar .popup-text-bottom-bg{font-size:1.1818181818181819rem;font-color:#999;background:#f8f6ef;width:100%;vertical-align:middle}.ui-popupwindow .centertext_progressbar .popup-text-bottom-bg .text-left{width:40%;height:1.8181818181818183rem;padding:.7272727272727273rem .7272727272727273rem 1rem .7272727272727273rem;text-align:left;display:inline-block}.ui-popupwindow .centertext_progressbar .popup-text-bottom-bg .text-right{width:40%;height:1.8181818181818183rem;padding:.7272727272727273rem .7272727272727273rem 1rem .7272727272727273rem;text-align:right;display:inline-block}.ui-popupwindow .centertext_progressbar .popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popupwindow .centertext_progressbar .popup-button-bg .ui-btn{width:18.272727272727273rem;height:3.3636363636363638rem;margin:auto}.ui-popupwindow .centertext_progressbar .popup-progress-bg{background:#f8f6ef;width:100%;height:100%}.ui-popupwindow .ui-btn.ui-btn-hover-s{background:#5e88a3}.ui-popupwindow .ui-btn.ui-btn-down-s{background:#43a0d9;background:-webkit-gradient(linear,left top,left bottom,from( #43a0d9),to( #388bb9));background:-moz-linear-gradient(top, #43a0d9, #388bb9);background:-ms-linear-gradient(top, #43a0d9, #388bb9);background:-o-linear-gradient(top, #43a0d9, #388bb9)}.ui-popupwindow>.ui-volumecontrol{display:table;margin:auto;background:rgba(0,0,0,.666667);width:18.90909090909091rem;height:30.727272727272727rem;padding-top:1rem}.ui-popupwindow>.ui-volumecontrol h1{font-size:1.0909090909090908rem;display:table;margin:auto;color:#c0c0c0}.ui-popupwindow>.ui-volumecontrol .ui-volumecontrol-icon{display:table;width:100%;height:5.818181818181818rem;padding-top:.9545454545454546rem;padding-bottom:.9545454545454546rem;padding-left:7.5rem;padding-right:7.5rem}.ui-popupwindow>.ui-volumecontrol .ui-volumecontrol-indicator{display:table;width:100%;height:19.09090909090909rem;padding-left:3.090909090909091rem;padding-right:3.090909090909091rem}.ui-popupwindow>.ui-volumecontrol .ui-corner-all{-o-border-radius:.3em!important;-ms-border-radius:.3em!important;-moz-border-radius:.3em!important;-webkit-border-radius:.3em!important;border-radius:.3em!important}.ui-popupwindow-corner-all{-o-border-radius:0!important;-ms-border-radius:0!important;-moz-border-radius:0!important;-webkit-border-radius:0!important;border-radius:0!important}.ui-ctxpopup{display:table}.ui-ctxpopup .ui-ctxpopup-row .ui-triangle-top{top:2px}.ui-ctxpopup .ui-ctxpopup-row .ui-triangle-left{left:2px}.ui-ctxpopup .ui-ctxpopup-row .ui-triangle-right{right:2px}.ui-ctxpopup .ui-ctxpopup-row .ui-triangle-bottom{bottom:2px}.ui-ctxpopup .ui-ctxpopup-row{display:table-row}.ui-ctxpopup .ui-ctxpopup-row .ui-ctxpopup-cell{display:table-cell}.ui-ctxpopup .ui-ctxpopup-row .ui-popupwindow-padding{background:#444;border:0;-ms-box-shadow:0rem 0rem .5454545454545454rem rgba(0,0,0,.6);-o-box-shadow:0rem 0rem .5454545454545454rem rgba(0,0,0,.6);-moz-box-shadow:0rem 0rem .5454545454545454rem rgba(0,0,0,.6);-webkit-box-shadow:0rem 0rem .5454545454545454rem rgba(0,0,0,.6);box-shadow:0rem 0rem .5454545454545454rem rgba(0,0,0,.6);-o-border-radius:.3em;-ms-border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em}.ui-ctxpopup .ui-listview li.ui-btn-up-s,.ui-ctxpopup .ui-listview li.ui-btn-hover-s{background:transparent}.ui-ctxpopup .ui-listview li:last-child{border-bottom-left-radius:.3em;border-bottom-right-radius:.3em}.ui-ctxpopup .ui-listview li:first-child{border-top-left-radius:.3em;border-top-right-radius:.3em}.ui-ctxpopup .ui-listview{max-width:28.181818181818183rem;border:0}.ui-ctxpopup .ui-listview>.ui-li{color:#fff;border-bottom-color:#2d2d2d;border-top-width:1px;border-top-color:#5b5b5b;margin-left:0;margin-right:0}.ui-ctxpopup .ui-listview>.ui-li:first-child,.ui-ctxpopup .ui-listview>.ui-li:last-child{border-top-width:0}.ui-ctxpopup .ui-listview>.ui-li .ui-btn-inner{margin:0;padding-left:.4545454545454546rem;padding-right:.4545454545454546rem}.ui-ctxpopup .ui-listview li.ui-btn-up-s>.ui-li>.ui-btn-text>a.ui-link-inherit,.ui-ctxpopup .ui-listview li.ui-btn-hover-s>.ui-li>.ui-btn-text>a.ui-link-inherit,.ui-ctxpopup .ui-listview li.ui-btn-down-s>.ui-li>.ui-btn-text>a.ui-link-inherit{color:#fff}.ui-ctxpopup .ui-listview>.ui-li:last-child{border:0}.ui-ctxpopup .horizontal{color:#fff}.ui-ctxpopup .horizontal .icon .ui-btn{padding:0;background:transparent ! important}.ui-ctxpopup .horizontal .icon .ui-btn .ui-btn-icon-only{width:4.363636363636363rem;height:2.909090909090909rem;padding:0}.ui-ctxpopup .horizontal .icon .ui-btn .ui-icon{top:0;height:inherit;width:inherit;margin:0;background-position:center;-ms-background-size:2.1818181818181817rem 2.1818181818181817rem;-moz-background-size:2.1818181818181817rem 2.1818181818181817rem;-o-background-size:2.1818181818181817rem 2.1818181818181817rem;-webkit-background-size:2.1818181818181817rem 2.1818181818181817rem;background-size:2.1818181818181817rem 2.1818181818181817rem}.ui-ctxpopup .horizontal .text{padding:0 .4545454545454546rem;min-width:2.1818181818181817rem}.ui-ctxpopup .horizontal a.ui-link{color:#fff;text-decoration:none}.ui-ctxpopup .horizontal ul{padding:0;display:inline-block;list-style:none;vertical-align:middle;margin:0}.ui-ctxpopup .horizontal li{line-height:1.4545454545454546rem;min-height:1.4545454545454546rem;min-width:2.1818181818181817rem;float:left;display:inline-block;border-right:1px solid #5b5b5b;text-align:center}.ui-ctxpopup .horizontal li:first-of-type{border-top-left-radius:.3em;border-bottom-left-radius:.3em;border-top-right-radius:0 ! important;border-left:0}.ui-ctxpopup .horizontal li:last-of-type{border-top-right-radius:.3em;border-bottom-right-radius:.3em;border-right:0;margin-right:0}.ui-ctxpopup .horizontal .ui-li:first-child,.ui-ctxpopup .horizontal .ui-li:last-child{border-left-width:0}.ui-ctxpopup .horizontal li:active,.ui-ctxpopup .horizontal td:active{background:#3b73b6}.ui-ctxpopup .button table .ui-btn{margin:0rem;padding:0;height:2.5454545454545454rem;width:6rem}.ui-arrow{border-style:solid;border-width:10px;width:0;height:0;position:absolute}.ui-arrow.top{border-color:transparent transparent #444 transparent}.ui-arrow.left{border-color:transparent transparent transparent #444}.ui-arrow.right{border-color:transparent #444 transparent transparent}.ui-arrow.bottom{border-color:#444 transparent transparent transparent}.ui-ctxpopup-container{z-index:1200;display:inline-bloack;position:absolute;padding:0;outline:0}.ui-ctxpopup-container .ui-popup{border:0;background:#444;-o-border-radius:.3em;-ms-border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em}.ui-ctxpopup-container .ui-listview li:first-child{border-top-left-radius:.3em;border-top-right-radius:.3em}.poptop{-webkit-transform-origin:0 0;-moz-transform-origin:0 0}.poptop.in{-webkit-transform:scale(1);-moz-transform:scale(1);opacity:1;-webkit-animation-name:scalepopin;-moz-animation-name:scalepopin;-webkit-animation-duration:350ms;-moz-animation-duration:350ms}.poptop.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;opacity:0;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.poptop.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein}.poptop.out.reverse{-webkit-transform:scale(0.8);-moz-transform:scale(0.8);-webkit-animation-name:scalepopout;-moz-animation-name:scalepopout}@-webkit-keyframes scalepopin{from{ -webkit-transform:scale(0.8);opacity:0}to{-webkit-transform:scale(1);opacity:1}}.popbottom{-webkit-transform-origin:0 100%;-moz-transform-origin:0 100%}.popbottom.in{-webkit-transform:scale(1);-moz-transform:scale(1);opacity:1;-webkit-animation-name:scalepopin;-moz-animation-name:scalepopin;-webkit-animation-duration:350ms;-moz-animation-duration:350ms}.popbottom.out{-webkit-animation-name:fadeout;-moz-animation-name:fadeout;opacity:0;-webkit-animation-duration:100ms;-moz-animation-duration:100ms}.popbottom.in.reverse{-webkit-animation-name:fadein;-moz-animation-name:fadein}.popbottom.out.reverse{-webkit-transform:scale(0.8);-moz-transform:scale(0.8);-webkit-animation-name:scalepopout;-moz-animation-name:scalepopout}@-moz-keyframes scalepopin{from{ -moz-transform:scale(0.8);opacity:0}to{-moz-transform:scale(1);opacity:1}}@-webkit-keyframes scalepopout{from{ -webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(0.8);opacity:0}}@-moz-keyframes scalepopout{from{ -moz-transform:scale(1);opacity:1}to{-moz-transform:scale(0.8);opacity:0}}@-webkit-keyframes ui-scale-animation{from{ -webkit-transform:scaleX(0)}to{-webkit-transform:scaleX(1)}}.ui-progressbar-value{height:100%;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0, #3677c3),color-stop(1, #96b8e0));-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem;-o-box-shadow:-1px -1px 1px #b3c8e2;-ms-box-shadow:-1px -1px 1px #b3c8e2;-moz-box-shadow:-1px -1px 1px #b3c8e2;-webkit-box-shadow:-1px -1px 1px #b3c8e2;box-shadow:-1px -1px 1px #b3c8e2}.ui-progressbar-bg{position:relative;overflow:hidden;top:.2272727272727273rem;height:.3181818181818182rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem;border:1px;border-style:solid;border-color:#a3a09e;-o-box-shadow:1px -1px 1px #a3a09e;-ms-box-shadow:1px -1px 1px #a3a09e;-moz-box-shadow:1px -1px 1px #a3a09e;-webkit-box-shadow:1px -1px 1px #a3a09e;box-shadow:1px -1px 1px #a3a09e;background-color:#cac8c4}.ui-progressbar{position:relative;margin-top:.8181818181818182rem;margin-bottom:.8181818181818182rem;margin-left:.9545454545454546rem;margin-right:.9545454545454546rem;height:.8181818181818182rem;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0, #f6f3ef),color-stop(1, #cac8c4));-o-box-shadow:1px 1px 0 #fff;-ms-box-shadow:1px 1px 0 #fff;-moz-box-shadow:1px 1px 0 #fff;-webkit-box-shadow:1px 1px 0 #fff;box-shadow:1px 1px 0 #fff;-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem}@-webkit-keyframes ui-rotate-animation{from{ -webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}.ui-progress-container-circle{position:absolute}.ui-li .ui-progress-container-circle{top:22%}.ui-progress-circle{position:relative;top:0;height:1.4545454545454546rem;width:1.4545454545454546rem;background:url(images/00_list_process_01.png) no-repeat;-ms-background-size:1.4545454545454546rem 1.4545454545454546rem;-moz-background-size:1.4545454545454546rem 1.4545454545454546rem;-o-background-size:1.4545454545454546rem 1.4545454545454546rem;-webkit-background-size:1.4545454545454546rem 1.4545454545454546rem;background-size:1.4545454545454546rem 1.4545454545454546rem}.ui-progress-circle-running{-webkit-animation:ui-rotate-animation 1s infinite linear}@-webkit-keyframes ui-move-animation{from{ -webkit-transform:translateY(-.6363636363636364rem)}to{-webkit-transform:translateY(0)}}.ui-progress-pending{position:relative;top:0;width:100%;height:.9545454545454546rem;padding-top:0;padding-bottom:0;background:-webkit-gradient(linear,left top,right bottom,color-stop(0%,rgba(0,0,0,0)),color-stop(25%,rgba(0,0,0,0)),color-stop(25%, #3677c3),color-stop(50%, #3677c3),color-stop(50%,rgba(0,0,0,0)),color-stop(75%,rgba(0,0,0,0)),color-stop(75%, #3677c3));background-color:#cac8c4;-ms-background-size:.6363636363636364rem .6363636363636364rem;-moz-background-size:.6363636363636364rem .6363636363636364rem;-o-background-size:.6363636363636364rem .6363636363636364rem;-webkit-background-size:.6363636363636364rem .6363636363636364rem;background-size:.6363636363636364rem .6363636363636364rem}.ui-progress-pending-running{-webkit-animation:ui-move-animation .5s infinite linear}label.ui-slider{display:block}select.ui-slider-switch{display:none}.ui-slider-container{position:relative;vertical-align:middle;height:.8181818181818182rem;margin-left:.7272727272727273rem;margin-right:.7272727272727273rem;margin-top:.8181818181818182rem;margin-bottom:.8181818181818182rem;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0, #f6f3ef),color-stop(1, #cac8c4));-o-box-shadow:1px 1px 0 #fff;-ms-box-shadow:1px 1px 0 #fff;-moz-box-shadow:1px 1px 0 #fff;-webkit-box-shadow:1px 1px 0 #fff;box-shadow:1px 1px 0 #fff;-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem}.ui-li>.ui-slider-container{margin-top:0;margin-bottom:0}.ui-slider-left-volume,.ui-slider-left-bright{position:absolute;vertical-align:middle;top:-.5rem;left:-2.272727272727273rem;height:1.6818181818181819rem;width:1.6818181818181819rem;background:url(images/controls/00_slider_button_brightness_01.png) no-repeat;-ms-background-size:1.6818181818181819rem 1.6818181818181819rem;-moz-background-size:1.6818181818181819rem 1.6818181818181819rem;-o-background-size:1.6818181818181819rem 1.6818181818181819rem;-webkit-background-size:1.6818181818181819rem 1.6818181818181819rem;background-size:1.6818181818181819rem 1.6818181818181819rem}.ui-slider-left-volume{background:url(images/controls/00_slider_button_volume_01.png) no-repeat;-ms-background-size:1.6818181818181819rem 1.6818181818181819rem;-moz-background-size:1.6818181818181819rem 1.6818181818181819rem;-o-background-size:1.6818181818181819rem 1.6818181818181819rem;-webkit-background-size:1.6818181818181819rem 1.6818181818181819rem;background-size:1.6818181818181819rem 1.6818181818181819rem}.ui-slider-right-volume,.ui-slider-right-bright{position:absolute;top:-.5rem;right:-2.272727272727273rem;height:1.6818181818181819rem;width:1.6818181818181819rem;vertical-align:middle;background:url(images/controls/00_slider_button_brightness_02.png) no-repeat;-ms-background-size:1.6818181818181819rem 1.6818181818181819rem;-moz-background-size:1.6818181818181819rem 1.6818181818181819rem;-o-background-size:1.6818181818181819rem 1.6818181818181819rem;-webkit-background-size:1.6818181818181819rem 1.6818181818181819rem;background-size:1.6818181818181819rem 1.6818181818181819rem}.ui-slider-right-volume{background:url(images/controls/00_slider_button_volume_02.png) no-repeat;-ms-background-size:1.6818181818181819rem 1.6818181818181819rem;-moz-background-size:1.6818181818181819rem 1.6818181818181819rem;-o-background-size:1.6818181818181819rem 1.6818181818181819rem;-webkit-background-size:1.6818181818181819rem 1.6818181818181819rem;background-size:1.6818181818181819rem 1.6818181818181819rem}.ui-slider-left-text{position:absolute;top:-.5rem;height:1.6818181818181819rem;text-align:center;color:#808080}.ui-slider-right-text{position:absolute;top:-.5rem;height:1.6818181818181819rem;text-align:center;color:#808080}div.ui-slider:not(.ui-toggle-switch){position:relative;top:.2272727272727273rem;height:.3181818181818182rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem;border:1px;border-style:solid;border-color:#a3a09e;-o-box-shadow:1px 1px 0 #000;-ms-box-shadow:1px 1px 0 #000;-moz-box-shadow:1px 1px 0 #000;-webkit-box-shadow:1px 1px 0 #000;box-shadow:1px 1px 0 #000;background-color:#cac8c4}div.ui-slider:not(.ui-toggle-switch) .ui-btn{top:-.75rem;margin-top:0}div.ui-slider:not(.ui-toggle-switch) .ui-btn-inner{padding:.3rem 0 0 0}div.ui-slider:not(.ui-toggle-switch) .ui-btn-text{color:#3b73b6}a.ui-slider-handle{position:relative;z-index:10;width:1.6363636363636365rem;height:1.6363636363636365rem;margin-left:-.8636363636363636rem;color:#3b73b6;font-size:.95rem;background:url(images/controls/00_slider_handle.png) no-repeat;-ms-background-size:1.6363636363636365rem 1.6363636363636365rem;-moz-background-size:1.6363636363636365rem 1.6363636363636365rem;-o-background-size:1.6363636363636365rem 1.6363636363636365rem;-webkit-background-size:1.6363636363636365rem 1.6363636363636365rem;background-size:1.6363636363636365rem 1.6363636363636365rem}.ui-slider-popup{position:absolute!important;z-index:1200;width:2.0454545454545454rem;height:2.4545454545454546rem;padding-top:.1rem;color:#f9f9f9;text-align:center;font-size:1.5rem;background:url(images/controls/00_slider_popup_bg.png) no-repeat;-ms-background-size:2.0454545454545454rem 2.4545454545454546rem;-moz-background-size:2.0454545454545454rem 2.4545454545454546rem;-o-background-size:2.0454545454545454rem 2.4545454545454546rem;-webkit-background-size:2.0454545454545454rem 2.4545454545454546rem;background-size:2.0454545454545454rem 2.4545454545454546rem}.ui-slider-bg{position:absolute;height:.3181818181818182rem;width:0;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0, #3677c3),color-stop(1, #96b8e0));-o-border-radius:.4545454545454546rem;-ms-border-radius:.4545454545454546rem;-moz-border-radius:.4545454545454546rem;-webkit-border-radius:.4545454545454546rem;border-radius:.4545454545454546rem;-o-box-shadow:-1px -1px 1px #b3c8e2;-ms-box-shadow:-1px -1px 1px #b3c8e2;-moz-box-shadow:-1px -1px 1px #b3c8e2;-webkit-box-shadow:-1px -1px 1px #b3c8e2;box-shadow:-1px -1px 1px #b3c8e2}.ui-slider-handle-press{position:absolute;z-index:15;width:1.6818181818181819rem;height:1.6818181818181819rem;background:url(images/controls/00_slider_handle_press.png) no-repeat;-ms-background-size:1.6363636363636365rem 1.6363636363636365rem;-moz-background-size:1.6363636363636365rem 1.6363636363636365rem;-o-background-size:1.6363636363636365rem 1.6363636363636365rem;-webkit-background-size:1.6363636363636365rem 1.6363636363636365rem;background-size:1.6363636363636365rem 1.6363636363636365rem}.ui-gallery{position:relative;width:100%}.ui-gallery-bg{display:none;position:absolute;text-align:center;width:100%}@-webkit-keyframes ui-ticker-show{from{ opacity:0;-webkit-transform:translateY(-2.272727272727273rem);top:-2.272727272727273rem}to{opacity:1;-webkit-transform:translateY(0);top:0}}@-webkit-keyframes ui-ticker-hide{from{ opacity:1;-webkit-transform:translateY(0);top:0}to{opacity:0;-webkit-transform:translateY(-2.272727272727273rem);top:-2.272727272727273rem}}.ui-ticker{position:fixed;display:none;left:0;width:100%;height:2.272727272727273rem;z-index:2147483547;background:#444}.ui-ticker.fix{display:block;top:0}.ui-ticker.show{display:block;-ms-animation:ui-ticker-show .8s 1 ease;-o-animation:ui-ticker-show .8s 1 ease;-moz-animation:ui-ticker-show .8s 1 ease;-webkit-animation:ui-ticker-show .8s 1 ease;top:0}.ui-ticker.hide{display:block;-o-animation:ui-ticker-hide .8s 1 ease;-ms-animation:ui-ticker-hide .8s 1 ease;-webkit-animation:ui-ticker-hide .8s 1 ease;top:-2.272727272727273rem}.ui-ticker-btn{position:relative;margin-top:.4545454545454546rem;margin-left:.36363636363636365rem;margin-right:.36363636363636365rem;vertical-align:middle;float:right}.ui-ticker-btn .ui-btn-inner{padding:.15rem 0 0 0;height:1.2727272727272727rem;width:3.5rem;font-size:.81rem;color:#fff;background:#404040;border:1px;border-color:#323232;box-shadow:0 0 1px 1px #323232}.ui-ticker-btn .ui-btn-box-s.ui-btn-up-s{background:#404040;box-shadow:0 0 1px 1px #323232;border-color:#323232}.ui-ticker-btn .ui-btn-box-s.ui-btn-hover-s{background:#404040;box-shadow:0 0 1px 1px #323232;border-color:#323232}.ui-ticker-icon{position:absolute;top:0;height:1.4545454545454546rem;width:1.4545454545454546rem;margin-top:.4090909090909091rem;margin-bottom:.4090909090909091rem;margin-left:.36363636363636365rem;margin-right:.36363636363636365rem;vertical-align:middle}.ui-ticker-text1-bg{position:absolute;top:0;height:.8181818181818182rem;left:2.1818181818181817rem;margin-top:.36363636363636365rem;font-size:.68rem;color:#fff}.ui-ticker-text2-bg{position:absolute;top:0;height:.7272727272727273rem;left:2.1818181818181817rem;margin-top:1.1818181818181819rem;font-size:.54rem;color:#fff}@-webkit-keyframes ui-smallpopup-show{from{ opacity:0;-webkit-transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1)}}@-webkit-keyframes ui-smallpopup-hide{from{ opacity:1;left:0;-webkit-transform:scaleY(1)}to{opacity:0;left:0;-webkit-transform:scaleY(0)}}.ui-smallpopup{position:fixed;display:none;left:0;width:100%;z-index:1100;background:#444;vertical-align:middle;font-size:.72rem;word-break:break-all}.ui-smallpopup.fix{display:block}.ui-smallpopup.show{display:block;-moz-animation:ui-smallpopup-show .5s 1 ease;-ms-animation:ui-smallpopup-show .5s 1 ease;-o-animation:ui-smallpopup-show .5s 1 ease;-webkit-animation:ui-smallpopup-show .5s 1 ease}.ui-smallpopup.hide{display:block;left:-100%;-moz-animation:ui-smallpopup-hide .5s 1 ease;-ms-animation:ui-smallpopup-hide .5s 1 ease;-o-animation:ui-smallpopup-hide .5s 1 ease;-webkit-animation:ui-smallpopup-hide .5s 1 ease}.ui-smallpopup-text-bg{position:relative;margin-top:.18181818181818182rem;margin-bottom:.18181818181818182rem;margin-left:.36363636363636365rem;margin-right:.36363636363636365rem;color:#fff}.ui-swipe{list-style-type:none;overflow:hidden}.ui-swipe-item{height:1.1818181818181819rem;-ms-user-select:none;-o-user-select:none;-moz-user-select:none;-webkit-user-select:none;-user-select:none;opacity:0;text-align:center}.ui-swipe-item .ui-btn{margin-top:-1.5em ! important;position:relative ! important}.ui-swipe-item p{margin:0}.ui-swipe-item-cover{position:absolute;border:0;top:0;left:0;width:100%;height:100%;z-index:100}.ui-swipe-item-cover .ui-swipe-item-cover-inner{position:absolute;padding-top:.6818181818181819rem;padding-bottom:.6818181818181819rem;padding-left:.36363636363636365rem;width:100%;text-align:left}.ui-swipe-item-cover .ui-swipe-item-cover-inner .ui-li-text-sub{position:absolute;padding-right:.7272727272727273rem}.ui-swipe-item-cover p{margin:0}.ui-fastscroll{position:absolute;right:0rem;background-color:#e6e3d8;width:1.1363636363636365rem;-ms-user-select:none;-o-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none;margin:0;padding-right:.08em;opacity:1}.ui-fastscroll ul{list-style-type:none;margin:0;padding:0}.ui-fastscroll li{cursor:pointer;color:#a09f9a;padding:.09090909090909091rem .09090909090909091rem .09090909090909091rem .09090909090909091rem;text-align:center;vertical-align:middle;font-size:.7272727272727273rem;font-weight:700;border-left-width:.13636363636363635rem;border-left-color:#3b73b6;border-left-style:solid;border-top-width:.13636363636363635rem;border-top-color:#e6e3d8}.ui-fastscroll2{position:absolute;right:0rem;-ms-user-select:none;-o-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none;margin:0;padding-right:.08em;opacity:1}.ui-fastscroll2 ul{list-style-type:none;margin:0;padding:0}.ui-fastscroll2 li{cursor:pointer;color:#a09f9a;padding:.09090909090909091rem .09090909090909091rem .09090909090909091rem .09090909090909091rem;text-align:right}.ui-fastscroll-bg{position:absolute;right:0rem;background-color:#e6e3d8;width:1.1363636363636365rem;z-index:10;top:0}.ui-fastscroll-popup{position:absolute;background:#3b73b6;color:#fff;padding:.4545454545454546rem 1.3636363636363638rem;-ms-box-shadow:.36363636363636365rem .4545454545454546rem 0rem rgba(199,199,199,.5);-o-box-shadow:.36363636363636365rem .4545454545454546rem 0rem rgba(199,199,199,.5);-moz-box-shadow:.36363636363636365rem .4545454545454546rem 0rem rgba(199,199,199,.5);-webkit-box-shadow:.36363636363636365rem .4545454545454546rem 0rem rgba(199,199,199,.5);box-shadow:.36363636363636365rem .4545454545454546rem 0rem rgba(199,199,199,.5);text-align:center;font-size:3.409090909090909rem;font-weight:700;display:none;box-sizing:border-box;left:50%;top:50%}li.ui-fastscroll-hover{color:#3b73b6}li.ui-fastscroll-hover,li.ui-fastscroll-hover-up,li.ui-fastscroll-hover-down{background:#f8f6ef;border-style:solid;border-color:#3b73b6;border-width:0;border-right-width:.13636363636363635rem;border-left-width:1px;border-left-color:#f8f6ef}li.ui-fastscroll-hover{padding-top:.045454545454545456rem;padding-bottom:.045454545454545456rem}li.ui-fastscroll-hover-first-item{padding-top:.09090909090909091rem}li.ui-fastscroll-hover-up{border-top-width:.13636363636363635rem;padding-top:0}li.ui-fastscroll-hover-down{border-bottom-width:.13636363636363635rem;padding-bottom:0}div.ui-slider.ui-toggle-switch{width:3rem;height:1.590909090909091rem;background-color:transparent;margin-top:.2272727272727273rem;margin-bottom:.2272727272727273rem}div.ui-slider.ui-toggle-switch .ui-slider-label{position:absolute;width:3rem;height:1.590909090909091rem;background-size:100% 100%;background-repeat:no-repeat;background-color:transparent}div.ui-slider.ui-toggle-switch .ui-slider-label.ui-slider-label-a{background-image:url(images/00_button_on.png)}div.ui-slider.ui-toggle-switch .ui-slider-label.ui-slider-label-b{background-image:url(images/00_button_off.png)}div.ui-slider.ui-toggle-switch .ui-slider-inneroffset a{background:0}.ui-slider-switch:not(.ui-toggle-switch){width:4.181818181818182rem}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch){position:relative;margin-top:.2272727272727273rem;margin-bottom:.2272727272727273rem;height:1.4545454545454546rem;top:0;margin:.2272727272727273rem;border-radius:.6818181818181819rem}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) .ui-slider-inneroffset{position:relative;margin:-1px .7272727272727273rem;z-index:1}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) a.ui-slider-handle{position:absolute;background:#fff;background-image:-webkit-gradient(radial,50% 50%,0,50% 50%,50,from( #f9f9f9),to( #323232));-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);top:50%;margin:1px 0 0 -.6818181818181819rem;border-radius:.6818181818181819rem;border:2px solid gray;width:1.2727272727272727rem;height:1.2727272727272727rem}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) a.ui-slider-handle-snapping{-webkit-transition:left 70ms linear}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) span{position:absolute;overflow:hidden;text-align:center;height:1.4545454545454546rem;font-weight:700;font-size:.7272727272727273rem;border-radius:.6818181818181819rem;white-space:nowrap;line-height:2}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) span.ui-slider-label-a{left:0;color:#fff;z-index:1;text-indent:-1.5em}div.ui-slider.ui-slider-switch:not(.ui-toggle-switch) span.ui-slider-label-b{right:0;color:#000;z-index:0;text-indent:1.5em}.ui-slider-switch .ui-slider-handle .ui-btn-inner{padding:0}.ui-triangle-container{position:relative}.ui-triangle-container .ui-triangle{position:absolute;border-style:solid;border-color:transparent;border-width:10px}.ui-triangle-container .ui-triangle-top{top:0;border-top-width:0;border-left-color:transparent;border-right-color:transparent;margin-left:-10px}.ui-triangle-container .ui-triangle-bottom{bottom:0;border-bottom-width:0;border-left-color:transparent;border-right-color:transparent;margin-left:-10px}.ui-triangle-container .ui-triangle-left{left:0;margin-top:-10px;border-left-width:0;border-left-color:transparent;border-right-color:transparent}.ui-triangle-container .ui-triangle-right{right:0;margin-top:-10px;border-right-width:0;border-left-color:transparent;border-right-color:transparent}.ui-triangle-container-top{height:10px;top:0;margin-top:-10px}.ui-triangle-container-bottom{height:10px;bottom:0;margin-bottom:-10px}.ui-triangle-container-left{width:10px}.ui-triangle-container-right{width:10px}.ui-tokentextarea{display:table;outline:0;position:relative}.ui-tokentextarea .ui-tokentextarea-label{display:inline-block;position:relative;margin-left:5px;margin-right:5px;padding:10px 0;color:#666;font-weight:700;text-align:center;font-size:1em}.ui-tokentextarea-input{outline:0;position:relative;border:0!important;padding:0!important;margin:8px;color:#222;text-align:left;font-size:1em}.ui-tokentextarea-input-visible{display:inline-block!important}.ui-tokentextarea-input-invisible{display:none!important}.ui-tokentextarea div{display:inline-block;text-align:center;cursor:pointer;position:relative;margin-left:5px;margin-right:5px;margin-bottom:5px;margin-top:5px;padding:3px 8px;font-size:1em;text-shadow:0 .1em .1em rgba(0,0,0,.3);-ms-border-radius:.2em;-o-border-radius:.2em;-webkit-border-radius:.2em;-moz-border-radius:.2em;border-radius:.2em;-o-box-shadow:0 .1em .1em rgba(0,0,0,.2);-ms-box-shadow:0 .1em .1em rgba(0,0,0,.2);-moz-box-shadow:0 .1em .1em rgba(0,0,0,.2);-webkit-box-shadow:0 .1em .1em rgba(0,0,0,.2);box-shadow:0 .1em .1em rgba(0,0,0,.2);color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}div.ui-tokentextarea-block{background-color:#5f8abd;background-image:url(./images/00_contacts_button_header.png);background-size:contain;background-repeat:no-repeat;padding-left:11px}div.ui-tokentextarea-sblock{background-color:#365984;background-image:url(./images/00_contacts_button_header_press.png);background-size:contain;background-repeat:no-repeat;padding-left:11px}.ui-tokentextarea .ui-tokentextarea-desclabel{display:inline-block;outline:0;position:relative;border:0;color:#666;text-align:left;font-size:1em}.ui-tokentextarea-link-base{position:absolute;right:0;bottom:.2em}.ui-handler{position:absolute;overflow:hidden;opacity:0}.ui-handler-visible{opacity:1}.ui-handler-direction-y{top:.2272727272727273rem;right:.2272727272727273rem;bottom:.2272727272727273rem;width:1.0909090909090908rem}.ui-handler-direction-x{right:.2272727272727273rem;bottom:.2272727272727273rem;left:.2272727272727273rem;height:1.0909090909090908rem}.ui-handler-track{position:relative;width:100%;height:100%}.ui-handler-thumb{position:absolute;top:0;left:0;background-position:center;background-repeat:no-repeat;-o-border-radius:.11363636363636365rem;-ms-border-radius:.11363636363636365rem;-moz-border-radius:.11363636363636365rem;-webkit-border-radius:.11363636363636365rem;border-radius:.11363636363636365rem}.ui-handler-direction-y .ui-handler-thumb{width:1.0909090909090908rem;height:4.863636363636364rem;background-size:1.0909090909090908rem .9090909090909092rem}.ui-handler-direction-x .ui-handler-thumb{width:4.863636363636364rem;height:1.0909090909090908rem;background-size:.9090909090909092rem 1.0909090909090908rem}.ui-handler-s .ui-handler-thumb{background-color:rgba(150,150,150,.5)}.ui-handler-s .ui-handler-direction-y .ui-handler-thumb{background-image:url("images/00_scroll_bar_handler.png")}.ui-handler-s .ui-handler-direction-x .ui-handler-thumb{background-image:url("images/00_scroll_bar_handler_hor.png")}.ui-virtualgrid{overflow:hidden;position:absolute}.ui-virtualgrid-wrapblock{position:absolute;left:0}.ui-virtualgrid-wrapblock-x{float:left;overflow:hidden}.ui-scrollbar-thumb-x{width:1.5rem!important}.ui-scrollbar-thumb-y{height:1.5rem!important}.ui-virtualgrid-overflow-indicator-x-top{position:absolute;display:block;left:0;top:0;width:56%;height:100%;opacity:0;background-repeat:no-repeat;-webkit-background-size:100% 100%;background-image:url(./images/00_grid_overscrolling_left.png);pointer-events:none}.ui-virtualgrid-overflow-indicator-x-bottom{position:absolute;display:block;right:0;bottom:0;width:56%;height:100%;opacity:0;background-repeat:no-repeat;-webkit-background-size:100% 100%;background-image:url(./images/00_grid_overscrolling_right.png);pointer-events:none}.ui-virtualgrid-overflow-indicator-y-top{position:absolute;display:block;top:0;width:100%;height:32%;opacity:0;background-repeat:no-repeat;-webkit-background-size:100% 100%;background-image:url(./images/00_grid_overscrolling_top.png);pointer-events:none}.ui-virtualgrid-overflow-indicator-y-bottom{position:absolute;display:block;bottom:0;width:100%;height:32%;opacity:0;background-repeat:no-repeat;-webkit-background-size:100% 100%;background-image:url(./images/00_grid_overscrolling_bottom.png);pointer-events:none}.ui-content.ui-virtualgrid-content{padding:0}.ui-multimediaview{background-color:#f9f9f9;overflow:hidden}.ui-multimediaview-wrap{width:100%;padding:0;position:relative;overflow:hidden}.ui-multimediaview-siblings-off{display:none!important}.ui-multimediaview-control span{display:inline-block}.ui-multimediaview-video{position:absolute}.ui-multimediaview-control{display:block;z-index:1002;padding:0;margin:0;outline:0;border:0;height:1.9090909090909092rem;text-align:left;overflow:hidden}.ui-multimediaview-control span.ui-button{background-position:center center;background-size:80%;background-repeat:no-repeat;width:1.6818181818181819rem;height:1.6818181818181819rem;margin:.09090909090909091rem}.ui-multimediaview-control .ui-playpausebutton{float:left}.ui-multimediaview-control .ui-timestamplabel{text-align:center;float:left}.ui-multimediaview-control .ui-timestamplabel p{margin-top:-.22272727272727275rem;margin-left:.09090909090909091rem;padding:0;text-align:center;font-size:.5rem;line-height:.6363636363636364rem;text-align:left}.ui-multimediaview-control .ui-durationlabel{text-align:center;float:right}.ui-multimediaview-control .ui-durationlabel p{margin-top:-.22272727272727275rem;margin-right:.09090909090909091rem;padding:0;text-align:center;font-size:.5rem;line-height:.6363636363636364rem;text-align:right}.ui-multimediaview-bar{margin-top:.22272727272727275rem;float:left}.ui-multimediaview-bar-bg{height:.36363636363636365rem;border-radius:1.5em}.ui-multimediaview-bar-highlight{height:.36363636363636365rem;position:absolute;border-radius:1.5em}.ui-multimediaview-control .ui-seekbar{margin-left:.09090909090909091rem}.ui-multimediaview-control .ui-seekbar .ui-duration{width:100%}.ui-multimediaview-control .ui-volumecontrol{width:5rem;height:100%;float:left}.ui-multimediaview-control .ui-volumecontrol .ui-volumebar{margin-left:.6818181818181819rem}.ui-multimediaview-control .ui-volumecontrol .ui-volumebar .ui-guide{width:3.8636363636363638rem}.ui-multimediaview-control .ui-volumecontrol .ui-volumebar .ui-handle{margin:0;padding:0;width:.6818181818181819rem;height:.6818181818181819rem;border-style:solid;border-width:1px;border-radius:1.5em}.ui-fullscreen-parents{padding:0!important;margin:0!important;width:100%!important;height:100%!important;overflow:hidden}.ui-multimediaview-s .ui-multimediaview-video{background-color:rgba(248,246,239,.5)}.ui-multimediaview-s .ui-timestamplabel{color:#4a84c9}.ui-multimediaview-s .ui-durationlabel{color:#808080}.ui-multimediaview-s span.ui-button{background-color:#f8f6ef}.ui-multimediaview-s span.ui-play-icon{background-image:url(./images/00_button_play.png)}.ui-multimediaview-s span.ui-pause-icon{background-image:url(./images/00_button_pause.png)}.ui-multimediaview-s span.ui-volume-icon{background-image:url(./images/controls/00_slider_button_volume_02.png)}.ui-multimediaview-s span.ui-mute-icon{background-image:url(./images/controls/00_slider_button_volume_01.png)}.ui-multimediaview-s span.ui-fullscreen-on{background-image:url(./images/00_button_fullscreen_on.png)}.ui-multimediaview-s span.ui-fullscreen-off{background-image:url(./images/00_button_fullscreen_off.png)}.ui-multimediaview-s .ui-seekbar .ui-duration{background-color:#cbc8c5}.ui-multimediaview-s .ui-seekbar .ui-currenttime{background-color:#4a84c9;background-image:-webkit-gradient(linear,left top,left bottom,from( #6289d9),to( #295b98));background-image:-moz-linear-gradient(top, #6289d9, #295b98);background-image:-o-linear-gradient(top, #6289d9, #295b98);background-image:-ms-linear-gradient(top, #6289d9, #295b98)}.ui-multimediaview-s .ui-volumebar .ui-guide{background-color:#cbc8c5}.ui-multimediaview-s .ui-volumebar .ui-value{background-color:#4a84c9;background-image:-webkit-gradient(linear,left top,left bottom,from( #6289d9),to( #295b98));background-image:-moz-linear-gradient(top, #6289d9, #295b98);background-image:-o-linear-gradient(top, #6289d9, #295b98);background-image:-ms-linear-gradient(top, #6289d9, #295b98)}.ui-multimediaview-s .ui-volumebar .ui-handle{background-color:#f9f9f9;background-image:-webkit-gradient(linear,left top,left bottom,from( #fff),to( #e6e6e6));background-image:-moz-linear-gradient(top, #fff, #e6e6e6);background-image:-o-linear-gradient(top, #fff, #e6e6e6);background-image:-ms-linear-gradient(top, #fff, #e6e6e6);border-color:#bab9b4}.ui-popup-screen{top:0;left:0;width:100%;height:100%;border:0;position:absolute;filter:Alpha(Opacity=50);opacity:0}.ui-popup-screen-background-hack{background-color:#000;filter:Alpha(Opacity=0)}@-webkit-keyframes popup-fadein{from{ opacity:0}to{opacity:.5}}@-moz-keyframes popup-fadein{from{ opacity:0}to{opacity:.5}}@-webkit-keyframes popup-fadeout{from{ opacity:.5}to{opacity:0}}@-moz-keyframes popup-fadeout{from{ opacity:.5}to{opacity:0}}.ui-popup-screen.fade.in{opacity:.5;-webkit-animation-name:popup-fadein;-moz-animation-name:popup-fadein}.ui-popup-screen.fade.out{opacity:0;-webkit-animation-name:popup-fadeout;-moz-animation-name:popup-fadeout}.ui-popup.ui-content,.ui-popup .ui-content{overflow:visible}.ui-popup>img{width:auto;height:auto;max-width:100%;max-height:100%;vertical-align:middle}.ui-popup iframe{vertical-align:middle}@media all and (min-width: 450px){.ui-popup .ui-field-contain label.ui-submit,.ui-popup .ui-field-contain .ui-controlgroup-label,.ui-popup .ui-field-contain label.ui-select,.ui-popup .ui-field-contain label.ui-input-text{ font-size:16px;line-height:1.4;display:block;font-weight:400;margin:0 0 .3em}.ui-popup .ui-field-contain .ui-btn.ui-submit,.ui-popup .ui-field-contain .ui-controlgroup-controls,.ui-popup .ui-field-contain .ui-select,.ui-popup .ui-field-contain input.ui-input-text,.ui-popup .ui-field-contain textarea.ui-input-text,.ui-popup .ui-field-contain .ui-input-search{width:100%;display:block}}.ui-popup>.ui-btn-left,.ui-popup>.ui-btn-right{position:absolute;top:-9px;margin:0;z-index:1101}.ui-popup>.ui-btn-left{left:-9px}.ui-popup>.ui-btn-right{right:-9px}.ui-popup-screen{background:#000;opacity:0;position:absolute;top:0;left:0;width:100%;height:100%;z-index:1200}.ui-overlay-dim{opacity:.7}.ui-popup-scroller-bg{width:100%}.ui-popup-container{position:absolute;width:86.12%;z-index:1201!important;background:#f8f6ef;text-align:center;outline-color:#f8f6ef;display:-moz-box;display:-webkit-box;display:box;-ms-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-box-orient:vertical;box-orient:vertical;-ms-box-align:center;-moz-box-align:center;-o-box-align:center;-webkit-box-align:center;box-align:center;-ms-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-webkit-box-pack:center;box-pack:center}.ui-popup-container .ui-popup{padding:3px 2px 2px 2px;background:#f8f6ef;width:100%;word-wrap:break-word}.ui-popup-container .ui-popup>.ui-popup-title,.ui-popup-container .ui-popup>.ui-popup-text,.ui-popup-container .ui-popup>.ui-popup-button-bg{width:100%}.ui-popup-container .ui-popup-title{width:100%;height:1.8181818181818183rem;text-align:left;color:#3b73b6;font-size:1.0909090909090908rem;font-weight:700}.ui-popup-container .ui-popup-title h1{font-size:1.0909090909090908rem;font-weight:700;color:#3b73b6;margin:0;padding-top:.4545454545454546rem;padding-left:.7272727272727273rem}.ui-popup-container .ui-popup-text{margin-top:1rem;margin-bottom:1rem;color:#000;font-size:.9090909090909092rem;background:#f8f6ef;text-align:center}.ui-popup-container .ui-popup-text .ui-li .ui-radio label,.ui-popup-container .ui-popup-text .ui-li .ui-checkbox label{background:transparent}.ui-popup-container .ui-popup-text input{display:inline-block}.ui-popup-container .ui-popup-button-bg{font-size:1.4545454545454546rem;height:1.6818181818181819rem;padding-top:.4545454545454546rem;padding-bottom:.4545454545454546rem;width:100%;vertical-align:middle}.ui-popup-container .ui-popup-button-bg>.ui-btn{display:inline-block;margin:auto;height:1.6818181818181819rem}.ui-popup-container .ui-popup-button-bg .ui-btn-inner{padding-top:.2272727272727273rem;padding-bottom:.2272727272727273rem;padding-left:.9090909090909092rem;padding-right:.9090909090909092rem}.ui-popup-container .center_basic_3btn .ui-btn,.ui-popup-container .center_title_3btn .ui-btn{max-width:3.6363636363636367rem;height:1.6818181818181819rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popup-container .center_button_vertical .ui-popup-button-bg{display:block;height:auto}.ui-popup-container .center_button_vertical .ui-popup-button-bg>.ui-btn{display:block;width:9.090909090909092rem}.ui-popup-container .center_checkbox .ui-popup-check-bg{font-size:.9090909090909092rem;background:#f8f6ef;width:100%;padding-top:0rem;padding-bottom:1rem;vertical-align:middle}.ui-popup-container .center_checkbox .ui-popup-check-bg .ui-checkbox .ui-btn{text-align:center;background:#f8f6ef;border:0rem}.ui-popup-container .center_checkbox .ui-popup-check-bg .ui-checkbox .ui-btn .ui-btn-inner{border:0rem}.ui-popup-container .center_checkbox .ui-popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_checkbox .ui-popup-button-bg .ui-btn{width:5rem;height:1.6818181818181819rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popup-container .center_liststyle_1btn .ui-popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:11.636363636363637rem}.ui-popup-container .center_liststyle_1btn .ui-popup-button-bg{padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_liststyle_2btn .ui-popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:11.636363636363637rem}.ui-popup-container .center_liststyle_2btn .ui-popup-button-bg{padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_liststyle_2btn .ui-popup-button-bg .ui-btn{width:5rem;height:1.6818181818181819rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popup-container .center_liststyle_2btn .ui-popup-button-bg .ui-btn .ui-btn-inner{padding-top:.2272727272727273rem;padding-bottom:.2272727272727273rem;padding-left:.9090909090909092rem;padding-right:.9090909090909092rem}.ui-popup-container .center_title_2btn .ui-popup-button-bg{padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_title_2btn .ui-popup-button-bg .ui-btn{width:5.454545454545455rem;height:1.6818181818181819rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popup-container .center_title_2btn .ui-popup-button-bg .ui-btn .ui-btn-inner{padding-top:.2272727272727273rem;padding-bottom:.2272727272727273rem;padding-left:.9090909090909092rem;padding-right:.9090909090909092rem}.ui-popup-container .center_liststyle_3btn .ui-popup-scroller-bg{width:100%;overflow:hidden;background:#f8f6ef;height:11.636363636363637rem}.ui-popup-container .center_liststyle_3btn .ui-popup-button-bg{padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_liststyle_3btn .ui-popup-button-bg .ui-btn{max-width:3.6363636363636367rem;height:1.6818181818181819rem;margin-top:0rem;margin-bottom:0rem;margin-left:.2272727272727273rem;margin-right:.2272727272727273rem;display:inline-block}.ui-popup-container .center_progressbar{text-align:center}.ui-popup-container .center_progressbar .ui-popup-text{font-size:1.1818181818181819rem;font-color:#999;background:#f8f6ef;width:100%;height:3.181818181818182rem}.ui-popup-container .center_progressbar .ui-popup-text p{height:100%;text-align:center;padding:1rem .7272727272727273rem 0rem .7272727272727273rem}.ui-popup-container .center_progressbar .ui-popup-text-bottom-bg{font-size:1.1818181818181819rem;font-color:#999;background:#f8f6ef;width:100%;vertical-align:middle}.ui-popup-container .center_progressbar .ui-popup-text-bottom-bg .text-left{width:40%;height:2.1818181818181817rem;padding:0rem .7272727272727273rem 0rem .7272727272727273rem;text-align:left;display:inline-block}.ui-popup-container .center_progressbar .ui-popup-text-bottom-bg .text-right{width:40%;height:2.1818181818181817rem;padding:0rem .7272727272727273rem 0rem .7272727272727273rem;text-align:right;display:inline-block}.ui-popup-container .center_progressbar .ui-popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .center_progressbar .ui-popup-button-bg .ui-btn{width:9.136363636363637rem;height:1.6818181818181819rem;margin:auto}.ui-popup-container .center_progressbar .ui-popup-progress-bg{background:#f8f6ef;width:100%;height:100%}.ui-popup-container .centertext_progressbar{text-align:center}.ui-popup-container .centertext_progressbar .ui-popup-text{font-size:1.1818181818181819rem;font-color:#999;background:#f8f6ef;width:100%;padding-top:1rem;padding-bottom:.7272727272727273rem}.ui-popup-container .centertext_progressbar .ui-popup-text p{text-align:center}.ui-popup-container .centertext_progressbar .ui-popup-text-bottom-bg{font-size:1.1818181818181819rem;font-color:#999;background:#f8f6ef;width:100%;vertical-align:middle}.ui-popup-container .centertext_progressbar .ui-popup-text-bottom-bg .text-left{width:40%;height:1.8181818181818183rem;padding:.7272727272727273rem .7272727272727273rem 1rem .7272727272727273rem;text-align:left;display:inline-block}.ui-popup-container .centertext_progressbar .ui-popup-text-bottom-bg .text-right{width:40%;height:1.8181818181818183rem;padding:.7272727272727273rem .7272727272727273rem 1rem .7272727272727273rem;text-align:right;display:inline-block}.ui-popup-container .centertext_progressbar .ui-popup-button-bg{font-size:1.4545454545454546rem;background:#f8f6ef;width:100%;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}.ui-popup-container .centertext_progressbar .ui-popup-button-bg .ui-btn{width:18.272727272727273rem;height:1.6818181818181819rem;margin:auto}.ui-popup-container .centertext_progressbar .ui-popup-progress-bg{background:#f8f6ef;width:100%;height:100%}.ui-text-ellipsis{white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden!important}.ui-tabbar{background:#f8f6ef;z-index:1000}.ui-tabbar a.ui-btn{background:#f8f6ef;color:#999;padding-top:.8636363636363636rem;padding-bottom:.8636363636363636rem}.ui-tabbar a.ui-btn .ui-btn-inner{padding-top:0;padding-bottom:0;border-left:2px solid;border-color:#b2b1ae;border-radius:0;-0-border-radius:0;-ms-border-radius:0;-webkit-border-radius:0}.ui-tabbar a.ui-btn .ui-icon{width:1.4545454545454546rem;height:1.4545454545454546rem;background-repeat:no-repeat;background-size:100% 100%}.ui-tabbar.ui-tabbar-persist a.ui-btn{background:#f8f6ef}.ui-tabbar.ui-tabbar-persist a.ui-state-persist,.ui-tabbar.ui-tabbar-persist a.ui-state-persist.ui-btn-active,.ui-tabbar.ui-tabbar-persist a.ui-btn-show-style{color:#3b73b6}.ui-tabbar.ui-tabbar-persist a.ui-btn-hover-s.ui-btn-down-s:not(.ui-state-persist){color:#3b73b6;background:-webkit-linear-gradient(top, #d2d2c8 0, #f6f8ef 100%)}.ui-tabbar:not(.ui-tabbar-persist) a.ui-btn{background:#f8f6ef}.ui-tabbar:not(.ui-tabbar-persist) a.ui-btn-active,.ui-tabbar:not(.ui-tabbar-persist) .ui-btn-show-style{color:#3b73b6}.ui-tabbar:not(.ui-tabbar-persist) a.ui-btn.ui-btn-hover-s.ui-btn-down-s{color:#3b73b6;background:-webkit-linear-gradient(top, #d2d2c8 0, #f6f8ef 100%)}.ui-tabbar .ui-btn-inner{font-size:.6818181818181819rem;font-weight:700}.ui-tabbar .ui-btn-inner .ui-icon{top:.4545454545454546rem;left:50%;margin-left:-.7272727272727273rem}.ui-tabbar.ui-tabbar-notext a.ui-btn{padding-top:.5rem;padding-bottom:.4545454545454546rem}.ui-tabbar.ui-tabbar-notext .ui-btn-inner{height:1.5454545454545454rem}.ui-tabbar.ui-tabbar-notext .ui-btn-inner .ui-icon{top:0}.ui-header.ui-bar-s.ui-title-tabbar .ui-title{font-size:1rem;margin-top:.36363636363636365rem;margin-bottom:0rem}.ui-header.ui-bar-s.ui-title-tabbar .ui-tabbar.ui-tabbar-noicons a.ui-btn{padding-top:.6818181818181819rem;padding-bottom:.5909090909090909rem}.ui-header.ui-bar-s.ui-title-tabbar .ui-tabbar.ui-tabbar-notext a.ui-btn{padding-top:.3181818181818182rem;padding-bottom:.2272727272727273rem}.ui-header.ui-bar-s.ui-title-tabbar-multiline .ui-tabbar a.ui-btn{padding-top:.5rem;padding-bottom:.4545454545454546rem}.ui-header.ui-bar-s.ui-title-tabbar-multiline .ui-tabbar a.ui-btn .ui-btn-inner{height:2.4545454545454546rem}.ui-header.ui-bar-s.ui-title-tabbar-multiline .ui-tabbar a.ui-btn .ui-btn-inner .ui-btn-text{padding-top:0;line-height:3.8636363636363638rem}.ui-header.ui-bar-s.ui-title-tabbar-multiline .ui-tabbar a.ui-btn .ui-btn-inner .ui-icon{top:0}.ui-header.ui-bar-s li:first-child .ui-btn-inner{border-left-width:0}.ui-footer.ui-bar-s .ui-tabbar{height:2.2272727272727275rem;margin-left:auto;margin-right:auto}.ui-footer.ui-bar-s .ui-tabbar a.ui-btn{padding-top:.7272727272727273rem;padding-bottom:.7272727272727273rem}.ui-footer.ui-bar-s .ui-tabbar .ui-btn-inner .ui-icon{top:0}.ui-footer.ui-bar-s .ui-tabbar.ui-tabbar-notext a.ui-btn{padding-top:.36363636363636365rem;padding-bottom:.3181818181818182rem}.ui-footer.ui-bar-s .ui-tabbar li:first-child .ui-btn-inner{border-left-width:0}.ui-footer.ui-bar-s .ui-tabbar.ui-tabbar-margin-back{margin-right:2.5454545454545454rem}.ui-footer.ui-bar-s .ui-tabbar.ui-tabbar-margin-more{margin-left:2.5454545454545454rem}.ui-footer.ui-bar-s .ui-btn-back~.ui-tabbar li:last-child .ui-btn-inner{border-right:1px solid;border-right-color:#b2b1ae}.ui-footer.ui-bar-s [data-icon="naviframe-more"]~.ui-tabbar li:first-child .ui-btn-inner{border-left:1px solid;border-left-color:#b2b1ae}.ui-tabbar-s.ui-navbar-noicons{font-size:1rem}.ui-tabbar .tabbar-scroll-ul{margin-top:0;margin-bottom:0;padding-left:0}.ui-tabbar .tabbar-scroll-ul .tabbar-scroll-li{position:relative;display:inline-block;margin-left:-.36363636363636365rem}.ui-tabbar .tabbar-scroll-ul .tabbar-scroll-li a{width:100%}.ui-tabbar .tabbar-scroll-ul li.tabbar-scroll-li:first-child{margin-left:0}.ui-tabbar-divider{position:absolute;top:0;width:3.681818181818182rem;height:2.5rem;background-repeat:no-repeat;background-size:100% 100%}.ui-tabbar-divider-left{left:0;background-image:url(images/00_effect_title_tab_bounce_left.png)}.ui-tabbar-divider-right{right:0;background-image:url(images/00_effect_title_tab_bounce_right.png)}.ui-splitview{margin:0;padding:0;position:relative}.ui-splitview .ui-pane{position:absolute;overflow:hidden;border:0;margin:0;padding:0}.ui-splitview .ui-pane .ui-listview{margin:0;padding:0}.ui-splitview .ui-spliter{position:absolute;z-index:100;display:block;margin:0;padding:0}.ui-splitview .ui-spliter-bar{background-color:#b3b3b3;border-color:#000;border-style:solid}.ui-splitview .ui-spliter-handle{margin:0;padding:0;cursor:move;display:block;text-align:center;cursor:pointer;position:relative;background-position:center center;background-repeat:no-repeat;background-size:100% 100%}.ui-direction-horizontal>.ui-spliter{width:60px}.ui-direction-vertical>.ui-spliter{height:60px}.ui-direction-horizontal>.ui-spliter>.ui-spliter-bar{width:13px;margin:0 0 0 25px;border-width:1px 1px 1px 0}.ui-direction-vertical>.ui-spliter>.ui-spliter-bar{height:13px;margin:25px 0 0 0;border-width:0 1px 1px 1px}.ui-spliter-active>.ui-spliter-bar{background-color:#5787c2}.ui-direction-horizontal>.ui-spliter>.ui-spliter-bar>.ui-spliter-handle{width:13px;height:26px;background-image:url(./images/00_splite_handler_v.png)}.ui-direction-vertical>.ui-spliter>.ui-spliter-bar>.ui-spliter-handle{width:26px;height:13px;background-image:url(./images/00_splite_handler_h.png)}.ui-direction-horizontal>.ui-fixed{width:0}.ui-direction-horizontal>.ui-fixed>.ui-spliter-bar{width:5px}.ui-direction-vertical>.ui-fixed{height:0}.ui-direction-vertical>.ui-fixed>.ui-spliter-bar{height:5px}.ui-fixed .ui-spliter-handle{display:none}
\ No newline at end of file